ETH Price: $3,315.48 (+1.23%)
Gas: 3 Gwei

Token

Pepelon (PEPELON)
 

Overview

Max Total Supply

420,690,000,000,000 PEPELON

Holders

77

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000577241 PEPELON

Value
$0.00
0xb1e1f1f4f4d5818d0153baa2fc7b515871eb5845
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:
Pepelon

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-29
*/

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

contract Pepelon is IERC20 {
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _liquidityHolders;
    mapping (address => bool) private _isExcludedFromProtection;
    bool private allowedPresaleExclusion = true;
    uint256 constant private startingSupply = 420_690_000_000_000;
    string constant private _name = "Pepelon";
    string constant private _symbol = "PEPELON";
    uint8 constant private _decimals = 9;
    uint256 constant private _tTotal = startingSupply * 10**_decimals;

    bool public taxesAreLocked;
    IRouter02 public dexRouter;
    address public lpPair;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;

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

    constructor () payable {
        // Set the owner.
        _owner = msg.sender;
        originalDeployer = 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;
    address public originalDeployer;
    address public operator;

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

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

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

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

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

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

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

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

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

        return _transfer(sender, recipient, amount);
    }

    function setInitializer(address initializer) external onlyOwner {
        require(!tradingEnabled);
        require(initializer != address(this), "Can't be self.");
        protections = Protections(initializer);
    }

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

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

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

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

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

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

    function _hasLimits(address from, address to) internal view returns (bool) {
        return from != _owner
            && to != _owner
            && tx.origin != _owner
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != DEAD
            && to != address(0)
            && from != address(this)
            && from != address(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.");
                }
            }
        }

        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 sweepContingency() external onlyOwner {
        require(!_hasLiqBeenAdded, "Cannot call after liquidity.");
        payable(_owner).transfer(address(this).balance);
    }

    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":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"originalDeployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOriginalDeployer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"initializer","type":"address"}],"name":"setInitializer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_antiSnipe","type":"bool"},{"internalType":"bool","name":"_antiBlock","type":"bool"}],"name":"setProtectionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sweepContingency","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"}]

608060405260006002556006805460ff191660011790556007805461ffff60a01b19169055600980546001600160a01b0319908116339081178355600a805490921617815562000050919062000657565b620000639066017e9d8602b4006200066f565b600980546001600160a01b0390811660009081526020819052604081209390935581541691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620000b890600a62000657565b620000cb9066017e9d8602b4006200066f565b60405190815260200160405180910390a34660380362000115576006805462010000600160b01b0319167510ed43c718714eb63d5aa57b78b54704e256024e000017905562000224565b466061036200014e576006805462010000600160b01b03191675d99d1c33f9fc3444f8101754abc46c52416550d1000017905562000224565b46600114806200015e5750466004145b806200016a5750466003145b80620001765750466005145b15620001ac576006805462010000600160b01b031916757a250d5630b4cf539739df2c5dacb4c659f2488d000017905562000224565b4661a86a03620001e6576006805462010000600160b01b0319167560ae616a2155ee3d9a68541ba4544862310933d4000017905562000224565b4660fa036200021f576006805462010000600160b01b03191675f491e7b69e4244ad4002bc14e878a34207e38c29000017905562000224565b600080fd5b600660029054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000278573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029e919062000689565b6001600160a01b031663c9c65396600660029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000300573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000326919062000689565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000373573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000399919062000689565b600780546001600160a01b0319166001600160a01b039283169081179091556000908152600160208190526040909120805460ff19169091179055600954600654620003f49291821691620100009091041660001962000441565b600654620004169030906201000090046001600160a01b031660001962000441565b6009546001600160a01b03166000908152600460205260409020805460ff19166001179055620006b4565b6001600160a01b038316620004935760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b038216620004e15760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016200048a565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005995781600019048211156200057d576200057d62000542565b808516156200058b57918102915b93841c93908002906200055d565b509250929050565b600082620005b25750600162000651565b81620005c15750600062000651565b8160018114620005da5760028114620005e55762000605565b600191505062000651565b60ff841115620005f957620005f962000542565b50506001821b62000651565b5060208310610133831016604e8410600b84101617156200062a575081810a62000651565b62000636838362000558565b80600019048211156200064d576200064d62000542565b0290505b92915050565b60006200066860ff841683620005a1565b9392505050565b808202811582820484141762000651576200065162000542565b6000602082840312156200069c57600080fd5b81516001600160a01b03811681146200066857600080fd5b61225080620006c46000396000f3fe6080604052600436106101f25760003560e01c80634ada218b1161010d578063893d20e8116100a0578063a9059cbb1161006f578063a9059cbb146105d3578063b3ab15fb146105f3578063dd62ed3e14610613578063ee5d9c2d14610659578063feadde9c1461066e57600080fd5b8063893d20e81461055b5780638a63bd9b146105795780638a8c523c1461058e57806395d89b41146105a357600080fd5b80635c24b074116100dc5780635c24b074146104d057806370a08231146104f0578063715018a61461052657806381cf58a91461053b57600080fd5b80634ada218b1461044e5780634fb2e45d1461046f57806350a8e0161461048f578063570ca735146104b057600080fd5b806318160ddd11610185578063313ce56711610154578063313ce567146103d257806333251a0b146103f957806339a0590214610419578063452ed4f11461042e57600080fd5b806318160ddd1461035a57806323b872dd1461037d5780632610eaca1461039d5780632b112e49146103bd57600080fd5b806307dd79e0116101c157806307dd79e0146102b2578063095ea7b3146102e15780630dcbcf1c1461030157806313b4a7f41461033a57600080fd5b806303fd2a45146101fe578063044df7261461023157806306fdde03146102535780630758d9241461028c57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021461dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023d57600080fd5b5061025161024c366004611d77565b61068e565b005b34801561025f57600080fd5b506040805180820190915260078152662832b832b637b760c91b60208201525b6040516102289190611db0565b34801561029857600080fd5b50600654610214906201000090046001600160a01b031681565b3480156102be57600080fd5b506006546102d190610100900460ff1681565b6040519015158152602001610228565b3480156102ed57600080fd5b506102d16102fc366004611e1a565b61074c565b34801561030d57600080fd5b506102d161031c366004611e44565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561034657600080fd5b50610251610355366004611e5f565b610763565b34801561036657600080fd5b5061036f6108cd565b604051908152602001610228565b34801561038957600080fd5b506102d1610398366004611e92565b61091a565b3480156103a957600080fd5b506102516103b8366004611fa4565b610992565b3480156103c957600080fd5b5061036f610b4a565b3480156103de57600080fd5b506103e7610bcb565b60405160ff9091168152602001610228565b34801561040557600080fd5b50610251610414366004611e44565b610bfc565b34801561042557600080fd5b50610251610cac565b34801561043a57600080fd5b50600754610214906001600160a01b031681565b34801561045a57600080fd5b506007546102d190600160a01b900460ff1681565b34801561047b57600080fd5b5061025161048a366004611e44565b610d33565b34801561049b57600080fd5b506007546102d190600160a81b900460ff1681565b3480156104bc57600080fd5b50600b54610214906001600160a01b031681565b3480156104dc57600080fd5b506102516104eb366004611e44565b610f19565b3480156104fc57600080fd5b5061036f61050b366004611e44565b6001600160a01b031660009081526020819052604090205490565b34801561053257600080fd5b50610251610ff8565b34801561054757600080fd5b50600a54610214906001600160a01b031681565b34801561056757600080fd5b506009546001600160a01b0316610214565b34801561058557600080fd5b506102d1611113565b34801561059a57600080fd5b5061025161118a565b3480156105af57600080fd5b506040805180820190915260078152662822a822a627a760c91b602082015261027f565b3480156105df57600080fd5b506102d16105ee366004611e1a565b61134b565b3480156105ff57600080fd5b5061025161060e366004611e44565b611362565b34801561061f57600080fd5b5061036f61062e366004611e5f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561066557600080fd5b5061025161143b565b34801561067a57600080fd5b50610251610689366004612064565b61151f565b6009546001600160a01b031633146106e15760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b60085460405163efbdbabd60e01b8152831515600482015282151560248201526001600160a01b039091169063efbdbabd90604401600060405180830381600087803b15801561073057600080fd5b505af1158015610744573d6000803e3d6000fd5b505050505050565b6000610759338484611598565b5060015b92915050565b6009546001600160a01b031633146107b15760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b60065460ff166107c057600080fd5b6001600160a01b03821630148015906107e257506001600160a01b0381163014155b80156107fc57506007546001600160a01b03838116911614155b801561081657506007546001600160a01b03828116911614155b6108505760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b60448201526064016106d8565b806001600160a01b0316826001600160a01b031603610890576001600160a01b0381166000908152600460205260409020805460ff191660011790555050565b6001600160a01b038281166000908152600460205260408082208054600160ff1991821681179092559385168352912080549092161790555b5050565b60006108db6009600a61217a565b6108ec9066017e9d8602b400612189565b6000036108f857600080fd5b6109046009600a61217a565b6109159066017e9d8602b400612189565b905090565b6001600160a01b03831660009081526003602090815260408083203384529091528120546000191461097f576001600160a01b0384166000908152600360209081526040808320338452909152812080548492906109799084906121a0565b90915550505b61098a848484611691565b949350505050565b6009546001600160a01b031633146109e05760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b8051825114610a315760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e000000000000000000000060448201526064016106d8565b60005b82518161ffff161015610b4557610a4d6009600a61217a565b828261ffff1681518110610a6357610a636121b3565b6020026020010151610a759190612189565b336000908152602081905260409020541015610ad35760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e000000000000000000000000000060448201526064016106d8565b610b3233848361ffff1681518110610aed57610aed6121b3565b60200260200101516009600a610b03919061217a565b858561ffff1681518110610b1957610b196121b3565b6020026020010151610b2b9190612189565b6001611940565b5080610b3d816121c9565b915050610a34565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610ba491906121ea565b610bb06009600a61217a565b610bc19066017e9d8602b400612189565b61091591906121a0565b6000610bd96009600a61217a565b610bea9066017e9d8602b400612189565b600003610bf657600080fd5b50600990565b6009546001600160a01b03163314610c4a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b6008546040516333251a0b60e01b81526001600160a01b038381166004830152909116906333251a0b90602401600060405180830381600087803b158015610c9157600080fd5b505af1158015610ca5573d6000803e3d6000fd5b5050505050565b600a546001600160a01b03163314610d175760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b60648201526084016106d8565b610d216000611362565b600a80546001600160a01b0319169055565b6009546001600160a01b03163314610d815760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b6001600160a01b038116610dfd5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016106d8565b61deac196001600160a01b03821601610e7e5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016106d8565b6009546001600160a01b031660009081526020819052604090205415610ec7576009546001600160a01b0316600081815260208190526040902054610ec591908390610b2b565b505b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6009546001600160a01b03163314610f675760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b600754600160a01b900460ff1615610f7e57600080fd5b306001600160a01b03821603610fd65760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e00000000000000000000000000000000000060448201526064016106d8565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6009546001600160a01b031633146110465760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b600754600160a01b900460ff166110c55760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e000000000000000000000000000000000060648201526084016106d8565b600980546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6009546000906001600160a01b031633146111645760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b6006546111849030906201000090046001600160a01b0316600019611598565b50600190565b6009546001600160a01b031633146111d85760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b600754600160a01b900460ff16156112325760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016106d8565b600754600160a81b900460ff1661128b5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e000000000000000060448201526064016106d8565b6008546001600160a01b03166112ae57600880546001600160a01b031916301790555b600854600754604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260096064820152911690636c115c3490608401600060405180830381600087803b15801561131a57600080fd5b505af192505050801561132b575060015b506007805460ff60a01b1916600160a01b1790556006805460ff19169055565b6000611358338484611691565b5060019392505050565b600a546001600160a01b031633146113cd5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b60648201526084016106d8565b600b546001600160a01b03168015611400576001600160a01b0381166000908152600460205260409020805460ff191690555b50600b80546001600160a01b039092166001600160a01b0319909216821790556000908152600460205260409020805460ff19166001179055565b6009546001600160a01b031633146114895760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b600754600160a81b900460ff16156114e35760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e0000000060448201526064016106d8565b6009546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561151c573d6000803e3d6000fd5b50565b6009546001600160a01b0316331461156d5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166115e45760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016106d8565b6001600160a01b0382166116305760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016106d8565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166116f75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106d8565b6001600160a01b0383166117595760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106d8565b600082116117bb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106d8565b6001600160a01b0384166000908152600160205260408120548190819060ff16156117e95760019250611817565b6001600160a01b03861660009081526001602052604090205460ff16156118135760019150611817565b5060015b6118218787611b7a565b1561192957600754600160a01b900460ff1661192957806118845760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016106d8565b6001600160a01b03871660009081526005602052604090205460ff161580156118c657506001600160a01b03861660009081526005602052604090205460ff16155b156119295760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b60648201526084016106d8565b61193587878784611940565b979650505050505050565b600061194c8585611b7a565b156119e05760085460405163ecd07a5360e01b81526001600160a01b038781166004830152868116602483015260448201869052600092169063ecd07a53906064016020604051808303816000875af19250505080156119c9575060408051601f3d908101601f191682019092526119c6918101906121fd565b60015b6119d257600080fd5b9050806119de57600080fd5b505b6001600160a01b03851660009081526020819052604081208054859290611a089084906121a0565b90915550506001600160a01b03841660009081526020819052604081208054859290611a359084906121ea565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a8191815260200190565b60405180910390a3600754600160a81b900460ff16611b6f57611aa48585611c85565b600754600160a81b900460ff16158015611ac35750611ac38585611b7a565b8015611ae857506001600160a01b03851660009081526005602052604090205460ff16155b8015611b0d57506001600160a01b03841660009081526005602052604090205460ff16155b8015611b17575081155b15611b6f5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b60648201526084016106d8565b506001949350505050565b6009546000906001600160a01b03848116911614801590611ba957506009546001600160a01b03838116911614155b8015611bc057506009546001600160a01b03163214155b8015611be557506001600160a01b03821660009081526004602052604090205460ff16155b8015611c0a57506001600160a01b03831660009081526004602052604090205460ff16155b8015611c2157506001600160a01b03821661dead14155b8015611c3557506001600160a01b03821615155b8015611c4a57506001600160a01b0383163014155b8015611c6457506008546001600160a01b03848116911614155b8015611c7e57506008546001600160a01b03838116911614155b9392505050565b600754600160a81b900460ff1615611ceb5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016106d8565b611cf58282611b7a565b158015611d0f57506007546001600160a01b038281169116145b156108c9576001600160a01b038083166000908152600460205260409020805460ff191660011790556007805460ff60a81b1916600160a81b179055600854166108c957600880546001600160a01b031916301790555050565b801515811461151c57600080fd5b60008060408385031215611d8a57600080fd5b8235611d9581611d69565b91506020830135611da581611d69565b809150509250929050565b600060208083528351808285015260005b81811015611ddd57858101830151858201604001528201611dc1565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611e1557600080fd5b919050565b60008060408385031215611e2d57600080fd5b611e3683611dfe565b946020939093013593505050565b600060208284031215611e5657600080fd5b611c7e82611dfe565b60008060408385031215611e7257600080fd5b611e7b83611dfe565b9150611e8960208401611dfe565b90509250929050565b600080600060608486031215611ea757600080fd5b611eb084611dfe565b9250611ebe60208501611dfe565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611f0d57611f0d611ece565b604052919050565b600067ffffffffffffffff821115611f2f57611f2f611ece565b5060051b60200190565b600082601f830112611f4a57600080fd5b81356020611f5f611f5a83611f15565b611ee4565b82815260059290921b84018101918181019086841115611f7e57600080fd5b8286015b84811015611f995780358352918301918301611f82565b509695505050505050565b60008060408385031215611fb757600080fd5b823567ffffffffffffffff80821115611fcf57600080fd5b818501915085601f830112611fe357600080fd5b81356020611ff3611f5a83611f15565b82815260059290921b8401810191818101908984111561201257600080fd5b948201945b838610156120375761202886611dfe565b82529482019490820190612017565b9650508601359250508082111561204d57600080fd5b5061205a85828601611f39565b9150509250929050565b6000806040838503121561207757600080fd5b611d9583611dfe565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156120d15781600019048211156120b7576120b7612080565b808516156120c457918102915b93841c939080029061209b565b509250929050565b6000826120e85750600161075d565b816120f55750600061075d565b816001811461210b576002811461211557612131565b600191505061075d565b60ff84111561212657612126612080565b50506001821b61075d565b5060208310610133831016604e8410600b8410161715612154575081810a61075d565b61215e8383612096565b806000190482111561217257612172612080565b029392505050565b6000611c7e60ff8416836120d9565b808202811582820484141761075d5761075d612080565b8181038181111561075d5761075d612080565b634e487b7160e01b600052603260045260246000fd5b600061ffff8083168181036121e0576121e0612080565b6001019392505050565b8082018082111561075d5761075d612080565b60006020828403121561220f57600080fd5b8151611c7e81611d6956fea264697066735822122008d5077a147629a5ec78fb0dccc9ed23a6a1a23c3f9523a911acce03fd7913d464736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c80634ada218b1161010d578063893d20e8116100a0578063a9059cbb1161006f578063a9059cbb146105d3578063b3ab15fb146105f3578063dd62ed3e14610613578063ee5d9c2d14610659578063feadde9c1461066e57600080fd5b8063893d20e81461055b5780638a63bd9b146105795780638a8c523c1461058e57806395d89b41146105a357600080fd5b80635c24b074116100dc5780635c24b074146104d057806370a08231146104f0578063715018a61461052657806381cf58a91461053b57600080fd5b80634ada218b1461044e5780634fb2e45d1461046f57806350a8e0161461048f578063570ca735146104b057600080fd5b806318160ddd11610185578063313ce56711610154578063313ce567146103d257806333251a0b146103f957806339a0590214610419578063452ed4f11461042e57600080fd5b806318160ddd1461035a57806323b872dd1461037d5780632610eaca1461039d5780632b112e49146103bd57600080fd5b806307dd79e0116101c157806307dd79e0146102b2578063095ea7b3146102e15780630dcbcf1c1461030157806313b4a7f41461033a57600080fd5b806303fd2a45146101fe578063044df7261461023157806306fdde03146102535780630758d9241461028c57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021461dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023d57600080fd5b5061025161024c366004611d77565b61068e565b005b34801561025f57600080fd5b506040805180820190915260078152662832b832b637b760c91b60208201525b6040516102289190611db0565b34801561029857600080fd5b50600654610214906201000090046001600160a01b031681565b3480156102be57600080fd5b506006546102d190610100900460ff1681565b6040519015158152602001610228565b3480156102ed57600080fd5b506102d16102fc366004611e1a565b61074c565b34801561030d57600080fd5b506102d161031c366004611e44565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561034657600080fd5b50610251610355366004611e5f565b610763565b34801561036657600080fd5b5061036f6108cd565b604051908152602001610228565b34801561038957600080fd5b506102d1610398366004611e92565b61091a565b3480156103a957600080fd5b506102516103b8366004611fa4565b610992565b3480156103c957600080fd5b5061036f610b4a565b3480156103de57600080fd5b506103e7610bcb565b60405160ff9091168152602001610228565b34801561040557600080fd5b50610251610414366004611e44565b610bfc565b34801561042557600080fd5b50610251610cac565b34801561043a57600080fd5b50600754610214906001600160a01b031681565b34801561045a57600080fd5b506007546102d190600160a01b900460ff1681565b34801561047b57600080fd5b5061025161048a366004611e44565b610d33565b34801561049b57600080fd5b506007546102d190600160a81b900460ff1681565b3480156104bc57600080fd5b50600b54610214906001600160a01b031681565b3480156104dc57600080fd5b506102516104eb366004611e44565b610f19565b3480156104fc57600080fd5b5061036f61050b366004611e44565b6001600160a01b031660009081526020819052604090205490565b34801561053257600080fd5b50610251610ff8565b34801561054757600080fd5b50600a54610214906001600160a01b031681565b34801561056757600080fd5b506009546001600160a01b0316610214565b34801561058557600080fd5b506102d1611113565b34801561059a57600080fd5b5061025161118a565b3480156105af57600080fd5b506040805180820190915260078152662822a822a627a760c91b602082015261027f565b3480156105df57600080fd5b506102d16105ee366004611e1a565b61134b565b3480156105ff57600080fd5b5061025161060e366004611e44565b611362565b34801561061f57600080fd5b5061036f61062e366004611e5f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561066557600080fd5b5061025161143b565b34801561067a57600080fd5b50610251610689366004612064565b61151f565b6009546001600160a01b031633146106e15760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b60085460405163efbdbabd60e01b8152831515600482015282151560248201526001600160a01b039091169063efbdbabd90604401600060405180830381600087803b15801561073057600080fd5b505af1158015610744573d6000803e3d6000fd5b505050505050565b6000610759338484611598565b5060015b92915050565b6009546001600160a01b031633146107b15760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b60065460ff166107c057600080fd5b6001600160a01b03821630148015906107e257506001600160a01b0381163014155b80156107fc57506007546001600160a01b03838116911614155b801561081657506007546001600160a01b03828116911614155b6108505760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b60448201526064016106d8565b806001600160a01b0316826001600160a01b031603610890576001600160a01b0381166000908152600460205260409020805460ff191660011790555050565b6001600160a01b038281166000908152600460205260408082208054600160ff1991821681179092559385168352912080549092161790555b5050565b60006108db6009600a61217a565b6108ec9066017e9d8602b400612189565b6000036108f857600080fd5b6109046009600a61217a565b6109159066017e9d8602b400612189565b905090565b6001600160a01b03831660009081526003602090815260408083203384529091528120546000191461097f576001600160a01b0384166000908152600360209081526040808320338452909152812080548492906109799084906121a0565b90915550505b61098a848484611691565b949350505050565b6009546001600160a01b031633146109e05760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b8051825114610a315760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e000000000000000000000060448201526064016106d8565b60005b82518161ffff161015610b4557610a4d6009600a61217a565b828261ffff1681518110610a6357610a636121b3565b6020026020010151610a759190612189565b336000908152602081905260409020541015610ad35760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e000000000000000000000000000060448201526064016106d8565b610b3233848361ffff1681518110610aed57610aed6121b3565b60200260200101516009600a610b03919061217a565b858561ffff1681518110610b1957610b196121b3565b6020026020010151610b2b9190612189565b6001611940565b5080610b3d816121c9565b915050610a34565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610ba491906121ea565b610bb06009600a61217a565b610bc19066017e9d8602b400612189565b61091591906121a0565b6000610bd96009600a61217a565b610bea9066017e9d8602b400612189565b600003610bf657600080fd5b50600990565b6009546001600160a01b03163314610c4a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b6008546040516333251a0b60e01b81526001600160a01b038381166004830152909116906333251a0b90602401600060405180830381600087803b158015610c9157600080fd5b505af1158015610ca5573d6000803e3d6000fd5b5050505050565b600a546001600160a01b03163314610d175760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b60648201526084016106d8565b610d216000611362565b600a80546001600160a01b0319169055565b6009546001600160a01b03163314610d815760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b6001600160a01b038116610dfd5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016106d8565b61deac196001600160a01b03821601610e7e5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016106d8565b6009546001600160a01b031660009081526020819052604090205415610ec7576009546001600160a01b0316600081815260208190526040902054610ec591908390610b2b565b505b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6009546001600160a01b03163314610f675760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b600754600160a01b900460ff1615610f7e57600080fd5b306001600160a01b03821603610fd65760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e00000000000000000000000000000000000060448201526064016106d8565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6009546001600160a01b031633146110465760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b600754600160a01b900460ff166110c55760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e000000000000000000000000000000000060648201526084016106d8565b600980546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6009546000906001600160a01b031633146111645760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b6006546111849030906201000090046001600160a01b0316600019611598565b50600190565b6009546001600160a01b031633146111d85760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b600754600160a01b900460ff16156112325760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016106d8565b600754600160a81b900460ff1661128b5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e000000000000000060448201526064016106d8565b6008546001600160a01b03166112ae57600880546001600160a01b031916301790555b600854600754604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260096064820152911690636c115c3490608401600060405180830381600087803b15801561131a57600080fd5b505af192505050801561132b575060015b506007805460ff60a01b1916600160a01b1790556006805460ff19169055565b6000611358338484611691565b5060019392505050565b600a546001600160a01b031633146113cd5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b60648201526084016106d8565b600b546001600160a01b03168015611400576001600160a01b0381166000908152600460205260409020805460ff191690555b50600b80546001600160a01b039092166001600160a01b0319909216821790556000908152600460205260409020805460ff19166001179055565b6009546001600160a01b031633146114895760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b600754600160a81b900460ff16156114e35760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e0000000060448201526064016106d8565b6009546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561151c573d6000803e3d6000fd5b50565b6009546001600160a01b0316331461156d5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106d8565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166115e45760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016106d8565b6001600160a01b0382166116305760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016106d8565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166116f75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106d8565b6001600160a01b0383166117595760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106d8565b600082116117bb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106d8565b6001600160a01b0384166000908152600160205260408120548190819060ff16156117e95760019250611817565b6001600160a01b03861660009081526001602052604090205460ff16156118135760019150611817565b5060015b6118218787611b7a565b1561192957600754600160a01b900460ff1661192957806118845760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016106d8565b6001600160a01b03871660009081526005602052604090205460ff161580156118c657506001600160a01b03861660009081526005602052604090205460ff16155b156119295760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b60648201526084016106d8565b61193587878784611940565b979650505050505050565b600061194c8585611b7a565b156119e05760085460405163ecd07a5360e01b81526001600160a01b038781166004830152868116602483015260448201869052600092169063ecd07a53906064016020604051808303816000875af19250505080156119c9575060408051601f3d908101601f191682019092526119c6918101906121fd565b60015b6119d257600080fd5b9050806119de57600080fd5b505b6001600160a01b03851660009081526020819052604081208054859290611a089084906121a0565b90915550506001600160a01b03841660009081526020819052604081208054859290611a359084906121ea565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a8191815260200190565b60405180910390a3600754600160a81b900460ff16611b6f57611aa48585611c85565b600754600160a81b900460ff16158015611ac35750611ac38585611b7a565b8015611ae857506001600160a01b03851660009081526005602052604090205460ff16155b8015611b0d57506001600160a01b03841660009081526005602052604090205460ff16155b8015611b17575081155b15611b6f5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b60648201526084016106d8565b506001949350505050565b6009546000906001600160a01b03848116911614801590611ba957506009546001600160a01b03838116911614155b8015611bc057506009546001600160a01b03163214155b8015611be557506001600160a01b03821660009081526004602052604090205460ff16155b8015611c0a57506001600160a01b03831660009081526004602052604090205460ff16155b8015611c2157506001600160a01b03821661dead14155b8015611c3557506001600160a01b03821615155b8015611c4a57506001600160a01b0383163014155b8015611c6457506008546001600160a01b03848116911614155b8015611c7e57506008546001600160a01b03838116911614155b9392505050565b600754600160a81b900460ff1615611ceb5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016106d8565b611cf58282611b7a565b158015611d0f57506007546001600160a01b038281169116145b156108c9576001600160a01b038083166000908152600460205260409020805460ff191660011790556007805460ff60a81b1916600160a81b179055600854166108c957600880546001600160a01b031916301790555050565b801515811461151c57600080fd5b60008060408385031215611d8a57600080fd5b8235611d9581611d69565b91506020830135611da581611d69565b809150509250929050565b600060208083528351808285015260005b81811015611ddd57858101830151858201604001528201611dc1565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611e1557600080fd5b919050565b60008060408385031215611e2d57600080fd5b611e3683611dfe565b946020939093013593505050565b600060208284031215611e5657600080fd5b611c7e82611dfe565b60008060408385031215611e7257600080fd5b611e7b83611dfe565b9150611e8960208401611dfe565b90509250929050565b600080600060608486031215611ea757600080fd5b611eb084611dfe565b9250611ebe60208501611dfe565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611f0d57611f0d611ece565b604052919050565b600067ffffffffffffffff821115611f2f57611f2f611ece565b5060051b60200190565b600082601f830112611f4a57600080fd5b81356020611f5f611f5a83611f15565b611ee4565b82815260059290921b84018101918181019086841115611f7e57600080fd5b8286015b84811015611f995780358352918301918301611f82565b509695505050505050565b60008060408385031215611fb757600080fd5b823567ffffffffffffffff80821115611fcf57600080fd5b818501915085601f830112611fe357600080fd5b81356020611ff3611f5a83611f15565b82815260059290921b8401810191818101908984111561201257600080fd5b948201945b838610156120375761202886611dfe565b82529482019490820190612017565b9650508601359250508082111561204d57600080fd5b5061205a85828601611f39565b9150509250929050565b6000806040838503121561207757600080fd5b611d9583611dfe565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156120d15781600019048211156120b7576120b7612080565b808516156120c457918102915b93841c939080029061209b565b509250929050565b6000826120e85750600161075d565b816120f55750600061075d565b816001811461210b576002811461211557612131565b600191505061075d565b60ff84111561212657612126612080565b50506001821b61075d565b5060208310610133831016604e8410600b8410161715612154575081810a61075d565b61215e8383612096565b806000190482111561217257612172612080565b029392505050565b6000611c7e60ff8416836120d9565b808202811582820484141761075d5761075d612080565b8181038181111561075d5761075d612080565b634e487b7160e01b600052603260045260246000fd5b600061ffff8083168181036121e0576121e0612080565b6001019392505050565b8082018082111561075d5761075d612080565b60006020828403121561220f57600080fd5b8151611c7e81611d6956fea264697066735822122008d5077a147629a5ec78fb0dccc9ed23a6a1a23c3f9523a911acce03fd7913d464736f6c63430008130033

Deployed Bytecode Sourcemap

3951:12381:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4747:73;;;;;;;;;;;;4778:42;4747:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;4747:73:0;;;;;;;;11815:153;;;;;;;;;;-1:-1:-1;11815:153:0;;;;;:::i;:::-;;:::i;:::-;;9422:80;;;;;;;;;;-1:-1:-1;9494:5:0;;;;;;;;;;;;-1:-1:-1;;;9494:5:0;;;;9422:80;;;;;;;:::i;4686:26::-;;;;;;;;;;-1:-1:-1;4686:26:0;;;;;;;-1:-1:-1;;;;;4686:26:0;;;4653;;;;;;;;;;-1:-1:-1;4653:26:0;;;;;;;;;;;;;;1715:14:1;;1708:22;1690:41;;1678:2;1663:18;4653:26:0;1550:187:1;10030:161:0;;;;;;;;;;-1:-1:-1;10030:161:0;;;;;:::i;:::-;;:::i;11244:140::-;;;;;;;;;;-1:-1:-1;11244:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;11342:34:0;11318:4;11342:34;;;:25;:34;;;;;;;;;11244:140;11976:523;;;;;;;;;;-1:-1:-1;11976:523:0;;;;;:::i;:::-;;:::i;9093:115::-;;;;;;;;;;;;;:::i;:::-;;;2804:25:1;;;2792:2;2777:18;9093:115:0;2658:177:1;10700:306:0;;;;;;;;;;-1:-1:-1;10700:306:0;;;;;:::i;:::-;;:::i;15098:433::-;;;;;;;;;;-1:-1:-1;15098:433:0;;;;;:::i;:::-;;:::i;11548:141::-;;;;;;;;;;;;;:::i;9214:112::-;;;;;;;;;;;;;:::i;:::-;;;5763:4:1;5751:17;;;5733:36;;5721:2;5706:18;9214:112:0;5591:184:1;11697:110:0;;;;;;;;;;-1:-1:-1;11697:110:0;;;;;:::i;:::-;;:::i;8519:221::-;;;;;;;;;;;;;:::i;4719:21::-;;;;;;;;;;-1:-1:-1;4719:21:0;;;;-1:-1:-1;;;;;4719:21:0;;;4829:34;;;;;;;;;;-1:-1:-1;4829:34:0;;;;-1:-1:-1;;;4829:34:0;;;;;;7159:539;;;;;;;;;;-1:-1:-1;7159:539:0;;;;;:::i;:::-;;:::i;4870:36::-;;;;;;;;;;-1:-1:-1;4870:36:0;;;;-1:-1:-1;;;4870:36:0;;;;;;6946:23;;;;;;;;;;-1:-1:-1;6946:23:0;;;;-1:-1:-1;;;;;6946:23:0;;;11014:222;;;;;;;;;;-1:-1:-1;11014:222:0;;;;;:::i;:::-;;:::i;9732:117::-;;;;;;;;;;-1:-1:-1;9732:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;9825:16:0;9798:7;9825:16;;;;;;;;;;;;9732:117;7706:265;;;;;;;;;;;;;:::i;6908:31::-;;;;;;;;;;-1:-1:-1;6908:31:0;;;;-1:-1:-1;;;;;6908:31:0;;;9508:79;;;;;;;;;;-1:-1:-1;9578:6:0;;-1:-1:-1;;;;;9578:6:0;9508:79;;10517:175;;;;;;;;;;;;;:::i;14420:480::-;;;;;;;;;;;;;:::i;9332:84::-;;;;;;;;;;-1:-1:-1;9406:7:0;;;;;;;;;;;;-1:-1:-1;;;9406:7:0;;;;9332:84;;9857:165;;;;;;;;;;-1:-1:-1;9857:165:0;;;;;:::i;:::-;;:::i;8132:379::-;;;;;;;;;;-1:-1:-1;8132:379:0;;;;;:::i;:::-;;:::i;9593:133::-;;;;;;;;;;-1:-1:-1;9593:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9695:19:0;;;9677:7;9695:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9593:133;14908:182;;;;;;;;;;;;;:::i;11392:148::-;;;;;;;;;;-1:-1:-1;11392:148:0;;;;;:::i;:::-;;:::i;11815:153::-;7009:6;;-1:-1:-1;;;;;7009:6:0;7019:10;7009:20;7001:50;;;;-1:-1:-1;;;7001:50:0;;6302:2:1;7001:50:0;;;6284:21:1;6341:2;6321:18;;;6314:30;-1:-1:-1;;;6360:18:1;;;6353:47;6417:18;;7001:50:0;;;;;;;;;11910:11:::1;::::0;:50:::1;::::0;-1:-1:-1;;;11910:50:0;;6633:14:1;;6626:22;11910:50:0::1;::::0;::::1;6608:41:1::0;6692:14;;6685:22;6665:18;;;6658:50;-1:-1:-1;;;;;11910:11:0;;::::1;::::0;:26:::1;::::0;6581:18:1;;11910:50:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11815:153:::0;;:::o;10030:161::-;10107:4;10124:37;10133:10;10145:7;10154:6;10124:8;:37::i;:::-;-1:-1:-1;10179:4:0;10030:161;;;;;:::o;11976:523::-;7009:6;;-1:-1:-1;;;;;7009:6:0;7019:10;7009:20;7001:50;;;;-1:-1:-1;;;7001:50:0;;6302:2:1;7001:50:0;;;6284:21:1;6341:2;6321:18;;;6314:30;-1:-1:-1;;;6360:18:1;;;6353:47;6417:18;;7001:50:0;6100:341:1;7001:50:0;12080:23:::1;::::0;::::1;;12072:32;;;::::0;::::1;;-1:-1:-1::0;;;;;12123:23:0;::::1;12141:4;12123:23;::::0;::::1;::::0;:69:::1;;-1:-1:-1::0;;;;;;12168:24:0;::::1;12187:4;12168:24;;12123:69;:107;;;;-1:-1:-1::0;12214:6:0::1;::::0;-1:-1:-1;;;;;12214:16:0;;::::1;:6:::0;::::1;:16;;12123:107;:146;;;;-1:-1:-1::0;12252:6:0::1;::::0;-1:-1:-1;;;;;12252:17:0;;::::1;:6:::0;::::1;:17;;12123:146;12115:170;;;::::0;-1:-1:-1;;;12115:170:0;;6921:2:1;12115:170:0::1;::::0;::::1;6903:21:1::0;6960:2;6940:18;;;6933:30;-1:-1:-1;;;6979:18:1;;;6972:41;7030:18;;12115:170:0::1;6719:335:1::0;12115:170:0::1;12310:7;-1:-1:-1::0;;;;;12300:17:0::1;:6;-1:-1:-1::0;;;;;12300:17:0::1;::::0;12296:196:::1;;-1:-1:-1::0;;;;;12334:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;:33;;-1:-1:-1;;12334:33:0::1;12363:4;12334:33;::::0;;11976:523;;:::o;12296:196::-:1;-1:-1:-1::0;;;;;12400:25:0;;::::1;;::::0;;;:17:::1;:25;::::0;;;;;:32;;12428:4:::1;-1:-1:-1::0;;12400:32:0;;::::1;::::0;::::1;::::0;;;12447:26;;::::1;::::0;;;;:33;;;;::::1;;::::0;;12296:196:::1;11976:523:::0;;:::o;9093:115::-;9148:7;4631:13;4571:1;4631:2;:13;:::i;:::-;4614:30;;4412:19;4614:30;:::i;:::-;9174:1;9163:12;9159:31;;9179:8;;;9159:31;4631:13;4571:1;4631:2;:13;:::i;:::-;4614:30;;4412:19;4614:30;:::i;:::-;9191:14;;9093:115;:::o;10700:306::-;-1:-1:-1;;;;;10821:19:0;;10800:4;10821:19;;;:11;:19;;;;;;;;10841:10;10821:31;;;;;;;;-1:-1:-1;;10821:52:0;10817:126;;-1:-1:-1;;;;;10890:19:0;;;;;;:11;:19;;;;;;;;10910:10;10890:31;;;;;;;:41;;10925:6;;10890:19;:41;;10925:6;;10890:41;:::i;:::-;;;;-1:-1:-1;;10817:126:0;10962:36;10972:6;10980:9;10991:6;10962:9;:36::i;:::-;10955:43;10700:306;-1:-1:-1;;;;10700:306:0:o;15098:433::-;7009:6;;-1:-1:-1;;;;;7009:6:0;7019:10;7009:20;7001:50;;;;-1:-1:-1;;;7001:50:0;;6302:2:1;7001:50:0;;;6284:21:1;6341:2;6321:18;;;6314:30;-1:-1:-1;;;6360:18:1;;;6353:47;6417:18;;7001:50:0;6100:341:1;7001:50:0;15233:7:::1;:14;15214:8;:15;:33;15206:67;;;::::0;-1:-1:-1;;;15206:67:0;;9082:2:1;15206:67:0::1;::::0;::::1;9064:21:1::0;9121:2;9101:18;;;9094:30;9160:23;9140:18;;;9133:51;9201:18;;15206:67:0::1;8880:345:1::0;15206:67:0::1;15289:8;15284:240;15307:8;:15;15303:1;:19;;;15284:240;;;15388:13;4571:1;15388:2;:13;:::i;:::-;15377:7;15385:1;15377:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;15362:10;9798:7:::0;9825:16;;;;;;;;;;;15352:49:::1;;15344:80;;;::::0;-1:-1:-1;;;15344:80:0;;9564:2:1;15344:80:0::1;::::0;::::1;9546:21:1::0;9603:2;9583:18;;;9576:30;9642:20;9622:18;;;9615:48;9680:18;;15344:80:0::1;9362:342:1::0;15344:80:0::1;15439:73;15456:10;15468:8;15477:1;15468:11;;;;;;;;;;:::i;:::-;;;;;;;4571:1;15492:2;:13;;;;:::i;:::-;15481:7;15489:1;15481:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;15507:4;15439:16;:73::i;:::-;-1:-1:-1::0;15324:3:0;::::1;::::0;::::1;:::i;:::-;;;;15284:240;;;;15098:433:::0;;:::o;11548:141::-;11601:7;9825:16;;;;;;4778:42;9825:16;;;;11640:39;;9825:16;11640:39;:::i;:::-;4631:13;4571:1;4631:2;:13;:::i;:::-;4614:30;;4412:19;4614:30;:::i;:::-;11629:51;;;;:::i;9214:112::-;9266:5;4631:13;4571:1;4631:2;:13;:::i;:::-;4614:30;;4412:19;4614:30;:::i;:::-;9290:1;9279:12;9275:31;;9295:8;;;9275:31;-1:-1:-1;4571:1:0;;9214:112::o;11697:110::-;7009:6;;-1:-1:-1;;;;;7009:6:0;7019:10;7009:20;7001:50;;;;-1:-1:-1;;;7001:50:0;;6302:2:1;7001:50:0;;;6284:21:1;6341:2;6321:18;;;6314:30;-1:-1:-1;;;6360:18:1;;;6353:47;6417:18;;7001:50:0;6100:341:1;7001:50:0;11766:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;11766:33:0;;-1:-1:-1;;;;;178:55:1;;;11766:33:0::1;::::0;::::1;160:74:1::0;11766:11:0;;::::1;::::0;:24:::1;::::0;133:18:1;;11766:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11697:110:::0;:::o;8519:221::-;8597:16;;-1:-1:-1;;;;;8597:16:0;8583:10;:30;8575:83;;;;-1:-1:-1;;;8575:83:0;;10243:2:1;8575:83:0;;;10225:21:1;10282:2;10262:18;;;10255:30;10321:34;10301:18;;;10294:62;-1:-1:-1;;;10372:18:1;;;10365:38;10420:19;;8575:83:0;10041:404:1;8575:83:0;8669:23;8689:1;8669:11;:23::i;:::-;8703:16;:29;;-1:-1:-1;;;;;;8703:29:0;;;8519:221::o;7159:539::-;7009:6;;-1:-1:-1;;;;;7009:6:0;7019:10;7009:20;7001:50;;;;-1:-1:-1;;;7001:50:0;;6302:2:1;7001:50:0;;;6284:21:1;6341:2;6321:18;;;6314:30;-1:-1:-1;;;6360:18:1;;;6353:47;6417:18;;7001:50:0;6100:341:1;7001:50:0;-1:-1:-1;;;;;7238:22:0;::::1;7230:96;;;::::0;-1:-1:-1;;;7230:96:0;;10652:2:1;7230:96:0::1;::::0;::::1;10634:21:1::0;10691:2;10671:18;;;10664:30;10730:34;10710:18;;;10703:62;10801:31;10781:18;;;10774:59;10850:19;;7230:96:0::1;10450:425:1::0;7230:96:0::1;-1:-1:-1::0;;;;;;;7345:16:0;::::1;::::0;7337:90:::1;;;::::0;-1:-1:-1;;;7337:90:0;;10652:2:1;7337:90:0::1;::::0;::::1;10634:21:1::0;10691:2;10671:18;;;10664:30;10730:34;10710:18;;;10703:62;10801:31;10781:18;;;10774:59;10850:19;;7337:90:0::1;10450:425:1::0;7337:90:0::1;7452:6;::::0;-1:-1:-1;;;;;7452:6:0::1;7462:1;9825:16:::0;;;;;;;;;;;7442:21;7438:113:::1;;7497:6;::::0;-1:-1:-1;;;;;7497:6:0::1;9798:7:::0;9825:16;;;;;;;;;;;7480:59:::1;::::0;7497:6;7505:8;;7515:17:::1;9732:117:::0;7480:59:::1;;7438:113;7590:6;::::0;;-1:-1:-1;;;;;7607:17:0;;::::1;-1:-1:-1::0;;;;;;7607:17:0;::::1;::::0;::::1;::::0;;;7640:40:::1;::::0;7590:6;::::1;::::0;7607:17;7590:6;;7640:40:::1;::::0;7571:16:::1;::::0;7640:40:::1;7219:479;7159:539:::0;:::o;11014:222::-;7009:6;;-1:-1:-1;;;;;7009:6:0;7019:10;7009:20;7001:50;;;;-1:-1:-1;;;7001:50:0;;6302:2:1;7001:50:0;;;6284:21:1;6341:2;6321:18;;;6314:30;-1:-1:-1;;;6360:18:1;;;6353:47;6417:18;;7001:50:0;6100:341:1;7001:50:0;11098:14:::1;::::0;-1:-1:-1;;;11098:14:0;::::1;;;11097:15;11089:24;;;::::0;::::1;;11155:4;-1:-1:-1::0;;;;;11132:28:0;::::1;::::0;11124:55:::1;;;::::0;-1:-1:-1;;;11124:55:0;;11082:2:1;11124:55:0::1;::::0;::::1;11064:21:1::0;11121:2;11101:18;;;11094:30;11160:16;11140:18;;;11133:44;11194:18;;11124:55:0::1;10880:338:1::0;11124:55:0::1;11190:11;:38:::0;;-1:-1:-1;;;;;;11190:38:0::1;-1:-1:-1::0;;;;;11190:38:0;;;::::1;::::0;;;::::1;::::0;;11014:222::o;7706:265::-;7009:6;;-1:-1:-1;;;;;7009:6:0;7019:10;7009:20;7001:50;;;;-1:-1:-1;;;7001:50:0;;6302:2:1;7001:50:0;;;6284:21:1;6341:2;6321:18;;;6314:30;-1:-1:-1;;;6360:18:1;;;6353:47;6417:18;;7001:50:0;6100:341:1;7001:50:0;7773:14:::1;::::0;-1:-1:-1;;;7773:14:0;::::1;;;7765:74;;;::::0;-1:-1:-1;;;7765:74:0;;11425:2:1;7765:74:0::1;::::0;::::1;11407:21:1::0;11464:2;11444:18;;;11437:30;11503:34;11483:18;;;11476:62;11574:17;11554:18;;;11547:45;11609:19;;7765:74:0::1;11223:411:1::0;7765:74:0::1;7869:6;::::0;;-1:-1:-1;;;;;;7886:19:0;::::1;::::0;;;7921:42:::1;::::0;-1:-1:-1;;;;;7869:6:0;;::::1;::::0;7850:16:::1;::::0;7869:6;;7921:42:::1;::::0;7850:16;;7921:42:::1;7754:217;7706:265::o:0;10517:175::-;7009:6;;10583:4;;-1:-1:-1;;;;;7009:6:0;7019:10;7009:20;7001:50;;;;-1:-1:-1;;;7001:50:0;;6302:2:1;7001:50:0;;;6284:21:1;6341:2;6321:18;;;6314:30;-1:-1:-1;;;6360:18:1;;;6353:47;6417:18;;7001:50:0;6100:341:1;7001:50:0;10632:9:::1;::::0;10600:62:::1;::::0;10617:4:::1;::::0;10632:9;;::::1;-1:-1:-1::0;;;;;10632:9:0::1;-1:-1:-1::0;;10600:8:0::1;:62::i;:::-;-1:-1:-1::0;10680:4:0::1;10517:175:::0;:::o;14420:480::-;7009:6;;-1:-1:-1;;;;;7009:6:0;7019:10;7009:20;7001:50;;;;-1:-1:-1;;;7001:50:0;;6302:2:1;7001:50:0;;;6284:21:1;6341:2;6321:18;;;6314:30;-1:-1:-1;;;6360:18:1;;;6353:47;6417:18;;7001:50:0;6100:341:1;7001:50:0;14482:14:::1;::::0;-1:-1:-1;;;14482:14:0;::::1;;;14481:15;14473:52;;;::::0;-1:-1:-1;;;14473:52:0;;11841:2:1;14473:52:0::1;::::0;::::1;11823:21:1::0;11880:2;11860:18;;;11853:30;11919:26;11899:18;;;11892:54;11963:18;;14473:52:0::1;11639:348:1::0;14473:52:0::1;14544:16;::::0;-1:-1:-1;;;14544:16:0;::::1;;;14536:53;;;::::0;-1:-1:-1;;;14536:53:0;;12194:2:1;14536:53:0::1;::::0;::::1;12176:21:1::0;12233:2;12213:18;;;12206:30;12272:26;12252:18;;;12245:54;12316:18;;14536:53:0::1;11992:348:1::0;14536:53:0::1;14612:11;::::0;-1:-1:-1;;;;;14612:11:0::1;14600:106;;14654:11;:40:::0;;-1:-1:-1;;;;;;14654:40:0::1;14688:4;14654:40;::::0;;14600:106:::1;14720:11;::::0;14742:6:::1;::::0;14720:87:::1;::::0;-1:-1:-1;;;14720:87:0;;-1:-1:-1;;;;;14742:6:0;;::::1;14720:87;::::0;::::1;12568:74:1::0;12690:10;14757:12:0::1;12678:23:1::0;12658:18;;;12651:51;12750:18;14779:15:0::1;12738:31:1::0;12718:18;;;12711:59;4571:1:0::1;12786:18:1::0;;;12779:45;14720:11:0;::::1;::::0;:21:::1;::::0;12540:19:1;;14720:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;14716:103:::0;14829:14:::1;:21:::0;;-1:-1:-1;;;;14829:21:0::1;-1:-1:-1::0;;;14829:21:0::1;::::0;;14861:23:::1;:31:::0;;-1:-1:-1;;14861:31:0::1;::::0;;14420:480::o;9857:165::-;9935:4;9952:40;9962:10;9974:9;9985:6;9952:9;:40::i;:::-;-1:-1:-1;10010:4:0;;9857:165;-1:-1:-1;;;9857:165:0:o;8132:379::-;8214:16;;-1:-1:-1;;;;;8214:16:0;8200:10;:30;8192:83;;;;-1:-1:-1;;;8192:83:0;;10243:2:1;8192:83:0;;;10225:21:1;10282:2;10262:18;;;10255:30;10321:34;10301:18;;;10294:62;-1:-1:-1;;;10372:18:1;;;10365:38;10420:19;;8192:83:0;10041:404:1;8192:83:0;8308:8;;-1:-1:-1;;;;;8308:8:0;8331:25;;8327:96;;-1:-1:-1;;;;;8373:30:0;;8406:5;8373:30;;;:17;:30;;;;;:38;;-1:-1:-1;;8373:38:0;;;8327:96;-1:-1:-1;8433:8:0;:22;;-1:-1:-1;;;;;8433:22:0;;;-1:-1:-1;;;;;;8433:22:0;;;;;;;:8;8466:30;;;:17;:30;;;;;:37;;-1:-1:-1;;8466:37:0;8433:22;8466:37;;;8132:379::o;14908:182::-;7009:6;;-1:-1:-1;;;;;7009:6:0;7019:10;7009:20;7001:50;;;;-1:-1:-1;;;7001:50:0;;6302:2:1;7001:50:0;;;6284:21:1;6341:2;6321:18;;;6314:30;-1:-1:-1;;;6360:18:1;;;6353:47;6417:18;;7001:50:0;6100:341:1;7001:50:0;14975:16:::1;::::0;-1:-1:-1;;;14975:16:0;::::1;;;14974:17;14966:58;;;::::0;-1:-1:-1;;;14966:58:0;;13037:2:1;14966:58:0::1;::::0;::::1;13019:21:1::0;13076:2;13056:18;;;13049:30;13115;13095:18;;;13088:58;13163:18;;14966:58:0::1;12835:352:1::0;14966:58:0::1;15043:6;::::0;15035:47:::1;::::0;-1:-1:-1;;;;;15043:6:0;;::::1;::::0;15060:21:::1;15035:47:::0;::::1;;;::::0;15043:6:::1;15035:47:::0;15043:6;15035:47;15060:21;15043:6;15035:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14908:182::o:0;11392:148::-;7009:6;;-1:-1:-1;;;;;7009:6:0;7019:10;7009:20;7001:50;;;;-1:-1:-1;;;7001:50:0;;6302:2:1;7001:50:0;;;6284:21:1;6341:2;6321:18;;;6314:30;-1:-1:-1;;;6360:18:1;;;6353:47;6417:18;;7001:50:0;6100:341:1;7001:50:0;-1:-1:-1;;;;;11488:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;11488:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11392:148::o;10199:310::-;-1:-1:-1;;;;;10294:20:0;;10286:52;;;;-1:-1:-1;;;10286:52:0;;13394:2:1;10286:52:0;;;13376:21:1;13433:2;13413:18;;;13406:30;-1:-1:-1;;;13452:18:1;;;13445:49;13511:18;;10286:52:0;13192:343:1;10286:52:0;-1:-1:-1;;;;;10357:21:0;;10349:53;;;;-1:-1:-1;;;10349:53:0;;13394:2:1;10349:53:0;;;13376:21:1;13433:2;13413:18;;;13406:30;-1:-1:-1;;;13452:18:1;;;13445:49;13511:18;;10349:53:0;13192:343:1;10349:53:0;-1:-1:-1;;;;;10415:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;10468:33;;2804:25:1;;;10468:33:0;;2777:18:1;10468:33:0;;;;;;;10199:310;;;:::o;12961:1020::-;13040:4;-1:-1:-1;;;;;13065:18:0;;13057:68;;;;-1:-1:-1;;;13057:68:0;;13742:2:1;13057:68:0;;;13724:21:1;13781:2;13761:18;;;13754:30;13820:34;13800:18;;;13793:62;-1:-1:-1;;;13871:18:1;;;13864:35;13916:19;;13057:68:0;13540:401:1;13057:68:0;-1:-1:-1;;;;;13144:16:0;;13136:64;;;;-1:-1:-1;;;13136:64:0;;14148:2:1;13136:64:0;;;14130:21:1;14187:2;14167:18;;;14160:30;14226:34;14206:18;;;14199:62;-1:-1:-1;;;14277:18:1;;;14270:33;14320:19;;13136:64:0;13946:399:1;13136:64:0;13228:1;13219:6;:10;13211:64;;;;-1:-1:-1;;;13211:64:0;;14552:2:1;13211:64:0;;;14534:21:1;14591:2;14571:18;;;14564:30;14630:34;14610:18;;;14603:62;-1:-1:-1;;;14681:18:1;;;14674:39;14730:19;;13211:64:0;14350:405:1;13211:64:0;-1:-1:-1;;;;;13374:13:0;;13286:8;13374:13;;;:7;:13;;;;;;13286:8;;;;13374:13;;13370:162;;;13410:4;13404:10;;13370:162;;;-1:-1:-1;;;;;13436:11:0;;;;;;:7;:11;;;;;;;;13432:100;;;13471:4;13464:11;;13432:100;;;-1:-1:-1;13516:4:0;13432:100;13546:20;13557:4;13563:2;13546:10;:20::i;:::-;13542:371;;;13587:14;;-1:-1:-1;;;13587:14:0;;;;13583:319;;13627:5;13622:265;;13657:34;;-1:-1:-1;;;13657:34:0;;14962:2:1;13657:34:0;;;14944:21:1;15001:2;14981:18;;;14974:30;15040:26;15020:18;;;15013:54;15084:18;;13657:34:0;14760:348:1;13622:265:0;-1:-1:-1;;;;;13722:31:0;;;;;;:25;:31;;;;;;;;13721:32;:66;;;;-1:-1:-1;;;;;;13758:29:0;;;;;;:25;:29;;;;;;;;13757:30;13721:66;13717:170;;;13812:55;;-1:-1:-1;;;13812:55:0;;15315:2:1;13812:55:0;;;15297:21:1;15354:2;15334:18;;;15327:30;15393:34;15373:18;;;15366:62;-1:-1:-1;;;15444:18:1;;;15437:43;15497:19;;13812:55:0;15113:409:1;13717:170:0;13932:41;13949:4;13955:2;13959:6;13967:5;13932:16;:41::i;:::-;13925:48;12961:1020;-1:-1:-1;;;;;;;12961:1020:0:o;15539:790::-;15637:4;15658:20;15669:4;15675:2;15658:10;:20::i;:::-;15654:228;;;15713:11;;:39;;-1:-1:-1;;;15713:39:0;;-1:-1:-1;;;;;15808:15:1;;;15713:39:0;;;15790:34:1;15860:15;;;15840:18;;;15833:43;15892:18;;;15885:34;;;15682:12:0;;15713:11;;:21;;15702:18:1;;15713:39:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;15713:39:0;;;;;;;;-1:-1:-1;;15713:39:0;;;;;;;;;;;;:::i;:::-;;;15709:122;;15820:8;;;15709:122;15803:5;-1:-1:-1;15849:7:0;15845:26;;15860:8;;;15845:26;15680:202;15654:228;-1:-1:-1;;;;;15892:13:0;;:7;:13;;;;;;;;;;:23;;15909:6;;15892:7;:23;;15909:6;;15892:23;:::i;:::-;;;;-1:-1:-1;;;;;;;15926:11:0;;:7;:11;;;;;;;;;;:21;;15941:6;;15926:7;:21;;15941:6;;15926:21;:::i;:::-;;;;;;;;15978:2;-1:-1:-1;;;;;15963:26:0;15972:4;-1:-1:-1;;;;;15963:26:0;;15982:6;15963:26;;;;2804:25:1;;2792:2;2777:18;;2658:177;15963:26:0;;;;;;;;16005:16;;-1:-1:-1;;;16005:16:0;;;;16000:298;;16038:28;16057:4;16063:2;16038:18;:28::i;:::-;16086:16;;-1:-1:-1;;;16086:16:0;;;;16085:17;:41;;;;;16106:20;16117:4;16123:2;16106:10;:20::i;:::-;16085:77;;;;-1:-1:-1;;;;;;16131:31:0;;;;;;:25;:31;;;;;;;;16130:32;16085:77;:111;;;;-1:-1:-1;;;;;;16167:29:0;;;;;;:25;:29;;;;;;;;16166:30;16085:111;:121;;;;;16201:5;16200:6;16085:121;16081:206;;;16227:44;;-1:-1:-1;;;16227:44:0;;16382:2:1;16227:44:0;;;16364:21:1;16421:2;16401:18;;;16394:30;16460:34;16440:18;;;16433:62;-1:-1:-1;;;16511:18:1;;;16504:32;16553:19;;16227:44:0;16180:398:1;16081:206:0;-1:-1:-1;16317:4:0;15539:790;;;;;;:::o;12507:446::-;12608:6;;12576:4;;-1:-1:-1;;;;;12600:14:0;;;12608:6;;12600:14;;;;:43;;-1:-1:-1;12637:6:0;;-1:-1:-1;;;;;12631:12:0;;;12637:6;;12631:12;;12600:43;:79;;;;-1:-1:-1;12673:6:0;;-1:-1:-1;;;;;12673:6:0;12660:9;:19;;12600:79;:118;;;;-1:-1:-1;;;;;;12697:21:0;;;;;;:17;:21;;;;;;;;12696:22;12600:118;:159;;;;-1:-1:-1;;;;;;12736:23:0;;;;;;:17;:23;;;;;;;;12735:24;12600:159;:186;;;;-1:-1:-1;;;;;;12776:10:0;;4778:42;12776:10;;12600:186;:219;;;;-1:-1:-1;;;;;;12803:16:0;;;;12600:219;:257;;;;-1:-1:-1;;;;;;12836:21:0;;12852:4;12836:21;;12600:257;:302;;;;-1:-1:-1;12890:11:0;;-1:-1:-1;;;;;12874:28:0;;;12890:11;;12874:28;;12600:302;:345;;;;-1:-1:-1;12933:11:0;;-1:-1:-1;;;;;12919:26:0;;;12933:11;;12919:26;;12600:345;12593:352;12507:446;-1:-1:-1;;;12507:446:0:o;13989:423::-;14072:16;;-1:-1:-1;;;14072:16:0;;;;14071:17;14063:65;;;;-1:-1:-1;;;14063:65:0;;16785:2:1;14063:65:0;;;16767:21:1;16824:2;16804:18;;;16797:30;16863:34;16843:18;;;16836:62;-1:-1:-1;;;16914:18:1;;;16907:33;16957:19;;14063:65:0;16583:399:1;14063:65:0;14144:20;14155:4;14161:2;14144:10;:20::i;:::-;14143:21;:37;;;;-1:-1:-1;14174:6:0;;-1:-1:-1;;;;;14168:12:0;;;14174:6;;14168:12;14143:37;14139:266;;;-1:-1:-1;;;;;14197:23:0;;;;;;;:17;:23;;;;;:30;;-1:-1:-1;;14197:30:0;14223:4;14197:30;;;14242:16;:23;;-1:-1:-1;;;;14242:23:0;-1:-1:-1;;;14242:23:0;;;14292:11;;;14280:114;;14338:11;:40;;-1:-1:-1;;;;;;14338:40:0;14372:4;14338:40;;;13989: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:548::-;861:4;890:2;919;908:9;901:21;951:6;945:13;994:6;989:2;978:9;974:18;967:34;1019:1;1029:140;1043:6;1040:1;1037:13;1029:140;;;1138:14;;;1134:23;;1128:30;1104:17;;;1123:2;1100:26;1093:66;1058:10;;1029:140;;;1033:3;1218:1;1213:2;1204:6;1193:9;1189:22;1185:31;1178:42;1288:2;1281;1277:7;1272:2;1264:6;1260:15;1256:29;1245:9;1241:45;1237:54;1229:62;;;;749:548;;;;:::o;1742:196::-;1810:20;;-1:-1:-1;;;;;1859:54:1;;1849:65;;1839:93;;1928:1;1925;1918:12;1839:93;1742:196;;;:::o;1943:254::-;2011:6;2019;2072:2;2060:9;2051:7;2047:23;2043:32;2040:52;;;2088:1;2085;2078:12;2040:52;2111:29;2130:9;2111:29;:::i;:::-;2101:39;2187:2;2172:18;;;;2159:32;;-1:-1:-1;;;1943:254:1:o;2202:186::-;2261:6;2314:2;2302:9;2293:7;2289:23;2285:32;2282:52;;;2330:1;2327;2320:12;2282:52;2353:29;2372:9;2353:29;:::i;2393:260::-;2461:6;2469;2522:2;2510:9;2501:7;2497:23;2493:32;2490:52;;;2538:1;2535;2528:12;2490:52;2561:29;2580:9;2561:29;:::i;:::-;2551:39;;2609:38;2643:2;2632:9;2628:18;2609:38;:::i;:::-;2599:48;;2393:260;;;;;:::o;2840:328::-;2917:6;2925;2933;2986:2;2974:9;2965:7;2961:23;2957:32;2954:52;;;3002:1;2999;2992:12;2954:52;3025:29;3044:9;3025:29;:::i;:::-;3015:39;;3073:38;3107:2;3096:9;3092:18;3073:38;:::i;:::-;3063:48;;3158:2;3147:9;3143:18;3130:32;3120:42;;2840:328;;;;;:::o;3173:127::-;3234:10;3229:3;3225:20;3222:1;3215:31;3265:4;3262:1;3255:15;3289:4;3286:1;3279:15;3305:275;3376:2;3370:9;3441:2;3422:13;;-1:-1:-1;;3418:27:1;3406:40;;3476:18;3461:34;;3497:22;;;3458:62;3455:88;;;3523:18;;:::i;:::-;3559:2;3552:22;3305:275;;-1:-1:-1;3305:275:1:o;3585:183::-;3645:4;3678:18;3670:6;3667:30;3664:56;;;3700:18;;:::i;:::-;-1:-1:-1;3745:1:1;3741:14;3757:4;3737:25;;3585:183::o;3773:662::-;3827:5;3880:3;3873:4;3865:6;3861:17;3857:27;3847:55;;3898:1;3895;3888:12;3847:55;3934:6;3921:20;3960:4;3984:60;4000:43;4040:2;4000:43;:::i;:::-;3984:60;:::i;:::-;4078:15;;;4164:1;4160:10;;;;4148:23;;4144:32;;;4109:12;;;;4188:15;;;4185:35;;;4216:1;4213;4206:12;4185:35;4252:2;4244:6;4240:15;4264:142;4280:6;4275:3;4272:15;4264:142;;;4346:17;;4334:30;;4384:12;;;;4297;;4264:142;;;-1:-1:-1;4424:5:1;3773:662;-1:-1:-1;;;;;;3773:662:1:o;4440:1146::-;4558:6;4566;4619:2;4607:9;4598:7;4594:23;4590:32;4587:52;;;4635:1;4632;4625:12;4587:52;4675:9;4662:23;4704:18;4745:2;4737:6;4734:14;4731:34;;;4761:1;4758;4751:12;4731:34;4799:6;4788:9;4784:22;4774:32;;4844:7;4837:4;4833:2;4829:13;4825:27;4815:55;;4866:1;4863;4856:12;4815:55;4902:2;4889:16;4924:4;4948:60;4964:43;5004:2;4964:43;:::i;4948:60::-;5042:15;;;5124:1;5120:10;;;;5112:19;;5108:28;;;5073:12;;;;5148:19;;;5145:39;;;5180:1;5177;5170:12;5145:39;5204:11;;;;5224:148;5240:6;5235:3;5232:15;5224:148;;;5306:23;5325:3;5306:23;:::i;:::-;5294:36;;5257:12;;;;5350;;;;5224:148;;;5391:5;-1:-1:-1;;5434:18:1;;5421:32;;-1:-1:-1;;5465:16:1;;;5462:36;;;5494:1;5491;5484:12;5462:36;;5517:63;5572:7;5561:8;5550:9;5546:24;5517:63;:::i;:::-;5507:73;;;4440:1146;;;;;:::o;5780:315::-;5845:6;5853;5906:2;5894:9;5885:7;5881:23;5877:32;5874:52;;;5922:1;5919;5912:12;5874:52;5945:29;5964:9;5945:29;:::i;7059:127::-;7120:10;7115:3;7111:20;7108:1;7101:31;7151:4;7148:1;7141:15;7175:4;7172:1;7165:15;7191:422;7280:1;7323:5;7280:1;7337:270;7358:7;7348:8;7345:21;7337:270;;;7417:4;7413:1;7409:6;7405:17;7399:4;7396:27;7393:53;;;7426:18;;:::i;:::-;7476:7;7466:8;7462:22;7459:55;;;7496:16;;;;7459:55;7575:22;;;;7535:15;;;;7337:270;;;7341:3;7191:422;;;;;:::o;7618:806::-;7667:5;7697:8;7687:80;;-1:-1:-1;7738:1:1;7752:5;;7687:80;7786:4;7776:76;;-1:-1:-1;7823:1:1;7837:5;;7776:76;7868:4;7886:1;7881:59;;;;7954:1;7949:130;;;;7861:218;;7881:59;7911:1;7902:10;;7925:5;;;7949:130;7986:3;7976:8;7973:17;7970:43;;;7993:18;;:::i;:::-;-1:-1:-1;;8049:1:1;8035:16;;8064:5;;7861:218;;8163:2;8153:8;8150:16;8144:3;8138:4;8135:13;8131:36;8125:2;8115:8;8112:16;8107:2;8101:4;8098:12;8094:35;8091:77;8088:159;;;-1:-1:-1;8200:19:1;;;8232:5;;8088:159;8279:34;8304:8;8298:4;8279:34;:::i;:::-;8349:6;8345:1;8341:6;8337:19;8328:7;8325:32;8322:58;;;8360:18;;:::i;:::-;8398:20;;7618:806;-1:-1:-1;;;7618:806:1:o;8429:140::-;8487:5;8516:47;8557:4;8547:8;8543:19;8537:4;8516:47;:::i;8574:168::-;8647:9;;;8678;;8695:15;;;8689:22;;8675:37;8665:71;;8716:18;;:::i;8747:128::-;8814:9;;;8835:11;;;8832:37;;;8849:18;;:::i;9230:127::-;9291:10;9286:3;9282:20;9279:1;9272:31;9322:4;9319:1;9312:15;9346:4;9343:1;9336:15;9709:197;9747:3;9775:6;9816:2;9809:5;9805:14;9843:2;9834:7;9831:15;9828:41;;9849:18;;:::i;:::-;9898:1;9885:15;;9709:197;-1:-1:-1;;;9709:197:1:o;9911:125::-;9976:9;;;9997:10;;;9994:36;;;10010:18;;:::i;15930:245::-;15997:6;16050:2;16038:9;16029:7;16025:23;16021:32;16018:52;;;16066:1;16063;16056:12;16018:52;16098:9;16092:16;16117:28;16139:5;16117:28;:::i

Swarm Source

ipfs://08d5077a147629a5ec78fb0dccc9ed23a6a1a23c3f9523a911acce03fd7913d4
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.