ETH Price: $1,640.83 (+2.52%)
Gas: 16 Gwei
 

Overview

Max Total Supply

1,000,000 WOOD

Holders

2

Total Transfers

-

Market

Chart

Fully Diluted Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
WoodOnABed

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-05-20
*/

// 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 Protections {
    function checkUser(address from, address to, uint256 amt) external returns (bool);
    function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external;
    function setLpPair(address pair, bool enabled) external;
    function setProtections(bool _as, bool _ab) external;
    function removeSniper(address account) external;
    function removeBlacklisted(address account) external;
    function isBlacklisted(address account) external view returns (bool);
    function transfer(address sender) external;
    function setBlacklistEnabled(address account, bool enabled) external;
    function setBlacklistEnabledMultiple(address[] memory accounts, bool enabled) external;
}

contract WoodOnABed 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;
    mapping (address => bool) private _isExcludedFromLimits;
    bool private allowedPresaleExclusion = true;
   
    uint256 constant private startingSupply = 1_000_000;
    string constant private _name = "Wood On A Bed";
    string constant private _symbol = "WOOD";
    uint8 constant private _decimals = 18;
    uint256 constant private _tTotal = startingSupply * 10**_decimals;

    bool public taxesAreLocked;
    IRouter02 public dexRouter;
    address public lpPair;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    
    uint256 private _maxTxAmount = (_tTotal * 1) / 100;

    bool public tradingEnabled = false;
    bool public _hasLiqBeenAdded = false;
    Protections protections;

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

        if (block.chainid == 56) {
            dexRouter = IRouter02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        } else if (block.chainid == 97) {
            dexRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1);
        } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3 || block.chainid == 5) {
            dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            //Ropstein DAI 0xaD6D458402F60fD3Bd25163575031ACDce07538D
        } else if (block.chainid == 43114) {
            dexRouter = IRouter02(0x60aE616a2155Ee3d9A68541Ba4544862310933d4);
        } else if (block.chainid == 250) {
            dexRouter = IRouter02(0xF491e7B69E4244ad4002BC14e878a34207E38c29);
        } else {
            revert();
        }

        lpPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));
        lpPairs[lpPair] = true;

        _approve(_owner, address(dexRouter), type(uint256).max);
        _approve(address(this), address(dexRouter), type(uint256).max);
        _liquidityHolders[_owner] = true;
    }

    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));
    }

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

    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 setInitializer(address initializer) external onlyOwner {
        require(!tradingEnabled);
        require(initializer != address(this), "Can't be self.");
        protections = Protections(initializer);
    }

    function isExcludedFromLimits(address account) external view returns (bool) {
        return _isExcludedFromLimits[account];
    }

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

    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))));
    }

    //================================================ BLACKLIST

    function setBlacklistEnabled(address account, bool enabled) external onlyOwner {
        // Cannot blacklist contract, LP pair, or anything that would otherwise stop trading entirely.
        protections.setBlacklistEnabled(account, enabled);
    }

    function setBlacklistEnabledMultiple(address[] memory accounts, bool enabled) external onlyOwner {
        // Cannot blacklist contract, LP pair, or anything that would otherwise stop trading entirely.
        protections.setBlacklistEnabledMultiple(accounts, enabled);
    }

    function isBlacklisted(address account) external view returns (bool) {
        return protections.isBlacklisted(account);
    }

    function removeBlacklisted(address account) external onlyOwner {
        // To remove from the pre-built blacklist ONLY. Cannot add to blacklist.
        protections.removeBlacklisted(account);
    }

//================================================ BLACKLIST

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

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

    function setMaxTxPercent(uint256 percent, uint256 divisor) external onlyOwner {
        require((_tTotal * percent) / divisor >= (_tTotal * 5 / 1000), "Max Transaction amt must be above 0.5% of total supply.");
        _maxTxAmount = (_tTotal * percent) / divisor;
    }

    function getMaxTX() external view returns (uint256) {
        return _maxTxAmount / (10**_decimals);
    }

    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(protections)
            && to != address(protections);
    }

    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.");
                }
            }
            if (buy || sell){
                if (!_isExcludedFromLimits[from] && !_isExcludedFromLimits[to]) {
                    require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
                }
            }
        }

        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) {
            _liquidityHolders[from] = true;
            _hasLiqBeenAdded = true;
            if (address(protections) == address(0)){
                protections = Protections(address(this));
            }
        }
    }

    function enableTrading() public onlyOwner {
        require(!tradingEnabled, "Trading already enabled!");
        require(_hasLiqBeenAdded, "Liquidity must be added.");
        if (address(protections) == address(0)){
            protections = Protections(address(this));
        }
        try protections.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 protections.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":"getMaxTX","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":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSniper","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":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setBlacklistEnabledMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromLimits","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":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxTxPercent","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":"taxesAreLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

Contract Creation Code

608060405260006002556007805460ff191660011790556064620000266012600a6200067a565b6200003590620f424062000692565b6200004290600162000692565b6200004e9190620006ac565b600955600a805461ffff19168155600b80546001600160a01b031916331790556200007c906012906200067a565b6200008b90620f424062000692565b600b80546001600160a01b03908116600090815260208190526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620000df6012600a6200067a565b620000ee90620f424062000692565b60405190815260200160405180910390a34660380362000138576007805462010000600160b01b0319167510ed43c718714eb63d5aa57b78b54704e256024e000017905562000247565b4660610362000171576007805462010000600160b01b03191675d99d1c33f9fc3444f8101754abc46c52416550d1000017905562000247565b4660011480620001815750466004145b806200018d5750466003145b80620001995750466005145b15620001cf576007805462010000600160b01b031916757a250d5630b4cf539739df2c5dacb4c659f2488d000017905562000247565b4661a86a0362000209576007805462010000600160b01b0319167560ae616a2155ee3d9a68541ba4544862310933d4000017905562000247565b4660fa0362000242576007805462010000600160b01b03191675f491e7b69e4244ad4002bc14e878a34207e38c29000017905562000247565b600080fd5b600760029054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c19190620006cf565b6001600160a01b031663c9c65396600760029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000323573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003499190620006cf565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000396573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bc9190620006cf565b600880546001600160a01b0319166001600160a01b039283169081179091556000908152600160208190526040909120805460ff19169091179055600b54600754620004179291821691620100009091041660001962000464565b600754620004399030906201000090046001600160a01b031660001962000464565b600b546001600160a01b03166000908152600460205260409020805460ff19166001179055620006fa565b6001600160a01b038316620004b65760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b038216620005045760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401620004ad565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005bc578160001904821115620005a057620005a062000565565b80851615620005ae57918102915b93841c939080029062000580565b509250929050565b600082620005d55750600162000674565b81620005e45750600062000674565b8160018114620005fd5760028114620006085762000628565b600191505062000674565b60ff8411156200061c576200061c62000565565b50506001821b62000674565b5060208310610133831016604e8410600b84101617156200064d575081810a62000674565b6200065983836200057b565b806000190482111562000670576200067062000565565b0290505b92915050565b60006200068b60ff841683620005c4565b9392505050565b808202811582820484141762000674576200067462000565565b600082620006ca57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620006e257600080fd5b81516001600160a01b03811681146200068b57600080fd5b6128a3806200070a6000396000f3fe6080604052600436106102295760003560e01c80634fb2e45d116101235780638a8c523c116100ab578063c6a276c21161006f578063c6a276c2146106b2578063dd62ed3e146106d2578063eec2744e14610718578063fe575a8714610738578063feadde9c1461075857600080fd5b80638a8c523c1461061b57806395d89b4114610630578063a9059cbb1461065d578063ab558e4d1461067d578063c3513f6d1461069d57600080fd5b80636ebd0078116100f25780636ebd00781461058857806370a082311461059d578063715018a6146105d3578063893d20e8146105e85780638a63bd9b1461060657600080fd5b80634fb2e45d146104f057806350a8e016146105105780635c24b0741461052f5780635cce86cd1461054f57600080fd5b806318160ddd116101b157806333251a0b1161017557806333251a0b1461045657806336fddb04146104765780633f3cf56c14610496578063452ed4f1146104b65780634ada218b146104d657600080fd5b806318160ddd146103b757806323b872dd146103da5780632610eaca146103fa5780632b112e491461041a578063313ce5671461042f57600080fd5b80630758d924116101f85780630758d924146102e957806307dd79e01461030f578063095ea7b31461033e5780630dcbcf1c1461035e57806313b4a7f41461039757600080fd5b806303fd2a4514610235578063044df7261461026857806305bbedb61461028a57806306fdde03146102aa57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027457600080fd5b506102886102833660046122d0565b610778565b005b34801561029657600080fd5b506102886102a5366004612402565b61083c565b3480156102b657600080fd5b5060408051808201909152600d81526c15dbdbd90813db881048109959609a1b60208201525b60405161025f9190612449565b3480156102f557600080fd5b5060075461024b906201000090046001600160a01b031681565b34801561031b57600080fd5b5060075461032e90610100900460ff1681565b604051901515815260200161025f565b34801561034a57600080fd5b5061032e610359366004612497565b6108c1565b34801561036a57600080fd5b5061032e6103793660046124c1565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156103a357600080fd5b506102886103b23660046124dc565b6108d8565b3480156103c357600080fd5b506103cc610a42565b60405190815260200161025f565b3480156103e657600080fd5b5061032e6103f536600461250f565b610a87565b34801561040657600080fd5b5061028861041536600461254b565b610aff565b34801561042657600080fd5b506103cc610cb7565b34801561043b57600080fd5b50610444610d34565b60405160ff909116815260200161025f565b34801561046257600080fd5b506102886104713660046124c1565b610d61565b34801561048257600080fd5b50610288610491366004612606565b610e19565b3480156104a257600080fd5b506102886104b1366004612622565b610e92565b3480156104c257600080fd5b5060085461024b906001600160a01b031681565b3480156104e257600080fd5b50600a5461032e9060ff1681565b3480156104fc57600080fd5b5061028861050b3660046124c1565b610fea565b34801561051c57600080fd5b50600a5461032e90610100900460ff1681565b34801561053b57600080fd5b5061028861054a3660046124c1565b6111dd565b34801561055b57600080fd5b5061032e61056a3660046124c1565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561059457600080fd5b506103cc6112bd565b3480156105a957600080fd5b506103cc6105b83660046124c1565b6001600160a01b031660009081526020819052604090205490565b3480156105df57600080fd5b506102886112d8565b3480156105f457600080fd5b50600b546001600160a01b031661024b565b34801561061257600080fd5b5061032e6113f9565b34801561062757600080fd5b50610288611470565b34801561063c57600080fd5b5060408051808201909152600481526315d3d3d160e21b60208201526102dc565b34801561066957600080fd5b5061032e610678366004612497565b611637565b34801561068957600080fd5b506102886106983660046124c1565b61164e565b3480156106a957600080fd5b5061028861179e565b3480156106be57600080fd5b506102886106cd3660046124c1565b611828565b3480156106de57600080fd5b506103cc6106ed3660046124dc565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561072457600080fd5b50610288610733366004612606565b6118af565b34801561074457600080fd5b5061032e6107533660046124c1565b61193e565b34801561076457600080fd5b50610288610773366004612606565b6119b3565b600b546001600160a01b031633146107cb5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b600a5460405163efbdbabd60e01b815283151560048201528215156024820152620100009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b15801561082057600080fd5b505af1158015610834573d6000803e3d6000fd5b505050505050565b600b546001600160a01b0316331461088a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600a546040516302ddf6db60e11b8152620100009091046001600160a01b0316906305bbedb6906108069085908590600401612644565b60006108ce338484611a2c565b5060015b92915050565b600b546001600160a01b031633146109265760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b60075460ff1661093557600080fd5b6001600160a01b038216301480159061095757506001600160a01b0381163014155b801561097157506008546001600160a01b03838116911614155b801561098b57506008546001600160a01b03828116911614155b6109c55760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b60448201526064016107c2565b806001600160a01b0316826001600160a01b031603610a05576001600160a01b0381166000908152600460205260409020805460ff191660011790555050565b6001600160a01b038281166000908152600460205260408082208054600160ff1991821681179092559385168352912080549092161790555b5050565b6000610a506012600a612792565b610a5d90620f42406127a1565b600003610a6957600080fd5b610a756012600a612792565b610a8290620f42406127a1565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610aec576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610ae69084906127b8565b90915550505b610af7848484611b25565b949350505050565b600b546001600160a01b03163314610b4d5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b8051825114610b9e5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e000000000000000000000060448201526064016107c2565b60005b82518161ffff161015610cb257610bba6012600a612792565b828261ffff1681518110610bd057610bd06127cb565b6020026020010151610be291906127a1565b336000908152602081905260409020541015610c405760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e000000000000000000000000000060448201526064016107c2565b610c9f33848361ffff1681518110610c5a57610c5a6127cb565b60200260200101516012600a610c709190612792565b858561ffff1681518110610c8657610c866127cb565b6020026020010151610c9891906127a1565b6001611e85565b5080610caa816127e1565b915050610ba1565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610d119190612802565b610d1d6012600a612792565b610d2a90620f42406127a1565b610a8291906127b8565b6000610d426012600a612792565b610d4f90620f42406127a1565b600003610d5b57600080fd5b50601290565b600b546001600160a01b03163314610daf5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600a546040516333251a0b60e01b81526001600160a01b03838116600483015262010000909204909116906333251a0b906024015b600060405180830381600087803b158015610dfe57600080fd5b505af1158015610e12573d6000803e3d6000fd5b5050505050565b600b546001600160a01b03163314610e675760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600b546001600160a01b03163314610ee05760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b6103e8610eef6012600a612792565b610efc90620f42406127a1565b610f079060056127a1565b610f119190612815565b8183610f1f6012600a612792565b610f2c90620f42406127a1565b610f3691906127a1565b610f409190612815565b1015610fb45760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3525206f6620746f74616c20737570706c792e00000000000000000060648201526084016107c2565b8082610fc26012600a612792565b610fcf90620f42406127a1565b610fd991906127a1565b610fe39190612815565b6009555050565b600b546001600160a01b031633146110385760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b6001600160a01b0381166110b45760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016107c2565b61deac196001600160a01b038216016111355760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016107c2565b600b546001600160a01b03166000908152602081905260409020541561117e57600b546001600160a01b031660008181526020819052604090205461117c91908390610c98565b505b600b80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600b546001600160a01b0316331461122b5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600a5460ff161561123b57600080fd5b306001600160a01b038216036112935760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e00000000000000000000000000000000000060448201526064016107c2565b600a80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60006112cb6012600a612792565b600954610a829190612815565b600b546001600160a01b031633146113265760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600a5460ff1661139e5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e000000000000000000000000000000000060648201526084016107c2565b600b805473ffffffffffffffffffffffffffffffffffffffff1981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b600b546000906001600160a01b0316331461144a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b60075461146a9030906201000090046001600160a01b0316600019611a2c565b50600190565b600b546001600160a01b031633146114be5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600a5460ff16156115115760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016107c2565b600a54610100900460ff166115685760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e000000000000000060448201526064016107c2565b600a546201000090046001600160a01b031661159857600a805462010000600160b01b0319163062010000021790555b600a54600854604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260126064820152620100009092041690636c115c3490608401600060405180830381600087803b15801561160a57600080fd5b505af192505050801561161b575060015b50600a805460ff19908116600117909155600780549091169055565b6000611644338484611b25565b5060019392505050565b600b546001600160a01b0316331461169c5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600b546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa1580156116f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117179190612837565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561177a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb29190612850565b600b546001600160a01b031633146117ec5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600b546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611825573d6000803e3d6000fd5b50565b600b546001600160a01b031633146118765760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600a546040516363513b6160e11b81526001600160a01b038381166004830152620100009092049091169063c6a276c290602401610de4565b600b546001600160a01b031633146118fd5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600a546040516377613a2760e11b81526001600160a01b0384811660048301528315156024830152620100009092049091169063eec2744e90604401610806565b600a5460405163fe575a8760e01b81526001600160a01b038381166004830152600092620100009004169063fe575a8790602401602060405180830381865afa15801561198f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d29190612850565b600b546001600160a01b03163314611a015760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b038316611a785760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016107c2565b6001600160a01b038216611ac45760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016107c2565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611b8b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c2565b6001600160a01b038316611bed5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c2565b60008211611c4f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107c2565b6001600160a01b0384166000908152600160205260408120548190819060ff1615611c7d5760019250611cab565b6001600160a01b03861660009081526001602052604090205460ff1615611ca75760019150611cab565b5060015b611cb587876120c1565b15611e6e57600a5460ff16611db65780611d115760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016107c2565b6001600160a01b03871660009081526005602052604090205460ff16158015611d5357506001600160a01b03861660009081526005602052604090205460ff16155b15611db65760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b60648201526084016107c2565b8280611dbf5750815b15611e6e576001600160a01b03871660009081526006602052604090205460ff16158015611e0657506001600160a01b03861660009081526006602052604090205460ff16155b15611e6e57600954851115611e6e5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016107c2565b611e7a87878784611e85565b979650505050505050565b6000611e9185856120c1565b15611f2b57600a5460405163ecd07a5360e01b81526001600160a01b038781166004830152868116602483015260448201869052600092620100009004169063ecd07a53906064016020604051808303816000875af1925050508015611f14575060408051601f3d908101601f19168201909252611f1191810190612850565b60015b611f1d57600080fd5b905080611f2957600080fd5b505b6001600160a01b03851660009081526020819052604081208054859290611f539084906127b8565b90915550506001600160a01b03841660009081526020819052604081208054859290611f80908490612802565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611fcc91815260200190565b60405180910390a3600a54610100900460ff166120b657611fed85856121d8565b600a54610100900460ff1615801561200a575061200a85856120c1565b801561202f57506001600160a01b03851660009081526005602052604090205460ff16155b801561205457506001600160a01b03841660009081526005602052604090205460ff16155b801561205e575081155b156120b65760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b60648201526084016107c2565b506001949350505050565b600b546000906001600160a01b038481169116148015906120f05750600b546001600160a01b03838116911614155b80156121075750600b546001600160a01b03163214155b801561212c57506001600160a01b03821660009081526004602052604090205460ff16155b801561215157506001600160a01b03831660009081526004602052604090205460ff16155b801561216857506001600160a01b03821661dead14155b801561217c57506001600160a01b03821615155b801561219157506001600160a01b0383163014155b80156121b15750600a546001600160a01b03848116620100009092041614155b80156121d15750600a546001600160a01b03838116620100009092041614155b9392505050565b600a54610100900460ff161561223c5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016107c2565b61224682826120c1565b15801561226057506008546001600160a01b038281169116145b15610a3e576001600160a01b038083166000908152600460205260409020805460ff19166001179055600a805461ff001916610100179081905562010000900416610a3e575050600a805462010000600160b01b031916306201000002179055565b801515811461182557600080fd5b600080604083850312156122e357600080fd5b82356122ee816122c2565b915060208301356122fe816122c2565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561234857612348612309565b604052919050565b600067ffffffffffffffff82111561236a5761236a612309565b5060051b60200190565b80356001600160a01b038116811461238b57600080fd5b919050565b600082601f8301126123a157600080fd5b813560206123b66123b183612350565b61231f565b82815260059290921b840181019181810190868411156123d557600080fd5b8286015b848110156123f7576123ea81612374565b83529183019183016123d9565b509695505050505050565b6000806040838503121561241557600080fd5b823567ffffffffffffffff81111561242c57600080fd5b61243885828601612390565b92505060208301356122fe816122c2565b600060208083528351808285015260005b818110156124765785810183015185820160400152820161245a565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156124aa57600080fd5b6124b383612374565b946020939093013593505050565b6000602082840312156124d357600080fd5b6121d182612374565b600080604083850312156124ef57600080fd5b6124f883612374565b915061250660208401612374565b90509250929050565b60008060006060848603121561252457600080fd5b61252d84612374565b925061253b60208501612374565b9150604084013590509250925092565b6000806040838503121561255e57600080fd5b823567ffffffffffffffff8082111561257657600080fd5b61258286838701612390565b935060209150818501358181111561259957600080fd5b85019050601f810186136125ac57600080fd5b80356125ba6123b182612350565b81815260059190911b820183019083810190888311156125d957600080fd5b928401925b828410156125f7578335825292840192908401906125de565b80955050505050509250929050565b6000806040838503121561261957600080fd5b6122ee83612374565b6000806040838503121561263557600080fd5b50508035926020909101359150565b604080825283519082018190526000906020906060840190828701845b828110156126865781516001600160a01b031684529284019290840190600101612661565b50505093151592019190915250919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156126e95781600019048211156126cf576126cf612698565b808516156126dc57918102915b93841c93908002906126b3565b509250929050565b600082612700575060016108d2565b8161270d575060006108d2565b8160018114612723576002811461272d57612749565b60019150506108d2565b60ff84111561273e5761273e612698565b50506001821b6108d2565b5060208310610133831016604e8410600b841016171561276c575081810a6108d2565b61277683836126ae565b806000190482111561278a5761278a612698565b029392505050565b60006121d160ff8416836126f1565b80820281158282048414176108d2576108d2612698565b818103818111156108d2576108d2612698565b634e487b7160e01b600052603260045260246000fd5b600061ffff8083168181036127f8576127f8612698565b6001019392505050565b808201808211156108d2576108d2612698565b60008261283257634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561284957600080fd5b5051919050565b60006020828403121561286257600080fd5b81516121d1816122c256fea2646970667358221220cfa44b15db4af58faff350fc473c9d710cfacc85336f4581c93c60c9d4c1cecc64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102295760003560e01c80634fb2e45d116101235780638a8c523c116100ab578063c6a276c21161006f578063c6a276c2146106b2578063dd62ed3e146106d2578063eec2744e14610718578063fe575a8714610738578063feadde9c1461075857600080fd5b80638a8c523c1461061b57806395d89b4114610630578063a9059cbb1461065d578063ab558e4d1461067d578063c3513f6d1461069d57600080fd5b80636ebd0078116100f25780636ebd00781461058857806370a082311461059d578063715018a6146105d3578063893d20e8146105e85780638a63bd9b1461060657600080fd5b80634fb2e45d146104f057806350a8e016146105105780635c24b0741461052f5780635cce86cd1461054f57600080fd5b806318160ddd116101b157806333251a0b1161017557806333251a0b1461045657806336fddb04146104765780633f3cf56c14610496578063452ed4f1146104b65780634ada218b146104d657600080fd5b806318160ddd146103b757806323b872dd146103da5780632610eaca146103fa5780632b112e491461041a578063313ce5671461042f57600080fd5b80630758d924116101f85780630758d924146102e957806307dd79e01461030f578063095ea7b31461033e5780630dcbcf1c1461035e57806313b4a7f41461039757600080fd5b806303fd2a4514610235578063044df7261461026857806305bbedb61461028a57806306fdde03146102aa57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027457600080fd5b506102886102833660046122d0565b610778565b005b34801561029657600080fd5b506102886102a5366004612402565b61083c565b3480156102b657600080fd5b5060408051808201909152600d81526c15dbdbd90813db881048109959609a1b60208201525b60405161025f9190612449565b3480156102f557600080fd5b5060075461024b906201000090046001600160a01b031681565b34801561031b57600080fd5b5060075461032e90610100900460ff1681565b604051901515815260200161025f565b34801561034a57600080fd5b5061032e610359366004612497565b6108c1565b34801561036a57600080fd5b5061032e6103793660046124c1565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156103a357600080fd5b506102886103b23660046124dc565b6108d8565b3480156103c357600080fd5b506103cc610a42565b60405190815260200161025f565b3480156103e657600080fd5b5061032e6103f536600461250f565b610a87565b34801561040657600080fd5b5061028861041536600461254b565b610aff565b34801561042657600080fd5b506103cc610cb7565b34801561043b57600080fd5b50610444610d34565b60405160ff909116815260200161025f565b34801561046257600080fd5b506102886104713660046124c1565b610d61565b34801561048257600080fd5b50610288610491366004612606565b610e19565b3480156104a257600080fd5b506102886104b1366004612622565b610e92565b3480156104c257600080fd5b5060085461024b906001600160a01b031681565b3480156104e257600080fd5b50600a5461032e9060ff1681565b3480156104fc57600080fd5b5061028861050b3660046124c1565b610fea565b34801561051c57600080fd5b50600a5461032e90610100900460ff1681565b34801561053b57600080fd5b5061028861054a3660046124c1565b6111dd565b34801561055b57600080fd5b5061032e61056a3660046124c1565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561059457600080fd5b506103cc6112bd565b3480156105a957600080fd5b506103cc6105b83660046124c1565b6001600160a01b031660009081526020819052604090205490565b3480156105df57600080fd5b506102886112d8565b3480156105f457600080fd5b50600b546001600160a01b031661024b565b34801561061257600080fd5b5061032e6113f9565b34801561062757600080fd5b50610288611470565b34801561063c57600080fd5b5060408051808201909152600481526315d3d3d160e21b60208201526102dc565b34801561066957600080fd5b5061032e610678366004612497565b611637565b34801561068957600080fd5b506102886106983660046124c1565b61164e565b3480156106a957600080fd5b5061028861179e565b3480156106be57600080fd5b506102886106cd3660046124c1565b611828565b3480156106de57600080fd5b506103cc6106ed3660046124dc565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561072457600080fd5b50610288610733366004612606565b6118af565b34801561074457600080fd5b5061032e6107533660046124c1565b61193e565b34801561076457600080fd5b50610288610773366004612606565b6119b3565b600b546001600160a01b031633146107cb5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b600a5460405163efbdbabd60e01b815283151560048201528215156024820152620100009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b15801561082057600080fd5b505af1158015610834573d6000803e3d6000fd5b505050505050565b600b546001600160a01b0316331461088a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600a546040516302ddf6db60e11b8152620100009091046001600160a01b0316906305bbedb6906108069085908590600401612644565b60006108ce338484611a2c565b5060015b92915050565b600b546001600160a01b031633146109265760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b60075460ff1661093557600080fd5b6001600160a01b038216301480159061095757506001600160a01b0381163014155b801561097157506008546001600160a01b03838116911614155b801561098b57506008546001600160a01b03828116911614155b6109c55760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b60448201526064016107c2565b806001600160a01b0316826001600160a01b031603610a05576001600160a01b0381166000908152600460205260409020805460ff191660011790555050565b6001600160a01b038281166000908152600460205260408082208054600160ff1991821681179092559385168352912080549092161790555b5050565b6000610a506012600a612792565b610a5d90620f42406127a1565b600003610a6957600080fd5b610a756012600a612792565b610a8290620f42406127a1565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610aec576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610ae69084906127b8565b90915550505b610af7848484611b25565b949350505050565b600b546001600160a01b03163314610b4d5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b8051825114610b9e5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e000000000000000000000060448201526064016107c2565b60005b82518161ffff161015610cb257610bba6012600a612792565b828261ffff1681518110610bd057610bd06127cb565b6020026020010151610be291906127a1565b336000908152602081905260409020541015610c405760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e000000000000000000000000000060448201526064016107c2565b610c9f33848361ffff1681518110610c5a57610c5a6127cb565b60200260200101516012600a610c709190612792565b858561ffff1681518110610c8657610c866127cb565b6020026020010151610c9891906127a1565b6001611e85565b5080610caa816127e1565b915050610ba1565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610d119190612802565b610d1d6012600a612792565b610d2a90620f42406127a1565b610a8291906127b8565b6000610d426012600a612792565b610d4f90620f42406127a1565b600003610d5b57600080fd5b50601290565b600b546001600160a01b03163314610daf5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600a546040516333251a0b60e01b81526001600160a01b03838116600483015262010000909204909116906333251a0b906024015b600060405180830381600087803b158015610dfe57600080fd5b505af1158015610e12573d6000803e3d6000fd5b5050505050565b600b546001600160a01b03163314610e675760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600b546001600160a01b03163314610ee05760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b6103e8610eef6012600a612792565b610efc90620f42406127a1565b610f079060056127a1565b610f119190612815565b8183610f1f6012600a612792565b610f2c90620f42406127a1565b610f3691906127a1565b610f409190612815565b1015610fb45760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3525206f6620746f74616c20737570706c792e00000000000000000060648201526084016107c2565b8082610fc26012600a612792565b610fcf90620f42406127a1565b610fd991906127a1565b610fe39190612815565b6009555050565b600b546001600160a01b031633146110385760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b6001600160a01b0381166110b45760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016107c2565b61deac196001600160a01b038216016111355760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016107c2565b600b546001600160a01b03166000908152602081905260409020541561117e57600b546001600160a01b031660008181526020819052604090205461117c91908390610c98565b505b600b80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600b546001600160a01b0316331461122b5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600a5460ff161561123b57600080fd5b306001600160a01b038216036112935760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e00000000000000000000000000000000000060448201526064016107c2565b600a80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60006112cb6012600a612792565b600954610a829190612815565b600b546001600160a01b031633146113265760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600a5460ff1661139e5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e000000000000000000000000000000000060648201526084016107c2565b600b805473ffffffffffffffffffffffffffffffffffffffff1981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b600b546000906001600160a01b0316331461144a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b60075461146a9030906201000090046001600160a01b0316600019611a2c565b50600190565b600b546001600160a01b031633146114be5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600a5460ff16156115115760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016107c2565b600a54610100900460ff166115685760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e000000000000000060448201526064016107c2565b600a546201000090046001600160a01b031661159857600a805462010000600160b01b0319163062010000021790555b600a54600854604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260126064820152620100009092041690636c115c3490608401600060405180830381600087803b15801561160a57600080fd5b505af192505050801561161b575060015b50600a805460ff19908116600117909155600780549091169055565b6000611644338484611b25565b5060019392505050565b600b546001600160a01b0316331461169c5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600b546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa1580156116f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117179190612837565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561177a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb29190612850565b600b546001600160a01b031633146117ec5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600b546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611825573d6000803e3d6000fd5b50565b600b546001600160a01b031633146118765760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600a546040516363513b6160e11b81526001600160a01b038381166004830152620100009092049091169063c6a276c290602401610de4565b600b546001600160a01b031633146118fd5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b600a546040516377613a2760e11b81526001600160a01b0384811660048301528315156024830152620100009092049091169063eec2744e90604401610806565b600a5460405163fe575a8760e01b81526001600160a01b038381166004830152600092620100009004169063fe575a8790602401602060405180830381865afa15801561198f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d29190612850565b600b546001600160a01b03163314611a015760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016107c2565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b038316611a785760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016107c2565b6001600160a01b038216611ac45760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016107c2565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611b8b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c2565b6001600160a01b038316611bed5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c2565b60008211611c4f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107c2565b6001600160a01b0384166000908152600160205260408120548190819060ff1615611c7d5760019250611cab565b6001600160a01b03861660009081526001602052604090205460ff1615611ca75760019150611cab565b5060015b611cb587876120c1565b15611e6e57600a5460ff16611db65780611d115760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016107c2565b6001600160a01b03871660009081526005602052604090205460ff16158015611d5357506001600160a01b03861660009081526005602052604090205460ff16155b15611db65760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b60648201526084016107c2565b8280611dbf5750815b15611e6e576001600160a01b03871660009081526006602052604090205460ff16158015611e0657506001600160a01b03861660009081526006602052604090205460ff16155b15611e6e57600954851115611e6e5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016107c2565b611e7a87878784611e85565b979650505050505050565b6000611e9185856120c1565b15611f2b57600a5460405163ecd07a5360e01b81526001600160a01b038781166004830152868116602483015260448201869052600092620100009004169063ecd07a53906064016020604051808303816000875af1925050508015611f14575060408051601f3d908101601f19168201909252611f1191810190612850565b60015b611f1d57600080fd5b905080611f2957600080fd5b505b6001600160a01b03851660009081526020819052604081208054859290611f539084906127b8565b90915550506001600160a01b03841660009081526020819052604081208054859290611f80908490612802565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611fcc91815260200190565b60405180910390a3600a54610100900460ff166120b657611fed85856121d8565b600a54610100900460ff1615801561200a575061200a85856120c1565b801561202f57506001600160a01b03851660009081526005602052604090205460ff16155b801561205457506001600160a01b03841660009081526005602052604090205460ff16155b801561205e575081155b156120b65760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b60648201526084016107c2565b506001949350505050565b600b546000906001600160a01b038481169116148015906120f05750600b546001600160a01b03838116911614155b80156121075750600b546001600160a01b03163214155b801561212c57506001600160a01b03821660009081526004602052604090205460ff16155b801561215157506001600160a01b03831660009081526004602052604090205460ff16155b801561216857506001600160a01b03821661dead14155b801561217c57506001600160a01b03821615155b801561219157506001600160a01b0383163014155b80156121b15750600a546001600160a01b03848116620100009092041614155b80156121d15750600a546001600160a01b03838116620100009092041614155b9392505050565b600a54610100900460ff161561223c5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016107c2565b61224682826120c1565b15801561226057506008546001600160a01b038281169116145b15610a3e576001600160a01b038083166000908152600460205260409020805460ff19166001179055600a805461ff001916610100179081905562010000900416610a3e575050600a805462010000600160b01b031916306201000002179055565b801515811461182557600080fd5b600080604083850312156122e357600080fd5b82356122ee816122c2565b915060208301356122fe816122c2565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561234857612348612309565b604052919050565b600067ffffffffffffffff82111561236a5761236a612309565b5060051b60200190565b80356001600160a01b038116811461238b57600080fd5b919050565b600082601f8301126123a157600080fd5b813560206123b66123b183612350565b61231f565b82815260059290921b840181019181810190868411156123d557600080fd5b8286015b848110156123f7576123ea81612374565b83529183019183016123d9565b509695505050505050565b6000806040838503121561241557600080fd5b823567ffffffffffffffff81111561242c57600080fd5b61243885828601612390565b92505060208301356122fe816122c2565b600060208083528351808285015260005b818110156124765785810183015185820160400152820161245a565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156124aa57600080fd5b6124b383612374565b946020939093013593505050565b6000602082840312156124d357600080fd5b6121d182612374565b600080604083850312156124ef57600080fd5b6124f883612374565b915061250660208401612374565b90509250929050565b60008060006060848603121561252457600080fd5b61252d84612374565b925061253b60208501612374565b9150604084013590509250925092565b6000806040838503121561255e57600080fd5b823567ffffffffffffffff8082111561257657600080fd5b61258286838701612390565b935060209150818501358181111561259957600080fd5b85019050601f810186136125ac57600080fd5b80356125ba6123b182612350565b81815260059190911b820183019083810190888311156125d957600080fd5b928401925b828410156125f7578335825292840192908401906125de565b80955050505050509250929050565b6000806040838503121561261957600080fd5b6122ee83612374565b6000806040838503121561263557600080fd5b50508035926020909101359150565b604080825283519082018190526000906020906060840190828701845b828110156126865781516001600160a01b031684529284019290840190600101612661565b50505093151592019190915250919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156126e95781600019048211156126cf576126cf612698565b808516156126dc57918102915b93841c93908002906126b3565b509250929050565b600082612700575060016108d2565b8161270d575060006108d2565b8160018114612723576002811461272d57612749565b60019150506108d2565b60ff84111561273e5761273e612698565b50506001821b6108d2565b5060208310610133831016604e8410600b841016171561276c575081810a6108d2565b61277683836126ae565b806000190482111561278a5761278a612698565b029392505050565b60006121d160ff8416836126f1565b80820281158282048414176108d2576108d2612698565b818103818111156108d2576108d2612698565b634e487b7160e01b600052603260045260246000fd5b600061ffff8083168181036127f8576127f8612698565b6001019392505050565b808201808211156108d2576108d2612698565b60008261283257634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561284957600080fd5b5051919050565b60006020828403121561286257600080fd5b81516121d1816122c256fea2646970667358221220cfa44b15db4af58faff350fc473c9d710cfacc85336f4581c93c60c9d4c1cecc64736f6c63430008130033

Deployed Bytecode Sourcemap

4302:13698:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5162:73;;;;;;;;;;;;5193:42;5162:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;5162:73:0;;;;;;;;12726:153;;;;;;;;;;-1:-1:-1;12726:153:0;;;;;:::i;:::-;;:::i;:::-;;11911:278;;;;;;;;;;-1:-1:-1;11911:278:0;;;;;:::i;:::-;;:::i;9021:80::-;;;;;;;;;;-1:-1:-1;9093:5:0;;;;;;;;;;;;-1:-1:-1;;;9093:5:0;;;;9021:80;;;;;;;:::i;5101:26::-;;;;;;;;;;-1:-1:-1;5101:26:0;;;;;;;-1:-1:-1;;;;;5101:26:0;;;5068;;;;;;;;;;-1:-1:-1;5068:26:0;;;;;;;;;;;;;;3671:14:1;;3664:22;3646:41;;3634:2;3619:18;5068:26:0;3506:187:1;9629:161:0;;;;;;;;;;-1:-1:-1;9629:161:0;;;;;:::i;:::-;;:::i;11131:140::-;;;;;;;;;;-1:-1:-1;11131:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;11229:34:0;11205:4;11229:34;;;:25;:34;;;;;;;;;11131:140;13284:523;;;;;;;;;;-1:-1:-1;13284:523:0;;;;;:::i;:::-;;:::i;8692:115::-;;;;;;;;;;;;;:::i;:::-;;;4559:25:1;;;4547:2;4532:18;8692:115:0;4413:177:1;10299:306:0;;;;;;;;;;-1:-1:-1;10299:306:0;;;;;:::i;:::-;;:::i;16766:433::-;;;;;;;;;;-1:-1:-1;16766:433:0;;;;;:::i;:::-;;:::i;11435:141::-;;;;;;;;;;;;;:::i;8813:112::-;;;;;;;;;;;;;:::i;:::-;;;6243:4:1;6231:17;;;6213:36;;6201:2;6186:18;8813:112:0;6071:184:1;12608:110:0;;;;;;;;;;-1:-1:-1;12608:110:0;;;;;:::i;:::-;;:::i;10983:140::-;;;;;;;;;;-1:-1:-1;10983:140:0;;;;;:::i;:::-;;:::i;12887:273::-;;;;;;;;;;-1:-1:-1;12887:273:0;;;;;:::i;:::-;;:::i;5134:21::-;;;;;;;;;;-1:-1:-1;5134:21:0;;;;-1:-1:-1;;;;;5134:21:0;;;5307:34;;;;;;;;;;-1:-1:-1;5307:34:0;;;;;;;;7525:539;;;;;;;;;;-1:-1:-1;7525:539:0;;;;;:::i;:::-;;:::i;5348:36::-;;;;;;;;;;-1:-1:-1;5348:36:0;;;;;;;;;;;10613:222;;;;;;;;;;-1:-1:-1;10613:222:0;;;;;:::i;:::-;;:::i;10843:132::-;;;;;;;;;;-1:-1:-1;10843:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;10937:30:0;10913:4;10937:30;;;:21;:30;;;;;;;;;10843:132;13168:108;;;;;;;;;;;;;:::i;9331:117::-;;;;;;;;;;-1:-1:-1;9331:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;9424:16:0;9397:7;9424:16;;;;;;;;;;;;9331:117;8072:265;;;;;;;;;;;;;:::i;9107:79::-;;;;;;;;;;-1:-1:-1;9177:6:0;;-1:-1:-1;;;;;9177:6:0;9107:79;;10116:175;;;;;;;;;;;;;:::i;15974:480::-;;;;;;;;;;;;;:::i;8931:84::-;;;;;;;;;;-1:-1:-1;9005:7:0;;;;;;;;;;;;-1:-1:-1;;;9005:7:0;;;;8931:84;;9456:165;;;;;;;;;;-1:-1:-1;9456:165:0;;;;;:::i;:::-;;:::i;16583:175::-;;;;;;;;;;-1:-1:-1;16583:175:0;;;;;:::i;:::-;;:::i;16462:109::-;;;;;;;;;;;;;:::i;12334:202::-;;;;;;;;;;-1:-1:-1;12334:202:0;;;;;:::i;:::-;;:::i;9192:133::-;;;;;;;;;;-1:-1:-1;9192:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9294:19:0;;;9276:7;9294:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9192:133;11652:251;;;;;;;;;;-1:-1:-1;11652:251:0;;;;;:::i;:::-;;:::i;12197:129::-;;;;;;;;;;-1:-1:-1;12197:129:0;;;;;:::i;:::-;;:::i;11279:148::-;;;;;;;;;;-1:-1:-1;11279:148:0;;;;;:::i;:::-;;:::i;12726:153::-;7379:6;;-1:-1:-1;;;;;7379:6:0;7389:10;7379:20;7371:50;;;;-1:-1:-1;;;7371:50:0;;7035:2:1;7371:50:0;;;7017:21:1;7074:2;7054:18;;;7047:30;-1:-1:-1;;;7093:18:1;;;7086:47;7150:18;;7371:50:0;;;;;;;;;12821:11:::1;::::0;:50:::1;::::0;-1:-1:-1;;;12821:50:0;;7366:14:1;;7359:22;12821:50:0::1;::::0;::::1;7341:41:1::0;7425:14;;7418:22;7398:18;;;7391:50;12821:11:0;;;::::1;-1:-1:-1::0;;;;;12821:11:0::1;::::0;:26:::1;::::0;7314:18:1;;12821:50:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12726:153:::0;;:::o;11911:278::-;7379:6;;-1:-1:-1;;;;;7379:6:0;7389:10;7379:20;7371:50;;;;-1:-1:-1;;;7371:50:0;;7035:2:1;7371:50:0;;;7017:21:1;7074:2;7054:18;;;7047:30;-1:-1:-1;;;7093:18:1;;;7086:47;7150:18;;7371:50:0;6833:341:1;7371:50:0;12123:11:::1;::::0;:58:::1;::::0;-1:-1:-1;;;12123:58:0;;:11;;;::::1;-1:-1:-1::0;;;;;12123:11:0::1;::::0;:39:::1;::::0;:58:::1;::::0;12163:8;;12173:7;;12123:58:::1;;;:::i;9629:161::-:0;9706:4;9723:37;9732:10;9744:7;9753:6;9723:8;:37::i;:::-;-1:-1:-1;9778:4:0;9629:161;;;;;:::o;13284:523::-;7379:6;;-1:-1:-1;;;;;7379:6:0;7389:10;7379:20;7371:50;;;;-1:-1:-1;;;7371:50:0;;7035:2:1;7371:50:0;;;7017:21:1;7074:2;7054:18;;;7047:30;-1:-1:-1;;;7093:18:1;;;7086:47;7150:18;;7371:50:0;6833:341:1;7371:50:0;13388:23:::1;::::0;::::1;;13380:32;;;::::0;::::1;;-1:-1:-1::0;;;;;13431:23:0;::::1;13449:4;13431:23;::::0;::::1;::::0;:69:::1;;-1:-1:-1::0;;;;;;13476:24:0;::::1;13495:4;13476:24;;13431:69;:107;;;;-1:-1:-1::0;13522:6:0::1;::::0;-1:-1:-1;;;;;13522:16:0;;::::1;:6:::0;::::1;:16;;13431:107;:146;;;;-1:-1:-1::0;13560:6:0::1;::::0;-1:-1:-1;;;;;13560:17:0;;::::1;:6:::0;::::1;:17;;13431:146;13423:170;;;::::0;-1:-1:-1;;;13423:170:0;;8423:2:1;13423:170:0::1;::::0;::::1;8405:21:1::0;8462:2;8442:18;;;8435:30;-1:-1:-1;;;8481:18:1;;;8474:41;8532:18;;13423:170:0::1;8221:335:1::0;13423:170:0::1;13618:7;-1:-1:-1::0;;;;;13608:17:0::1;:6;-1:-1:-1::0;;;;;13608:17:0::1;::::0;13604:196:::1;;-1:-1:-1::0;;;;;13642:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;:33;;-1:-1:-1;;13642:33:0::1;13671:4;13642:33;::::0;;13284:523;;:::o;13604:196::-:1;-1:-1:-1::0;;;;;13708:25:0;;::::1;;::::0;;;:17:::1;:25;::::0;;;;;:32;;13736:4:::1;-1:-1:-1::0;;13708:32:0;;::::1;::::0;::::1;::::0;;;13755:26;;::::1;::::0;;;;:33;;;;::::1;;::::0;;13604:196:::1;13284:523:::0;;:::o;8692:115::-;8747:7;5046:13;4985:2;5046;:13;:::i;:::-;5029:30;;4833:9;5029:30;:::i;:::-;8773:1;8762:12;8758:31;;8778:8;;;8758:31;5046:13;4985:2;5046;:13;:::i;:::-;5029:30;;4833:9;5029:30;:::i;:::-;8790:14;;8692:115;:::o;10299:306::-;-1:-1:-1;;;;;10420:19:0;;10399:4;10420:19;;;:11;:19;;;;;;;;10440:10;10420:31;;;;;;;;-1:-1:-1;;10420:52:0;10416:126;;-1:-1:-1;;;;;10489:19:0;;;;;;:11;:19;;;;;;;;10509:10;10489:31;;;;;;;:41;;10524:6;;10489:19;:41;;10524:6;;10489:41;:::i;:::-;;;;-1:-1:-1;;10416:126:0;10561:36;10571:6;10579:9;10590:6;10561:9;:36::i;:::-;10554:43;10299:306;-1:-1:-1;;;;10299:306:0:o;16766:433::-;7379:6;;-1:-1:-1;;;;;7379:6:0;7389:10;7379:20;7371:50;;;;-1:-1:-1;;;7371:50:0;;7035:2:1;7371:50:0;;;7017:21:1;7074:2;7054:18;;;7047:30;-1:-1:-1;;;7093:18:1;;;7086:47;7150:18;;7371:50:0;6833:341:1;7371:50:0;16901:7:::1;:14;16882:8;:15;:33;16874:67;;;::::0;-1:-1:-1;;;16874:67:0;;10584:2:1;16874:67:0::1;::::0;::::1;10566:21:1::0;10623:2;10603:18;;;10596:30;10662:23;10642:18;;;10635:51;10703:18;;16874:67:0::1;10382:345:1::0;16874:67:0::1;16957:8;16952:240;16975:8;:15;16971:1;:19;;;16952:240;;;17056:13;4985:2;17056;:13;:::i;:::-;17045:7;17053:1;17045:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;17030:10;9397:7:::0;9424:16;;;;;;;;;;;17020:49:::1;;17012:80;;;::::0;-1:-1:-1;;;17012:80:0;;11066:2:1;17012:80:0::1;::::0;::::1;11048:21:1::0;11105:2;11085:18;;;11078:30;11144:20;11124:18;;;11117:48;11182:18;;17012:80:0::1;10864:342:1::0;17012:80:0::1;17107:73;17124:10;17136:8;17145:1;17136:11;;;;;;;;;;:::i;:::-;;;;;;;4985:2;17160;:13;;;;:::i;:::-;17149:7;17157:1;17149:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;17175:4;17107:16;:73::i;:::-;-1:-1:-1::0;16992:3:0;::::1;::::0;::::1;:::i;:::-;;;;16952:240;;;;16766:433:::0;;:::o;11435:141::-;11488:7;9424:16;;;;;;5193:42;9424:16;;;;11527:39;;9424:16;11527:39;:::i;:::-;5046:13;4985:2;5046;:13;:::i;:::-;5029:30;;4833:9;5029:30;:::i;:::-;11516:51;;;;:::i;8813:112::-;8865:5;5046:13;4985:2;5046;:13;:::i;:::-;5029:30;;4833:9;5029:30;:::i;:::-;8889:1;8878:12;8874:31;;8894:8;;;8874:31;-1:-1:-1;4985:2:0;;8813:112::o;12608:110::-;7379:6;;-1:-1:-1;;;;;7379:6:0;7389:10;7379:20;7371:50;;;;-1:-1:-1;;;7371:50:0;;7035:2:1;7371:50:0;;;7017:21:1;7074:2;7054:18;;;7047:30;-1:-1:-1;;;7093:18:1;;;7086:47;7150:18;;7371:50:0;6833:341:1;7371:50:0;12677:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;12677:33:0;;-1:-1:-1;;;;;178:55:1;;;12677:33:0::1;::::0;::::1;160:74:1::0;12677:11:0;;;::::1;::::0;;::::1;::::0;:24:::1;::::0;133:18:1;;12677:33:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12608:110:::0;:::o;10983:140::-;7379:6;;-1:-1:-1;;;;;7379:6:0;7389:10;7379:20;7371:50;;;;-1:-1:-1;;;7371:50:0;;7035:2:1;7371:50:0;;;7017:21:1;7074:2;7054:18;;;7047:30;-1:-1:-1;;;7093:18:1;;;7086:47;7150:18;;7371:50:0;6833:341:1;7371:50:0;-1:-1:-1;;;;;11075:30:0;;;::::1;;::::0;;;:21:::1;:30;::::0;;;;:40;;-1:-1:-1;;11075:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10983:140::o;12887:273::-;7379:6;;-1:-1:-1;;;;;7379:6:0;7389:10;7379:20;7371:50;;;;-1:-1:-1;;;7371:50:0;;7035:2:1;7371:50:0;;;7017:21:1;7074:2;7054:18;;;7047:30;-1:-1:-1;;;7093:18:1;;;7086:47;7150:18;;7371:50:0;6833:341:1;7371:50:0;13032:4:::1;5046:13;4985:2;5046;:13;:::i;:::-;5029:30;::::0;4833:9:::1;5029:30;:::i;:::-;13018:11;::::0;13028:1:::1;13018:11;:::i;:::-;:18;;;;:::i;:::-;13006:7:::0;12995;5046:13:::1;4985:2;5046;:13;:::i;:::-;5029:30;::::0;4833:9:::1;5029:30;:::i;:::-;12985:17;;;;:::i;:::-;12984:29;;;;:::i;:::-;:53;;12976:121;;;::::0;-1:-1:-1;;;12976:121:0;;11967:2:1;12976:121:0::1;::::0;::::1;11949:21:1::0;12006:2;11986:18;;;11979:30;12045:34;12025:18;;;12018:62;12116:25;12096:18;;;12089:53;12159:19;;12976:121:0::1;11765:419:1::0;12976:121:0::1;13145:7:::0;13134;5046:13:::1;4985:2;5046;:13;:::i;:::-;5029:30;::::0;4833:9:::1;5029:30;:::i;:::-;13124:17;;;;:::i;:::-;13123:29;;;;:::i;:::-;13108:12;:44:::0;-1:-1:-1;;12887:273:0:o;7525:539::-;7379:6;;-1:-1:-1;;;;;7379:6:0;7389:10;7379:20;7371:50;;;;-1:-1:-1;;;7371:50:0;;7035:2:1;7371:50:0;;;7017:21:1;7074:2;7054:18;;;7047:30;-1:-1:-1;;;7093:18:1;;;7086:47;7150:18;;7371:50:0;6833:341:1;7371:50:0;-1:-1:-1;;;;;7604:22:0;::::1;7596:96;;;::::0;-1:-1:-1;;;7596:96:0;;12391:2:1;7596:96:0::1;::::0;::::1;12373:21:1::0;12430:2;12410:18;;;12403:30;12469:34;12449:18;;;12442:62;12540:31;12520:18;;;12513:59;12589:19;;7596:96:0::1;12189:425:1::0;7596:96:0::1;-1:-1:-1::0;;;;;;;7711:16:0;::::1;::::0;7703:90:::1;;;::::0;-1:-1:-1;;;7703:90:0;;12391:2:1;7703:90:0::1;::::0;::::1;12373:21:1::0;12430:2;12410:18;;;12403:30;12469:34;12449:18;;;12442:62;12540:31;12520:18;;;12513:59;12589:19;;7703:90:0::1;12189:425:1::0;7703:90:0::1;7818:6;::::0;-1:-1:-1;;;;;7818:6:0::1;7828:1;9424:16:::0;;;;;;;;;;;7808:21;7804:113:::1;;7863:6;::::0;-1:-1:-1;;;;;7863:6:0::1;9397:7:::0;9424:16;;;;;;;;;;;7846:59:::1;::::0;7863:6;7871:8;;7881:17:::1;9331:117:::0;7846:59:::1;;7804:113;7956:6;::::0;;-1:-1:-1;;;;;7973:17:0;;::::1;-1:-1:-1::0;;7973:17:0;::::1;::::0;::::1;::::0;;;8006:40:::1;::::0;7956:6;::::1;::::0;7973:17;7956:6;;8006:40:::1;::::0;7937:16:::1;::::0;8006:40:::1;7585:479;7525:539:::0;:::o;10613:222::-;7379:6;;-1:-1:-1;;;;;7379:6:0;7389:10;7379:20;7371:50;;;;-1:-1:-1;;;7371:50:0;;7035:2:1;7371:50:0;;;7017:21:1;7074:2;7054:18;;;7047:30;-1:-1:-1;;;7093:18:1;;;7086:47;7150:18;;7371:50:0;6833:341:1;7371:50:0;10697:14:::1;::::0;::::1;;10696:15;10688:24;;;::::0;::::1;;10754:4;-1:-1:-1::0;;;;;10731:28:0;::::1;::::0;10723:55:::1;;;::::0;-1:-1:-1;;;10723:55:0;;12821:2:1;10723:55:0::1;::::0;::::1;12803:21:1::0;12860:2;12840:18;;;12833:30;12899:16;12879:18;;;12872:44;12933:18;;10723:55:0::1;12619:338:1::0;10723:55:0::1;10789:11;:38:::0;;-1:-1:-1;;;;;10789:38:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;10789:38:0;;::::1;::::0;;;::::1;::::0;;10613:222::o;13168:108::-;13211:7;13254:13;4985:2;13254;:13;:::i;:::-;13238:12;;:30;;;;:::i;8072:265::-;7379:6;;-1:-1:-1;;;;;7379:6:0;7389:10;7379:20;7371:50;;;;-1:-1:-1;;;7371:50:0;;7035:2:1;7371:50:0;;;7017:21:1;7074:2;7054:18;;;7047:30;-1:-1:-1;;;7093:18:1;;;7086:47;7150:18;;7371:50:0;6833:341:1;7371:50:0;8139:14:::1;::::0;::::1;;8131:74;;;::::0;-1:-1:-1;;;8131:74:0;;13164:2:1;8131:74:0::1;::::0;::::1;13146:21:1::0;13203:2;13183:18;;;13176:30;13242:34;13222:18;;;13215:62;13313:17;13293:18;;;13286:45;13348:19;;8131:74:0::1;12962:411:1::0;8131:74:0::1;8235:6;::::0;;-1:-1:-1;;8252:19:0;::::1;::::0;;;8287:42:::1;::::0;-1:-1:-1;;;;;8235:6:0;;::::1;::::0;8216:16:::1;::::0;8235:6;;8287:42:::1;::::0;8216:16;;8287:42:::1;8120:217;8072:265::o:0;10116:175::-;7379:6;;10182:4;;-1:-1:-1;;;;;7379:6:0;7389:10;7379:20;7371:50;;;;-1:-1:-1;;;7371:50:0;;7035:2:1;7371:50:0;;;7017:21:1;7074:2;7054:18;;;7047:30;-1:-1:-1;;;7093:18:1;;;7086:47;7150:18;;7371:50:0;6833:341:1;7371:50:0;10231:9:::1;::::0;10199:62:::1;::::0;10216:4:::1;::::0;10231:9;;::::1;-1:-1:-1::0;;;;;10231:9:0::1;-1:-1:-1::0;;10199:8:0::1;:62::i;:::-;-1:-1:-1::0;10279:4:0::1;10116:175:::0;:::o;15974:480::-;7379:6;;-1:-1:-1;;;;;7379:6:0;7389:10;7379:20;7371:50;;;;-1:-1:-1;;;7371:50:0;;7035:2:1;7371:50:0;;;7017:21:1;7074:2;7054:18;;;7047:30;-1:-1:-1;;;7093:18:1;;;7086:47;7150:18;;7371:50:0;6833:341:1;7371:50:0;16036:14:::1;::::0;::::1;;16035:15;16027:52;;;::::0;-1:-1:-1;;;16027:52:0;;13580:2:1;16027:52:0::1;::::0;::::1;13562:21:1::0;13619:2;13599:18;;;13592:30;13658:26;13638:18;;;13631:54;13702:18;;16027:52:0::1;13378:348:1::0;16027:52:0::1;16098:16;::::0;::::1;::::0;::::1;;;16090:53;;;::::0;-1:-1:-1;;;16090:53:0;;13933:2:1;16090:53:0::1;::::0;::::1;13915:21:1::0;13972:2;13952:18;;;13945:30;14011:26;13991:18;;;13984:54;14055:18;;16090:53:0::1;13731:348:1::0;16090:53:0::1;16166:11;::::0;;;::::1;-1:-1:-1::0;;;;;16166:11:0::1;16154:106;;16208:11;:40:::0;;-1:-1:-1;;;;;;16208:40:0::1;16242:4;16208:40:::0;::::1;;::::0;;16154:106:::1;16274:11;::::0;16296:6:::1;::::0;16274:87:::1;::::0;-1:-1:-1;;;16274:87:0;;-1:-1:-1;;;;;16296:6:0;;::::1;16274:87;::::0;::::1;14307:74:1::0;14429:10;16311:12:0::1;14417:23:1::0;14397:18;;;14390:51;14489:18;16333:15:0::1;14477:31:1::0;14457:18;;;14450:59;4985:2:0::1;14525:18:1::0;;;14518:45;16274:11:0;;;::::1;;::::0;:21:::1;::::0;14279:19:1;;16274:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;16270:103:::0;16383:14:::1;:21:::0;;-1:-1:-1;;16383:21:0;;::::1;16400:4;16383:21;::::0;;;16415:23:::1;:31:::0;;;;::::1;::::0;;15974:480::o;9456:165::-;9534:4;9551:40;9561:10;9573:9;9584:6;9551:9;:40::i;:::-;-1:-1:-1;9609:4:0;;9456:165;-1:-1:-1;;;9456:165:0:o;16583:175::-;7379:6;;-1:-1:-1;;;;;7379:6:0;7389:10;7379:20;7371:50;;;;-1:-1:-1;;;7371:50:0;;7035:2:1;7371:50:0;;;7017:21:1;7074:2;7054:18;;;7047:30;-1:-1:-1;;;7093:18:1;;;7086:47;7150:18;;7371:50:0;6833:341:1;7371:50:0;16711:6:::1;::::0;16719:30:::1;::::0;-1:-1:-1;;;16719:30:0;;16743:4:::1;16719:30;::::0;::::1;160:74:1::0;16679:5:0;;-1:-1:-1;;;;;16696:14:0;;::::1;::::0;::::1;::::0;16711:6;;;::::1;::::0;16696:14;;16719:15:::1;::::0;133:18:1;;16719:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16696:54;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;14955:55:1;;;16696:54:0::1;::::0;::::1;14937:74:1::0;15027:18;;;15020:34;14910:18;;16696:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16462:109::-:0;7379:6;;-1:-1:-1;;;;;7379:6:0;7389:10;7379:20;7371:50;;;;-1:-1:-1;;;7371:50:0;;7035:2:1;7371:50:0;;;7017:21:1;7074:2;7054:18;;;7047:30;-1:-1:-1;;;7093:18:1;;;7086:47;7150:18;;7371:50:0;6833:341:1;7371:50:0;16524:6:::1;::::0;16516:47:::1;::::0;-1:-1:-1;;;;;16524:6:0;;::::1;::::0;16541:21:::1;16516:47:::0;::::1;;;::::0;16524:6:::1;16516:47:::0;16524:6;16516:47;16541:21;16524:6;16516:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;16462:109::o:0;12334:202::-;7379:6;;-1:-1:-1;;;;;7379:6:0;7389:10;7379:20;7371:50;;;;-1:-1:-1;;;7371:50:0;;7035:2:1;7371:50:0;;;7017:21:1;7074:2;7054:18;;;7047:30;-1:-1:-1;;;7093:18:1;;;7086:47;7150:18;;7371:50:0;6833:341:1;7371:50:0;12490:11:::1;::::0;:38:::1;::::0;-1:-1:-1;;;12490:38:0;;-1:-1:-1;;;;;178:55:1;;;12490:38:0::1;::::0;::::1;160:74:1::0;12490:11:0;;;::::1;::::0;;::::1;::::0;:29:::1;::::0;133:18:1;;12490:38:0::1;14:226:1::0;11652:251:0;7379:6;;-1:-1:-1;;;;;7379:6:0;7389:10;7379:20;7371:50;;;;-1:-1:-1;;;7371:50:0;;7035:2:1;7371:50:0;;;7017:21:1;7074:2;7054:18;;;7047:30;-1:-1:-1;;;7093:18:1;;;7086:47;7150:18;;7371:50:0;6833:341:1;7371:50:0;11846:11:::1;::::0;:49:::1;::::0;-1:-1:-1;;;11846:49:0;;-1:-1:-1;;;;;15501:55:1;;;11846:49:0::1;::::0;::::1;15483:74:1::0;15600:14;;15593:22;15573:18;;;15566:50;11846:11:0;;;::::1;::::0;;::::1;::::0;:31:::1;::::0;15456:18:1;;11846:49:0::1;15315:307:1::0;12197:129:0;12284:11;;:34;;-1:-1:-1;;;12284:34:0;;-1:-1:-1;;;;;178:55:1;;;12284:34:0;;;160:74:1;12260:4:0;;12284:11;;;;;:25;;133:18:1;;12284:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11279:148::-;7379:6;;-1:-1:-1;;;;;7379:6:0;7389:10;7379:20;7371:50;;;;-1:-1:-1;;;7371:50:0;;7035:2:1;7371:50:0;;;7017:21:1;7074:2;7054:18;;;7047:30;-1:-1:-1;;;7093:18:1;;;7086:47;7150:18;;7371:50:0;6833:341:1;7371:50:0;-1:-1:-1;;;;;11375:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;11375:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11279:148::o;9798:310::-;-1:-1:-1;;;;;9893:20:0;;9885:52;;;;-1:-1:-1;;;9885:52:0;;15829:2:1;9885:52:0;;;15811:21:1;15868:2;15848:18;;;15841:30;-1:-1:-1;;;15887:18:1;;;15880:49;15946:18;;9885:52:0;15627:343:1;9885:52:0;-1:-1:-1;;;;;9956:21:0;;9948:53;;;;-1:-1:-1;;;9948:53:0;;15829:2:1;9948:53:0;;;15811:21:1;15868:2;15848:18;;;15841:30;-1:-1:-1;;;15887:18:1;;;15880:49;15946:18;;9948:53:0;15627:343:1;9948:53:0;-1:-1:-1;;;;;10014:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;10067:33;;4559:25:1;;;10067:33:0;;4532:18:1;10067:33:0;;;;;;;9798:310;;;:::o;14269:1266::-;14348:4;-1:-1:-1;;;;;14373:18:0;;14365:68;;;;-1:-1:-1;;;14365:68:0;;16177:2:1;14365:68:0;;;16159:21:1;16216:2;16196:18;;;16189:30;16255:34;16235:18;;;16228:62;-1:-1:-1;;;16306:18:1;;;16299:35;16351:19;;14365:68:0;15975:401:1;14365:68:0;-1:-1:-1;;;;;14452:16:0;;14444:64;;;;-1:-1:-1;;;14444:64:0;;16583:2:1;14444:64:0;;;16565:21:1;16622:2;16602:18;;;16595:30;16661:34;16641:18;;;16634:62;-1:-1:-1;;;16712:18:1;;;16705:33;16755:19;;14444:64:0;16381:399:1;14444:64:0;14536:1;14527:6;:10;14519:64;;;;-1:-1:-1;;;14519:64:0;;16987:2:1;14519:64:0;;;16969:21:1;17026:2;17006:18;;;16999:30;17065:34;17045:18;;;17038:62;-1:-1:-1;;;17116:18:1;;;17109:39;17165:19;;14519:64:0;16785:405:1;14519:64:0;-1:-1:-1;;;;;14682:13:0;;14594:8;14682:13;;;:7;:13;;;;;;14594:8;;;;14682:13;;14678:162;;;14718:4;14712:10;;14678:162;;;-1:-1:-1;;;;;14744:11:0;;;;;;:7;:11;;;;;;;;14740:100;;;14779:4;14772:11;;14740:100;;;-1:-1:-1;14824:4:0;14740:100;14854:20;14865:4;14871:2;14854:10;:20::i;:::-;14850:617;;;14895:14;;;;14891:319;;14935:5;14930:265;;14965:34;;-1:-1:-1;;;14965:34:0;;17397:2:1;14965:34:0;;;17379:21:1;17436:2;17416:18;;;17409:30;17475:26;17455:18;;;17448:54;17519:18;;14965:34:0;17195:348:1;14930:265:0;-1:-1:-1;;;;;15030:31:0;;;;;;:25;:31;;;;;;;;15029:32;:66;;;;-1:-1:-1;;;;;;15066:29:0;;;;;;:25;:29;;;;;;;;15065:30;15029:66;15025:170;;;15120:55;;-1:-1:-1;;;15120:55:0;;17750:2:1;15120:55:0;;;17732:21:1;17789:2;17769:18;;;17762:30;17828:34;17808:18;;;17801:62;-1:-1:-1;;;17879:18:1;;;17872:43;17932:19;;15120:55:0;17548:409:1;15025:170:0;15228:3;:11;;;;15235:4;15228:11;15224:232;;;-1:-1:-1;;;;;15264:27:0;;;;;;:21;:27;;;;;;;;15263:28;:58;;;;-1:-1:-1;;;;;;15296:25:0;;;;;;:21;:25;;;;;;;;15295:26;15263:58;15259:182;;;15364:12;;15354:6;:22;;15346:75;;;;-1:-1:-1;;;15346:75:0;;18164:2:1;15346:75:0;;;18146:21:1;18203:2;18183:18;;;18176:30;18242:34;18222:18;;;18215:62;-1:-1:-1;;;18293:18:1;;;18286:38;18341:19;;15346:75:0;17962:404:1;15346:75:0;15486:41;15503:4;15509:2;15513:6;15521:5;15486:16;:41::i;:::-;15479:48;14269:1266;-1:-1:-1;;;;;;;14269:1266:0:o;17207:790::-;17305:4;17326:20;17337:4;17343:2;17326:10;:20::i;:::-;17322:228;;;17381:11;;:39;;-1:-1:-1;;;17381:39:0;;-1:-1:-1;;;;;18652:15:1;;;17381:39:0;;;18634:34:1;18704:15;;;18684:18;;;18677:43;18736:18;;;18729:34;;;17350:12:0;;17381:11;;;;;:21;;18546:18:1;;17381:39:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;17381:39:0;;;;;;;;-1:-1:-1;;17381:39:0;;;;;;;;;;;;:::i;:::-;;;17377:122;;17488:8;;;17377:122;17471:5;-1:-1:-1;17517:7:0;17513:26;;17528:8;;;17513:26;17348:202;17322:228;-1:-1:-1;;;;;17560:13:0;;:7;:13;;;;;;;;;;:23;;17577:6;;17560:7;:23;;17577:6;;17560:23;:::i;:::-;;;;-1:-1:-1;;;;;;;17594:11:0;;:7;:11;;;;;;;;;;:21;;17609:6;;17594:7;:21;;17609:6;;17594:21;:::i;:::-;;;;;;;;17646:2;-1:-1:-1;;;;;17631:26:0;17640:4;-1:-1:-1;;;;;17631:26:0;;17650:6;17631:26;;;;4559:25:1;;4547:2;4532:18;;4413:177;17631:26:0;;;;;;;;17673:16;;;;;;;17668:298;;17706:28;17725:4;17731:2;17706:18;:28::i;:::-;17754:16;;;;;;;17753:17;:41;;;;;17774:20;17785:4;17791:2;17774:10;:20::i;:::-;17753:77;;;;-1:-1:-1;;;;;;17799:31:0;;;;;;:25;:31;;;;;;;;17798:32;17753:77;:111;;;;-1:-1:-1;;;;;;17835:29:0;;;;;;:25;:29;;;;;;;;17834:30;17753:111;:121;;;;;17869:5;17868:6;17753:121;17749:206;;;17895:44;;-1:-1:-1;;;17895:44:0;;18976:2:1;17895:44:0;;;18958:21:1;19015:2;18995:18;;;18988:30;19054:34;19034:18;;;19027:62;-1:-1:-1;;;19105:18:1;;;19098:32;19147:19;;17895:44:0;18774:398:1;17749:206:0;-1:-1:-1;17985:4:0;17207:790;;;;;;:::o;13815:446::-;13916:6;;13884:4;;-1:-1:-1;;;;;13908:14:0;;;13916:6;;13908:14;;;;:43;;-1:-1:-1;13945:6:0;;-1:-1:-1;;;;;13939:12:0;;;13945:6;;13939:12;;13908:43;:79;;;;-1:-1:-1;13981:6:0;;-1:-1:-1;;;;;13981:6:0;13968:9;:19;;13908:79;:118;;;;-1:-1:-1;;;;;;14005:21:0;;;;;;:17;:21;;;;;;;;14004:22;13908:118;:159;;;;-1:-1:-1;;;;;;14044:23:0;;;;;;:17;:23;;;;;;;;14043:24;13908:159;:186;;;;-1:-1:-1;;;;;;14084:10:0;;5193:42;14084:10;;13908:186;:219;;;;-1:-1:-1;;;;;;14111:16:0;;;;13908:219;:257;;;;-1:-1:-1;;;;;;14144:21:0;;14160:4;14144:21;;13908:257;:302;;;;-1:-1:-1;14198:11:0;;-1:-1:-1;;;;;14182:28:0;;;14198:11;;;;;14182:28;;13908:302;:345;;;;-1:-1:-1;14241:11:0;;-1:-1:-1;;;;;14227:26:0;;;14241:11;;;;;14227:26;;13908:345;13901:352;13815:446;-1:-1:-1;;;13815:446:0:o;15543:423::-;15626:16;;;;;;;15625:17;15617:65;;;;-1:-1:-1;;;15617:65:0;;19379:2:1;15617:65:0;;;19361:21:1;19418:2;19398:18;;;19391:30;19457:34;19437:18;;;19430:62;-1:-1:-1;;;19508:18:1;;;19501:33;19551:19;;15617:65:0;19177:399:1;15617:65:0;15698:20;15709:4;15715:2;15698:10;:20::i;:::-;15697:21;:37;;;;-1:-1:-1;15728:6:0;;-1:-1:-1;;;;;15722:12:0;;;15728:6;;15722:12;15697:37;15693:266;;;-1:-1:-1;;;;;15751:23:0;;;;;;;:17;:23;;;;;:30;;-1:-1:-1;;15751:30:0;15777:4;15751:30;;;15796:16;:23;;-1:-1:-1;;15796:23:0;15751:30;15796:23;;;;;15846:11;;;;15834:114;;-1:-1:-1;;15892:11:0;:40;;-1:-1:-1;;;;;;15892:40:0;15926:4;15892:40;;;;;15543:423::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:127::-;810:10;805:3;801:20;798:1;791:31;841:4;838:1;831:15;865:4;862:1;855:15;881:275;952:2;946:9;1017:2;998:13;;-1:-1:-1;;994:27:1;982:40;;1052:18;1037:34;;1073:22;;;1034:62;1031:88;;;1099:18;;:::i;:::-;1135:2;1128:22;881:275;;-1:-1:-1;881:275:1:o;1161:183::-;1221:4;1254:18;1246:6;1243:30;1240:56;;;1276:18;;:::i;:::-;-1:-1:-1;1321:1:1;1317:14;1333:4;1313:25;;1161:183::o;1349:196::-;1417:20;;-1:-1:-1;;;;;1466:54:1;;1456:65;;1446:93;;1535:1;1532;1525:12;1446:93;1349:196;;;:::o;1550:668::-;1604:5;1657:3;1650:4;1642:6;1638:17;1634:27;1624:55;;1675:1;1672;1665:12;1624:55;1711:6;1698:20;1737:4;1761:60;1777:43;1817:2;1777:43;:::i;:::-;1761:60;:::i;:::-;1855:15;;;1941:1;1937:10;;;;1925:23;;1921:32;;;1886:12;;;;1965:15;;;1962:35;;;1993:1;1990;1983:12;1962:35;2029:2;2021:6;2017:15;2041:148;2057:6;2052:3;2049:15;2041:148;;;2123:23;2142:3;2123:23;:::i;:::-;2111:36;;2167:12;;;;2074;;2041:148;;;-1:-1:-1;2207:5:1;1550:668;-1:-1:-1;;;;;;1550:668:1:o;2223:477::-;2313:6;2321;2374:2;2362:9;2353:7;2349:23;2345:32;2342:52;;;2390:1;2387;2380:12;2342:52;2430:9;2417:23;2463:18;2455:6;2452:30;2449:50;;;2495:1;2492;2485:12;2449:50;2518:61;2571:7;2562:6;2551:9;2547:22;2518:61;:::i;:::-;2508:71;;;2629:2;2618:9;2614:18;2601:32;2642:28;2664:5;2642:28;:::i;2705:548::-;2817:4;2846:2;2875;2864:9;2857:21;2907:6;2901:13;2950:6;2945:2;2934:9;2930:18;2923:34;2975:1;2985:140;2999:6;2996:1;2993:13;2985:140;;;3094:14;;;3090:23;;3084:30;3060:17;;;3079:2;3056:26;3049:66;3014:10;;2985:140;;;2989:3;3174:1;3169:2;3160:6;3149:9;3145:22;3141:31;3134:42;3244:2;3237;3233:7;3228:2;3220:6;3216:15;3212:29;3201:9;3197:45;3193:54;3185:62;;;;2705:548;;;;:::o;3698:254::-;3766:6;3774;3827:2;3815:9;3806:7;3802:23;3798:32;3795:52;;;3843:1;3840;3833:12;3795:52;3866:29;3885:9;3866:29;:::i;:::-;3856:39;3942:2;3927:18;;;;3914:32;;-1:-1:-1;;;3698:254:1:o;3957:186::-;4016:6;4069:2;4057:9;4048:7;4044:23;4040:32;4037:52;;;4085:1;4082;4075:12;4037:52;4108:29;4127:9;4108:29;:::i;4148:260::-;4216:6;4224;4277:2;4265:9;4256:7;4252:23;4248:32;4245:52;;;4293:1;4290;4283:12;4245:52;4316:29;4335:9;4316:29;:::i;:::-;4306:39;;4364:38;4398:2;4387:9;4383:18;4364:38;:::i;:::-;4354:48;;4148:260;;;;;:::o;4595:328::-;4672:6;4680;4688;4741:2;4729:9;4720:7;4716:23;4712:32;4709:52;;;4757:1;4754;4747:12;4709:52;4780:29;4799:9;4780:29;:::i;:::-;4770:39;;4828:38;4862:2;4851:9;4847:18;4828:38;:::i;:::-;4818:48;;4913:2;4902:9;4898:18;4885:32;4875:42;;4595:328;;;;;:::o;4928:1138::-;5046:6;5054;5107:2;5095:9;5086:7;5082:23;5078:32;5075:52;;;5123:1;5120;5113:12;5075:52;5163:9;5150:23;5192:18;5233:2;5225:6;5222:14;5219:34;;;5249:1;5246;5239:12;5219:34;5272:61;5325:7;5316:6;5305:9;5301:22;5272:61;:::i;:::-;5262:71;;5352:2;5342:12;;5407:2;5396:9;5392:18;5379:32;5436:2;5426:8;5423:16;5420:36;;;5452:1;5449;5442:12;5420:36;5475:24;;;-1:-1:-1;5530:4:1;5522:13;;5518:27;-1:-1:-1;5508:55:1;;5559:1;5556;5549:12;5508:55;5595:2;5582:16;5618:60;5634:43;5674:2;5634:43;:::i;5618:60::-;5712:15;;;5794:1;5790:10;;;;5782:19;;5778:28;;;5743:12;;;;5818:19;;;5815:39;;;5850:1;5847;5840:12;5815:39;5874:11;;;;5894:142;5910:6;5905:3;5902:15;5894:142;;;5976:17;;5964:30;;5927:12;;;;6014;;;;5894:142;;;6055:5;6045:15;;;;;;;4928:1138;;;;;:::o;6260:315::-;6325:6;6333;6386:2;6374:9;6365:7;6361:23;6357:32;6354:52;;;6402:1;6399;6392:12;6354:52;6425:29;6444:9;6425:29;:::i;6580:248::-;6648:6;6656;6709:2;6697:9;6688:7;6684:23;6680:32;6677:52;;;6725:1;6722;6715:12;6677:52;-1:-1:-1;;6748:23:1;;;6818:2;6803:18;;;6790:32;;-1:-1:-1;6580:248:1:o;7452:764::-;7664:2;7676:21;;;7746:13;;7649:18;;;7768:22;;;7616:4;;7843;;7821:2;7806:18;;;7870:15;;;7616:4;7913:218;7927:6;7924:1;7921:13;7913:218;;;7992:13;;-1:-1:-1;;;;;7988:62:1;7976:75;;8071:12;;;;8106:15;;;;7949:1;7942:9;7913:218;;;-1:-1:-1;;;8194:14:1;;8187:22;8167:18;;8160:50;;;;-1:-1:-1;8148:3:1;7452:764;-1:-1:-1;7452:764:1:o;8561:127::-;8622:10;8617:3;8613:20;8610:1;8603:31;8653:4;8650:1;8643:15;8677:4;8674:1;8667:15;8693:422;8782:1;8825:5;8782:1;8839:270;8860:7;8850:8;8847:21;8839:270;;;8919:4;8915:1;8911:6;8907:17;8901:4;8898:27;8895:53;;;8928:18;;:::i;:::-;8978:7;8968:8;8964:22;8961:55;;;8998:16;;;;8961:55;9077:22;;;;9037:15;;;;8839:270;;;8843:3;8693:422;;;;;:::o;9120:806::-;9169:5;9199:8;9189:80;;-1:-1:-1;9240:1:1;9254:5;;9189:80;9288:4;9278:76;;-1:-1:-1;9325:1:1;9339:5;;9278:76;9370:4;9388:1;9383:59;;;;9456:1;9451:130;;;;9363:218;;9383:59;9413:1;9404:10;;9427:5;;;9451:130;9488:3;9478:8;9475:17;9472:43;;;9495:18;;:::i;:::-;-1:-1:-1;;9551:1:1;9537:16;;9566:5;;9363:218;;9665:2;9655:8;9652:16;9646:3;9640:4;9637:13;9633:36;9627:2;9617:8;9614:16;9609:2;9603:4;9600:12;9596:35;9593:77;9590:159;;;-1:-1:-1;9702:19:1;;;9734:5;;9590:159;9781:34;9806:8;9800:4;9781:34;:::i;:::-;9851:6;9847:1;9843:6;9839:19;9830:7;9827:32;9824:58;;;9862:18;;:::i;:::-;9900:20;;9120:806;-1:-1:-1;;;9120:806:1:o;9931:140::-;9989:5;10018:47;10059:4;10049:8;10045:19;10039:4;10018:47;:::i;10076:168::-;10149:9;;;10180;;10197:15;;;10191:22;;10177:37;10167:71;;10218:18;;:::i;10249:128::-;10316:9;;;10337:11;;;10334:37;;;10351:18;;:::i;10732:127::-;10793:10;10788:3;10784:20;10781:1;10774:31;10824:4;10821:1;10814:15;10848:4;10845:1;10838:15;11211:197;11249:3;11277:6;11318:2;11311:5;11307:14;11345:2;11336:7;11333:15;11330:41;;11351:18;;:::i;:::-;11400:1;11387:15;;11211:197;-1:-1:-1;;;11211:197:1:o;11413:125::-;11478:9;;;11499:10;;;11496:36;;;11512:18;;:::i;11543:217::-;11583:1;11609;11599:132;;11653:10;11648:3;11644:20;11641:1;11634:31;11688:4;11685:1;11678:15;11716:4;11713:1;11706:15;11599:132;-1:-1:-1;11745:9:1;;11543:217::o;14574:184::-;14644:6;14697:2;14685:9;14676:7;14672:23;14668:32;14665:52;;;14713:1;14710;14703:12;14665:52;-1:-1:-1;14736:16:1;;14574:184;-1:-1:-1;14574:184:1:o;15065:245::-;15132:6;15185:2;15173:9;15164:7;15160:23;15156:32;15153:52;;;15201:1;15198;15191:12;15153:52;15233:9;15227:16;15252:28;15274:5;15252:28;:::i

Swarm Source

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