ETH Price: $3,485.95 (+1.96%)
Gas: 12 Gwei

Token

FU (FU)
 

Overview

Max Total Supply

888,888,888 FU

Holders

114

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,970,310.601205142047869081 FU

Value
$0.00
0x721b0c63db9273ed0af900eb2db439d6b68a0767
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:
ERC20FU888

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-01
*/

// SPDX-License-Identifier: UNLICENSED

/*
https://www.fu-888.com/
https://t.me/FUPORTAL
https://twitter.com/fufu56883161914
*/

pragma solidity 0.8.15;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

abstract contract Auth {
    address public owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function renounceOwnership() external onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(owner);
    }
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract ERC20FU888 is ERC20, Auth {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "FU";
    string public constant symbol = "FU";
    uint8 public constant decimals = 18;

    uint256 public constant totalSupply = 888_888_888 * 10**decimals;

    uint256 public _maxWalletToken = totalSupply / 100;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isWhitelist;
    mapping (address => bool) public isWalletLimitExempt;

    uint256 public marketingFee = 6;
    uint256 public operationsFee = 4;
    uint256 public totalFee = marketingFee + operationsFee;
    uint256 public constant feeDenominator = 100;
    
    uint256 buyMultiplier = 200;
    uint256 sellMultiplier = 200;
    uint256 transferMultiplier = 999;

    address public marketingFeeReceiver;
    address public operationsFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool public tradingOpen = false;

    bool public swapEnabled = true;
    uint256 public swapThreshold = totalSupply / 1000;
    
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = 0x19086B150bD299B11B9C7944A5c91f97F11A9480;
        operationsFeeReceiver = msg.sender;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingFeeReceiver] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[marketingFeeReceiver] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[DEAD] = true;

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

    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 approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

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

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner {
        require(maxWallPercent_base1000 >= 10,"Cannot set max wallet less than 1%");
        _maxWalletToken = (totalSupply * maxWallPercent_base1000 ) / 1000;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!tradingOpen && !isFeeExempt[sender]){
            require(isWhitelist[sender] || isWhitelist[recipient],"trading not open yet");
        }

        if (!isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }

        if(shouldSwapBack()){ swapBack(); }

        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

        balanceOf[recipient] = balanceOf[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");
        balanceOf[recipient] = balanceOf[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        if(feeAmount > 0){
            balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && balanceOf[address(this)] >= swapThreshold;
    }

    function manualSwap() external {
        payable(operationsFeeReceiver).transfer(address(this).balance);
    }

    function openTrading() external onlyOwner {
        tradingOpen = true;
    }

    function swapBack() internal swapping {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            swapThreshold,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 amountETHMarketing = (amountETH * marketingFee) / totalFee;
        uint256 amountETHDevelopment = (amountETH * operationsFee) / totalFee;

        payable(marketingFeeReceiver).transfer(amountETHMarketing);
        payable(operationsFeeReceiver).transfer(amountETHDevelopment);
    }

    function manage_whitelist(address[] calldata addresses, bool status) external onlyOwner {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isWhitelist[addresses[i]] = status;
        }
    }

    function update_fees() view internal {
        require(totalFee.mul(buyMultiplier).div(100) <= 10, "Buy tax cannot be more than 10%");
        require(totalFee.mul(sellMultiplier).div(100) <= 10, "Sell tax cannot be more than 10%");
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;

        update_fees();
    }

    function setFees_base100(uint256 _marketingFee, uint256 _operationsFee) external onlyOwner {
        marketingFee = _marketingFee;
        operationsFee = _operationsFee;
        totalFee = _marketingFee + _operationsFee;
        
        update_fees();
    }

    function setFeeReceivers(address _marketingFeeReceiver, address _operationsFeeReceiver ) external onlyOwner {
        marketingFeeReceiver = _marketingFeeReceiver;
        operationsFeeReceiver = _operationsFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _denominator) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = totalSupply / _denominator;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }
}

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":false,"internalType":"address","name":"owner","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":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","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":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_whitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"operationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_operationsFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_operationsFee","type":"uint256"}],"name":"setFees_base100","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","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"},{"stateMutability":"payable","type":"receive"}]

60c06040526064620000146012600a620004c7565b62000024906334fb5e38620004df565b62000030919062000501565b60015560066007819055600460088190556200004c9162000524565b60095560c8600a818155600b919091556103e7600c55600f805461ffff60a01b1916600160a81b1790556103e8906200008890601290620004c7565b62000098906334fb5e38620004df565b620000a4919062000501565b601055348015620000b457600080fd5b5060008054336001600160a01b031991821617909155600f8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000125573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014b91906200053f565b6001600160a01b03908116608052600f546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200019c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c291906200053f565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000214573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023a91906200053f565b6001600160a01b0390811660a052306000818152600360209081526040808320600f548616845282528083206000199055600d80547319086b150bd299b11b9c7944a5c91f97f11a94806001600160a01b0319918216178255600e80543392168217905580855260048452828520805460ff199081166001908117909255835489168752848720805482168317905591865260069094528285208054821685179055905490951683528083208054861683179055928252918120805484168317905561dead90527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054909216179055620003386012600a620004c7565b62000348906334fb5e38620004df565b33600081815260026020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200038b6012600a620004c7565b6200039b906334fb5e38620004df565b60405190815260200160405180910390a36200056a565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000409578160001904821115620003ed57620003ed620003b2565b80851615620003fb57918102915b93841c9390800290620003cd565b509250929050565b6000826200042257506001620004c1565b816200043157506000620004c1565b81600181146200044a5760028114620004555762000475565b6001915050620004c1565b60ff841115620004695762000469620003b2565b50506001821b620004c1565b5060208310610133831016604e8410600b84101617156200049a575081810a620004c1565b620004a68383620003c8565b8060001904821115620004bd57620004bd620003b2565b0290505b92915050565b6000620004d860ff84168362000411565b9392505050565b6000816000190483118215151615620004fc57620004fc620003b2565b500290565b6000826200051f57634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156200053a576200053a620003b2565b500190565b6000602082840312156200055257600080fd5b81516001600160a01b0381168114620004d857600080fd5b60805160a051611c45620005ac600039600081816105c801528181610e9a01528181611273015281816114d8015261150c0152600061133d0152611c456000f3fe6080604052600436106102295760003560e01c80636ce46bc311610123578063a8aa1b31116100ab578063dd62ed3e1161006f578063dd62ed3e1461067f578063df20fd49146106c5578063e96fada2146106e5578063f887ea4014610705578063ffb54a991461072557600080fd5b8063a8aa1b31146105b6578063a9059cbb146105ea578063c683630d1461060a578063c867d60b1461063a578063c9567bf91461066a57600080fd5b806378109e54116100f257806378109e5414610542578063893d20e8146105585780638da5cb5b1461057657806395d89b41146102b8578063a4b45c001461059657600080fd5b80636ce46bc3146104bf5780636ddd1713146104df57806370a0823114610500578063715018a61461052d57600080fd5b80631df4ccfc116101b15780633f4218e0116101755780633f4218e01461042457806348a5df041461045457806351bc3c8514610474578063571ac8b0146104895780636b67c4df146104a957600080fd5b80631df4ccfc1461038357806323b872dd146103995780632b112e49146103b95780632f54bf6e146103ce578063313ce567146103fd57600080fd5b8063090896be116101f8578063090896be146102f357806309302dc614610309578063095ea7b314610329578063180b0d7e1461035957806318160ddd1461036e57600080fd5b806303382cbb146102355780630445b667146102725780630477e4761461029657806306fdde03146102b857600080fd5b3661023057005b600080fd5b34801561024157600080fd5b50600e54610255906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027e57600080fd5b5061028860105481565b604051908152602001610269565b3480156102a257600080fd5b506102b66102b13660046117af565b610746565b005b3480156102c457600080fd5b506102e660405180604001604052806002815260200161465560f01b81525081565b6040516102699190611833565b3480156102ff57600080fd5b5061028860085481565b34801561031557600080fd5b506102b6610324366004611888565b61084d565b34801561033557600080fd5b506103496103443660046118b8565b61090b565b6040519015158152602001610269565b34801561036557600080fd5b50610288606481565b34801561037a57600080fd5b50610288610978565b34801561038f57600080fd5b5061028860095481565b3480156103a557600080fd5b506103496103b43660046118e2565b610995565b3480156103c557600080fd5b50610288610a57565b3480156103da57600080fd5b506103496103e936600461191e565b6000546001600160a01b0391821691161490565b34801561040957600080fd5b50610412601281565b60405160ff9091168152602001610269565b34801561043057600080fd5b5061034961043f36600461191e565b60046020526000908152604090205460ff1681565b34801561046057600080fd5b506102b661046f366004611939565b610ade565b34801561048057600080fd5b506102b6610b2b565b34801561049557600080fd5b506103496104a436600461191e565b610b67565b3480156104b557600080fd5b5061028860075481565b3480156104cb57600080fd5b506102b66104da36600461195b565b610b75565b3480156104eb57600080fd5b50600f5461034990600160a81b900460ff1681565b34801561050c57600080fd5b5061028861051b36600461191e565b60026020526000908152604090205481565b34801561053957600080fd5b506102b6610bbb565b34801561054e57600080fd5b5061028860015481565b34801561056457600080fd5b506000546001600160a01b0316610255565b34801561058257600080fd5b50600054610255906001600160a01b031681565b3480156105a257600080fd5b506102b66105b1366004611987565b610c2a565b3480156105c257600080fd5b506102557f000000000000000000000000000000000000000000000000000000000000000081565b3480156105f657600080fd5b506103496106053660046118b8565b610c82565b34801561061657600080fd5b5061034961062536600461191e565b60056020526000908152604090205460ff1681565b34801561064657600080fd5b5061034961065536600461191e565b60066020526000908152604090205460ff1681565b34801561067657600080fd5b506102b6610c8f565b34801561068b57600080fd5b5061028861069a366004611987565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106d157600080fd5b506102b66106e03660046119ba565b610cce565b3480156106f157600080fd5b50600d54610255906001600160a01b031681565b34801561071157600080fd5b50600f54610255906001600160a01b031681565b34801561073157600080fd5b50600f5461034990600160a01b900460ff1681565b6000546001600160a01b031633146107795760405162461bcd60e51b8152600401610770906119d6565b60405180910390fd5b6101f582106107d85760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b6064820152608401610770565b60005b828110156108475781600560008686858181106107fa576107fa6119f6565b905060200201602081019061080f919061191e565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561084081611a22565b90506107db565b50505050565b6000546001600160a01b031633146108775760405162461bcd60e51b8152600401610770906119d6565b600a8110156108d35760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b6064820152608401610770565b6103e8816108e36012600a611b1f565b6108f1906334fb5e38611b2e565b6108fb9190611b2e565b6109059190611b4d565b60015550565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109669086815260200190565b60405180910390a35060015b92915050565b6109846012600a611b1f565b610992906334fb5e38611b2e565b81565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610a42576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600382528381203382529091529190912054610a1d918490610d3b565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610a4d848484610d75565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54909190610ab76012600a611b1f565b610ac5906334fb5e38611b2e565b610acf9190611b6f565b610ad99190611b6f565b905090565b6000546001600160a01b03163314610b085760405162461bcd60e51b8152600401610770906119d6565b60078290556008819055610b1c8183611b86565b600955610b276110a0565b5050565b600e546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610b64573d6000803e3d6000fd5b50565b60006109728260001961090b565b6000546001600160a01b03163314610b9f5760405162461bcd60e51b8152600401610770906119d6565b600b829055600a839055600c819055610bb66110a0565b505050565b6000546001600160a01b03163314610be55760405162461bcd60e51b8152600401610770906119d6565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610c545760405162461bcd60e51b8152600401610770906119d6565b600d80546001600160a01b039384166001600160a01b031991821617909155600e8054929093169116179055565b6000610a50338484610d75565b6000546001600160a01b03163314610cb95760405162461bcd60e51b8152600401610770906119d6565b600f805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610cf85760405162461bcd60e51b8152600401610770906119d6565b600f805460ff60a81b1916600160a81b8415150217905580610d1c6012600a611b1f565b610d2a906334fb5e38611b2e565b610d349190611b4d565b6010555050565b60008184841115610d5f5760405162461bcd60e51b81526004016107709190611833565b506000610d6c8486611b6f565b95945050505050565b60115460009060ff1615610d9557610d8e848484611180565b9050610a50565b600f54600160a01b900460ff16158015610dc857506001600160a01b03841660009081526004602052604090205460ff16155b15610e4f576001600160a01b03841660009081526005602052604090205460ff1680610e0c57506001600160a01b03831660009081526005602052604090205460ff165b610e4f5760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610770565b6001600160a01b03841660009081526006602052604090205460ff16158015610e9157506001600160a01b03831660009081526006602052604090205460ff16155b8015610ecf57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15610f49576001546001600160a01b038416600090815260026020526040902054610efb908490611b86565b1115610f495760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610770565b610f51611266565b15610f5e57610f5e6112d9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260029091529190912054610fb0918490610d3b565b6001600160a01b038516600090815260026020908152604080832093909355600490529081205460ff1680610ffd57506001600160a01b03841660009081526004602052604090205460ff165b6110115761100c8584866114b0565b611013565b825b6001600160a01b0385166000908152600260205260409020549091506110399082611607565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061108d9085815260200190565b60405180910390a3506001949350505050565b600a6110c460646110be600a5460095461166690919063ffffffff16565b906116e8565b11156111125760405162461bcd60e51b815260206004820152601f60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e20313025006044820152606401610770565b600a61113060646110be600b5460095461166690919063ffffffff16565b111561117e5760405162461bcd60e51b815260206004820181905260248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203130256044820152606401610770565b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526002909152918220546111d1918490610d3b565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546112009083611607565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112549086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906112a4575060115460ff16155b80156112b95750600f54600160a81b900460ff165b8015610ad957505060105430600090815260026020526040902054101590565b6011805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061131b5761131b6119f6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061136f5761136f6119f6565b6001600160a01b039283166020918202929092010152600f5460105460405163791ac94760e01b8152919092169163791ac947916113b99190600090869030904290600401611b9e565b600060405180830381600087803b1580156113d357600080fd5b505af11580156113e7573d6000803e3d6000fd5b5050600954600754479350600092506114009084611b2e565b61140a9190611b4d565b905060006009546008548461141f9190611b2e565b6114299190611b4d565b600d546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015611464573d6000803e3d6000fd5b50600e546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561149f573d6000803e3d6000fd5b50506011805460ff19169055505050565b60008215806114bf5750600954155b156114cb575081610a50565b600c546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169084160361150a5750600b54611548565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316036115485750600a545b6000611577611558606480611b2e565b6110be846115716009548a61166690919063ffffffff16565b90611666565b905080156115f357306000908152600260205260409020546115999082611607565b30600081815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115ea9085815260200190565b60405180910390a35b6115fd858261172a565b9695505050505050565b6000806116148385611b86565b905083811015610a505760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610770565b60008260000361167857506000610972565b60006116848385611b2e565b9050826116918583611b4d565b14610a505760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610770565b6000610a5083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061176c565b6000610a5083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d3b565b6000818361178d5760405162461bcd60e51b81526004016107709190611833565b506000610d6c8486611b4d565b803580151581146117aa57600080fd5b919050565b6000806000604084860312156117c457600080fd5b833567ffffffffffffffff808211156117dc57600080fd5b818601915086601f8301126117f057600080fd5b8135818111156117ff57600080fd5b8760208260051b850101111561181457600080fd5b60209283019550935061182a918601905061179a565b90509250925092565b600060208083528351808285015260005b8181101561186057858101830151858201604001528201611844565b81811115611872576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561189a57600080fd5b5035919050565b80356001600160a01b03811681146117aa57600080fd5b600080604083850312156118cb57600080fd5b6118d4836118a1565b946020939093013593505050565b6000806000606084860312156118f757600080fd5b611900846118a1565b925061190e602085016118a1565b9150604084013590509250925092565b60006020828403121561193057600080fd5b610a50826118a1565b6000806040838503121561194c57600080fd5b50508035926020909101359150565b60008060006060848603121561197057600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561199a57600080fd5b6119a3836118a1565b91506119b1602084016118a1565b90509250929050565b600080604083850312156119cd57600080fd5b6118d48361179a565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611a3457611a34611a0c565b5060010190565b600181815b80851115611a76578160001904821115611a5c57611a5c611a0c565b80851615611a6957918102915b93841c9390800290611a40565b509250929050565b600082611a8d57506001610972565b81611a9a57506000610972565b8160018114611ab05760028114611aba57611ad6565b6001915050610972565b60ff841115611acb57611acb611a0c565b50506001821b610972565b5060208310610133831016604e8410600b8410161715611af9575081810a610972565b611b038383611a3b565b8060001904821115611b1757611b17611a0c565b029392505050565b6000610a5060ff841683611a7e565b6000816000190483118215151615611b4857611b48611a0c565b500290565b600082611b6a57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015611b8157611b81611a0c565b500390565b60008219821115611b9957611b99611a0c565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bee5784516001600160a01b031683529383019391830191600101611bc9565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a401407481d4cc4c07c3d12bf627fd70870fa49e74a8d56af848974c732795ee64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106102295760003560e01c80636ce46bc311610123578063a8aa1b31116100ab578063dd62ed3e1161006f578063dd62ed3e1461067f578063df20fd49146106c5578063e96fada2146106e5578063f887ea4014610705578063ffb54a991461072557600080fd5b8063a8aa1b31146105b6578063a9059cbb146105ea578063c683630d1461060a578063c867d60b1461063a578063c9567bf91461066a57600080fd5b806378109e54116100f257806378109e5414610542578063893d20e8146105585780638da5cb5b1461057657806395d89b41146102b8578063a4b45c001461059657600080fd5b80636ce46bc3146104bf5780636ddd1713146104df57806370a0823114610500578063715018a61461052d57600080fd5b80631df4ccfc116101b15780633f4218e0116101755780633f4218e01461042457806348a5df041461045457806351bc3c8514610474578063571ac8b0146104895780636b67c4df146104a957600080fd5b80631df4ccfc1461038357806323b872dd146103995780632b112e49146103b95780632f54bf6e146103ce578063313ce567146103fd57600080fd5b8063090896be116101f8578063090896be146102f357806309302dc614610309578063095ea7b314610329578063180b0d7e1461035957806318160ddd1461036e57600080fd5b806303382cbb146102355780630445b667146102725780630477e4761461029657806306fdde03146102b857600080fd5b3661023057005b600080fd5b34801561024157600080fd5b50600e54610255906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027e57600080fd5b5061028860105481565b604051908152602001610269565b3480156102a257600080fd5b506102b66102b13660046117af565b610746565b005b3480156102c457600080fd5b506102e660405180604001604052806002815260200161465560f01b81525081565b6040516102699190611833565b3480156102ff57600080fd5b5061028860085481565b34801561031557600080fd5b506102b6610324366004611888565b61084d565b34801561033557600080fd5b506103496103443660046118b8565b61090b565b6040519015158152602001610269565b34801561036557600080fd5b50610288606481565b34801561037a57600080fd5b50610288610978565b34801561038f57600080fd5b5061028860095481565b3480156103a557600080fd5b506103496103b43660046118e2565b610995565b3480156103c557600080fd5b50610288610a57565b3480156103da57600080fd5b506103496103e936600461191e565b6000546001600160a01b0391821691161490565b34801561040957600080fd5b50610412601281565b60405160ff9091168152602001610269565b34801561043057600080fd5b5061034961043f36600461191e565b60046020526000908152604090205460ff1681565b34801561046057600080fd5b506102b661046f366004611939565b610ade565b34801561048057600080fd5b506102b6610b2b565b34801561049557600080fd5b506103496104a436600461191e565b610b67565b3480156104b557600080fd5b5061028860075481565b3480156104cb57600080fd5b506102b66104da36600461195b565b610b75565b3480156104eb57600080fd5b50600f5461034990600160a81b900460ff1681565b34801561050c57600080fd5b5061028861051b36600461191e565b60026020526000908152604090205481565b34801561053957600080fd5b506102b6610bbb565b34801561054e57600080fd5b5061028860015481565b34801561056457600080fd5b506000546001600160a01b0316610255565b34801561058257600080fd5b50600054610255906001600160a01b031681565b3480156105a257600080fd5b506102b66105b1366004611987565b610c2a565b3480156105c257600080fd5b506102557f000000000000000000000000408b72b69c6454ea2acea6c200f4e66c3910c12e81565b3480156105f657600080fd5b506103496106053660046118b8565b610c82565b34801561061657600080fd5b5061034961062536600461191e565b60056020526000908152604090205460ff1681565b34801561064657600080fd5b5061034961065536600461191e565b60066020526000908152604090205460ff1681565b34801561067657600080fd5b506102b6610c8f565b34801561068b57600080fd5b5061028861069a366004611987565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106d157600080fd5b506102b66106e03660046119ba565b610cce565b3480156106f157600080fd5b50600d54610255906001600160a01b031681565b34801561071157600080fd5b50600f54610255906001600160a01b031681565b34801561073157600080fd5b50600f5461034990600160a01b900460ff1681565b6000546001600160a01b031633146107795760405162461bcd60e51b8152600401610770906119d6565b60405180910390fd5b6101f582106107d85760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b6064820152608401610770565b60005b828110156108475781600560008686858181106107fa576107fa6119f6565b905060200201602081019061080f919061191e565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561084081611a22565b90506107db565b50505050565b6000546001600160a01b031633146108775760405162461bcd60e51b8152600401610770906119d6565b600a8110156108d35760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b6064820152608401610770565b6103e8816108e36012600a611b1f565b6108f1906334fb5e38611b2e565b6108fb9190611b2e565b6109059190611b4d565b60015550565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109669086815260200190565b60405180910390a35060015b92915050565b6109846012600a611b1f565b610992906334fb5e38611b2e565b81565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610a42576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600382528381203382529091529190912054610a1d918490610d3b565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610a4d848484610d75565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54909190610ab76012600a611b1f565b610ac5906334fb5e38611b2e565b610acf9190611b6f565b610ad99190611b6f565b905090565b6000546001600160a01b03163314610b085760405162461bcd60e51b8152600401610770906119d6565b60078290556008819055610b1c8183611b86565b600955610b276110a0565b5050565b600e546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610b64573d6000803e3d6000fd5b50565b60006109728260001961090b565b6000546001600160a01b03163314610b9f5760405162461bcd60e51b8152600401610770906119d6565b600b829055600a839055600c819055610bb66110a0565b505050565b6000546001600160a01b03163314610be55760405162461bcd60e51b8152600401610770906119d6565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610c545760405162461bcd60e51b8152600401610770906119d6565b600d80546001600160a01b039384166001600160a01b031991821617909155600e8054929093169116179055565b6000610a50338484610d75565b6000546001600160a01b03163314610cb95760405162461bcd60e51b8152600401610770906119d6565b600f805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610cf85760405162461bcd60e51b8152600401610770906119d6565b600f805460ff60a81b1916600160a81b8415150217905580610d1c6012600a611b1f565b610d2a906334fb5e38611b2e565b610d349190611b4d565b6010555050565b60008184841115610d5f5760405162461bcd60e51b81526004016107709190611833565b506000610d6c8486611b6f565b95945050505050565b60115460009060ff1615610d9557610d8e848484611180565b9050610a50565b600f54600160a01b900460ff16158015610dc857506001600160a01b03841660009081526004602052604090205460ff16155b15610e4f576001600160a01b03841660009081526005602052604090205460ff1680610e0c57506001600160a01b03831660009081526005602052604090205460ff165b610e4f5760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610770565b6001600160a01b03841660009081526006602052604090205460ff16158015610e9157506001600160a01b03831660009081526006602052604090205460ff16155b8015610ecf57507f000000000000000000000000408b72b69c6454ea2acea6c200f4e66c3910c12e6001600160a01b0316836001600160a01b031614155b15610f49576001546001600160a01b038416600090815260026020526040902054610efb908490611b86565b1115610f495760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610770565b610f51611266565b15610f5e57610f5e6112d9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260029091529190912054610fb0918490610d3b565b6001600160a01b038516600090815260026020908152604080832093909355600490529081205460ff1680610ffd57506001600160a01b03841660009081526004602052604090205460ff165b6110115761100c8584866114b0565b611013565b825b6001600160a01b0385166000908152600260205260409020549091506110399082611607565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061108d9085815260200190565b60405180910390a3506001949350505050565b600a6110c460646110be600a5460095461166690919063ffffffff16565b906116e8565b11156111125760405162461bcd60e51b815260206004820152601f60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e20313025006044820152606401610770565b600a61113060646110be600b5460095461166690919063ffffffff16565b111561117e5760405162461bcd60e51b815260206004820181905260248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203130256044820152606401610770565b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526002909152918220546111d1918490610d3b565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546112009083611607565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112549086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f000000000000000000000000408b72b69c6454ea2acea6c200f4e66c3910c12e16148015906112a4575060115460ff16155b80156112b95750600f54600160a81b900460ff165b8015610ad957505060105430600090815260026020526040902054101590565b6011805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061131b5761131b6119f6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061136f5761136f6119f6565b6001600160a01b039283166020918202929092010152600f5460105460405163791ac94760e01b8152919092169163791ac947916113b99190600090869030904290600401611b9e565b600060405180830381600087803b1580156113d357600080fd5b505af11580156113e7573d6000803e3d6000fd5b5050600954600754479350600092506114009084611b2e565b61140a9190611b4d565b905060006009546008548461141f9190611b2e565b6114299190611b4d565b600d546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015611464573d6000803e3d6000fd5b50600e546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561149f573d6000803e3d6000fd5b50506011805460ff19169055505050565b60008215806114bf5750600954155b156114cb575081610a50565b600c546001600160a01b037f000000000000000000000000408b72b69c6454ea2acea6c200f4e66c3910c12e81169084160361150a5750600b54611548565b7f000000000000000000000000408b72b69c6454ea2acea6c200f4e66c3910c12e6001600160a01b0316856001600160a01b0316036115485750600a545b6000611577611558606480611b2e565b6110be846115716009548a61166690919063ffffffff16565b90611666565b905080156115f357306000908152600260205260409020546115999082611607565b30600081815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115ea9085815260200190565b60405180910390a35b6115fd858261172a565b9695505050505050565b6000806116148385611b86565b905083811015610a505760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610770565b60008260000361167857506000610972565b60006116848385611b2e565b9050826116918583611b4d565b14610a505760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610770565b6000610a5083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061176c565b6000610a5083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d3b565b6000818361178d5760405162461bcd60e51b81526004016107709190611833565b506000610d6c8486611b4d565b803580151581146117aa57600080fd5b919050565b6000806000604084860312156117c457600080fd5b833567ffffffffffffffff808211156117dc57600080fd5b818601915086601f8301126117f057600080fd5b8135818111156117ff57600080fd5b8760208260051b850101111561181457600080fd5b60209283019550935061182a918601905061179a565b90509250925092565b600060208083528351808285015260005b8181101561186057858101830151858201604001528201611844565b81811115611872576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561189a57600080fd5b5035919050565b80356001600160a01b03811681146117aa57600080fd5b600080604083850312156118cb57600080fd5b6118d4836118a1565b946020939093013593505050565b6000806000606084860312156118f757600080fd5b611900846118a1565b925061190e602085016118a1565b9150604084013590509250925092565b60006020828403121561193057600080fd5b610a50826118a1565b6000806040838503121561194c57600080fd5b50508035926020909101359150565b60008060006060848603121561197057600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561199a57600080fd5b6119a3836118a1565b91506119b1602084016118a1565b90509250929050565b600080604083850312156119cd57600080fd5b6118d48361179a565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611a3457611a34611a0c565b5060010190565b600181815b80851115611a76578160001904821115611a5c57611a5c611a0c565b80851615611a6957918102915b93841c9390800290611a40565b509250929050565b600082611a8d57506001610972565b81611a9a57506000610972565b8160018114611ab05760028114611aba57611ad6565b6001915050610972565b60ff841115611acb57611acb611a0c565b50506001821b610972565b5060208310610133831016604e8410600b8410161715611af9575081810a610972565b611b038383611a3b565b8060001904821115611b1757611b17611a0c565b029392505050565b6000610a5060ff841683611a7e565b6000816000190483118215151615611b4857611b48611a0c565b500290565b600082611b6a57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015611b8157611b81611a0c565b500390565b60008219821115611b9957611b99611a0c565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bee5784516001600160a01b031683529383019391830191600101611bc9565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a401407481d4cc4c07c3d12bf627fd70870fa49e74a8d56af848974c732795ee64736f6c634300080f0033

Deployed Bytecode Sourcemap

2965:8557:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4111:36;;;;;;;;;;-1:-1:-1;4111:36:0;;;;-1:-1:-1;;;;;4111:36:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;4111:36:0;;;;;;;;4302:49;;;;;;;;;;;;;;;;;;;368:25:1;;;356:2;341:18;4302:49:0;222:177:1;9903:294:0;;;;;;;;;;-1:-1:-1;9903:294:0;;;;;:::i;:::-;;:::i;:::-;;3219:34;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3219:34:0;;;;;;;;;;;;:::i;3802:32::-;;;;;;;;;;;;;;;;6445:260;;;;;;;;;;-1:-1:-1;6445:260:0;;;;;:::i;:::-;;:::i;5549:216::-;;;;;;;;;;-1:-1:-1;5549:216:0;;;;;:::i;:::-;;:::i;:::-;;;2652:14:1;;2645:22;2627:41;;2615:2;2600:18;5549:216:0;2487:187:1;3902:44:0;;;;;;;;;;;;3943:3;3902:44;;3347:64;;;;;;;;;;;;;:::i;3841:54::-;;;;;;;;;;;;;;;;6067:370;;;;;;;;;;-1:-1:-1;6067:370:0;;;;;:::i;:::-;;:::i;11382:137::-;;;;;;;;;;;;;:::i;2196:103::-;;;;;;;;;;-1:-1:-1;2196:103:0;;;;;:::i;:::-;2251:4;2286:5;-1:-1:-1;;;;;2275:16:0;;;2286:5;;2275:16;;2196:103;3303:35;;;;;;;;;;;;3336:2;3303:35;;;;;3375:4:1;3363:17;;;3345:36;;3333:2;3318:18;3303:35:0;3203:184:1;3601:44:0;;;;;;;;;;-1:-1:-1;3601:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10686:265;;;;;;;;;;-1:-1:-1;10686:265:0;;;;;:::i;:::-;;:::i;8972:112::-;;;;;;;;;;;;;:::i;5773:122::-;;;;;;;;;;-1:-1:-1;5773:122:0;;;;;:::i;:::-;;:::i;3764:31::-;;;;;;;;;;;;;;;;10454:224;;;;;;;;;;-1:-1:-1;10454:224:0;;;;;:::i;:::-;;:::i;4265:30::-;;;;;;;;;;-1:-1:-1;4265:30:0;;;;-1:-1:-1;;;4265:30:0;;;;;;3479:45;;;;;;;;;;-1:-1:-1;3479:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2307:128;;;;;;;;;;;;;:::i;3420:50::-;;;;;;;;;;;;;;;;5324:78;;;;;;;;;;-1:-1:-1;5376:7:0;5394:5;-1:-1:-1;;;;;5394:5:0;5324:78;;2009:20;;;;;;;;;;-1:-1:-1;2009:20:0;;;;-1:-1:-1;;;;;2009:20:0;;;10959:228;;;;;;;;;;-1:-1:-1;10959:228:0;;;;;:::i;:::-;;:::i;4187:29::-;;;;;;;;;;;;;;;5903:156;;;;;;;;;;-1:-1:-1;5903:156:0;;;;;:::i;:::-;;:::i;3652:44::-;;;;;;;;;;-1:-1:-1;3652:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3703:52;;;;;;;;;;-1:-1:-1;3703:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9092:79;;;;;;;;;;;;;:::i;5408:133::-;;;;;;;;;;-1:-1:-1;5408:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5510:19:0;;;5492:7;5510:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5408:133;11195:179;;;;;;;;;;-1:-1:-1;11195:179:0;;;;;:::i;:::-;;:::i;4069:35::-;;;;;;;;;;-1:-1:-1;4069:35:0;;;;-1:-1:-1;;;;;4069:35:0;;;4156:24;;;;;;;;;;-1:-1:-1;4156:24:0;;;;-1:-1:-1;;;;;4156:24:0;;;4225:31;;;;;;;;;;-1:-1:-1;4225:31:0;;;;-1:-1:-1;;;4225:31:0;;;;;;9903:294;2251:4;2286:5;-1:-1:-1;;;;;2286:5:0;2155:10;2275:16;2139:38;;;;-1:-1:-1;;;2139:38:0;;;;;;;:::i;:::-;;;;;;;;;10029:3:::1;10010:22:::0;::::1;10002:71;;;::::0;-1:-1:-1;;;10002:71:0;;5246:2:1;10002:71:0::1;::::0;::::1;5228:21:1::0;5285:2;5265:18;;;5258:30;5324:34;5304:18;;;5297:62;-1:-1:-1;;;5375:18:1;;;5368:35;5420:19;;10002:71:0::1;5044:401:1::0;10002:71:0::1;10089:9;10084:106;10102:20:::0;;::::1;10084:106;;;10172:6;10144:11;:25;10156:9;;10166:1;10156:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10144:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10144:25:0;:34;;-1:-1:-1;;10144:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10124:3:::1;::::0;::::1;:::i;:::-;;;10084:106;;;;9903:294:::0;;;:::o;6445:260::-;2251:4;2286:5;-1:-1:-1;;;;;2286:5:0;2155:10;2275:16;2139:38;;;;-1:-1:-1;;;2139:38:0;;;;;;;:::i;:::-;6581:2:::1;6554:23;:29;;6546:75;;;::::0;-1:-1:-1;;;6546:75:0;;6056:2:1;6546:75:0::1;::::0;::::1;6038:21:1::0;6095:2;6075:18;;;6068:30;6134:34;6114:18;;;6107:62;-1:-1:-1;;;6185:18:1;;;6178:32;6227:19;;6546:75:0::1;5854:398:1::0;6546:75:0::1;6693:4;6665:23:::0;3399:12:::1;3336:2;3399;:12;:::i;:::-;3385:26;::::0;:11:::1;:26;:::i;:::-;6651:37;;;;:::i;:::-;6650:47;;;;:::i;:::-;6632:15;:65:::0;-1:-1:-1;6445:260:0:o;5549:216::-;5653:10;5624:4;5641:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5641:32:0;;;;;;;;;;:41;;;5698:37;5624:4;;5641:32;;5698:37;;;;5676:6;368:25:1;;356:2;341:18;;222:177;5698:37:0;;;;;;;;-1:-1:-1;5753:4:0;5549:216;;;;;:::o;3347:64::-;3399:12;3336:2;3399;:12;:::i;:::-;3385:26;;:11;:26;:::i;:::-;3347:64;:::o;6067:370::-;-1:-1:-1;;;;;6187:19:0;;6167:4;6187:19;;;:11;:19;;;;;;;;6207:10;6187:31;;;;;;;;-1:-1:-1;;6187:52:0;6184:186;;6289:69;;;;;;;;;;;-1:-1:-1;;;6289:69:0;;;;;;;;-1:-1:-1;;;;;6289:19:0;;-1:-1:-1;6289:19:0;;;:11;:19;;;;;6309:10;6289:31;;;;;;;;;;:69;;6325:6;;6289:35;:69::i;:::-;-1:-1:-1;;;;;6255:19:0;;;;;;:11;:19;;;;;;;;6275:10;6255:31;;;;;;;:103;6184:186;6389:40;6403:6;6411:9;6422:6;6389:13;:40::i;:::-;6382:47;;6067:370;;;;;;:::o;11382:137::-;11495:9;:15;;;;3095:42;11435:7;11477:15;;;;;11435:7;;11495:15;3399:12;3336:2;3399;:12;:::i;:::-;3385:26;;:11;:26;:::i;:::-;11463:29;;;;:::i;:::-;:47;;;;:::i;:::-;11455:56;;11382:137;:::o;10686:265::-;2251:4;2286:5;-1:-1:-1;;;;;2286:5:0;2155:10;2275:16;2139:38;;;;-1:-1:-1;;;2139:38:0;;;;;;;:::i;:::-;10788:12:::1;:28:::0;;;10827:13:::1;:30:::0;;;10879::::1;10843:14:::0;10803:13;10879:30:::1;:::i;:::-;10868:8;:41:::0;10930:13:::1;:11;:13::i;:::-;10686:265:::0;;:::o;8972:112::-;9022:21;;9014:62;;-1:-1:-1;;;;;9022:21:0;;;;9054;9014:62;;;;;9022:21;9014:62;9022:21;9014:62;9054:21;9022;9014:62;;;;;;;;;;;;;;;;;;;;;8972:112::o;5773:122::-;5828:4;5852:35;5860:7;-1:-1:-1;;5852:7:0;:35::i;10454:224::-;2251:4;2286:5;-1:-1:-1;;;;;2286:5:0;2155:10;2275:16;2139:38;;;;-1:-1:-1;;;2139:38:0;;;;;;;:::i;:::-;10553:14:::1;:22:::0;;;10586:13:::1;:20:::0;;;10617:18:::1;:27:::0;;;10657:13:::1;:11;:13::i;:::-;10454:224:::0;;;:::o;2307:128::-;2251:4;2286:5;-1:-1:-1;;;;;2286:5:0;2155:10;2275:16;2139:38;;;;-1:-1:-1;;;2139:38:0;;;;;;;:::i;:::-;2382:1:::1;2366:18:::0;;-1:-1:-1;;;;;;2366:18:0::1;::::0;;2400:27:::1;::::0;160:51:1;;;2400:27:0::1;::::0;148:2:1;133:18;2400:27:0::1;;;;;;;2307:128::o:0;10959:228::-;2251:4;2286:5;-1:-1:-1;;;;;2286:5:0;2155:10;2275:16;2139:38;;;;-1:-1:-1;;;2139:38:0;;;;;;;:::i;:::-;11078:20:::1;:44:::0;;-1:-1:-1;;;;;11078:44:0;;::::1;-1:-1:-1::0;;;;;;11078:44:0;;::::1;;::::0;;;11133:21:::1;:46:::0;;;;;::::1;::::0;::::1;;::::0;;10959:228::o;5903:156::-;5983:4;6007:44;6021:10;6033:9;6044:6;6007:13;:44::i;9092:79::-;2251:4;2286:5;-1:-1:-1;;;;;2286:5:0;2155:10;2275:16;2139:38;;;;-1:-1:-1;;;2139:38:0;;;;;;;:::i;:::-;9145:11:::1;:18:::0;;-1:-1:-1;;;;9145:18:0::1;-1:-1:-1::0;;;9145:18:0::1;::::0;;9092:79::o;11195:179::-;2251:4;2286:5;-1:-1:-1;;;;;2286:5:0;2155:10;2275:16;2139:38;;;;-1:-1:-1;;;2139:38:0;;;;;;;:::i;:::-;11291:11:::1;:22:::0;;-1:-1:-1;;;;11291:22:0::1;-1:-1:-1::0;;;11291:22:0;::::1;;;;::::0;;11354:12;3399::::1;3336:2;3399;:12;:::i;:::-;3385:26;::::0;:11:::1;:26;:::i;:::-;11340;;;;:::i;:::-;11324:13;:42:::0;-1:-1:-1;;11195:179:0:o;517:192::-;603:7;639:12;631:6;;;;623:29;;;;-1:-1:-1;;;623:29:0;;;;;;;;:::i;:::-;-1:-1:-1;663:9:0;675:5;679:1;675;:5;:::i;:::-;663:17;517:192;-1:-1:-1;;;;;517:192:0:o;6713:973::-;6825:6;;6805:4;;6825:6;;6822:63;;;6841:41;6856:6;6864:9;6875:6;6841:14;:41::i;:::-;6834:48;;;;6822:63;6901:11;;-1:-1:-1;;;6901:11:0;;;;6900:12;:36;;;;-1:-1:-1;;;;;;6917:19:0;;;;;;:11;:19;;;;;;;;6916:20;6900:36;6897:144;;;-1:-1:-1;;;;;6960:19:0;;;;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;6983:22:0;;;;;;:11;:22;;;;;;;;6960:45;6952:77;;;;-1:-1:-1;;;6952:77:0;;8500:2:1;6952:77:0;;;8482:21:1;8539:2;8519:18;;;8512:30;-1:-1:-1;;;8558:18:1;;;8551:50;8618:18;;6952:77:0;8298:344:1;6952:77:0;-1:-1:-1;;;;;7058:27:0;;;;;;:19;:27;;;;;;;;7057:28;:63;;;;-1:-1:-1;;;;;;7090:30:0;;;;;;:19;:30;;;;;;;;7089:31;7057:63;:84;;;;;7137:4;-1:-1:-1;;;;;7124:17:0;:9;-1:-1:-1;;;;;7124:17:0;;;7057:84;7053:203;;;7201:15;;-1:-1:-1;;;;;7167:20:0;;;;;;:9;:20;;;;;;:29;;7190:6;;7167:29;:::i;:::-;7166:50;;7158:86;;;;-1:-1:-1;;;7158:86:0;;8849:2:1;7158:86:0;;;8831:21:1;8888:2;8868:18;;;8861:30;8927:26;8907:18;;;8900:54;8971:18;;7158:86:0;8647:348:1;7158:86:0;7271:16;:14;:16::i;:::-;7268:35;;;7290:10;:8;:10::i;:::-;7335:53;;;;;;;;;;;-1:-1:-1;;;7335:53:0;;;;;;;;-1:-1:-1;;;;;7335:17:0;;-1:-1:-1;7335:17:0;;;:9;:17;;;;;;;;:53;;7357:6;;7335:21;:53::i;:::-;-1:-1:-1;;;;;7315:17:0;;;;;;:9;:17;;;;;;;;:73;;;;7427:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;7450:22:0;;;;;;:11;:22;;;;;;;;7427:45;7426:93;;7485:34;7493:6;7501;7509:9;7485:7;:34::i;:::-;7426:93;;;7476:6;7426:93;-1:-1:-1;;;;;7555:20:0;;;;;;:9;:20;;;;;;7401:118;;-1:-1:-1;7555:40:0;;7401:118;7555:24;:40::i;:::-;-1:-1:-1;;;;;7532:20:0;;;;;;;:9;:20;;;;;;;:63;;;;7613:43;;;;;;;;;;7641:14;368:25:1;;356:2;341:18;;222:177;7613:43:0;;;;;;;;-1:-1:-1;7674:4:0;;6713:973;-1:-1:-1;;;;6713:973:0:o;10205:241::-;10301:2;10261:36;10293:3;10261:27;10274:13;;10261:8;;:12;;:27;;;;:::i;:::-;:31;;:36::i;:::-;:42;;10253:86;;;;-1:-1:-1;;;10253:86:0;;9202:2:1;10253:86:0;;;9184:21:1;9241:2;9221:18;;;9214:30;9280:33;9260:18;;;9253:61;9331:18;;10253:86:0;9000:355:1;10253:86:0;10399:2;10358:37;10391:3;10358:28;10371:14;;10358:8;;:12;;:28;;;;:::i;:37::-;:43;;10350:88;;;;-1:-1:-1;;;10350:88:0;;9562:2:1;10350:88:0;;;9544:21:1;;;9581:18;;;9574:30;9640:34;9620:18;;;9613:62;9692:18;;10350:88:0;9360:356:1;10350:88:0;10205:241::o;7698:330::-;7828:53;;;;;;;;;;;-1:-1:-1;;;7828:53:0;;;;;;;;-1:-1:-1;;;;;7828:17:0;;7791:4;7828:17;;;:9;:17;;;;;;;:53;;7850:6;;7828:21;:53::i;:::-;-1:-1:-1;;;;;7808:17:0;;;;;;;:9;:17;;;;;;:73;;;;7915:20;;;;;;;:32;;7940:6;7915:24;:32::i;:::-;-1:-1:-1;;;;;7892:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7963:35;;;;;;;;;;7991:6;368:25:1;;356:2;341:18;;222:177;7963:35:0;;;;;;;;-1:-1:-1;8016:4:0;7698:330;;;;;:::o;8767:197::-;8816:4;8840:10;-1:-1:-1;;;;;8854:4:0;8840:18;;;;;:38;;-1:-1:-1;8872:6:0;;;;8871:7;8840:38;:62;;;;-1:-1:-1;8891:11:0;;-1:-1:-1;;;8891:11:0;;;;8840:62;:116;;;;-1:-1:-1;;8943:13:0;;8933:4;8915:24;;;;:9;:24;;;;;;:41;;;8767:197::o;9179:716::-;4404:6;:13;;-1:-1:-1;;4404:13:0;4413:4;4404:13;;;9254:16:::1;::::0;;9268:1:::1;9254:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9254:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9254:16:0::1;9230:40;;9299:4;9281;9286:1;9281:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;9281:23:0::1;;;-1:-1:-1::0;;;;;9281:23:0::1;;;::::0;::::1;9325:4;9315;9320:1;9315:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9315:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;9342:6:::1;::::0;9414:13:::1;::::0;9342:189:::1;::::0;-1:-1:-1;;;9342:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;9414:13;9342:6:::1;::::0;9458:4;;9485::::1;::::0;9505:15:::1;::::0;9342:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9656:8:0::1;::::0;9640:12:::1;::::0;9564:21:::1;::::0;-1:-1:-1;9544:17:0::1;::::0;-1:-1:-1;9628:24:0::1;::::0;9564:21;9628:24:::1;:::i;:::-;9627:37;;;;:::i;:::-;9598:66;;9675:28;9736:8;;9719:13;;9707:9;:25;;;;:::i;:::-;9706:38;;;;:::i;:::-;9765:20;::::0;9757:58:::1;::::0;9675:69;;-1:-1:-1;;;;;;9765:20:0::1;::::0;9757:58;::::1;;;::::0;9796:18;;9765:20:::1;9757:58:::0;9765:20;9757:58;9796:18;9765:20;9757:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;9834:21:0::1;::::0;9826:61:::1;::::0;-1:-1:-1;;;;;9834:21:0;;::::1;::::0;9826:61;::::1;;;::::0;9866:20;;9834:21:::1;9826:61:::0;9834:21;9826:61;9866:20;9834:21;9826:61;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4422:6:0;:14;;-1:-1:-1;;4422:14:0;;;-1:-1:-1;;;9179:716:0:o;8036:723::-;8122:7;8145:11;;;:28;;-1:-1:-1;8160:8:0;;:13;8145:28;8142:72;;;-1:-1:-1;8196:6:0;8189:13;;8142:72;8247:18;;-1:-1:-1;;;;;8294:4:0;8281:17;;;;;;8278:154;;-1:-1:-1;8328:14:0;;8278:154;;;8373:4;-1:-1:-1;;;;;8363:14:0;:6;-1:-1:-1;;;;;8363:14:0;;8360:72;;-1:-1:-1;8407:13:0;;8360:72;8444:17;8464:62;8505:20;3943:3;;8505:20;:::i;:::-;8464:36;8489:10;8464:20;8475:8;;8464:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:62::-;8444:82;-1:-1:-1;8542:13:0;;8539:172;;8616:4;8598:24;;;;:9;:24;;;;;;:39;;8627:9;8598:28;:39::i;:::-;8589:4;8571:24;;;;:9;:24;;;;;;;:66;;;;8657:42;;-1:-1:-1;;;;;8657:42:0;;;;;;;8689:9;368:25:1;;356:2;341:18;;222:177;8657:42:0;;;;;;;;8539:172;8730:21;:6;8741:9;8730:10;:21::i;:::-;8723:28;8036:723;-1:-1:-1;;;;;;8036:723:0:o;188:181::-;246:7;;278:5;282:1;278;:5;:::i;:::-;266:17;;307:1;302;:6;;294:46;;;;-1:-1:-1;;;294:46:0;;11040:2:1;294:46:0;;;11022:21:1;11079:2;11059:18;;;11052:30;11118:29;11098:18;;;11091:57;11165:18;;294:46:0;10838:351:1;715:250:0;773:7;797:1;802;797:6;793:47;;-1:-1:-1;827:1:0;820:8;;793:47;852:9;864:5;868:1;864;:5;:::i;:::-;852:17;-1:-1:-1;897:1:0;888:5;892:1;852:17;888:5;:::i;:::-;:10;880:56;;;;-1:-1:-1;;;880:56:0;;11396:2:1;880:56:0;;;11378:21:1;11435:2;11415:18;;;11408:30;11474:34;11454:18;;;11447:62;-1:-1:-1;;;11525:18:1;;;11518:31;11566:19;;880:56:0;11194:397:1;971:132:0;1029:7;1056:39;1060:1;1063;1056:39;;;;;;;;;;;;;;;;;:3;:39::i;375:136::-;433:7;460:43;464:1;467;460:43;;;;;;;;;;;;;;;;;:3;:43::i;1109:189::-;1195:7;1230:12;1223:5;1215:28;;;;-1:-1:-1;;;1215:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1254:9:0;1266:5;1270:1;1266;:5;:::i;404:160:1:-;469:20;;525:13;;518:21;508:32;;498:60;;554:1;551;544:12;498:60;404:160;;;:::o;569:689::-;661:6;669;677;730:2;718:9;709:7;705:23;701:32;698:52;;;746:1;743;736:12;698:52;786:9;773:23;815:18;856:2;848:6;845:14;842:34;;;872:1;869;862:12;842:34;910:6;899:9;895:22;885:32;;955:7;948:4;944:2;940:13;936:27;926:55;;977:1;974;967:12;926:55;1017:2;1004:16;1043:2;1035:6;1032:14;1029:34;;;1059:1;1056;1049:12;1029:34;1114:7;1107:4;1097:6;1094:1;1090:14;1086:2;1082:23;1078:34;1075:47;1072:67;;;1135:1;1132;1125:12;1072:67;1166:4;1158:13;;;;-1:-1:-1;1190:6:1;-1:-1:-1;1215:37:1;;1231:20;;;-1:-1:-1;1215:37:1;:::i;:::-;1205:47;;569:689;;;;;:::o;1263:597::-;1375:4;1404:2;1433;1422:9;1415:21;1465:6;1459:13;1508:6;1503:2;1492:9;1488:18;1481:34;1533:1;1543:140;1557:6;1554:1;1551:13;1543:140;;;1652:14;;;1648:23;;1642:30;1618:17;;;1637:2;1614:26;1607:66;1572:10;;1543:140;;;1701:6;1698:1;1695:13;1692:91;;;1771:1;1766:2;1757:6;1746:9;1742:22;1738:31;1731:42;1692:91;-1:-1:-1;1844:2:1;1823:15;-1:-1:-1;;1819:29:1;1804:45;;;;1851:2;1800:54;;1263:597;-1:-1:-1;;;1263:597:1:o;1865:180::-;1924:6;1977:2;1965:9;1956:7;1952:23;1948:32;1945:52;;;1993:1;1990;1983:12;1945:52;-1:-1:-1;2016:23:1;;1865:180;-1:-1:-1;1865:180:1:o;2050:173::-;2118:20;;-1:-1:-1;;;;;2167:31:1;;2157:42;;2147:70;;2213:1;2210;2203:12;2228:254;2296:6;2304;2357:2;2345:9;2336:7;2332:23;2328:32;2325:52;;;2373:1;2370;2363:12;2325:52;2396:29;2415:9;2396:29;:::i;:::-;2386:39;2472:2;2457:18;;;;2444:32;;-1:-1:-1;;;2228:254:1:o;2679:328::-;2756:6;2764;2772;2825:2;2813:9;2804:7;2800:23;2796:32;2793:52;;;2841:1;2838;2831:12;2793:52;2864:29;2883:9;2864:29;:::i;:::-;2854:39;;2912:38;2946:2;2935:9;2931:18;2912:38;:::i;:::-;2902:48;;2997:2;2986:9;2982:18;2969:32;2959:42;;2679:328;;;;;:::o;3012:186::-;3071:6;3124:2;3112:9;3103:7;3099:23;3095:32;3092:52;;;3140:1;3137;3130:12;3092:52;3163:29;3182:9;3163:29;:::i;3392:248::-;3460:6;3468;3521:2;3509:9;3500:7;3496:23;3492:32;3489:52;;;3537:1;3534;3527:12;3489:52;-1:-1:-1;;3560:23:1;;;3630:2;3615:18;;;3602:32;;-1:-1:-1;3392:248:1:o;3645:316::-;3722:6;3730;3738;3791:2;3779:9;3770:7;3766:23;3762:32;3759:52;;;3807:1;3804;3797:12;3759:52;-1:-1:-1;;3830:23:1;;;3900:2;3885:18;;3872:32;;-1:-1:-1;3951:2:1;3936:18;;;3923:32;;3645:316;-1:-1:-1;3645:316:1:o;3966:260::-;4034:6;4042;4095:2;4083:9;4074:7;4070:23;4066:32;4063:52;;;4111:1;4108;4101:12;4063:52;4134:29;4153:9;4134:29;:::i;:::-;4124:39;;4182:38;4216:2;4205:9;4201:18;4182:38;:::i;:::-;4172:48;;3966:260;;;;;:::o;4231:248::-;4296:6;4304;4357:2;4345:9;4336:7;4332:23;4328:32;4325:52;;;4373:1;4370;4363:12;4325:52;4396:26;4412:9;4396:26;:::i;4710:329::-;4912:2;4894:21;;;4951:1;4931:18;;;4924:29;-1:-1:-1;;;4984:2:1;4969:18;;4962:36;5030:2;5015:18;;4710:329::o;5450:127::-;5511:10;5506:3;5502:20;5499:1;5492:31;5542:4;5539:1;5532:15;5566:4;5563:1;5556:15;5582:127;5643:10;5638:3;5634:20;5631:1;5624:31;5674:4;5671:1;5664:15;5698:4;5695:1;5688:15;5714:135;5753:3;5774:17;;;5771:43;;5794:18;;:::i;:::-;-1:-1:-1;5841:1:1;5830:13;;5714:135::o;6257:422::-;6346:1;6389:5;6346:1;6403:270;6424:7;6414:8;6411:21;6403:270;;;6483:4;6479:1;6475:6;6471:17;6465:4;6462:27;6459:53;;;6492:18;;:::i;:::-;6542:7;6532:8;6528:22;6525:55;;;6562:16;;;;6525:55;6641:22;;;;6601:15;;;;6403:270;;;6407:3;6257:422;;;;;:::o;6684:806::-;6733:5;6763:8;6753:80;;-1:-1:-1;6804:1:1;6818:5;;6753:80;6852:4;6842:76;;-1:-1:-1;6889:1:1;6903:5;;6842:76;6934:4;6952:1;6947:59;;;;7020:1;7015:130;;;;6927:218;;6947:59;6977:1;6968:10;;6991:5;;;7015:130;7052:3;7042:8;7039:17;7036:43;;;7059:18;;:::i;:::-;-1:-1:-1;;7115:1:1;7101:16;;7130:5;;6927:218;;7229:2;7219:8;7216:16;7210:3;7204:4;7201:13;7197:36;7191:2;7181:8;7178:16;7173:2;7167:4;7164:12;7160:35;7157:77;7154:159;;;-1:-1:-1;7266:19:1;;;7298:5;;7154:159;7345:34;7370:8;7364:4;7345:34;:::i;:::-;7415:6;7411:1;7407:6;7403:19;7394:7;7391:32;7388:58;;;7426:18;;:::i;:::-;7464:20;;6684:806;-1:-1:-1;;;6684:806:1:o;7495:140::-;7553:5;7582:47;7623:4;7613:8;7609:19;7603:4;7582:47;:::i;7640:168::-;7680:7;7746:1;7742;7738:6;7734:14;7731:1;7728:21;7723:1;7716:9;7709:17;7705:45;7702:71;;;7753:18;;:::i;:::-;-1:-1:-1;7793:9:1;;7640:168::o;7813:217::-;7853:1;7879;7869:132;;7923:10;7918:3;7914:20;7911:1;7904:31;7958:4;7955:1;7948:15;7986:4;7983:1;7976:15;7869:132;-1:-1:-1;8015:9:1;;7813:217::o;8035:125::-;8075:4;8103:1;8100;8097:8;8094:34;;;8108:18;;:::i;:::-;-1:-1:-1;8145:9:1;;8035:125::o;8165:128::-;8205:3;8236:1;8232:6;8229:1;8226:13;8223:39;;;8242:18;;:::i;:::-;-1:-1:-1;8278:9:1;;8165:128::o;9853:980::-;10115:4;10163:3;10152:9;10148:19;10194:6;10183:9;10176:25;10220:2;10258:6;10253:2;10242:9;10238:18;10231:34;10301:3;10296:2;10285:9;10281:18;10274:31;10325:6;10360;10354:13;10391:6;10383;10376:22;10429:3;10418:9;10414:19;10407:26;;10468:2;10460:6;10456:15;10442:29;;10489:1;10499:195;10513:6;10510:1;10507:13;10499:195;;;10578:13;;-1:-1:-1;;;;;10574:39:1;10562:52;;10669:15;;;;10634:12;;;;10610:1;10528:9;10499:195;;;-1:-1:-1;;;;;;;10750:32:1;;;;10745:2;10730:18;;10723:60;-1:-1:-1;;;10814:3:1;10799:19;10792:35;10711:3;9853:980;-1:-1:-1;;;9853:980:1:o

Swarm Source

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