ETH Price: $3,335.26 (-1.19%)
Gas: 11 Gwei

Token

Pepe Halloween Floki (WITCH)
 

Overview

Max Total Supply

666,000,000,000 WITCH

Holders

115

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000082962022044 WITCH

Value
$0.00
0x52ed29f22fb65523ff570fc4ce9bd0dce42fcc0a
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:
PepeHalloweenFloki

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-30
*/

// SPDX-License-Identifier: UNLICENSED

/*

Pepe Halloween Floki

🎃 Website: http://PepeHalloweenfloki.com
🏚️ TG: https://t.me/PepeHalloweenFloki
👻 Twitter:https://x.com/PepeHallowFloki

*/

pragma solidity 0.8.21;

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 PepeHalloweenFloki is ERC20, Auth {
    using SafeMath for uint256;

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

    string public constant name = "Pepe Halloween Floki";
    string public constant symbol = "WITCH";
    uint8 public constant decimals = 18;

    uint256 public constant totalSupply = 666_000_000_000 * 10**decimals;

    uint256 public _maxWalletToken = totalSupply / 50;

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

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

    uint256 public constant totalFee = 1;
    uint256 public constant feeDenominator = 100;
    
    uint256 buyMultiplier = 1500;
    uint256 sellMultiplier = 1500;
    uint256 transferMultiplier = 2000;

    address public marketingFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool public tradingOpen = false;

    bool public swapEnabled = true;
    uint256 public swapThreshold = totalSupply / 200;
    
    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 = 0x6249e32618B38Bc5b1B4e5842949FBDafE4fCDcB;

        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(uint256 _newmaxwallet) external onlyOwner {
        require(_newmaxwallet >= 1,"Cannot set max wallet less than 1%");
        _maxWalletToken = (totalSupply * _newmaxwallet ) / 100;
    }

    function manage_FeeExempt(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) {
            isFeeExempt[addresses[i]] = status;
        }
    }

    function manage_WalletLimitExempt(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) {
            isWalletLimitExempt[addresses[i]] = status;
        }
    }

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

        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){
            require(tradingOpen,"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(marketingFeeReceiver).transfer(address(this).balance);
    }

    function openTrading() external onlyOwner {
        tradingOpen = true;
        swapEnabled = 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;
        if(amountETH > 0){
            payable(marketingFeeReceiver).transfer(amountETH);    
        }
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        require(_buy <= 700,"Max allowed tax is 7%");
        require(_sell <= 700,"Max allowed tax is 7%");
        require(_trans <= 700,"Max allowed tax is 7%");

        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;
    }

    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":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_FeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_WalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","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":"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":"uint256","name":"_newmaxwallet","type":"uint256"}],"name":"setMaxWalletPercent","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"}]

60c06040526032620000146012600a62000491565b6200002590649b10b18400620004a8565b620000319190620004c2565b6001556105dc60068190556007556107d0600855600a805461ffff60a01b1916600160a81b17815560c8906200006a9060129062000491565b6200007b90649b10b18400620004a8565b620000879190620004c2565b600b5534801562000096575f80fd5b505f8054336001600160a01b031991821617909155600a8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000104573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200012a9190620004e2565b6001600160a01b03908116608052600a546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000179573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200019f9190620004e2565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015620001ee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002149190620004e2565b6001600160a01b0390811660a052305f818152600360209081526040808320600a8054871685529083528184205f199055600980546001600160a01b031916736249e32618b38bc5b1b4e5842949fbdafe4fcdcb1781553380865260048552838620805460ff19908116600190811790925583548a1688528588208054821683179055918752600590955283862080548216861790559054909616845281842080548716841790559383528220805485168217905561dead9091527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba805490931617909155620003079060129062000491565b6200031890649b10b18400620004a8565b335f81815260026020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200035a6012600a62000491565b6200036b90649b10b18400620004a8565b60405190815260200160405180910390a36200050a565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003d657815f1904821115620003ba57620003ba62000382565b80851615620003c857918102915b93841c93908002906200039b565b509250929050565b5f82620003ee575060016200048b565b81620003fc57505f6200048b565b8160018114620004155760028114620004205762000440565b60019150506200048b565b60ff84111562000434576200043462000382565b50506001821b6200048b565b5060208310610133831016604e8410600b841016171562000465575081810a6200048b565b62000471838362000396565b805f190482111562000487576200048762000382565b0290505b92915050565b5f620004a160ff841683620003de565b9392505050565b80820281158282048414176200048b576200048b62000382565b5f82620004dd57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620004f3575f80fd5b81516001600160a01b0381168114620004a1575f80fd5b60805160a051611a03620005485f395f818161053901528181610dc5015281816110b40152818161129701526112cb01525f61117b0152611a035ff3fe6080604052600436106101e7575f3560e01c80636ddd171311610108578063a8aa1b311161009d578063dd62ed3e1161006d578063dd62ed3e146105bc578063df20fd4914610600578063e96fada21461061f578063f887ea401461063e578063ffb54a991461065d575f80fd5b8063a8aa1b3114610528578063a9059cbb1461055b578063c867d60b1461057a578063c9567bf9146105a8575f80fd5b806382bf293c116100d857806382bf293c1461048b578063893d20e8146104aa5780638da5cb5b146104da57806395d89b41146104f8575f80fd5b80636ddd17131461041757806370a0823114610437578063715018a61461046257806378109e5414610476575f80fd5b806323b872dd1161017e5780633f4218e01161014e5780633f4218e01461039757806351bc3c85146103c5578063571ac8b0146103d95780636ce46bc3146103f8575f80fd5b806323b872dd146103115780632b112e49146103305780632f54bf6e14610344578063313ce56714610371575f80fd5b8063095ea7b3116101b9578063095ea7b3146102a6578063180b0d7e146102d557806318160ddd146102e95780631df4ccfc146102fd575f80fd5b8062108683146101f2578062bff446146102135780630445b6671461023257806306fdde031461025a575f80fd5b366101ee57005b5f80fd5b3480156101fd575f80fd5b5061021161020c36600461155d565b61067d565b005b34801561021e575f80fd5b5061021161022d36600461155d565b610742565b34801561023d575f80fd5b50610247600b5481565b6040519081526020015b60405180910390f35b348015610265575f80fd5b5061029960405180604001604052806014815260200173506570652048616c6c6f7765656e20466c6f6b6960601b81525081565b60405161025191906115da565b3480156102b1575f80fd5b506102c56102c036600461163b565b6107f8565b6040519015158152602001610251565b3480156102e0575f80fd5b50610247606481565b3480156102f4575f80fd5b50610247610864565b348015610308575f80fd5b50610247600181565b34801561031c575f80fd5b506102c561032b366004611663565b610882565b34801561033b575f80fd5b50610247610940565b34801561034f575f80fd5b506102c561035e36600461169c565b5f546001600160a01b0391821691161490565b34801561037c575f80fd5b50610385601281565b60405160ff9091168152602001610251565b3480156103a2575f80fd5b506102c56103b136600461169c565b60046020525f908152604090205460ff1681565b3480156103d0575f80fd5b506102116109c7565b3480156103e4575f80fd5b506102c56103f336600461169c565b610a00565b348015610403575f80fd5b506102116104123660046116b5565b610a0c565b348015610422575f80fd5b50600a546102c590600160a81b900460ff1681565b348015610442575f80fd5b5061024761045136600461169c565b60026020525f908152604090205481565b34801561046d575f80fd5b50610211610aac565b348015610481575f80fd5b5061024760015481565b348015610496575f80fd5b506102116104a53660046116de565b610b19565b3480156104b5575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610251565b3480156104e5575f80fd5b505f546104c2906001600160a01b031681565b348015610503575f80fd5b50610299604051806040016040528060058152602001640ae92a886960db1b81525081565b348015610533575f80fd5b506104c27f000000000000000000000000000000000000000000000000000000000000000081565b348015610566575f80fd5b506102c561057536600461163b565b610bd6565b348015610585575f80fd5b506102c561059436600461169c565b60056020525f908152604090205460ff1681565b3480156105b3575f80fd5b50610211610be2565b3480156105c7575f80fd5b506102476105d63660046116f5565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b34801561060b575f80fd5b5061021161061a366004611726565b610c22565b34801561062a575f80fd5b506009546104c2906001600160a01b031681565b348015610649575f80fd5b50600a546104c2906001600160a01b031681565b348015610668575f80fd5b50600a546102c590600160a01b900460ff1681565b5f546001600160a01b031633146106af5760405162461bcd60e51b81526004016106a690611740565b60405180910390fd5b6101f582106106d05760405162461bcd60e51b81526004016106a690611760565b5f5b8281101561073c578160055f8686858181106106f0576106f06117a5565b9050602002016020810190610705919061169c565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055610735816117cd565b90506106d2565b50505050565b5f546001600160a01b0316331461076b5760405162461bcd60e51b81526004016106a690611740565b6101f5821061078c5760405162461bcd60e51b81526004016106a690611760565b5f5b8281101561073c578160045f8686858181106107ac576107ac6117a5565b90506020020160208101906107c1919061169c565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790556107f1816117cd565b905061078e565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108529086815260200190565b60405180910390a35060015b92915050565b6108706012600a6118c5565b61087f90649b10b184006118d3565b81565b6001600160a01b0383165f9081526003602090815260408083203384529091528120545f191461092b576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600382528381203382529091529190912054610907918490610c90565b6001600160a01b0385165f9081526003602090815260408083203384529091529020555b610936848484610cc8565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5490919061099f6012600a6118c5565b6109ae90649b10b184006118d3565b6109b891906118ea565b6109c291906118ea565b905090565b6009546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156109fd573d5f803e3d5ffd5b50565b5f61085e825f196107f8565b5f546001600160a01b03163314610a355760405162461bcd60e51b81526004016106a690611740565b6102bc831115610a575760405162461bcd60e51b81526004016106a6906118fd565b6102bc821115610a795760405162461bcd60e51b81526004016106a6906118fd565b6102bc811115610a9b5760405162461bcd60e51b81526004016106a6906118fd565b600791909155600691909155600855565b5f546001600160a01b03163314610ad55760405162461bcd60e51b81526004016106a690611740565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b03163314610b425760405162461bcd60e51b81526004016106a690611740565b6001811015610b9e5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b60648201526084016106a6565b606481610bad6012600a6118c5565b610bbc90649b10b184006118d3565b610bc691906118d3565b610bd0919061192c565b60015550565b5f610939338484610cc8565b5f546001600160a01b03163314610c0b5760405162461bcd60e51b81526004016106a690611740565b600a805461ffff60a01b191661010160a01b179055565b5f546001600160a01b03163314610c4b5760405162461bcd60e51b81526004016106a690611740565b600a805460ff60a81b1916600160a81b841515021781558190610c70906012906118c5565b610c7f90649b10b184006118d3565b610c89919061192c565b600b555050565b5f8184841115610cb35760405162461bcd60e51b81526004016106a691906115da565b505f610cbf84866118ea565b95945050505050565b600c545f9060ff1615610ce757610ce0848484610fc5565b9050610939565b6001600160a01b0384165f9081526004602052604090205460ff16158015610d2757506001600160a01b0383165f9081526004602052604090205460ff16155b15610d7c57600a54600160a01b900460ff16610d7c5760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016106a6565b6001600160a01b0384165f9081526005602052604090205460ff16158015610dbc57506001600160a01b0383165f9081526005602052604090205460ff16155b8015610dfa57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15610e73576001546001600160a01b0384165f90815260026020526040902054610e2590849061194b565b1115610e735760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016106a6565b610e7b6110a8565b15610e8857610e88611119565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260029091529190912054610ed9918490610c90565b6001600160a01b0385165f90815260026020908152604080832093909355600490529081205460ff1680610f2457506001600160a01b0384165f9081526004602052604090205460ff165b610f3857610f33858486611273565b610f3a565b825b6001600160a01b0385165f90815260026020526040902054909150610f5f90826113bf565b6001600160a01b038086165f8181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fb29085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600290915291822054611015918490610c90565b6001600160a01b038086165f90815260026020526040808220939093559085168152205461104390836113bf565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110969086815260200190565b60405180910390a35060019392505050565b5f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906110e55750600c5460ff16155b80156110fa5750600a54600160a81b900460ff165b80156109c2575050600b54305f90815260026020526040902054101590565b600c805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611159576111596117a5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106111ad576111ad6117a5565b6001600160a01b039283166020918202929092010152600a54600b5460405163791ac94760e01b8152919092169163791ac947916111f691905f9086903090429060040161195e565b5f604051808303815f87803b15801561120d575f80fd5b505af115801561121f573d5f803e3d5ffd5b504792505081159050611265576009546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611263573d5f803e3d5ffd5b505b5050600c805460ff19169055565b5f82158061127e57505f5b1561128a575081610939565b6008546001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908416036112c95750600754611307565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03160361130757506006545b5f6113316113166064806118d3565b61132b8461132589600161141d565b9061141d565b9061149b565b905080156113ab57305f9081526002602052604090205461135290826113bf565b305f81815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113a29085815260200190565b60405180910390a35b6113b585826114dc565b9695505050505050565b5f806113cb838561194b565b9050838110156109395760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106a6565b5f825f0361142c57505f61085e565b5f61143783856118d3565b905082611444858361192c565b146109395760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106a6565b5f61093983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061151d565b5f61093983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c90565b5f818361153d5760405162461bcd60e51b81526004016106a691906115da565b505f610cbf848661192c565b80358015158114611558575f80fd5b919050565b5f805f6040848603121561156f575f80fd5b833567ffffffffffffffff80821115611586575f80fd5b818601915086601f830112611599575f80fd5b8135818111156115a7575f80fd5b8760208260051b85010111156115bb575f80fd5b6020928301955093506115d19186019050611549565b90509250925092565b5f6020808352835180828501525f5b81811015611605578581018301518582016040015282016115e9565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611558575f80fd5b5f806040838503121561164c575f80fd5b61165583611625565b946020939093013593505050565b5f805f60608486031215611675575f80fd5b61167e84611625565b925061168c60208501611625565b9150604084013590509250925092565b5f602082840312156116ac575f80fd5b61093982611625565b5f805f606084860312156116c7575f80fd5b505081359360208301359350604090920135919050565b5f602082840312156116ee575f80fd5b5035919050565b5f8060408385031215611706575f80fd5b61170f83611625565b915061171d60208401611625565b90509250929050565b5f8060408385031215611737575f80fd5b61165583611549565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600182016117de576117de6117b9565b5060010190565b600181815b8085111561181f57815f1904821115611805576118056117b9565b8085161561181257918102915b93841c93908002906117ea565b509250929050565b5f826118355750600161085e565b8161184157505f61085e565b816001811461185757600281146118615761187d565b600191505061085e565b60ff841115611872576118726117b9565b50506001821b61085e565b5060208310610133831016604e8410600b84101617156118a0575081810a61085e565b6118aa83836117e5565b805f19048211156118bd576118bd6117b9565b029392505050565b5f61093960ff841683611827565b808202811582820484141761085e5761085e6117b9565b8181038181111561085e5761085e6117b9565b6020808252601590820152744d617820616c6c6f7765642074617820697320372560581b604082015260600190565b5f8261194657634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561085e5761085e6117b9565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119ac5784516001600160a01b031683529383019391830191600101611987565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ceb26b2a583abdebdf542540d8e74106554125c01dad0040a0f25c0783f250cd64736f6c63430008150033

Deployed Bytecode

0x6080604052600436106101e7575f3560e01c80636ddd171311610108578063a8aa1b311161009d578063dd62ed3e1161006d578063dd62ed3e146105bc578063df20fd4914610600578063e96fada21461061f578063f887ea401461063e578063ffb54a991461065d575f80fd5b8063a8aa1b3114610528578063a9059cbb1461055b578063c867d60b1461057a578063c9567bf9146105a8575f80fd5b806382bf293c116100d857806382bf293c1461048b578063893d20e8146104aa5780638da5cb5b146104da57806395d89b41146104f8575f80fd5b80636ddd17131461041757806370a0823114610437578063715018a61461046257806378109e5414610476575f80fd5b806323b872dd1161017e5780633f4218e01161014e5780633f4218e01461039757806351bc3c85146103c5578063571ac8b0146103d95780636ce46bc3146103f8575f80fd5b806323b872dd146103115780632b112e49146103305780632f54bf6e14610344578063313ce56714610371575f80fd5b8063095ea7b3116101b9578063095ea7b3146102a6578063180b0d7e146102d557806318160ddd146102e95780631df4ccfc146102fd575f80fd5b8062108683146101f2578062bff446146102135780630445b6671461023257806306fdde031461025a575f80fd5b366101ee57005b5f80fd5b3480156101fd575f80fd5b5061021161020c36600461155d565b61067d565b005b34801561021e575f80fd5b5061021161022d36600461155d565b610742565b34801561023d575f80fd5b50610247600b5481565b6040519081526020015b60405180910390f35b348015610265575f80fd5b5061029960405180604001604052806014815260200173506570652048616c6c6f7765656e20466c6f6b6960601b81525081565b60405161025191906115da565b3480156102b1575f80fd5b506102c56102c036600461163b565b6107f8565b6040519015158152602001610251565b3480156102e0575f80fd5b50610247606481565b3480156102f4575f80fd5b50610247610864565b348015610308575f80fd5b50610247600181565b34801561031c575f80fd5b506102c561032b366004611663565b610882565b34801561033b575f80fd5b50610247610940565b34801561034f575f80fd5b506102c561035e36600461169c565b5f546001600160a01b0391821691161490565b34801561037c575f80fd5b50610385601281565b60405160ff9091168152602001610251565b3480156103a2575f80fd5b506102c56103b136600461169c565b60046020525f908152604090205460ff1681565b3480156103d0575f80fd5b506102116109c7565b3480156103e4575f80fd5b506102c56103f336600461169c565b610a00565b348015610403575f80fd5b506102116104123660046116b5565b610a0c565b348015610422575f80fd5b50600a546102c590600160a81b900460ff1681565b348015610442575f80fd5b5061024761045136600461169c565b60026020525f908152604090205481565b34801561046d575f80fd5b50610211610aac565b348015610481575f80fd5b5061024760015481565b348015610496575f80fd5b506102116104a53660046116de565b610b19565b3480156104b5575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610251565b3480156104e5575f80fd5b505f546104c2906001600160a01b031681565b348015610503575f80fd5b50610299604051806040016040528060058152602001640ae92a886960db1b81525081565b348015610533575f80fd5b506104c27f0000000000000000000000007af49c1438b5dd2f66c0f7f4eb2e297c5d085a0681565b348015610566575f80fd5b506102c561057536600461163b565b610bd6565b348015610585575f80fd5b506102c561059436600461169c565b60056020525f908152604090205460ff1681565b3480156105b3575f80fd5b50610211610be2565b3480156105c7575f80fd5b506102476105d63660046116f5565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b34801561060b575f80fd5b5061021161061a366004611726565b610c22565b34801561062a575f80fd5b506009546104c2906001600160a01b031681565b348015610649575f80fd5b50600a546104c2906001600160a01b031681565b348015610668575f80fd5b50600a546102c590600160a01b900460ff1681565b5f546001600160a01b031633146106af5760405162461bcd60e51b81526004016106a690611740565b60405180910390fd5b6101f582106106d05760405162461bcd60e51b81526004016106a690611760565b5f5b8281101561073c578160055f8686858181106106f0576106f06117a5565b9050602002016020810190610705919061169c565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055610735816117cd565b90506106d2565b50505050565b5f546001600160a01b0316331461076b5760405162461bcd60e51b81526004016106a690611740565b6101f5821061078c5760405162461bcd60e51b81526004016106a690611760565b5f5b8281101561073c578160045f8686858181106107ac576107ac6117a5565b90506020020160208101906107c1919061169c565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790556107f1816117cd565b905061078e565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108529086815260200190565b60405180910390a35060015b92915050565b6108706012600a6118c5565b61087f90649b10b184006118d3565b81565b6001600160a01b0383165f9081526003602090815260408083203384529091528120545f191461092b576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600382528381203382529091529190912054610907918490610c90565b6001600160a01b0385165f9081526003602090815260408083203384529091529020555b610936848484610cc8565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5490919061099f6012600a6118c5565b6109ae90649b10b184006118d3565b6109b891906118ea565b6109c291906118ea565b905090565b6009546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156109fd573d5f803e3d5ffd5b50565b5f61085e825f196107f8565b5f546001600160a01b03163314610a355760405162461bcd60e51b81526004016106a690611740565b6102bc831115610a575760405162461bcd60e51b81526004016106a6906118fd565b6102bc821115610a795760405162461bcd60e51b81526004016106a6906118fd565b6102bc811115610a9b5760405162461bcd60e51b81526004016106a6906118fd565b600791909155600691909155600855565b5f546001600160a01b03163314610ad55760405162461bcd60e51b81526004016106a690611740565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b03163314610b425760405162461bcd60e51b81526004016106a690611740565b6001811015610b9e5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b60648201526084016106a6565b606481610bad6012600a6118c5565b610bbc90649b10b184006118d3565b610bc691906118d3565b610bd0919061192c565b60015550565b5f610939338484610cc8565b5f546001600160a01b03163314610c0b5760405162461bcd60e51b81526004016106a690611740565b600a805461ffff60a01b191661010160a01b179055565b5f546001600160a01b03163314610c4b5760405162461bcd60e51b81526004016106a690611740565b600a805460ff60a81b1916600160a81b841515021781558190610c70906012906118c5565b610c7f90649b10b184006118d3565b610c89919061192c565b600b555050565b5f8184841115610cb35760405162461bcd60e51b81526004016106a691906115da565b505f610cbf84866118ea565b95945050505050565b600c545f9060ff1615610ce757610ce0848484610fc5565b9050610939565b6001600160a01b0384165f9081526004602052604090205460ff16158015610d2757506001600160a01b0383165f9081526004602052604090205460ff16155b15610d7c57600a54600160a01b900460ff16610d7c5760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016106a6565b6001600160a01b0384165f9081526005602052604090205460ff16158015610dbc57506001600160a01b0383165f9081526005602052604090205460ff16155b8015610dfa57507f0000000000000000000000007af49c1438b5dd2f66c0f7f4eb2e297c5d085a066001600160a01b0316836001600160a01b031614155b15610e73576001546001600160a01b0384165f90815260026020526040902054610e2590849061194b565b1115610e735760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016106a6565b610e7b6110a8565b15610e8857610e88611119565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260029091529190912054610ed9918490610c90565b6001600160a01b0385165f90815260026020908152604080832093909355600490529081205460ff1680610f2457506001600160a01b0384165f9081526004602052604090205460ff165b610f3857610f33858486611273565b610f3a565b825b6001600160a01b0385165f90815260026020526040902054909150610f5f90826113bf565b6001600160a01b038086165f8181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fb29085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600290915291822054611015918490610c90565b6001600160a01b038086165f90815260026020526040808220939093559085168152205461104390836113bf565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110969086815260200190565b60405180910390a35060019392505050565b5f336001600160a01b037f0000000000000000000000007af49c1438b5dd2f66c0f7f4eb2e297c5d085a0616148015906110e55750600c5460ff16155b80156110fa5750600a54600160a81b900460ff165b80156109c2575050600b54305f90815260026020526040902054101590565b600c805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611159576111596117a5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106111ad576111ad6117a5565b6001600160a01b039283166020918202929092010152600a54600b5460405163791ac94760e01b8152919092169163791ac947916111f691905f9086903090429060040161195e565b5f604051808303815f87803b15801561120d575f80fd5b505af115801561121f573d5f803e3d5ffd5b504792505081159050611265576009546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611263573d5f803e3d5ffd5b505b5050600c805460ff19169055565b5f82158061127e57505f5b1561128a575081610939565b6008546001600160a01b037f0000000000000000000000007af49c1438b5dd2f66c0f7f4eb2e297c5d085a068116908416036112c95750600754611307565b7f0000000000000000000000007af49c1438b5dd2f66c0f7f4eb2e297c5d085a066001600160a01b0316856001600160a01b03160361130757506006545b5f6113316113166064806118d3565b61132b8461132589600161141d565b9061141d565b9061149b565b905080156113ab57305f9081526002602052604090205461135290826113bf565b305f81815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113a29085815260200190565b60405180910390a35b6113b585826114dc565b9695505050505050565b5f806113cb838561194b565b9050838110156109395760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106a6565b5f825f0361142c57505f61085e565b5f61143783856118d3565b905082611444858361192c565b146109395760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106a6565b5f61093983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061151d565b5f61093983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c90565b5f818361153d5760405162461bcd60e51b81526004016106a691906115da565b505f610cbf848661192c565b80358015158114611558575f80fd5b919050565b5f805f6040848603121561156f575f80fd5b833567ffffffffffffffff80821115611586575f80fd5b818601915086601f830112611599575f80fd5b8135818111156115a7575f80fd5b8760208260051b85010111156115bb575f80fd5b6020928301955093506115d19186019050611549565b90509250925092565b5f6020808352835180828501525f5b81811015611605578581018301518582016040015282016115e9565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611558575f80fd5b5f806040838503121561164c575f80fd5b61165583611625565b946020939093013593505050565b5f805f60608486031215611675575f80fd5b61167e84611625565b925061168c60208501611625565b9150604084013590509250925092565b5f602082840312156116ac575f80fd5b61093982611625565b5f805f606084860312156116c7575f80fd5b505081359360208301359350604090920135919050565b5f602082840312156116ee575f80fd5b5035919050565b5f8060408385031215611706575f80fd5b61170f83611625565b915061171d60208401611625565b90509250929050565b5f8060408385031215611737575f80fd5b61165583611549565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600182016117de576117de6117b9565b5060010190565b600181815b8085111561181f57815f1904821115611805576118056117b9565b8085161561181257918102915b93841c93908002906117ea565b509250929050565b5f826118355750600161085e565b8161184157505f61085e565b816001811461185757600281146118615761187d565b600191505061085e565b60ff841115611872576118726117b9565b50506001821b61085e565b5060208310610133831016604e8410600b84101617156118a0575081810a61085e565b6118aa83836117e5565b805f19048211156118bd576118bd6117b9565b029392505050565b5f61093960ff841683611827565b808202811582820484141761085e5761085e6117b9565b8181038181111561085e5761085e6117b9565b6020808252601590820152744d617820616c6c6f7765642074617820697320372560581b604082015260600190565b5f8261194657634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561085e5761085e6117b9565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119ac5784516001600160a01b031683529383019391830191600101611987565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ceb26b2a583abdebdf542540d8e74106554125c01dad0040a0f25c0783f250cd64736f6c63430008150033

Deployed Bytecode Sourcemap

3042:7830:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6851:310;;;;;;;;;;-1:-1:-1;6851:310:0;;;;;:::i;:::-;;:::i;:::-;;6549:294;;;;;;;;;;-1:-1:-1;6549:294:0;;;;;:::i;:::-;;:::i;4225:48::-;;;;;;;;;;;;;;;;;;;1019:25:1;;;1007:2;992:18;4225:48:0;;;;;;;;3304:52;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3304:52:0;;;;;;;;;;;;:::i;5426:216::-;;;;;;;;;;-1:-1:-1;5426:216:0;;;;;:::i;:::-;;:::i;:::-;;;2210:14:1;;2203:22;2185:41;;2173:2;2158:18;5426:216:0;2045:187:1;3865:44:0;;;;;;;;;;;;3906:3;3865:44;;3453:68;;;;;;;;;;;;;:::i;3822:36::-;;;;;;;;;;;;3857:1;3822:36;;5944:370;;;;;;;;;;-1:-1:-1;5944:370:0;;;;;:::i;:::-;;:::i;10732:137::-;;;;;;;;;;;;;:::i;2273:103::-;;;;;;;;;;-1:-1:-1;2273:103:0;;;;;:::i;:::-;2328:4;2363:5;-1:-1:-1;;;;;2352:16:0;;;2363:5;;2352:16;;2273:103;3409:35;;;;;;;;;;;;3442:2;3409:35;;;;;2933:4:1;2921:17;;;2903:36;;2891:2;2876:18;3409:35:0;2761:184:1;3710:44:0;;;;;;;;;;-1:-1:-1;3710:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9405:111;;;;;;;;;;;;;:::i;5650:122::-;;;;;;;;;;-1:-1:-1;5650:122:0;;;;;:::i;:::-;;:::i;10169:368::-;;;;;;;;;;-1:-1:-1;10169:368:0;;;;;:::i;:::-;;:::i;4188:30::-;;;;;;;;;;-1:-1:-1;4188:30:0;;;;-1:-1:-1;;;4188:30:0;;;;;;3588:45;;;;;;;;;;-1:-1:-1;3588:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2384:128;;;;;;;;;;;;;:::i;3530:49::-;;;;;;;;;;;;;;;;6322:219;;;;;;;;;;-1:-1:-1;6322:219:0;;;;;:::i;:::-;;:::i;5201:78::-;;;;;;;;;;-1:-1:-1;5253:7:0;5271:5;-1:-1:-1;;;;;5271:5:0;5201:78;;;-1:-1:-1;;;;;3620:32:1;;;3602:51;;3590:2;3575:18;5201:78:0;3456:203:1;2086:20:0;;;;;;;;;;-1:-1:-1;2086:20:0;;;;-1:-1:-1;;;;;2086:20:0;;;3363:39;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3363:39:0;;;;;4110:29;;;;;;;;;;;;;;;5780:156;;;;;;;;;;-1:-1:-1;5780:156:0;;;;;:::i;:::-;;:::i;3761:52::-;;;;;;;;;;-1:-1:-1;3761:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9524:108;;;;;;;;;;;;;:::i;5285:133::-;;;;;;;;;;-1:-1:-1;5285:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5387:19:0;;;5369:7;5387:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5285:133;10545:179;;;;;;;;;;-1:-1:-1;10545:179:0;;;;;:::i;:::-;;:::i;4035:35::-;;;;;;;;;;-1:-1:-1;4035:35:0;;;;-1:-1:-1;;;;;4035:35:0;;;4079:24;;;;;;;;;;-1:-1:-1;4079:24:0;;;;-1:-1:-1;;;;;4079:24:0;;;4148:31;;;;;;;;;;-1:-1:-1;4148:31:0;;;;-1:-1:-1;;;4148:31:0;;;;;;6851:310;2328:4;2363:5;-1:-1:-1;;;;;2363:5:0;2232:10;2352:16;2216:38;;;;-1:-1:-1;;;2216:38:0;;;;;;;:::i;:::-;;;;;;;;;6985:3:::1;6966:22:::0;::::1;6958:71;;;;-1:-1:-1::0;;;6958:71:0::1;;;;;;;:::i;:::-;7045:9;7040:114;7058:20:::0;;::::1;7040:114;;;7136:6;7100:19;:33;7120:9;;7130:1;7120:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7100:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;7100:33:0;:42;;-1:-1:-1;;7100:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7080:3:::1;::::0;::::1;:::i;:::-;;;7040:114;;;;6851:310:::0;;;:::o;6549:294::-;2328:4;2363:5;-1:-1:-1;;;;;2363:5:0;2232:10;2352:16;2216:38;;;;-1:-1:-1;;;2216:38:0;;;;;;;:::i;:::-;6675:3:::1;6656:22:::0;::::1;6648:71;;;;-1:-1:-1::0;;;6648:71:0::1;;;;;;;:::i;:::-;6735:9;6730:106;6748:20:::0;;::::1;6730:106;;;6818:6;6790:11;:25;6802:9;;6812:1;6802:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6790:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;6790:25:0;:34;;-1:-1:-1;;6790:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6770:3:::1;::::0;::::1;:::i;:::-;;;6730:106;;5426:216:::0;5530:10;5501:4;5518:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5518:32:0;;;;;;;;;;:41;;;5575:37;5501:4;;5518:32;;5575:37;;;;5553:6;1019:25:1;;1007:2;992:18;;873:177;5575:37:0;;;;;;;;-1:-1:-1;5630:4:0;5426:216;;;;;:::o;3453:68::-;3509:12;3442:2;3509;:12;:::i;:::-;3491:30;;:15;:30;:::i;:::-;3453:68;:::o;5944:370::-;-1:-1:-1;;;;;6064:19:0;;6044:4;6064:19;;;:11;:19;;;;;;;;6084:10;6064:31;;;;;;;;-1:-1:-1;;6064:52:0;6061:186;;6166:69;;;;;;;;;;;-1:-1:-1;;;6166:69:0;;;;;;;;-1:-1:-1;;;;;6166:19:0;;-1:-1:-1;6166:19:0;;;:11;:19;;;;;6186:10;6166:31;;;;;;;;;;:69;;6202:6;;6166:35;:69::i;:::-;-1:-1:-1;;;;;6132:19:0;;;;;;:11;:19;;;;;;;;6152:10;6132:31;;;;;;;:103;6061:186;6266:40;6280:6;6288:9;6299:6;6266:13;:40::i;:::-;6259:47;;5944:370;;;;;;:::o;10732:137::-;10845:9;:15;;;;3180:42;10785:7;10827:15;;;;;10785:7;;10845:15;3509:12;3442:2;3509;:12;:::i;:::-;3491:30;;:15;:30;:::i;:::-;10813:29;;;;:::i;:::-;:47;;;;:::i;:::-;10805:56;;10732:137;:::o;9405:111::-;9455:20;;9447:61;;-1:-1:-1;;;;;9455:20:0;;;;9486:21;9447:61;;;;;9455:20;9447:61;9455:20;9447:61;9486:21;9455:20;9447:61;;;;;;;;;;;;;;;;;;;;;9405:111::o;5650:122::-;5705:4;5729:35;5737:7;-1:-1:-1;;5729:7:0;:35::i;10169:368::-;2328:4;2363:5;-1:-1:-1;;;;;2363:5:0;2232:10;2352:16;2216:38;;;;-1:-1:-1;;;2216:38:0;;;;;;;:::i;:::-;10284:3:::1;10276:4;:11;;10268:44;;;;-1:-1:-1::0;;;10268:44:0::1;;;;;;;:::i;:::-;10340:3;10331:5;:12;;10323:45;;;;-1:-1:-1::0;;;10323:45:0::1;;;;;;;:::i;:::-;10397:3;10387:6;:13;;10379:46;;;;-1:-1:-1::0;;;10379:46:0::1;;;;;;;:::i;:::-;10438:14;:22:::0;;;;10471:13:::1;:20:::0;;;;10502:18:::1;:27:::0;10169:368::o;2384:128::-;2328:4;2363:5;-1:-1:-1;;;;;2363:5:0;2232:10;2352:16;2216:38;;;;-1:-1:-1;;;2216:38:0;;;;;;;:::i;:::-;2459:1:::1;2443:18:::0;;-1:-1:-1;;;;;;2443:18:0::1;::::0;;2477:27:::1;::::0;3602:51:1;;;2477:27:0::1;::::0;3590:2:1;3575:18;2477:27:0::1;;;;;;;2384:128::o:0;6322:219::-;2328:4;2363:5;-1:-1:-1;;;;;2363:5:0;2232:10;2352:16;2216:38;;;;-1:-1:-1;;;2216:38:0;;;;;;;:::i;:::-;6429:1:::1;6412:13;:18;;6404:64;;;::::0;-1:-1:-1;;;6404:64:0;;7793:2:1;6404:64:0::1;::::0;::::1;7775:21:1::0;7832:2;7812:18;;;7805:30;7871:34;7851:18;;;7844:62;-1:-1:-1;;;7922:18:1;;;7915:32;7964:19;;6404:64:0::1;7591:398:1::0;6404:64:0::1;6530:3;6512:13:::0;3509:12:::1;3442:2;3509;:12;:::i;:::-;3491:30;::::0;:15:::1;:30;:::i;:::-;6498:27;;;;:::i;:::-;6497:36;;;;:::i;:::-;6479:15;:54:::0;-1:-1:-1;6322:219:0:o;5780:156::-;5860:4;5884:44;5898:10;5910:9;5921:6;5884:13;:44::i;9524:108::-;2328:4;2363:5;-1:-1:-1;;;;;2363:5:0;2232:10;2352:16;2216:38;;;;-1:-1:-1;;;2216:38:0;;;;;;;:::i;:::-;9577:11:::1;:18:::0;;-1:-1:-1;;;;9606:18:0;-1:-1:-1;;;9606:18:0;;;9524:108::o;10545:179::-;2328:4;2363:5;-1:-1:-1;;;;;2363:5:0;2232:10;2352:16;2216:38;;;;-1:-1:-1;;;2216:38:0;;;;;;;:::i;:::-;10641:11:::1;:22:::0;;-1:-1:-1;;;;10641:22:0::1;-1:-1:-1::0;;;10641:22:0;::::1;;;;::::0;;10704:12;;3509::::1;::::0;3442:2:::1;::::0;3509:12:::1;:::i;:::-;3491:30;::::0;:15:::1;:30;:::i;:::-;10690:26;;;;:::i;:::-;10674:13;:42:::0;-1:-1:-1;;10545:179:0:o;594:192::-;680:7;716:12;708:6;;;;700:29;;;;-1:-1:-1;;;700:29:0;;;;;;;;:::i;:::-;-1:-1:-1;740:9:0;752:5;756:1;752;:5;:::i;:::-;740:17;594:192;-1:-1:-1;;;;;594:192:0:o;7169:950::-;7281:6;;7261:4;;7281:6;;7278:63;;;7297:41;7312:6;7320:9;7331:6;7297:14;:41::i;:::-;7290:48;;;;7278:63;-1:-1:-1;;;;;7357:19:0;;;;;;:11;:19;;;;;;;;7356:20;:47;;;;-1:-1:-1;;;;;;7381:22:0;;;;;;:11;:22;;;;;;;;7380:23;7356:47;7353:121;;;7427:11;;-1:-1:-1;;;7427:11:0;;;;7419:43;;;;-1:-1:-1;;;7419:43:0;;8418:2:1;7419:43:0;;;8400:21:1;8457:2;8437:18;;;8430:30;-1:-1:-1;;;8476:18:1;;;8469:50;8536:18;;7419:43:0;8216:344:1;7419:43:0;-1:-1:-1;;;;;7491:27:0;;;;;;:19;:27;;;;;;;;7490:28;:63;;;;-1:-1:-1;;;;;;7523:30:0;;;;;;:19;:30;;;;;;;;7522:31;7490:63;:84;;;;;7570:4;-1:-1:-1;;;;;7557:17:0;:9;-1:-1:-1;;;;;7557:17:0;;;7490:84;7486:203;;;7634:15;;-1:-1:-1;;;;;7600:20:0;;;;;;:9;:20;;;;;;:29;;7623:6;;7600:29;:::i;:::-;7599:50;;7591:86;;;;-1:-1:-1;;;7591:86:0;;8897:2:1;7591:86:0;;;8879:21:1;8936:2;8916:18;;;8909:30;8975:26;8955:18;;;8948:54;9019:18;;7591:86:0;8695:348:1;7591:86:0;7704:16;:14;:16::i;:::-;7701:35;;;7723:10;:8;:10::i;:::-;7768:53;;;;;;;;;;;-1:-1:-1;;;7768:53:0;;;;;;;;-1:-1:-1;;;;;7768:17:0;;-1:-1:-1;7768:17:0;;;:9;:17;;;;;;;;:53;;7790:6;;7768:21;:53::i;:::-;-1:-1:-1;;;;;7748:17:0;;;;;;:9;:17;;;;;;;;:73;;;;7860:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;7883:22:0;;;;;;:11;:22;;;;;;;;7860:45;7859:93;;7918:34;7926:6;7934;7942:9;7918:7;:34::i;:::-;7859:93;;;7909:6;7859:93;-1:-1:-1;;;;;7988:20:0;;;;;;:9;:20;;;;;;7834:118;;-1:-1:-1;7988:40:0;;7834:118;7988:24;:40::i;:::-;-1:-1:-1;;;;;7965:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8046:43;;;;;;;;;;8074:14;1019:25:1;;1007:2;992:18;;873:177;8046:43:0;;;;;;;;-1:-1:-1;8107:4:0;;7169:950;-1:-1:-1;;;;7169:950:0:o;8131:330::-;8261:53;;;;;;;;;;;-1:-1:-1;;;8261:53:0;;;;;;;;-1:-1:-1;;;;;8261:17:0;;8224:4;8261:17;;;:9;:17;;;;;;;:53;;8283:6;;8261:21;:53::i;:::-;-1:-1:-1;;;;;8241:17:0;;;;;;;:9;:17;;;;;;:73;;;;8348:20;;;;;;;:32;;8373:6;8348:24;:32::i;:::-;-1:-1:-1;;;;;8325:20:0;;;;;;;:9;:20;;;;;;;:55;;;;8396:35;;;;;;;;;;8424:6;1019:25:1;;1007:2;992:18;;873:177;8396:35:0;;;;;;;;-1:-1:-1;8449:4:0;8131:330;;;;;:::o;9200:197::-;9249:4;9273:10;-1:-1:-1;;;;;9287:4:0;9273:18;;;;;:38;;-1:-1:-1;9305:6:0;;;;9304:7;9273:38;:62;;;;-1:-1:-1;9324:11:0;;-1:-1:-1;;;9324:11:0;;;;9273:62;:116;;;;-1:-1:-1;;9376:13:0;;9366:4;9348:24;;;;:9;:24;;;;;;:41;;;9200:197::o;9640:521::-;4326:6;:13;;-1:-1:-1;;4326:13:0;4335:4;4326:13;;;9715:16:::1;::::0;;9729:1:::1;9715:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9715:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9715:16:0::1;9691:40;;9760:4;9742;9747:1;9742:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;9742:23:0::1;;;-1:-1:-1::0;;;;;9742:23:0::1;;;::::0;::::1;9786:4;9776;9781:1;9776:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9776:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;9803:6:::1;::::0;9875:13:::1;::::0;9803:189:::1;::::0;-1:-1:-1;;;9803:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;9875:13;9803:6:::1;::::0;9919:4;;9946::::1;::::0;9966:15:::1;::::0;9803:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;10025:21:0::1;::::0;-1:-1:-1;;10060:13:0;;;-1:-1:-1;10057:97:0::1;;10097:20;::::0;10089:49:::1;::::0;-1:-1:-1;;;;;10097:20:0;;::::1;::::0;10089:49;::::1;;;::::0;10128:9;;10097:20:::1;10089:49:::0;10097:20;10089:49;10128:9;10097:20;10089:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10057:97;-1:-1:-1::0;;4344:6:0;:14;;-1:-1:-1;;4344:14:0;;;9640:521::o;8469:723::-;8555:7;8578:11;;;:28;;-1:-1:-1;8605:1:0;8578:28;8575:72;;;-1:-1:-1;8629:6:0;8622:13;;8575:72;8680:18;;-1:-1:-1;;;;;8727:4:0;8714:17;;;;;;8711:154;;-1:-1:-1;8761:14:0;;8711:154;;;8806:4;-1:-1:-1;;;;;8796:14:0;:6;-1:-1:-1;;;;;8796:14:0;;8793:72;;-1:-1:-1;8840:13:0;;8793:72;8877:17;8897:62;8938:20;3906:3;;8938:20;:::i;:::-;8897:36;8922:10;8897:20;:6;3857:1;8897:10;:20::i;:::-;:24;;:36::i;:::-;:40;;:62::i;:::-;8877:82;-1:-1:-1;8975:13:0;;8972:172;;9049:4;9031:24;;;;:9;:24;;;;;;:39;;9060:9;9031:28;:39::i;:::-;9022:4;9004:24;;;;:9;:24;;;;;;;:66;;;;9090:42;;-1:-1:-1;;;;;9090:42:0;;;;;;;9122:9;1019:25:1;;1007:2;992:18;;873:177;9090:42:0;;;;;;;;8972:172;9163:21;:6;9174:9;9163:10;:21::i;:::-;9156:28;8469:723;-1:-1:-1;;;;;;8469:723:0:o;265:181::-;323:7;;355:5;359:1;355;:5;:::i;:::-;343:17;;384:1;379;:6;;371:46;;;;-1:-1:-1;;;371:46:0;;10367:2:1;371:46:0;;;10349:21:1;10406:2;10386:18;;;10379:30;10445:29;10425:18;;;10418:57;10492:18;;371:46:0;10165:351:1;792:250:0;850:7;874:1;879;874:6;870:47;;-1:-1:-1;904:1:0;897:8;;870:47;929:9;941:5;945:1;941;:5;:::i;:::-;929:17;-1:-1:-1;974:1:0;965:5;969:1;929:17;965:5;:::i;:::-;:10;957:56;;;;-1:-1:-1;;;957:56:0;;10723:2:1;957:56:0;;;10705:21:1;10762:2;10742:18;;;10735:30;10801:34;10781:18;;;10774:62;-1:-1:-1;;;10852:18:1;;;10845:31;10893:19;;957:56:0;10521:397:1;1048:132:0;1106:7;1133:39;1137:1;1140;1133:39;;;;;;;;;;;;;;;;;:3;:39::i;452:136::-;510:7;537:43;541:1;544;537:43;;;;;;;;;;;;;;;;;:3;:43::i;1186:189::-;1272:7;1307:12;1300:5;1292:28;;;;-1:-1:-1;;;1292:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1331:9:0;1343:5;1347:1;1343;:5;:::i;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:689::-;271:6;279;287;340:2;328:9;319:7;315:23;311:32;308:52;;;356:1;353;346:12;308:52;396:9;383:23;425:18;466:2;458:6;455:14;452:34;;;482:1;479;472:12;452:34;520:6;509:9;505:22;495:32;;565:7;558:4;554:2;550:13;546:27;536:55;;587:1;584;577:12;536:55;627:2;614:16;653:2;645:6;642:14;639:34;;;669:1;666;659:12;639:34;724:7;717:4;707:6;704:1;700:14;696:2;692:23;688:34;685:47;682:67;;;745:1;742;735:12;682:67;776:4;768:13;;;;-1:-1:-1;800:6:1;-1:-1:-1;825:37:1;;841:20;;;-1:-1:-1;825:37:1;:::i;:::-;815:47;;179:689;;;;;:::o;1055:548::-;1167:4;1196:2;1225;1214:9;1207:21;1257:6;1251:13;1300:6;1295:2;1284:9;1280:18;1273:34;1325:1;1335:140;1349:6;1346:1;1343:13;1335:140;;;1444:14;;;1440:23;;1434:30;1410:17;;;1429:2;1406:26;1399:66;1364:10;;1335:140;;;1339:3;1524:1;1519:2;1510:6;1499:9;1495:22;1491:31;1484:42;1594:2;1587;1583:7;1578:2;1570:6;1566:15;1562:29;1551:9;1547:45;1543:54;1535:62;;;;1055:548;;;;:::o;1608:173::-;1676:20;;-1:-1:-1;;;;;1725:31:1;;1715:42;;1705:70;;1771:1;1768;1761:12;1786:254;1854:6;1862;1915:2;1903:9;1894:7;1890:23;1886:32;1883:52;;;1931:1;1928;1921:12;1883:52;1954:29;1973:9;1954:29;:::i;:::-;1944:39;2030:2;2015:18;;;;2002:32;;-1:-1:-1;;;1786:254:1:o;2237:328::-;2314:6;2322;2330;2383:2;2371:9;2362:7;2358:23;2354:32;2351:52;;;2399:1;2396;2389:12;2351:52;2422:29;2441:9;2422:29;:::i;:::-;2412:39;;2470:38;2504:2;2493:9;2489:18;2470:38;:::i;:::-;2460:48;;2555:2;2544:9;2540:18;2527:32;2517:42;;2237:328;;;;;:::o;2570:186::-;2629:6;2682:2;2670:9;2661:7;2657:23;2653:32;2650:52;;;2698:1;2695;2688:12;2650:52;2721:29;2740:9;2721:29;:::i;2950:316::-;3027:6;3035;3043;3096:2;3084:9;3075:7;3071:23;3067:32;3064:52;;;3112:1;3109;3102:12;3064:52;-1:-1:-1;;3135:23:1;;;3205:2;3190:18;;3177:32;;-1:-1:-1;3256:2:1;3241:18;;;3228:32;;2950:316;-1:-1:-1;2950:316:1:o;3271:180::-;3330:6;3383:2;3371:9;3362:7;3358:23;3354:32;3351:52;;;3399:1;3396;3389:12;3351:52;-1:-1:-1;3422:23:1;;3271:180;-1:-1:-1;3271:180:1:o;3664:260::-;3732:6;3740;3793:2;3781:9;3772:7;3768:23;3764:32;3761:52;;;3809:1;3806;3799:12;3761:52;3832:29;3851:9;3832:29;:::i;:::-;3822:39;;3880:38;3914:2;3903:9;3899:18;3880:38;:::i;:::-;3870:48;;3664:260;;;;;:::o;3929:248::-;3994:6;4002;4055:2;4043:9;4034:7;4030:23;4026:32;4023:52;;;4071:1;4068;4061:12;4023:52;4094:26;4110:9;4094:26;:::i;4408:329::-;4610:2;4592:21;;;4649:1;4629:18;;;4622:29;-1:-1:-1;;;4682:2:1;4667:18;;4660:36;4728:2;4713:18;;4408:329::o;4742:401::-;4944:2;4926:21;;;4983:2;4963:18;;;4956:30;5022:34;5017:2;5002:18;;4995:62;-1:-1:-1;;;5088:2:1;5073:18;;5066:35;5133:3;5118:19;;4742:401::o;5148:127::-;5209:10;5204:3;5200:20;5197:1;5190:31;5240:4;5237:1;5230:15;5264:4;5261:1;5254:15;5280:127;5341:10;5336:3;5332:20;5329:1;5322:31;5372:4;5369:1;5362:15;5396:4;5393:1;5386:15;5412:135;5451:3;5472:17;;;5469:43;;5492:18;;:::i;:::-;-1:-1:-1;5539:1:1;5528:13;;5412:135::o;5552:422::-;5641:1;5684:5;5641:1;5698:270;5719:7;5709:8;5706:21;5698:270;;;5778:4;5774:1;5770:6;5766:17;5760:4;5757:27;5754:53;;;5787:18;;:::i;:::-;5837:7;5827:8;5823:22;5820:55;;;5857:16;;;;5820:55;5936:22;;;;5896:15;;;;5698:270;;;5702:3;5552:422;;;;;:::o;5979:806::-;6028:5;6058:8;6048:80;;-1:-1:-1;6099:1:1;6113:5;;6048:80;6147:4;6137:76;;-1:-1:-1;6184:1:1;6198:5;;6137:76;6229:4;6247:1;6242:59;;;;6315:1;6310:130;;;;6222:218;;6242:59;6272:1;6263:10;;6286:5;;;6310:130;6347:3;6337:8;6334:17;6331:43;;;6354:18;;:::i;:::-;-1:-1:-1;;6410:1:1;6396:16;;6425:5;;6222:218;;6524:2;6514:8;6511:16;6505:3;6499:4;6496:13;6492:36;6486:2;6476:8;6473:16;6468:2;6462:4;6459:12;6455:35;6452:77;6449:159;;;-1:-1:-1;6561:19:1;;;6593:5;;6449:159;6640:34;6665:8;6659:4;6640:34;:::i;:::-;6710:6;6706:1;6702:6;6698:19;6689:7;6686:32;6683:58;;;6721:18;;:::i;:::-;6759:20;;5979:806;-1:-1:-1;;;5979:806:1:o;6790:140::-;6848:5;6877:47;6918:4;6908:8;6904:19;6898:4;6877:47;:::i;6935:168::-;7008:9;;;7039;;7056:15;;;7050:22;;7036:37;7026:71;;7077:18;;:::i;7108:128::-;7175:9;;;7196:11;;;7193:37;;;7210:18;;:::i;7241:345::-;7443:2;7425:21;;;7482:2;7462:18;;;7455:30;-1:-1:-1;;;7516:2:1;7501:18;;7494:51;7577:2;7562:18;;7241:345::o;7994:217::-;8034:1;8060;8050:132;;8104:10;8099:3;8095:20;8092:1;8085:31;8139:4;8136:1;8129:15;8167:4;8164:1;8157:15;8050:132;-1:-1:-1;8196:9:1;;7994:217::o;8565:125::-;8630:9;;;8651:10;;;8648:36;;;8664:18;;:::i;9180:980::-;9442:4;9490:3;9479:9;9475:19;9521:6;9510:9;9503:25;9547:2;9585:6;9580:2;9569:9;9565:18;9558:34;9628:3;9623:2;9612:9;9608:18;9601:31;9652:6;9687;9681:13;9718:6;9710;9703:22;9756:3;9745:9;9741:19;9734:26;;9795:2;9787:6;9783:15;9769:29;;9816:1;9826:195;9840:6;9837:1;9834:13;9826:195;;;9905:13;;-1:-1:-1;;;;;9901:39:1;9889:52;;9996:15;;;;9961:12;;;;9937:1;9855:9;9826:195;;;-1:-1:-1;;;;;;;10077:32:1;;;;10072:2;10057:18;;10050:60;-1:-1:-1;;;10141:3:1;10126:19;10119:35;10038:3;9180:980;-1:-1:-1;;;9180:980:1:o

Swarm Source

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