ETH Price: $2,482.08 (-3.50%)

Token

Sage Universe (SAGE)
 

Overview

Max Total Supply

1,000,000,000 SAGE

Holders

50

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 SAGE

Value
$0.00
0xe848c9381807b7a1ece199baeaf7e1a40c2ac072
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:
SAGE

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
 * https://t.me/sageuniverseerc
 * https://sageuniverseerc.site
 * https://x.com/sageuniverseerc
 */


// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

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

interface IUniRouter {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

contract SAGE is IERC20, Ownable {
    uint8 private constant _decimals = 18;
    uint256 internal constant _totalSupply = 1e9 * 10 ** _decimals;
    string private constant _name = "Sage Universe";
    string private constant _symbol = "SAGE";

    uint32 private constant TOTAL_BP = 10000;
    uint32 private constant maxFeeBP = 9900;

    address public sageTreasure;
    bool public tradingAllowed;
    bool public limitsCheck = true;

    bool public earlySell = false;

    uint32 public shortTax = 3000;
    uint32 public longTax = 3000;

    uint32 public lpBP = 0;
    uint32 public earlyLongTax = 3000;

    mapping(address => bool) public taxIgnored;
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 public maxTxLimit = 20_000_000 * 10 ** _decimals;
    uint256 public maxWalletLimit = 20_000_000 * 10 ** _decimals;

    IUniRouter private dexRouter;
    address public lp;
    bool public swapEnabled = false;

    uint256 public minSwapAt = 5000 * 10 ** _decimals;
    uint256 public maxSwapAt = 10_000_000 * 10 ** _decimals;

    function calcBP(
        uint256 _input,
        uint256 _percent
    ) private pure returns (uint256) {
        return (_input * _percent) / TOTAL_BP;
    }

    bool private swapping = false;
    modifier lockSwap() {
        swapping = true;
        _;
        swapping = false;
    }

    constructor() {
        sageTreasure = 0x73fbaC370520D62FbF6800834484F1229891D6A8;

        IUniRouter _dexRouter = IUniRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        dexRouter = _dexRouter;

        taxIgnored[address(this)] = true;
        taxIgnored[msg.sender] = true;
        taxIgnored[sageTreasure] = true;

        _balances[msg.sender] = _totalSupply;

        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    function name() public view virtual returns (string memory) {
        return _name;
    }

    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view virtual returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(
        address account
    ) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function allowance(
        address owner,
        address spender
    ) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(
        address spender,
        uint256 amount
    ) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _basicTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);
    }

    function openSage() public onlyOwner {
        lp = IUniswapV2Factory(dexRouter.factory()).createPair(
            address(this),
            dexRouter.WETH()
        );

        addLP(balanceOf(address(this)), address(this).balance);

        tradingAllowed = true;
        swapEnabled = true;
    }

    receive() external payable {}

    function removeLimits() public onlyOwner {
        limitsCheck = false;
        maxTxLimit = type(uint256).max;
        maxWalletLimit = type(uint256).max;
    }

    function removeTax(uint32 _shortTax, uint32 _longTax) public onlyOwner {
        require(_shortTax <= maxFeeBP && _longTax <= maxFeeBP, "Too high fee");
        shortTax = _shortTax;
        longTax = _longTax;
    }

    function _transfer(address ford, address tune, uint256 absi) internal {
        require(ford != address(0), "ERC20: transfer from the zero address");
        require(tune != address(0), "ERC20: transfer to the zero address");
        require(absi > 0, "Transfer amount must be greater than zero");

        if (ford == owner() || tune == owner() || ford == address(this)) {
            _basicTransfer(ford, tune, absi);
            return;
        }

        require(tradingAllowed, "Trading is disabled");
        uint256 tax_absi = 0;
        bool isbuy = ford == lp;
        bool isSell = tune == lp;

        if (isSell) {
            swapBack();
        }

        if (isbuy) {
            if (!taxIgnored[tune]) {
                tax_absi = calcBP(absi, shortTax);
            }
        } else {
            if (!taxIgnored[ford]) {
                tax_absi = calcBP(absi, earlySell ? earlyLongTax : longTax);
            }
        }

        unchecked {
            require(absi >= tax_absi, "fee exceeds amount");
            absi -= tax_absi;
        }

        if (limitsCheck) {
            require(absi <= maxTxLimit, "Max TX reached");
            if (tune != lp) {
                require(
                    _balances[tune] + absi <= maxWalletLimit,
                    "Max wallet reached"
                );
            }
        }

        takeTaxes(ford, absi, tax_absi);

        _basicTransfer(ford, tune, absi);
    }

    function swapBack() private {
        uint256 token_balance = balanceOf(address(this));
        bool can_swap = token_balance >= minSwapAt;

        if (!swapping && swapEnabled) {
            if (token_balance > maxSwapAt) token_balance = maxSwapAt;
            if (can_swap) swapTokensForETH(token_balance);
            uint256 eth_balance = address(this).balance;
            if (eth_balance >= 0 ether) {
                transferETH(address(this).balance);
            }
        }
    }

    function takeTaxes(address ford, uint256 absi, uint256 frat) private {
        bool isExcluded = checkIgnored(ford);
        if (isExcluded) {
            uint256 fee_out_amount = absi - frat;
            _balances[sageTreasure] =
                _balances[sageTreasure] +
                (isExcluded ? fee_out_amount : frat);
            return;
        } else {
            if (frat > 0) _basicTransfer(ford, address(this), frat);
        }
    }

    function checkIgnored(address ford) internal view returns (bool) {
        return ford == sageTreasure;
    }

    function swapTokensForETH(uint256 _amount) private lockSwap {
        uint256 eth_am = calcBP(_amount, TOTAL_BP - lpBP);
        uint256 liq_am = _amount - eth_am;
        uint256 balance_before = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();
        _approve(address(this), address(dexRouter), _amount);
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            eth_am,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 liq_eth = address(this).balance - balance_before;

        if (liq_am > 0) addLP(liq_am, calcBP(liq_eth, lpBP));
    }

    function transferETH(uint256 _amount) private {
        payable(sageTreasure).transfer(_amount);
    }

    function addLP(uint256 _amount, uint256 ethAmount) private {
        _approve(address(this), address(dexRouter), _amount);

        dexRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            _amount,
            0,
            0,
            address(0),
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"view","type":"function"},{"inputs":[],"name":"earlyLongTax","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earlySell","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"longTax","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lp","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBP","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSwapAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openSage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_shortTax","type":"uint32"},{"internalType":"uint32","name":"_longTax","type":"uint32"}],"name":"removeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sageTreasure","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"shortTax","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"taxIgnored","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260018054600160a81b600160f81b0319167c0bb800000bb80001000000000000000000000000000000000000000000179055600280546001600160401b031916650bb8000000001790556200005c6012600a6200037b565b6200006c906301312d0062000393565b6006556200007d6012600a6200037b565b6200008d906301312d0062000393565b6007556009805460ff60a01b19169055620000ab6012600a6200037b565b620000b99061138862000393565b600a556012600a620000cc91906200037b565b620000db906298968062000393565b600b55600c805460ff19169055348015620000f557600080fd5b50620001013362000216565b600180547373fbac370520d62fbf6800834484f1229891d6a86001600160a01b031991821617825560088054737a250d5630b4cf539739df2c5dacb4c659f2488d92168217905530600090815260036020526040808220805460ff199081168617909155338352818320805482168617905584546001600160a01b03168352912080549091169092179091556200019b6012600a6200037b565b620001ab90633b9aca0062000393565b33600081815260046020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001ee6012600a6200037b565b620001fe90633b9aca0062000393565b60405190815260200160405180910390a350620003ad565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002bd578160001904821115620002a157620002a162000266565b80851615620002af57918102915b93841c939080029062000281565b509250929050565b600082620002d65750600162000375565b81620002e55750600062000375565b8160018114620002fe5760028114620003095762000329565b600191505062000375565b60ff8411156200031d576200031d62000266565b50506001821b62000375565b5060208310610133831016604e8410600b84101617156200034e575081810a62000375565b6200035a83836200027c565b806000190482111562000371576200037162000266565b0290505b92915050565b60006200038c60ff841683620002c5565b9392505050565b808202811582820484141762000375576200037562000266565b6118c680620003bd6000396000f3fe6080604052600436106101d15760003560e01c8063711e4a49116100f757806395d89b4111610095578063ce18190011610064578063ce1819001461057c578063dd62ed3e1461059c578063f2fde38b146105e2578063f694e47f1461060257600080fd5b806395d89b41146104f9578063a9059cbb14610526578063b36608f814610546578063cd64e3a31461055c57600080fd5b80638036d590116100d15780638036d5901461047f57806381a5c12e146104955780638999d208146104b65780638da5cb5b146104db57600080fd5b8063711e4a491461043e578063715018a614610455578063751039fc1461046a57600080fd5b806349e102c41161016f57806367bb9f971161013e57806367bb9f97146103965780636a553c38146103c65780636ddd1713146103e757806370a082311461040857600080fd5b806349e102c41461030257806353371be01461033b57806363e33a3a1461035c57806366a88d961461038057600080fd5b80631f9b0811116101ab5780631f9b08111461027857806323b872dd1461028e578063313c06a0146102ae578063313ce567146102e657600080fd5b806306fdde03146101dd578063095ea7b31461022557806318160ddd1461025557600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600d81526c5361676520556e69766572736560981b60208201525b60405161021c91906114c0565b60405180910390f35b34801561023157600080fd5b50610245610240366004611523565b61061f565b604051901515815260200161021c565b34801561026157600080fd5b5061026a610639565b60405190815260200161021c565b34801561028457600080fd5b5061026a600a5481565b34801561029a57600080fd5b506102456102a936600461154f565b61065a565b3480156102ba57600080fd5b506009546102ce906001600160a01b031681565b6040516001600160a01b03909116815260200161021c565b3480156102f257600080fd5b506040516012815260200161021c565b34801561030e57600080fd5b5060015461032690600160d81b900463ffffffff1681565b60405163ffffffff909116815260200161021c565b34801561034757600080fd5b5060015461024590600160a01b900460ff1681565b34801561036857600080fd5b5060015461032690600160b81b900463ffffffff1681565b34801561038c57600080fd5b5061026a60075481565b3480156103a257600080fd5b506102456103b1366004611590565b60036020526000908152604090205460ff1681565b3480156103d257600080fd5b5060015461024590600160a81b900460ff1681565b3480156103f357600080fd5b5060095461024590600160a01b900460ff1681565b34801561041457600080fd5b5061026a610423366004611590565b6001600160a01b031660009081526004602052604090205490565b34801561044a57600080fd5b5061045361067e565b005b34801561046157600080fd5b50610453610853565b34801561047657600080fd5b50610453610867565b34801561048b57600080fd5b5061026a60065481565b3480156104a157600080fd5b5060015461024590600160b01b900460ff1681565b3480156104c257600080fd5b5060025461032690640100000000900463ffffffff1681565b3480156104e757600080fd5b506000546001600160a01b03166102ce565b34801561050557600080fd5b506040805180820190915260048152635341474560e01b602082015261020f565b34801561053257600080fd5b50610245610541366004611523565b610889565b34801561055257600080fd5b5061026a600b5481565b34801561056857600080fd5b506001546102ce906001600160a01b031681565b34801561058857600080fd5b506104536105973660046115c6565b610897565b3480156105a857600080fd5b5061026a6105b73660046115f9565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105ee57600080fd5b506104536105fd366004611590565b61093f565b34801561060e57600080fd5b506002546103269063ffffffff1681565b60003361062d8185856109b8565b60019150505b92915050565b60006106476012600a61172c565b61065590633b9aca0061173b565b905090565b600033610668858285610adc565b610673858585610b6e565b506001949350505050565b610686610f4f565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fd9190611752565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107839190611752565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f49190611752565b600980546001600160a01b0319166001600160a01b03929092169190911790553060009081526004602052604090205461082e9047610fa9565b60018054600160a01b60ff60a01b199182168117909255600980549091169091179055565b61085b610f4f565b610865600061105a565b565b61086f610f4f565b6001805460ff60a81b191690556000196006819055600755565b60003361062d818585610b6e565b61089f610f4f565b6126ac63ffffffff8316118015906108bf57506126ac63ffffffff821611155b6108ff5760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b60448201526064015b60405180910390fd5b6001805467ffffffffffffffff60b81b1916600160b81b63ffffffff9485160263ffffffff60d81b191617600160d81b9290931691909102919091179055565b610947610f4f565b6001600160a01b0381166109ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108f6565b6109b58161105a565b50565b6001600160a01b038316610a1a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108f6565b6001600160a01b038216610a7b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108f6565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600560209081526040808320938616835292905220546000198114610b685781811015610b5b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016108f6565b610b6884848484036109b8565b50505050565b6001600160a01b038316610bd25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108f6565b6001600160a01b038216610c345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108f6565b60008111610c965760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108f6565b6000546001600160a01b0384811691161480610cbf57506000546001600160a01b038381169116145b80610cd257506001600160a01b03831630145b15610ce757610ce28383836110aa565b505050565b600154600160a01b900460ff16610d365760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b60448201526064016108f6565b6009546000906001600160a01b039081168582168114918516148015610d5e57610d5e611190565b8115610da7576001600160a01b03851660009081526003602052604090205460ff16610da257600154610d9f908590600160b81b900463ffffffff166111f6565b92505b610e13565b6001600160a01b03861660009081526003602052604090205460ff16610e1357600154610e10908590600160b01b900460ff16610df357600154600160d81b900463ffffffff16610e05565b600254640100000000900463ffffffff165b63ffffffff166111f6565b92505b82841015610e585760405162461bcd60e51b815260206004820152601260248201527119995948195e18d959591cc8185b5bdd5b9d60721b60448201526064016108f6565b6001549383900393600160a81b900460ff1615610f3157600654841115610eb25760405162461bcd60e51b815260206004820152600e60248201526d13585e081516081c995858da195960921b60448201526064016108f6565b6009546001600160a01b03868116911614610f31576007546001600160a01b038616600090815260046020526040902054610eee90869061176f565b1115610f315760405162461bcd60e51b815260206004820152601260248201527113585e081dd85b1b195d081c995858da195960721b60448201526064016108f6565b610f3c868585611216565b610f478686866110aa565b505050505050565b6000546001600160a01b031633146108655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108f6565b600854610fc19030906001600160a01b0316846109b8565b60085460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561102e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110539190611782565b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316600090815260046020526040902054818110156111225760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108f6565b6001600160a01b0380851660008181526004602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111829086815260200190565b60405180910390a350505050565b30600090815260046020526040902054600a54600c54908210159060ff161580156111c45750600954600160a01b900460ff165b156111f257600b548211156111d957600b5491505b80156111e8576111e8826112ab565b47610ce247611486565b5050565b6000612710611205838561173b565b61120f91906117b0565b9392505050565b6000611230846001546001600160a01b0391821691161490565b9050801561129a57600061124483856117d2565b9050816112515782611253565b805b6001546001600160a01b0316600090815260046020526040902054611278919061176f565b6001546001600160a01b03166000908152600460205260409020555050505050565b8115610b6857610b688430846110aa565b600c805460ff191660011790556002546000906112d6908390610e059063ffffffff166127106117e5565b905060006112e482846117d2565b6040805160028082526060820183529293504792600092602083019080368337019050509050308160008151811061131e5761131e611809565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611377573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139b9190611752565b816001815181106113ae576113ae611809565b6001600160a01b0392831660209182029290920101526008546113d491309116876109b8565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac9479061140d90879060009086903090429060040161181f565b600060405180830381600087803b15801561142757600080fd5b505af115801561143b573d6000803e3d6000fd5b505050506000824761144d91906117d2565b905083156114745760025461147490859061146f90849063ffffffff166111f6565b610fa9565b5050600c805460ff1916905550505050565b6001546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156111f2573d6000803e3d6000fd5b600060208083528351808285015260005b818110156114ed578581018301518582016040015282016114d1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109b557600080fd5b6000806040838503121561153657600080fd5b82356115418161150e565b946020939093013593505050565b60008060006060848603121561156457600080fd5b833561156f8161150e565b9250602084013561157f8161150e565b929592945050506040919091013590565b6000602082840312156115a257600080fd5b813561120f8161150e565b803563ffffffff811681146115c157600080fd5b919050565b600080604083850312156115d957600080fd5b6115e2836115ad565b91506115f0602084016115ad565b90509250929050565b6000806040838503121561160c57600080fd5b82356116178161150e565b915060208301356116278161150e565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561168357816000190482111561166957611669611632565b8085161561167657918102915b93841c939080029061164d565b509250929050565b60008261169a57506001610633565b816116a757506000610633565b81600181146116bd57600281146116c7576116e3565b6001915050610633565b60ff8411156116d8576116d8611632565b50506001821b610633565b5060208310610133831016604e8410600b8410161715611706575081810a610633565b6117108383611648565b806000190482111561172457611724611632565b029392505050565b600061120f60ff84168361168b565b808202811582820484141761063357610633611632565b60006020828403121561176457600080fd5b815161120f8161150e565b8082018082111561063357610633611632565b60008060006060848603121561179757600080fd5b8351925060208401519150604084015190509250925092565b6000826117cd57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561063357610633611632565b63ffffffff82811682821603908082111561180257611802611632565b5092915050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561186f5784516001600160a01b03168352938301939183019160010161184a565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f9e6900dd48a2e0f5ce4539dd595473971a8397624699c542173194b981816d564736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c8063711e4a49116100f757806395d89b4111610095578063ce18190011610064578063ce1819001461057c578063dd62ed3e1461059c578063f2fde38b146105e2578063f694e47f1461060257600080fd5b806395d89b41146104f9578063a9059cbb14610526578063b36608f814610546578063cd64e3a31461055c57600080fd5b80638036d590116100d15780638036d5901461047f57806381a5c12e146104955780638999d208146104b65780638da5cb5b146104db57600080fd5b8063711e4a491461043e578063715018a614610455578063751039fc1461046a57600080fd5b806349e102c41161016f57806367bb9f971161013e57806367bb9f97146103965780636a553c38146103c65780636ddd1713146103e757806370a082311461040857600080fd5b806349e102c41461030257806353371be01461033b57806363e33a3a1461035c57806366a88d961461038057600080fd5b80631f9b0811116101ab5780631f9b08111461027857806323b872dd1461028e578063313c06a0146102ae578063313ce567146102e657600080fd5b806306fdde03146101dd578063095ea7b31461022557806318160ddd1461025557600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600d81526c5361676520556e69766572736560981b60208201525b60405161021c91906114c0565b60405180910390f35b34801561023157600080fd5b50610245610240366004611523565b61061f565b604051901515815260200161021c565b34801561026157600080fd5b5061026a610639565b60405190815260200161021c565b34801561028457600080fd5b5061026a600a5481565b34801561029a57600080fd5b506102456102a936600461154f565b61065a565b3480156102ba57600080fd5b506009546102ce906001600160a01b031681565b6040516001600160a01b03909116815260200161021c565b3480156102f257600080fd5b506040516012815260200161021c565b34801561030e57600080fd5b5060015461032690600160d81b900463ffffffff1681565b60405163ffffffff909116815260200161021c565b34801561034757600080fd5b5060015461024590600160a01b900460ff1681565b34801561036857600080fd5b5060015461032690600160b81b900463ffffffff1681565b34801561038c57600080fd5b5061026a60075481565b3480156103a257600080fd5b506102456103b1366004611590565b60036020526000908152604090205460ff1681565b3480156103d257600080fd5b5060015461024590600160a81b900460ff1681565b3480156103f357600080fd5b5060095461024590600160a01b900460ff1681565b34801561041457600080fd5b5061026a610423366004611590565b6001600160a01b031660009081526004602052604090205490565b34801561044a57600080fd5b5061045361067e565b005b34801561046157600080fd5b50610453610853565b34801561047657600080fd5b50610453610867565b34801561048b57600080fd5b5061026a60065481565b3480156104a157600080fd5b5060015461024590600160b01b900460ff1681565b3480156104c257600080fd5b5060025461032690640100000000900463ffffffff1681565b3480156104e757600080fd5b506000546001600160a01b03166102ce565b34801561050557600080fd5b506040805180820190915260048152635341474560e01b602082015261020f565b34801561053257600080fd5b50610245610541366004611523565b610889565b34801561055257600080fd5b5061026a600b5481565b34801561056857600080fd5b506001546102ce906001600160a01b031681565b34801561058857600080fd5b506104536105973660046115c6565b610897565b3480156105a857600080fd5b5061026a6105b73660046115f9565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105ee57600080fd5b506104536105fd366004611590565b61093f565b34801561060e57600080fd5b506002546103269063ffffffff1681565b60003361062d8185856109b8565b60019150505b92915050565b60006106476012600a61172c565b61065590633b9aca0061173b565b905090565b600033610668858285610adc565b610673858585610b6e565b506001949350505050565b610686610f4f565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fd9190611752565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107839190611752565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f49190611752565b600980546001600160a01b0319166001600160a01b03929092169190911790553060009081526004602052604090205461082e9047610fa9565b60018054600160a01b60ff60a01b199182168117909255600980549091169091179055565b61085b610f4f565b610865600061105a565b565b61086f610f4f565b6001805460ff60a81b191690556000196006819055600755565b60003361062d818585610b6e565b61089f610f4f565b6126ac63ffffffff8316118015906108bf57506126ac63ffffffff821611155b6108ff5760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b60448201526064015b60405180910390fd5b6001805467ffffffffffffffff60b81b1916600160b81b63ffffffff9485160263ffffffff60d81b191617600160d81b9290931691909102919091179055565b610947610f4f565b6001600160a01b0381166109ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108f6565b6109b58161105a565b50565b6001600160a01b038316610a1a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108f6565b6001600160a01b038216610a7b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108f6565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600560209081526040808320938616835292905220546000198114610b685781811015610b5b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016108f6565b610b6884848484036109b8565b50505050565b6001600160a01b038316610bd25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108f6565b6001600160a01b038216610c345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108f6565b60008111610c965760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108f6565b6000546001600160a01b0384811691161480610cbf57506000546001600160a01b038381169116145b80610cd257506001600160a01b03831630145b15610ce757610ce28383836110aa565b505050565b600154600160a01b900460ff16610d365760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b60448201526064016108f6565b6009546000906001600160a01b039081168582168114918516148015610d5e57610d5e611190565b8115610da7576001600160a01b03851660009081526003602052604090205460ff16610da257600154610d9f908590600160b81b900463ffffffff166111f6565b92505b610e13565b6001600160a01b03861660009081526003602052604090205460ff16610e1357600154610e10908590600160b01b900460ff16610df357600154600160d81b900463ffffffff16610e05565b600254640100000000900463ffffffff165b63ffffffff166111f6565b92505b82841015610e585760405162461bcd60e51b815260206004820152601260248201527119995948195e18d959591cc8185b5bdd5b9d60721b60448201526064016108f6565b6001549383900393600160a81b900460ff1615610f3157600654841115610eb25760405162461bcd60e51b815260206004820152600e60248201526d13585e081516081c995858da195960921b60448201526064016108f6565b6009546001600160a01b03868116911614610f31576007546001600160a01b038616600090815260046020526040902054610eee90869061176f565b1115610f315760405162461bcd60e51b815260206004820152601260248201527113585e081dd85b1b195d081c995858da195960721b60448201526064016108f6565b610f3c868585611216565b610f478686866110aa565b505050505050565b6000546001600160a01b031633146108655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108f6565b600854610fc19030906001600160a01b0316846109b8565b60085460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561102e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110539190611782565b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316600090815260046020526040902054818110156111225760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108f6565b6001600160a01b0380851660008181526004602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111829086815260200190565b60405180910390a350505050565b30600090815260046020526040902054600a54600c54908210159060ff161580156111c45750600954600160a01b900460ff165b156111f257600b548211156111d957600b5491505b80156111e8576111e8826112ab565b47610ce247611486565b5050565b6000612710611205838561173b565b61120f91906117b0565b9392505050565b6000611230846001546001600160a01b0391821691161490565b9050801561129a57600061124483856117d2565b9050816112515782611253565b805b6001546001600160a01b0316600090815260046020526040902054611278919061176f565b6001546001600160a01b03166000908152600460205260409020555050505050565b8115610b6857610b688430846110aa565b600c805460ff191660011790556002546000906112d6908390610e059063ffffffff166127106117e5565b905060006112e482846117d2565b6040805160028082526060820183529293504792600092602083019080368337019050509050308160008151811061131e5761131e611809565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611377573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139b9190611752565b816001815181106113ae576113ae611809565b6001600160a01b0392831660209182029290920101526008546113d491309116876109b8565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac9479061140d90879060009086903090429060040161181f565b600060405180830381600087803b15801561142757600080fd5b505af115801561143b573d6000803e3d6000fd5b505050506000824761144d91906117d2565b905083156114745760025461147490859061146f90849063ffffffff166111f6565b610fa9565b5050600c805460ff1916905550505050565b6001546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156111f2573d6000803e3d6000fd5b600060208083528351808285015260005b818110156114ed578581018301518582016040015282016114d1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109b557600080fd5b6000806040838503121561153657600080fd5b82356115418161150e565b946020939093013593505050565b60008060006060848603121561156457600080fd5b833561156f8161150e565b9250602084013561157f8161150e565b929592945050506040919091013590565b6000602082840312156115a257600080fd5b813561120f8161150e565b803563ffffffff811681146115c157600080fd5b919050565b600080604083850312156115d957600080fd5b6115e2836115ad565b91506115f0602084016115ad565b90509250929050565b6000806040838503121561160c57600080fd5b82356116178161150e565b915060208301356116278161150e565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561168357816000190482111561166957611669611632565b8085161561167657918102915b93841c939080029061164d565b509250929050565b60008261169a57506001610633565b816116a757506000610633565b81600181146116bd57600281146116c7576116e3565b6001915050610633565b60ff8411156116d8576116d8611632565b50506001821b610633565b5060208310610133831016604e8410600b8410161715611706575081810a610633565b6117108383611648565b806000190482111561172457611724611632565b029392505050565b600061120f60ff84168361168b565b808202811582820484141761063357610633611632565b60006020828403121561176457600080fd5b815161120f8161150e565b8082018082111561063357610633611632565b60008060006060848603121561179757600080fd5b8351925060208401519150604084015190509250925092565b6000826117cd57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561063357610633611632565b63ffffffff82811682821603908082111561180257611802611632565b5092915050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561186f5784516001600160a01b03168352938301939183019160010161184a565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f9e6900dd48a2e0f5ce4539dd595473971a8397624699c542173194b981816d564736f6c63430008130033

Deployed Bytecode Sourcemap

3162:9381:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5123:91;;;;;;;;;;-1:-1:-1;5201:5:0;;;;;;;;;;;;-1:-1:-1;;;5201:5:0;;;;5123:91;;;;;;;:::i;:::-;;;;;;;;6395:226;;;;;;;;;;-1:-1:-1;6395:226:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6395:226:0;1023:187:1;5424:99:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;5424:99:0;1215:177:1;4210:49:0;;;;;;;;;;;;;;;;5908:295;;;;;;;;;;-1:-1:-1;5908:295:0;;;;;:::i;:::-;;:::i;4146:17::-;;;;;;;;;;-1:-1:-1;4146:17:0;;;;-1:-1:-1;;;;;4146:17:0;;;;;;-1:-1:-1;;;;;2022:32:1;;;2004:51;;1992:2;1977:18;4146:17:0;1858:203:1;5325:91:0;;;;;;;;;;-1:-1:-1;5325:91:0;;3237:2;2208:36:1;;2196:2;2181:18;5325:91:0;2066:184:1;3693:28:0;;;;;;;;;;-1:-1:-1;3693:28:0;;;;-1:-1:-1;;;3693:28:0;;;;;;;;;2429:10:1;2417:23;;;2399:42;;2387:2;2372:18;3693:28:0;2255:192:1;3547:26:0;;;;;;;;;;-1:-1:-1;3547:26:0;;;;-1:-1:-1;;;3547:26:0;;;;;;3657:29;;;;;;;;;;-1:-1:-1;3657:29:0;;;;-1:-1:-1;;;3657:29:0;;;;;;4042:60;;;;;;;;;;;;;;;;3801:42;;;;;;;;;;-1:-1:-1;3801:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3580:30;;;;;;;;;;-1:-1:-1;3580:30:0;;;;-1:-1:-1;;;3580:30:0;;;;;;4170:31;;;;;;;;;;-1:-1:-1;4170:31:0;;;;-1:-1:-1;;;4170:31:0;;;;;;5531:143;;;;;;;;;;-1:-1:-1;5531:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5648:18:0;5621:7;5648:18;;;:9;:18;;;;;;;5531:143;7995:310;;;;;;;;;;;;;:::i;:::-;;997:103;;;;;;;;;;;;;:::i;8350:165::-;;;;;;;;;;;;;:::i;3979:56::-;;;;;;;;;;;;;;;;3619:29;;;;;;;;;;-1:-1:-1;3619:29:0;;;;-1:-1:-1;;;3619:29:0;;;;;;3759:33;;;;;;;;;;-1:-1:-1;3759:33:0;;;;;;;;;;;762:87;;;;;;;;;;-1:-1:-1;808:7:0;835:6;-1:-1:-1;;;;;835:6:0;762:87;;5222:95;;;;;;;;;;-1:-1:-1;5302:7:0;;;;;;;;;;;;-1:-1:-1;;;5302:7:0;;;;5222:95;;5682:218;;;;;;;;;;-1:-1:-1;5682:218:0;;;;;:::i;:::-;;:::i;4266:55::-;;;;;;;;;;;;;;;;3513:27;;;;;;;;;;-1:-1:-1;3513:27:0;;;;-1:-1:-1;;;;;3513:27:0;;;8523:220;;;;;;;;;;-1:-1:-1;8523:220:0;;;;;:::i;:::-;;:::i;6211:176::-;;;;;;;;;;-1:-1:-1;6211:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;6352:18:0;;;6325:7;6352:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6211:176;1108:238;;;;;;;;;;-1:-1:-1;1108:238:0;;;;;:::i;:::-;;:::i;3730:22::-;;;;;;;;;;-1:-1:-1;3730:22:0;;;;;;;;6395:226;6503:4;290:10;6559:32;290:10;6575:7;6584:6;6559:8;:32::i;:::-;6609:4;6602:11;;;6395:226;;;;;:::o;5424:99::-;5476:7;3293:15;3237:2;3293;:15;:::i;:::-;3287:21;;:3;:21;:::i;:::-;5496:19;;5424:99;:::o;5908:295::-;6039:4;290:10;6097:38;6113:4;290:10;6128:6;6097:15;:38::i;:::-;6146:27;6156:4;6162:2;6166:6;6146:9;:27::i;:::-;-1:-1:-1;6191:4:0;;5908:295;-1:-1:-1;;;;5908:295:0:o;7995:310::-;721:13;:11;:13::i;:::-;8066:9:::1;;;;;;;;;-1:-1:-1::0;;;;;8066:9:0::1;-1:-1:-1::0;;;;;8066:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8048:49:0::1;;8120:4;8140:9;;;;;;;;;-1:-1:-1::0;;;;;8140:9:0::1;-1:-1:-1::0;;;;;8140:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8048:119;::::0;-1:-1:-1;;;;;;8048:119:0::1;::::0;;;;;;-1:-1:-1;;;;;5700:15:1;;;8048:119:0::1;::::0;::::1;5682:34:1::0;5752:15;;5732:18;;;5725:43;5617:18;;8048:119:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8043:2;:124:::0;;-1:-1:-1;;;;;;8043:124:0::1;-1:-1:-1::0;;;;;8043:124:0;;;::::1;::::0;;;::::1;::::0;;8204:4:::1;-1:-1:-1::0;5648:18:0;;;:9;:18;;;;;;8180:54:::1;::::0;8212:21:::1;8180:5;:54::i;:::-;8264:4;8247:21:::0;;-1:-1:-1;;;;;;;8247:21:0;;::::1;::::0;::::1;::::0;;;8279:11:::1;:18:::0;;;;::::1;::::0;;::::1;::::0;;7995:310::o;997:103::-;721:13;:11;:13::i;:::-;1062:30:::1;1089:1;1062:18;:30::i;:::-;997:103::o:0;8350:165::-;721:13;:11;:13::i;:::-;8402:11:::1;:19:::0;;-1:-1:-1;;;;8402:19:0::1;::::0;;-1:-1:-1;;8432:10:0::1;:30:::0;;;8473:14:::1;:34:::0;8350:165::o;5682:218::-;5786:4;290:10;5842:28;290:10;5859:2;5863:6;5842:9;:28::i;8523:220::-;721:13;:11;:13::i;:::-;3500:4:::1;8613:21;::::0;::::1;;::::0;::::1;::::0;:45:::1;;-1:-1:-1::0;3500:4:0::1;8638:20;::::0;::::1;;;8613:45;8605:70;;;::::0;-1:-1:-1;;;8605:70:0;;5981:2:1;8605:70:0::1;::::0;::::1;5963:21:1::0;6020:2;6000:18;;;5993:30;-1:-1:-1;;;6039:18:1;;;6032:42;6091:18;;8605:70:0::1;;;;;;;;;8686:8;:20:::0;;-1:-1:-1;;;;8717:18:0;-1:-1:-1;;;8686:20:0::1;::::0;;::::1;;-1:-1:-1::0;;;;8717:18:0;;-1:-1:-1;;;8717:18:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;8523:220::o;1108:238::-;721:13;:11;:13::i;:::-;-1:-1:-1;;;;;1211:22:0;::::1;1189:110;;;::::0;-1:-1:-1;;;1189:110:0;;6322:2:1;1189:110:0::1;::::0;::::1;6304:21:1::0;6361:2;6341:18;;;6334:30;6400:34;6380:18;;;6373:62;-1:-1:-1;;;6451:18:1;;;6444:36;6497:19;;1189:110:0::1;6120:402:1::0;1189:110:0::1;1310:28;1329:8;1310:18;:28::i;:::-;1108:238:::0;:::o;6629:380::-;-1:-1:-1;;;;;6765:19:0;;6757:68;;;;-1:-1:-1;;;6757:68:0;;6729:2:1;6757:68:0;;;6711:21:1;6768:2;6748:18;;;6741:30;6807:34;6787:18;;;6780:62;-1:-1:-1;;;6858:18:1;;;6851:34;6902:19;;6757:68:0;6527:400:1;6757:68:0;-1:-1:-1;;;;;6844:21:0;;6836:68;;;;-1:-1:-1;;;6836:68:0;;7134:2:1;6836:68:0;;;7116:21:1;7173:2;7153:18;;;7146:30;7212:34;7192:18;;;7185:62;-1:-1:-1;;;7263:18:1;;;7256:32;7305:19;;6836:68:0;6932:398:1;6836:68:0;-1:-1:-1;;;;;6917:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6969:32;;1361:25:1;;;6969:32:0;;1334:18:1;6969:32:0;;;;;;;6629:380;;;:::o;7017:502::-;-1:-1:-1;;;;;6352:18:0;;;7152:24;6352:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;7219:37:0;;7215:297;;7319:6;7299:16;:26;;7273:117;;;;-1:-1:-1;;;7273:117:0;;7537:2:1;7273:117:0;;;7519:21:1;7576:2;7556:18;;;7549:30;7615:31;7595:18;;;7588:59;7664:18;;7273:117:0;7335:353:1;7273:117:0;7434:51;7443:5;7450:7;7478:6;7459:16;:25;7434:8;:51::i;:::-;7141:378;7017:502;;;:::o;8751:1487::-;-1:-1:-1;;;;;8840:18:0;;8832:68;;;;-1:-1:-1;;;8832:68:0;;7895:2:1;8832:68:0;;;7877:21:1;7934:2;7914:18;;;7907:30;7973:34;7953:18;;;7946:62;-1:-1:-1;;;8024:18:1;;;8017:35;8069:19;;8832:68:0;7693:401:1;8832:68:0;-1:-1:-1;;;;;8919:18:0;;8911:66;;;;-1:-1:-1;;;8911:66:0;;8301:2:1;8911:66:0;;;8283:21:1;8340:2;8320:18;;;8313:30;8379:34;8359:18;;;8352:62;-1:-1:-1;;;8430:18:1;;;8423:33;8473:19;;8911:66:0;8099:399:1;8911:66:0;9003:1;8996:4;:8;8988:62;;;;-1:-1:-1;;;8988:62:0;;8705:2:1;8988:62:0;;;8687:21:1;8744:2;8724:18;;;8717:30;8783:34;8763:18;;;8756:62;-1:-1:-1;;;8834:18:1;;;8827:39;8883:19;;8988:62:0;8503:405:1;8988:62:0;808:7;835:6;-1:-1:-1;;;;;9067:15:0;;;835:6;;9067:15;;:34;;-1:-1:-1;808:7:0;835:6;-1:-1:-1;;;;;9086:15:0;;;835:6;;9086:15;9067:34;:59;;;-1:-1:-1;;;;;;9105:21:0;;9121:4;9105:21;9067:59;9063:145;;;9143:32;9158:4;9164;9170;9143:14;:32::i;:::-;8751:1487;;;:::o;9063:145::-;9228:14;;-1:-1:-1;;;9228:14:0;;;;9220:46;;;;-1:-1:-1;;;9220:46:0;;9115:2:1;9220:46:0;;;9097:21:1;9154:2;9134:18;;;9127:30;-1:-1:-1;;;9173:18:1;;;9166:49;9232:18;;9220:46:0;8913:343:1;9220:46:0;9329:2;;9277:16;;-1:-1:-1;;;;;9329:2:0;;;9321:10;;;;;;9356;;;9379:49;;;;9406:10;:8;:10::i;:::-;9444:5;9440:277;;;-1:-1:-1;;;;;9471:16:0;;;;;;:10;:16;;;;;;;;9466:91;;9532:8;;9519:22;;9526:4;;-1:-1:-1;;;9532:8:0;;;;9519:6;:22::i;:::-;9508:33;;9466:91;9440:277;;;-1:-1:-1;;;;;9594:16:0;;;;;;:10;:16;;;;;;;;9589:117;;9655:9;;9642:48;;9649:4;;-1:-1:-1;;;9655:9:0;;;;:34;;9682:7;;-1:-1:-1;;;9682:7:0;;;;9655:34;;;9667:12;;;;;;;9655:34;9642:48;;:6;:48::i;:::-;9631:59;;9589:117;9770:8;9762:4;:16;;9754:47;;;;-1:-1:-1;;;9754:47:0;;9463:2:1;9754:47:0;;;9445:21:1;9502:2;9482:18;;;9475:30;-1:-1:-1;;;9521:18:1;;;9514:48;9579:18;;9754:47:0;9261:342:1;9754:47:0;9860:11;;9816:16;;;;;-1:-1:-1;;;9860:11:0;;;;9856:286;;;9904:10;;9896:4;:18;;9888:45;;;;-1:-1:-1;;;9888:45:0;;9810:2:1;9888:45:0;;;9792:21:1;9849:2;9829:18;;;9822:30;-1:-1:-1;;;9868:18:1;;;9861:44;9922:18;;9888:45:0;9608:338:1;9888:45:0;9960:2;;-1:-1:-1;;;;;9952:10:0;;;9960:2;;9952:10;9948:183;;10039:14;;-1:-1:-1;;;;;10013:15:0;;;;;;:9;:15;;;;;;:22;;10031:4;;10013:22;:::i;:::-;:40;;9983:132;;;;-1:-1:-1;;;9983:132:0;;10283:2:1;9983:132:0;;;10265:21:1;10322:2;10302:18;;;10295:30;-1:-1:-1;;;10341:18:1;;;10334:48;10399:18;;9983:132:0;10081:342:1;9983:132:0;10154:31;10164:4;10170;10176:8;10154:9;:31::i;:::-;10198:32;10213:4;10219;10225;10198:14;:32::i;:::-;8821:1417;;;8751:1487;;;:::o;857:132::-;808:7;835:6;-1:-1:-1;;;;;835:6:0;290:10;921:23;913:68;;;;-1:-1:-1;;;913:68:0;;10630:2:1;913:68:0;;;10612:21:1;;;10649:18;;;10642:30;10708:34;10688:18;;;10681:62;10760:18;;913:68:0;10428:356:1;12206:334:0;12308:9;;12276:52;;12293:4;;-1:-1:-1;;;;;12308:9:0;12320:7;12276:8;:52::i;:::-;12341:9;;:191;;-1:-1:-1;;;12341:191:0;;12407:4;12341:191;;;11130:34:1;11180:18;;;11173:34;;;12341:9:0;11223:18:1;;;11216:34;;;11266:18;;;11259:34;;;11309:19;;;11302:44;12506:15:0;11362:19:1;;;11355:35;-1:-1:-1;;;;;12341:9:0;;;;:25;;12374:9;;11064:19:1;;12341:191:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12206:334;;:::o;1354:191::-;1428:16;1447:6;;-1:-1:-1;;;;;1464:17:0;;;-1:-1:-1;;;;;;1464:17:0;;;;;;1497:40;;1447:6;;;;;;;1497:40;;1428:16;1497:40;1417:128;1354:191;:::o;7527:460::-;-1:-1:-1;;;;;7677:15:0;;7655:19;7677:15;;;:9;:15;;;;;;7725:21;;;;7703:109;;;;-1:-1:-1;;;7703:109:0;;11914:2:1;7703:109:0;;;11896:21:1;11953:2;11933:18;;;11926:30;11992:34;11972:18;;;11965:62;-1:-1:-1;;;12043:18:1;;;12036:36;12089:19;;7703:109:0;11712:402:1;7703:109:0;-1:-1:-1;;;;;7848:15:0;;;;;;;:9;:15;;;;;;7866:20;;;7848:38;;7901:13;;;;;;;;;;:23;;;;;;7953:26;;;;;;7880:6;1361:25:1;;1349:2;1334:18;;1215:177;7953:26:0;;;;;;;;7644:343;7527:460;;;:::o;10246:502::-;10327:4;10285:21;5648:18;;;:9;:18;;;;;;10377:9;;10404:8;;10360:26;;;;;10404:8;;10403:9;:24;;;;-1:-1:-1;10416:11:0;;-1:-1:-1;;;10416:11:0;;;;10403:24;10399:342;;;10464:9;;10448:13;:25;10444:56;;;10491:9;;10475:25;;10444:56;10519:8;10515:45;;;10529:31;10546:13;10529:16;:31::i;:::-;10597:21;10680:34;10692:21;10680:11;:34::i;10399:342::-;10274:474;;10246:502::o;4330:162::-;4427:7;3453:5;4455:17;4464:8;4455:6;:17;:::i;:::-;4454:30;;;;:::i;:::-;4447:37;4330:162;-1:-1:-1;;;4330:162:0:o;10756:459::-;10836:15;10854:18;10867:4;11314:12;;-1:-1:-1;;;;;11306:20:0;;;11314:12;;11306:20;;11223:111;10854:18;10836:36;;10887:10;10883:325;;;10914:22;10939:11;10946:4;10939;:11;:::i;:::-;10914:36;;11052:10;:34;;11082:4;11052:34;;;11065:14;11052:34;11018:12;;-1:-1:-1;;;;;11018:12:0;11008:23;;;;:9;:23;;;;;;:79;;;;:::i;:::-;10975:12;;-1:-1:-1;;;;;10975:12:0;10965:23;;;;:9;:23;;;;;:122;-1:-1:-1;;;;;10756:459:0:o;10883:325::-;11145:8;;11141:55;;11155:41;11170:4;11184;11191;11155:14;:41::i;11342:744::-;4567:8;:15;;-1:-1:-1;;4567:15:0;4578:4;4567:15;;;11457:4:::1;::::0;4567:8;;11430:32:::1;::::0;11437:7;;11446:15:::1;::::0;11457:4:::1;;3453:5;11446:15;:::i;11430:32::-;11413:49:::0;-1:-1:-1;11473:14:0::1;11490:16;11413:49:::0;11490:7;:16:::1;:::i;:::-;11600;::::0;;11614:1:::1;11600:16:::0;;;;;::::1;::::0;;11473:33;;-1:-1:-1;11542:21:0::1;::::0;11517:22:::1;::::0;11600:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11600:16:0::1;11576:40;;11645:4;11627;11632:1;11627:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11627:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11671:9:::1;::::0;:16:::1;::::0;;-1:-1:-1;;;11671:16:0;;;;:9;;;::::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;11627:7;;11671:16;;;;;:9;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11661:4;11666:1;11661:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11661:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;11730:9:::1;::::0;11698:52:::1;::::0;11715:4:::1;::::0;11730:9:::1;11742:7:::0;11698:8:::1;:52::i;:::-;11761:9;::::0;:185:::1;::::0;-1:-1:-1;;;11761:185:0;;-1:-1:-1;;;;;11761:9:0;;::::1;::::0;:60:::1;::::0;:185:::1;::::0;11836:6;;11761:9:::1;::::0;11873:4;;11900::::1;::::0;11920:15:::1;::::0;11761:185:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11957:15;11999:14;11975:21;:38;;;;:::i;:::-;11957:56:::0;-1:-1:-1;12030:10:0;;12026:52:::1;;12072:4;::::0;12042:36:::1;::::0;12048:6;;12056:21:::1;::::0;12063:7;;12072:4:::1;;12056:6;:21::i;:::-;12042:5;:36::i;:::-;-1:-1:-1::0;;4605:8:0;:16;;-1:-1:-1;;4605:16:0;;;-1:-1:-1;;;;11342:744:0:o;12094:104::-;12159:12;;12151:39;;-1:-1:-1;;;;;12159:12:0;;;;12151:39;;;;;12182:7;;12159:12;12151:39;12159:12;12151:39;12182:7;12159:12;12151:39;;;;;;;;;;;;;;;;;;;14:548:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2452:247::-;2511:6;2564:2;2552:9;2543:7;2539:23;2535:32;2532:52;;;2580:1;2577;2570:12;2532:52;2619:9;2606:23;2638:31;2663:5;2638:31;:::i;2704:163::-;2771:20;;2831:10;2820:22;;2810:33;;2800:61;;2857:1;2854;2847:12;2800:61;2704:163;;;:::o;2872:256::-;2938:6;2946;2999:2;2987:9;2978:7;2974:23;2970:32;2967:52;;;3015:1;3012;3005:12;2967:52;3038:28;3056:9;3038:28;:::i;:::-;3028:38;;3085:37;3118:2;3107:9;3103:18;3085:37;:::i;:::-;3075:47;;2872:256;;;;;:::o;3133:388::-;3201:6;3209;3262:2;3250:9;3241:7;3237:23;3233:32;3230:52;;;3278:1;3275;3268:12;3230:52;3317:9;3304:23;3336:31;3361:5;3336:31;:::i;:::-;3386:5;-1:-1:-1;3443:2:1;3428:18;;3415:32;3456:33;3415:32;3456:33;:::i;:::-;3508:7;3498:17;;;3133:388;;;;;:::o;3526:127::-;3587:10;3582:3;3578:20;3575:1;3568:31;3618:4;3615:1;3608:15;3642:4;3639:1;3632:15;3658:422;3747:1;3790:5;3747:1;3804:270;3825:7;3815:8;3812:21;3804:270;;;3884:4;3880:1;3876:6;3872:17;3866:4;3863:27;3860:53;;;3893:18;;:::i;:::-;3943:7;3933:8;3929:22;3926:55;;;3963:16;;;;3926:55;4042:22;;;;4002:15;;;;3804:270;;;3808:3;3658:422;;;;;:::o;4085:806::-;4134:5;4164:8;4154:80;;-1:-1:-1;4205:1:1;4219:5;;4154:80;4253:4;4243:76;;-1:-1:-1;4290:1:1;4304:5;;4243:76;4335:4;4353:1;4348:59;;;;4421:1;4416:130;;;;4328:218;;4348:59;4378:1;4369:10;;4392:5;;;4416:130;4453:3;4443:8;4440:17;4437:43;;;4460:18;;:::i;:::-;-1:-1:-1;;4516:1:1;4502:16;;4531:5;;4328:218;;4630:2;4620:8;4617:16;4611:3;4605:4;4602:13;4598:36;4592:2;4582:8;4579:16;4574:2;4568:4;4565:12;4561:35;4558:77;4555:159;;;-1:-1:-1;4667:19:1;;;4699:5;;4555:159;4746:34;4771:8;4765:4;4746:34;:::i;:::-;4816:6;4812:1;4808:6;4804:19;4795:7;4792:32;4789:58;;;4827:18;;:::i;:::-;4865:20;;4085:806;-1:-1:-1;;;4085:806:1:o;4896:140::-;4954:5;4983:47;5024:4;5014:8;5010:19;5004:4;4983:47;:::i;5041:168::-;5114:9;;;5145;;5162:15;;;5156:22;;5142:37;5132:71;;5183:18;;:::i;5214:251::-;5284:6;5337:2;5325:9;5316:7;5312:23;5308:32;5305:52;;;5353:1;5350;5343:12;5305:52;5385:9;5379:16;5404:31;5429:5;5404:31;:::i;9951:125::-;10016:9;;;10037:10;;;10034:36;;;10050:18;;:::i;11401:306::-;11489:6;11497;11505;11558:2;11546:9;11537:7;11533:23;11529:32;11526:52;;;11574:1;11571;11564:12;11526:52;11603:9;11597:16;11587:26;;11653:2;11642:9;11638:18;11632:25;11622:35;;11697:2;11686:9;11682:18;11676:25;11666:35;;11401:306;;;;;:::o;12119:217::-;12159:1;12185;12175:132;;12229:10;12224:3;12220:20;12217:1;12210:31;12264:4;12261:1;12254:15;12292:4;12289:1;12282:15;12175:132;-1:-1:-1;12321:9:1;;12119:217::o;12341:128::-;12408:9;;;12429:11;;;12426:37;;;12443:18;;:::i;12474:175::-;12542:10;12585;;;12573;;;12569:27;;12608:12;;;12605:38;;;12623:18;;:::i;:::-;12605:38;12474:175;;;;:::o;12786:127::-;12847:10;12842:3;12838:20;12835:1;12828:31;12878:4;12875:1;12868:15;12902:4;12899:1;12892:15;12918:980;13180:4;13228:3;13217:9;13213:19;13259:6;13248:9;13241:25;13285:2;13323:6;13318:2;13307:9;13303:18;13296:34;13366:3;13361:2;13350:9;13346:18;13339:31;13390:6;13425;13419:13;13456:6;13448;13441:22;13494:3;13483:9;13479:19;13472:26;;13533:2;13525:6;13521:15;13507:29;;13554:1;13564:195;13578:6;13575:1;13572:13;13564:195;;;13643:13;;-1:-1:-1;;;;;13639:39:1;13627:52;;13734:15;;;;13699:12;;;;13675:1;13593:9;13564:195;;;-1:-1:-1;;;;;;;13815:32:1;;;;13810:2;13795:18;;13788:60;-1:-1:-1;;;13879:3:1;13864:19;13857:35;13776:3;12918:980;-1:-1:-1;;;12918:980:1:o

Swarm Source

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