ETH Price: $3,136.04 (+5.30%)

Token

ƬЯIPPΣЯ PΣPΣ (ƬЯIP)
 

Overview

Max Total Supply

420,000,000,000 ƬЯIP

Holders

46

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.30912769 ƬЯIP

Value
$0.00
0x7422f9ba4Da9dC421bc76c59992f348BAB191162
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:
TripperPepe

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-08
*/

/**
https://opensea.io/assets/ethereum/0x808e5cd160d8819ca24c2053037049eb611d0542/104

Tripper Pepe was not your average adventurer. His quest for the extraordinary led
him down paths less traveled, and his favorite pastime was far from ordinary. 
Tripping was his way of life, and mushrooms were his chosen vehicle to explore 
the cosmos of his own mind.

TG: https://t.me/TripperPepeERC
Web: https://www.tripperpepe.online/chart
Twitter: https://twitter.com/tripperpepe

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function totalSupply() external view returns (uint256);
    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 Ownable {
    address internal 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 transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract TripperPepe is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = '\u01ac\u042f\u0049\u0050\u0050\u03a3\u042f\u0020\u0050\u03a3\u0050\u03a3';
    string private constant _symbol = '\u01ac\u042f\u0049\u0050';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 420000000000 * (10 ** _decimals);
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 1;
    uint256 private swapThreshold = ( _totalSupply * 399 ) / 100000;
    uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 100;
    uint256 private developmentFee = 100;
    uint256 private burnFee = 0;
    uint256 private totalFee = 100;
    uint256 private sellFee = 100;
    uint256 private transferFee = 100;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal development_receiver = 0xd1b8C5e791973E3D1EFf85c1482bAD4583bb64fC; 
    address internal marketing_receiver = 0xD0A9401127f6a6275800DBcf0E8C8Ae6AE71857C;
    address internal liquidity_receiver = 0xd1b8C5e791973E3D1EFf85c1482bAD4583bb64fC;
    uint256 public _maxTxAmount = ( _totalSupply * 200 ) / 10000;
    uint256 public _maxSellAmount = ( _totalSupply * 100 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 200 ) / 10000;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        router = _router;
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[development_receiver] = true;
        isFeeExempt[msg.sender] = true;
        _balances[address(this)] = _totalSupply;
        emit Transfer(address(0), address(this), _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply;}

    function shouldContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= swapAmount && aboveThreshold;
    }

    function setContractSwapSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        swapAmount = _swapAmount; swapThreshold = _totalSupply.mul(_swapThreshold).div(uint256(100000)); 
        minTokenAmount = _totalSupply.mul(_minTokenAmount).div(uint256(100000));
    }

    function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "totalFee and sellFee cannot be more than 20%");
    }

    function setTransactionLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_wallet).div(10000);
        _maxTxAmount = newTx; _maxSellAmount = newTransfer; _maxWalletToken = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function setInternalAddresses(address _marketing, address _liquidity, address _development) external onlyOwner {
        marketing_receiver = _marketing; liquidity_receiver = _liquidity; development_receiver = _development;
        isFeeExempt[_marketing] = true; isFeeExempt[_liquidity] = true; isFeeExempt[_development] = true;
    }

    function startTrading(uint256 buy, uint256 sell, uint256 trans, uint256 lp, uint256 owner) external onlyOwner {
        tradingAllowed = true; totalFee = buy; sellFee = sell; transferFee = trans; 
        uint256 currentBalance = balanceOf(address(this));
        uint256 tokensOwner = currentBalance.mul(owner).div(uint256(100));
        _transfer(address(this), msg.sender, tokensOwner);
        pair = IFactory(router.factory()).createPair(router.WETH(), address(this)); 
        uint256 tokensAdd = currentBalance.mul(lp).div(uint256(100));
        addLiquidity(tokensAdd, address(this).balance);
    }

    function manualSwap() external onlyOwner {
        uint256 amount = balanceOf(address(this));
        if(amount > swapThreshold){amount = swapThreshold;}
        swapAndLiquify(amount);
    }

    function rescueERC20(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(development_receiver, _amount);
    }

    function rescueETH(uint256 percent) external onlyOwner {
        uint256 _amount = address(this).balance.mul(percent).div(100);
        payable(development_receiver).transfer(_amount);
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(development_receiver).transfer(contractBalance);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity_receiver,
            block.timestamp);
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTotalFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}
        if(sender != pair){require(amount <= _maxSellAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded"); 
        if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

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":"_maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setContractSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTransactionLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"trans","type":"uint256"},{"internalType":"uint256","name":"lp","type":"uint256"},{"internalType":"uint256","name":"owner","type":"uint256"}],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200037e565b62000023906461c9f3680062000396565b60018181556006805461ffff60a01b1916600160a81b179055600955620186a090620000529061018f62000396565b6200005e9190620003b0565b600a55620186a0600154600a62000076919062000396565b620000829190620003b0565b600b556000600c8190556064600d819055600e819055600f91909155601081905560118190556012556127106013819055601480546001600160a01b031990811673d1b8c5e791973e3d1eff85c1482bad4583bb64fc90811790925560158054821673d0a9401127f6a6275800dbcf0e8c8ae6ae71857c179055601680549091169091179055600154620001189060c862000396565b620001249190620003b0565b60175561271060015460646200013b919062000396565b620001479190620003b0565b60185561271060015460c86200015e919062000396565b6200016a9190620003b0565b6019553480156200017a57600080fd5b5060008054336001600160a01b03199182168117835560058054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905530808452600460209081526040808620805460ff1990811660019081179092556016546001600160a01b039081168952838920805483168417905560155481168952838920805483168417905560145416885282882080548216831790559487528187208054909516811790945592548286526002825283862081905592519283529293909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620003d3565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002c0578160001904821115620002a457620002a462000269565b80851615620002b257918102915b93841c939080029062000284565b509250929050565b600082620002d95750600162000378565b81620002e85750600062000378565b81600181146200030157600281146200030c576200032c565b600191505062000378565b60ff84111562000320576200032062000269565b50506001821b62000378565b5060208310610133831016604e8410600b841016171562000351575081810a62000378565b6200035d83836200027f565b806000190482111562000374576200037462000269565b0290505b92915050565b60006200038f60ff841683620002c8565b9392505050565b808202811582820484141762000378576200037862000269565b600082620003ce57634e487b7160e01b600052601260045260246000fd5b500490565b611f4b80620003e36000396000f3fe6080604052600436106101855760003560e01c80637d1db4a5116100d15780639d8740cb1161008a578063a9059cbb11610064578063a9059cbb146104b8578063cb7f97d7146104d8578063dd62ed3e146104f8578063f2fde38b1461053e57600080fd5b80639d8740cb146104585780639e252f0014610478578063a8aa1b311461049857600080fd5b80637d1db4a514610381578063893d20e8146103975780638cd4426d146103c95780639213c358146103e957806395d89b41146104095780639cc353511461043857600080fd5b8063313ce5671161013e57806351bc3c851161011857806351bc3c851461030a57806370a082311461031f57806378109e54146103555780637cca52fe1461036b57600080fd5b8063313ce5671461029e5780633f4218e0146102ba57806348ff2b8b146102ea57600080fd5b806306fdde0314610191578063095ea7b3146101de578063154e2f881461020e57806318160ddd1461023057806323b872dd1461024f5780632f54bf6e1461026f57600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b50604080518082019091526012815271c6acd0af495050cea3d0af2050cea350cea360701b60208201525b6040516101d59190611ad7565b60405180910390f35b3480156101ea57600080fd5b506101fe6101f9366004611b3a565b61055e565b60405190151581526020016101d5565b34801561021a57600080fd5b5061022e610229366004611b66565b610575565b005b34801561023c57600080fd5b506001545b6040519081526020016101d5565b34801561025b57600080fd5b506101fe61026a366004611ba1565b6107b3565b34801561027b57600080fd5b506101fe61028a366004611be2565b6000546001600160a01b0391821691161490565b3480156102aa57600080fd5b50604051600981526020016101d5565b3480156102c657600080fd5b506101fe6102d5366004611be2565b60046020526000908152604090205460ff1681565b3480156102f657600080fd5b5061022e610305366004611c0d565b61081d565b34801561031657600080fd5b5061022e610872565b34801561032b57600080fd5b5061024161033a366004611be2565b6001600160a01b031660009081526002602052604090205490565b34801561036157600080fd5b5061024160195481565b34801561037757600080fd5b5061024160185481565b34801561038d57600080fd5b5061024160175481565b3480156103a357600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101d5565b3480156103d557600080fd5b5061022e6103e4366004611b3a565b6108c7565b3480156103f557600080fd5b5061022e610404366004611c46565b6109ee565b34801561041557600080fd5b506040805180820190915260068152650c6acd0af49560d41b60208201526101c8565b34801561044457600080fd5b5061022e610453366004611c91565b610a94565b34801561046457600080fd5b5061022e610473366004611c91565b610bca565b34801561048457600080fd5b5061022e610493366004611cbd565b610c30565b3480156104a457600080fd5b506006546103b1906001600160a01b031681565b3480156104c457600080fd5b506101fe6104d3366004611b3a565b610cab565b3480156104e457600080fd5b5061022e6104f3366004611cd6565b610cb8565b34801561050457600080fd5b50610241610513366004611d22565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561054a57600080fd5b5061022e610559366004611be2565b610daf565b600061056b338484610e2d565b5060015b92915050565b6000546001600160a01b031633146105a85760405162461bcd60e51b815260040161059f90611d50565b60405180910390fd5b6006805460ff60a01b1916600160a01b17905560108590556011849055601283905530600090815260026020526040812054905060006105f360646105ed8486610f51565b90610f5d565b9050610600303383610f69565b600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106779190611d70565b6001600160a01b031663c9c65396600560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fc9190611d70565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015610748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076c9190611d70565b600680546001600160a01b0319166001600160a01b0392909216919091179055600061079d60646105ed8588610f51565b90506107a981476114b6565b5050505050505050565b60006107c0848484610f69565b610812843361080d85604051806060016040528060288152602001611eee602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061156a565b610e2d565b5060015b9392505050565b6000546001600160a01b031633146108475760405162461bcd60e51b815260040161059f90611d50565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461089c5760405162461bcd60e51b815260040161059f90611d50565b30600090815260026020526040902054600a548111156108bb5750600a545b6108c481611596565b50565b6000546001600160a01b031633146108f15760405162461bcd60e51b815260040161059f90611d50565b6040516370a0823160e01b815230600482015260009061096f906064906105ed9085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610945573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109699190611d8d565b90610f51565b60145460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af11580156109c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e89190611da6565b50505050565b6000546001600160a01b03163314610a185760405162461bcd60e51b815260040161059f90611d50565b601580546001600160a01b039485166001600160a01b031991821681179092556016805494861694821685179055601480549390951692168217909355600092835260046020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b03163314610abe5760405162461bcd60e51b815260040161059f90611d50565b6000610adb6127106105ed86600154610f5190919063ffffffff16565b90506000610afa6127106105ed86600154610f5190919063ffffffff16565b90506000610b196127106105ed86600154610f5190919063ffffffff16565b60178490556018839055601981905590506000610b406103e86105ed600561096960015490565b9050808410158015610b525750808310155b8015610b5e5750808210155b610bc15760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161059f565b50505050505050565b6000546001600160a01b03163314610bf45760405162461bcd60e51b815260040161059f90611d50565b6009839055600154610c0f90620186a0906105ed9085610f51565b600a55600154610c2890620186a0906105ed9084610f51565b600b55505050565b6000546001600160a01b03163314610c5a5760405162461bcd60e51b815260040161059f90611d50565b6000610c6b60646105ed4785610f51565b6014546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ca6573d6000803e3d6000fd5b505050565b600061056b338484610f69565b6000546001600160a01b03163314610ce25760405162461bcd60e51b815260040161059f90611d50565b600c879055600d869055600f859055600e849055601083905560118290556012819055601354610d13906001610f5d565b60105411158015610d335750601354610d2d906001610f5d565b60115411155b8015610d4e5750601354610d48906001610f5d565b60125411155b610bc15760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b606482015260840161059f565b6000546001600160a01b03163314610dd95760405162461bcd60e51b815260040161059f90611d50565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610e8f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161059f565b6001600160a01b038216610ef05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161059f565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006108168284611dd9565b60006108168284611df0565b6001600160a01b038316610fcd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161059f565b6001600160a01b03821661102f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161059f565b6001600160a01b0383166000908152600260205260409020548111156110b15760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161059f565b6001600160a01b03831660009081526004602052604090205460ff161580156110f357506001600160a01b03821660009081526004602052604090205460ff16155b1561114257600654600160a01b900460ff166111425760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161059f565b6001600160a01b03831660009081526004602052604090205460ff1615801561118457506001600160a01b03821660009081526004602052604090205460ff16155b801561119e57506006546001600160a01b03838116911614155b80156111b557506001600160a01b03821661dead14155b1561122e576019546001600160a01b0383166000908152600260205260409020546111e09083611713565b111561122e5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161059f565b6006546001600160a01b038481169116146112cf576018548111158061126c57506001600160a01b03831660009081526004602052604090205460ff165b8061128f57506001600160a01b03821660009081526004602052604090205460ff165b6112cf5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161059f565b601754811115806112f857506001600160a01b03831660009081526004602052604090205460ff165b8061131b57506001600160a01b03821660009081526004602052604090205460ff165b61135b5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161059f565b6006546001600160a01b03838116911614801561139157506001600160a01b03831660009081526004602052604090205460ff16155b156113af576001600760008282546113a99190611e12565b90915550505b6113ba83838361171f565b156113d0576113ca600a54611596565b60006007555b6001600160a01b0383166000908152600260205260409020546113f390826117d9565b6001600160a01b03841660009081526002602052604081209190915561141984846117e5565b611423578161142e565b61142e84848461182b565b6001600160a01b0384166000908152600260205260409020549091506114549082611713565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114a89085815260200190565b60405180910390a350505050565b6005546114ce9030906001600160a01b031684610e2d565b60055460165460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561153e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115639190611e25565b5050505050565b6000818484111561158e5760405162461bcd60e51b815260040161059f9190611ad7565b505050900390565b6008805460ff19166001908117909155600e54600d54600c546000936115d0936002936109699391926115ca928391611713565b90611713565b905060006115ed826105ed600c5486610f5190919063ffffffff16565b905060006115fb84836117d9565b90504761160782611932565b600061161347836117d9565b9050600061163661162f600c54886117d990919063ffffffff16565b8390610f5d565b9050600061164f600c5483610f5190919063ffffffff16565b905080156116615761166186826114b6565b600d5460009061167690610969856002610f51565b905080156116ba576015546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156116b8573d6000803e3d6000fd5b505b4780156116fd576014546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156116fb573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b60006108168284611e12565b600b54600a543060009081526002602052604081205460085491938510159211159060ff1615801561175a5750600654600160a81b900460ff165b801561176f5750600654600160a01b900460ff165b80156117785750815b801561179d57506001600160a01b03861660009081526004602052604090205460ff16155b80156117b657506006546001600160a01b038681169116145b80156117c6575060095460075410155b80156117cf5750805b9695505050505050565b60006108168284611e53565b6001600160a01b03821660009081526004602052604081205460ff161580156108165750506001600160a01b031660009081526004602052604090205460ff1615919050565b6000806118388585611a8c565b111561192b57600061185b61184d8686611a8c565b601354610969908690610f5d565b306000908152600260205260409020549091506118789082611713565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118c99085815260200190565b60405180910390a36000600f541180156118ed5750600f546118eb8686611a8c565b115b15611919576119193061dead611914600f5461096960135489610f5d90919063ffffffff16565b610f69565b61192383826117d9565b915050610816565b5092915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061196757611967611e66565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e49190611d70565b816001815181106119f7576119f7611e66565b6001600160a01b039283166020918202929092010152600554611a1d9130911684610e2d565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a56908590600090869030904290600401611e7c565b600060405180830381600087803b158015611a7057600080fd5b505af1158015611a84573d6000803e3d6000fd5b505050505050565b6006546000906001600160a01b0390811690831603611aae575060115461056f565b6006546001600160a01b0390811690841603611acd575060105461056f565b5060125492915050565b600060208083528351808285015260005b81811015611b0457858101830151858201604001528201611ae8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108c457600080fd5b60008060408385031215611b4d57600080fd5b8235611b5881611b25565b946020939093013593505050565b600080600080600060a08688031215611b7e57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600080600060608486031215611bb657600080fd5b8335611bc181611b25565b92506020840135611bd181611b25565b929592945050506040919091013590565b600060208284031215611bf457600080fd5b813561081681611b25565b80151581146108c457600080fd5b60008060408385031215611c2057600080fd5b8235611c2b81611b25565b91506020830135611c3b81611bff565b809150509250929050565b600080600060608486031215611c5b57600080fd5b8335611c6681611b25565b92506020840135611c7681611b25565b91506040840135611c8681611b25565b809150509250925092565b600080600060608486031215611ca657600080fd5b505081359360208301359350604090920135919050565b600060208284031215611ccf57600080fd5b5035919050565b600080600080600080600060e0888a031215611cf157600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215611d3557600080fd5b8235611d4081611b25565b91506020830135611c3b81611b25565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060208284031215611d8257600080fd5b815161081681611b25565b600060208284031215611d9f57600080fd5b5051919050565b600060208284031215611db857600080fd5b815161081681611bff565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761056f5761056f611dc3565b600082611e0d57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561056f5761056f611dc3565b600080600060608486031215611e3a57600080fd5b8351925060208401519150604084015190509250925092565b8181038181111561056f5761056f611dc3565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ecc5784516001600160a01b031683529383019391830191600101611ea7565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204a0e6a7adcec7447f6185b1474814a20f382565075d34d6cd22aabf759f1ec0e64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80637d1db4a5116100d15780639d8740cb1161008a578063a9059cbb11610064578063a9059cbb146104b8578063cb7f97d7146104d8578063dd62ed3e146104f8578063f2fde38b1461053e57600080fd5b80639d8740cb146104585780639e252f0014610478578063a8aa1b311461049857600080fd5b80637d1db4a514610381578063893d20e8146103975780638cd4426d146103c95780639213c358146103e957806395d89b41146104095780639cc353511461043857600080fd5b8063313ce5671161013e57806351bc3c851161011857806351bc3c851461030a57806370a082311461031f57806378109e54146103555780637cca52fe1461036b57600080fd5b8063313ce5671461029e5780633f4218e0146102ba57806348ff2b8b146102ea57600080fd5b806306fdde0314610191578063095ea7b3146101de578063154e2f881461020e57806318160ddd1461023057806323b872dd1461024f5780632f54bf6e1461026f57600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b50604080518082019091526012815271c6acd0af495050cea3d0af2050cea350cea360701b60208201525b6040516101d59190611ad7565b60405180910390f35b3480156101ea57600080fd5b506101fe6101f9366004611b3a565b61055e565b60405190151581526020016101d5565b34801561021a57600080fd5b5061022e610229366004611b66565b610575565b005b34801561023c57600080fd5b506001545b6040519081526020016101d5565b34801561025b57600080fd5b506101fe61026a366004611ba1565b6107b3565b34801561027b57600080fd5b506101fe61028a366004611be2565b6000546001600160a01b0391821691161490565b3480156102aa57600080fd5b50604051600981526020016101d5565b3480156102c657600080fd5b506101fe6102d5366004611be2565b60046020526000908152604090205460ff1681565b3480156102f657600080fd5b5061022e610305366004611c0d565b61081d565b34801561031657600080fd5b5061022e610872565b34801561032b57600080fd5b5061024161033a366004611be2565b6001600160a01b031660009081526002602052604090205490565b34801561036157600080fd5b5061024160195481565b34801561037757600080fd5b5061024160185481565b34801561038d57600080fd5b5061024160175481565b3480156103a357600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101d5565b3480156103d557600080fd5b5061022e6103e4366004611b3a565b6108c7565b3480156103f557600080fd5b5061022e610404366004611c46565b6109ee565b34801561041557600080fd5b506040805180820190915260068152650c6acd0af49560d41b60208201526101c8565b34801561044457600080fd5b5061022e610453366004611c91565b610a94565b34801561046457600080fd5b5061022e610473366004611c91565b610bca565b34801561048457600080fd5b5061022e610493366004611cbd565b610c30565b3480156104a457600080fd5b506006546103b1906001600160a01b031681565b3480156104c457600080fd5b506101fe6104d3366004611b3a565b610cab565b3480156104e457600080fd5b5061022e6104f3366004611cd6565b610cb8565b34801561050457600080fd5b50610241610513366004611d22565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561054a57600080fd5b5061022e610559366004611be2565b610daf565b600061056b338484610e2d565b5060015b92915050565b6000546001600160a01b031633146105a85760405162461bcd60e51b815260040161059f90611d50565b60405180910390fd5b6006805460ff60a01b1916600160a01b17905560108590556011849055601283905530600090815260026020526040812054905060006105f360646105ed8486610f51565b90610f5d565b9050610600303383610f69565b600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106779190611d70565b6001600160a01b031663c9c65396600560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fc9190611d70565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015610748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076c9190611d70565b600680546001600160a01b0319166001600160a01b0392909216919091179055600061079d60646105ed8588610f51565b90506107a981476114b6565b5050505050505050565b60006107c0848484610f69565b610812843361080d85604051806060016040528060288152602001611eee602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061156a565b610e2d565b5060015b9392505050565b6000546001600160a01b031633146108475760405162461bcd60e51b815260040161059f90611d50565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461089c5760405162461bcd60e51b815260040161059f90611d50565b30600090815260026020526040902054600a548111156108bb5750600a545b6108c481611596565b50565b6000546001600160a01b031633146108f15760405162461bcd60e51b815260040161059f90611d50565b6040516370a0823160e01b815230600482015260009061096f906064906105ed9085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610945573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109699190611d8d565b90610f51565b60145460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af11580156109c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e89190611da6565b50505050565b6000546001600160a01b03163314610a185760405162461bcd60e51b815260040161059f90611d50565b601580546001600160a01b039485166001600160a01b031991821681179092556016805494861694821685179055601480549390951692168217909355600092835260046020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b03163314610abe5760405162461bcd60e51b815260040161059f90611d50565b6000610adb6127106105ed86600154610f5190919063ffffffff16565b90506000610afa6127106105ed86600154610f5190919063ffffffff16565b90506000610b196127106105ed86600154610f5190919063ffffffff16565b60178490556018839055601981905590506000610b406103e86105ed600561096960015490565b9050808410158015610b525750808310155b8015610b5e5750808210155b610bc15760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161059f565b50505050505050565b6000546001600160a01b03163314610bf45760405162461bcd60e51b815260040161059f90611d50565b6009839055600154610c0f90620186a0906105ed9085610f51565b600a55600154610c2890620186a0906105ed9084610f51565b600b55505050565b6000546001600160a01b03163314610c5a5760405162461bcd60e51b815260040161059f90611d50565b6000610c6b60646105ed4785610f51565b6014546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ca6573d6000803e3d6000fd5b505050565b600061056b338484610f69565b6000546001600160a01b03163314610ce25760405162461bcd60e51b815260040161059f90611d50565b600c879055600d869055600f859055600e849055601083905560118290556012819055601354610d13906001610f5d565b60105411158015610d335750601354610d2d906001610f5d565b60115411155b8015610d4e5750601354610d48906001610f5d565b60125411155b610bc15760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b606482015260840161059f565b6000546001600160a01b03163314610dd95760405162461bcd60e51b815260040161059f90611d50565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610e8f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161059f565b6001600160a01b038216610ef05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161059f565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006108168284611dd9565b60006108168284611df0565b6001600160a01b038316610fcd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161059f565b6001600160a01b03821661102f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161059f565b6001600160a01b0383166000908152600260205260409020548111156110b15760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161059f565b6001600160a01b03831660009081526004602052604090205460ff161580156110f357506001600160a01b03821660009081526004602052604090205460ff16155b1561114257600654600160a01b900460ff166111425760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161059f565b6001600160a01b03831660009081526004602052604090205460ff1615801561118457506001600160a01b03821660009081526004602052604090205460ff16155b801561119e57506006546001600160a01b03838116911614155b80156111b557506001600160a01b03821661dead14155b1561122e576019546001600160a01b0383166000908152600260205260409020546111e09083611713565b111561122e5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161059f565b6006546001600160a01b038481169116146112cf576018548111158061126c57506001600160a01b03831660009081526004602052604090205460ff165b8061128f57506001600160a01b03821660009081526004602052604090205460ff165b6112cf5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161059f565b601754811115806112f857506001600160a01b03831660009081526004602052604090205460ff165b8061131b57506001600160a01b03821660009081526004602052604090205460ff165b61135b5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161059f565b6006546001600160a01b03838116911614801561139157506001600160a01b03831660009081526004602052604090205460ff16155b156113af576001600760008282546113a99190611e12565b90915550505b6113ba83838361171f565b156113d0576113ca600a54611596565b60006007555b6001600160a01b0383166000908152600260205260409020546113f390826117d9565b6001600160a01b03841660009081526002602052604081209190915561141984846117e5565b611423578161142e565b61142e84848461182b565b6001600160a01b0384166000908152600260205260409020549091506114549082611713565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114a89085815260200190565b60405180910390a350505050565b6005546114ce9030906001600160a01b031684610e2d565b60055460165460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561153e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115639190611e25565b5050505050565b6000818484111561158e5760405162461bcd60e51b815260040161059f9190611ad7565b505050900390565b6008805460ff19166001908117909155600e54600d54600c546000936115d0936002936109699391926115ca928391611713565b90611713565b905060006115ed826105ed600c5486610f5190919063ffffffff16565b905060006115fb84836117d9565b90504761160782611932565b600061161347836117d9565b9050600061163661162f600c54886117d990919063ffffffff16565b8390610f5d565b9050600061164f600c5483610f5190919063ffffffff16565b905080156116615761166186826114b6565b600d5460009061167690610969856002610f51565b905080156116ba576015546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156116b8573d6000803e3d6000fd5b505b4780156116fd576014546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156116fb573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b60006108168284611e12565b600b54600a543060009081526002602052604081205460085491938510159211159060ff1615801561175a5750600654600160a81b900460ff165b801561176f5750600654600160a01b900460ff165b80156117785750815b801561179d57506001600160a01b03861660009081526004602052604090205460ff16155b80156117b657506006546001600160a01b038681169116145b80156117c6575060095460075410155b80156117cf5750805b9695505050505050565b60006108168284611e53565b6001600160a01b03821660009081526004602052604081205460ff161580156108165750506001600160a01b031660009081526004602052604090205460ff1615919050565b6000806118388585611a8c565b111561192b57600061185b61184d8686611a8c565b601354610969908690610f5d565b306000908152600260205260409020549091506118789082611713565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118c99085815260200190565b60405180910390a36000600f541180156118ed5750600f546118eb8686611a8c565b115b15611919576119193061dead611914600f5461096960135489610f5d90919063ffffffff16565b610f69565b61192383826117d9565b915050610816565b5092915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061196757611967611e66565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e49190611d70565b816001815181106119f7576119f7611e66565b6001600160a01b039283166020918202929092010152600554611a1d9130911684610e2d565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a56908590600090869030904290600401611e7c565b600060405180830381600087803b158015611a7057600080fd5b505af1158015611a84573d6000803e3d6000fd5b505050505050565b6006546000906001600160a01b0390811690831603611aae575060115461056f565b6006546001600160a01b0390811690841603611acd575060105461056f565b5060125492915050565b600060208083528351808285015260005b81811015611b0457858101830151858201604001528201611ae8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108c457600080fd5b60008060408385031215611b4d57600080fd5b8235611b5881611b25565b946020939093013593505050565b600080600080600060a08688031215611b7e57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600080600060608486031215611bb657600080fd5b8335611bc181611b25565b92506020840135611bd181611b25565b929592945050506040919091013590565b600060208284031215611bf457600080fd5b813561081681611b25565b80151581146108c457600080fd5b60008060408385031215611c2057600080fd5b8235611c2b81611b25565b91506020830135611c3b81611bff565b809150509250929050565b600080600060608486031215611c5b57600080fd5b8335611c6681611b25565b92506020840135611c7681611b25565b91506040840135611c8681611b25565b809150509250925092565b600080600060608486031215611ca657600080fd5b505081359360208301359350604090920135919050565b600060208284031215611ccf57600080fd5b5035919050565b600080600080600080600060e0888a031215611cf157600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215611d3557600080fd5b8235611d4081611b25565b91506020830135611c3b81611b25565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060208284031215611d8257600080fd5b815161081681611b25565b600060208284031215611d9f57600080fd5b5051919050565b600060208284031215611db857600080fd5b815161081681611bff565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761056f5761056f611dc3565b600082611e0d57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561056f5761056f611dc3565b600080600060608486031215611e3a57600080fd5b8351925060208401519150604084015190509250925092565b8181038181111561056f5761056f611dc3565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ecc5784516001600160a01b031683529383019391830191600101611ea7565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204a0e6a7adcec7447f6185b1474814a20f382565075d34d6cd22aabf759f1ec0e64736f6c63430008130033

Deployed Bytecode Sourcemap

5160:11822:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7534:67;;;;;;;;;;-1:-1:-1;7594:5:0;;;;;;;;;;;;-1:-1:-1;;;7594:5:0;;;;7534:67;;;;;;;:::i;:::-;;;;;;;;8342:133;;;;;;;;;;-1:-1:-1;8342:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8342:133:0;1023:187:1;10753:614:0;;;;;;;;;;-1:-1:-1;10753:614:0;;;;;:::i;:::-;;:::i;:::-;;8481:84;;;;;;;;;;-1:-1:-1;8551:12:0;;8481:84;;;1820:25:1;;;1808:2;1793:18;8481:84:0;1674:177:1;16327:309:0;;;;;;;;;;-1:-1:-1;16327:309:0;;;;;:::i;:::-;;:::i;4064:87::-;;;;;;;;;;-1:-1:-1;4064:87:0;;;;;:::i;:::-;4119:4;4144:5;-1:-1:-1;;;;;4133:16:0;;;4144:5;;4133:16;;4064:87;7684:67;;;;;;;;;;-1:-1:-1;7684:67:0;;5455:1;2711:36:1;;2699:2;2684:18;7684:67:0;2569:184:1;5654:44:0;;;;;;;;;;-1:-1:-1;5654:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8228:108;;;;;;;;;;-1:-1:-1;8228:108:0;;;;;:::i;:::-;;:::i;11375:195::-;;;;;;;;;;;;;:::i;7841:103::-;;;;;;;;;;-1:-1:-1;7841:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7924:18:0;7907:7;7924:18;;;:9;:18;;;;;;;7841:103;6921:63;;;;;;;;;;;;;;;;6852:62;;;;;;;;;;;;;;;;6785:60;;;;;;;;;;;;;;;;7757:78;;;;;;;;;;-1:-1:-1;7809:7:0;7827:5;-1:-1:-1;;;;;7827:5:0;7757:78;;;-1:-1:-1;;;;;3432:32:1;;;3414:51;;3402:2;3387:18;7757:78:0;3268:203:1;11578:242:0;;;;;;;;;;-1:-1:-1;11578:242:0;;;;;:::i;:::-;;:::i;10407:338::-;;;;;;;;;;-1:-1:-1;10407:338:0;;;;;:::i;:::-;;:::i;7607:71::-;;;;;;;;;;-1:-1:-1;7669:7:0;;;;;;;;;;;;-1:-1:-1;;;7669:7:0;;;;7607:71;;9843:556;;;;;;;;;;-1:-1:-1;9843:556:0;;;;;:::i;:::-;;:::i;8984:319::-;;;;;;;;;;-1:-1:-1;8984:319:0;;;;;:::i;:::-;;:::i;11828:193::-;;;;;;;;;;-1:-1:-1;11828:193:0;;;;;:::i;:::-;;:::i;5726:19::-;;;;;;;;;;-1:-1:-1;5726:19:0;;;;-1:-1:-1;;;;;5726:19:0;;;7950:139;;;;;;;;;;-1:-1:-1;7950:139:0;;;;;:::i;:::-;;:::i;9311:524::-;;;;;;;;;;-1:-1:-1;9311:524:0;;;;;:::i;:::-;;:::i;8095:127::-;;;;;;;;;;-1:-1:-1;8095:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8193:18:0;;;8176:7;8193:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8095:127;4157:111;;;;;;;;;;-1:-1:-1;4157:111:0;;;;;:::i;:::-;;:::i;8342:133::-;8417:4;8424:37;8433:10;8445:7;8454:6;8424:8;:37::i;:::-;-1:-1:-1;8469:4:0;8342:133;;;;;:::o;10753:614::-;4119:4;4144:5;-1:-1:-1;;;;;4144:5:0;4031:10;4133:16;4015:38;;;;-1:-1:-1;;;4015:38:0;;;;;;;:::i;:::-;;;;;;;;;10874:14:::1;:21:::0;;-1:-1:-1;;;;10874:21:0::1;-1:-1:-1::0;;;10874:21:0::1;::::0;;10897:8:::1;:14:::0;;;10913:7:::1;:14:::0;;;10929:11:::1;:19:::0;;;11003:4:::1;-1:-1:-1::0;7924:18:0;;;:9;:18;;;;;;10960:49;-1:-1:-1;11020:19:0::1;11042:43;11080:3;11042:25;10960:49:::0;11061:5;11042:18:::1;:25::i;:::-;:29:::0;::::1;:43::i;:::-;11020:65;;11096:49;11114:4;11121:10;11133:11;11096:9;:49::i;:::-;11172:6;;;;;;;;;-1:-1:-1::0;;;;;11172:6:0::1;-1:-1:-1::0;;;;;11172:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11163:37:0::1;;11201:6;;;;;;;;;-1:-1:-1::0;;;;;11201:6:0::1;-1:-1:-1::0;;;;;11201:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11163:67;::::0;-1:-1:-1;;;;;;11163:67:0::1;::::0;;;;;;-1:-1:-1;;;;;6586:15:1;;;11163:67:0::1;::::0;::::1;6568:34:1::0;11224:4:0::1;6618:18:1::0;;;6611:43;6503:18;;11163:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11156:4;:74:::0;;-1:-1:-1;;;;;;11156:74:0::1;-1:-1:-1::0;;;;;11156:74:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;11262:40:0::1;11297:3;11262:22;:14:::0;11281:2;11262:18:::1;:22::i;:40::-;11242:60;;11313:46;11326:9;11337:21;11313:12;:46::i;:::-;10863:504;;;10753:614:::0;;;;;:::o;16327:309::-;16425:4;16442:36;16452:6;16460:9;16471:6;16442:9;:36::i;:::-;16489:117;16498:6;16506:10;16518:87;16554:6;16518:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16518:19:0;;;;;;:11;:19;;;;;;;;16538:10;16518:31;;;;;;;;;:87;:35;:87::i;:::-;16489:8;:117::i;:::-;-1:-1:-1;16624:4:0;16327:309;;;;;;:::o;8228:108::-;4119:4;4144:5;-1:-1:-1;;;;;4144:5:0;4031:10;4133:16;4015:38;;;;-1:-1:-1;;;4015:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8302:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;8302:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8228:108::o;11375:195::-;4119:4;4144:5;-1:-1:-1;;;;;4144:5:0;4031:10;4133:16;4015:38;;;;-1:-1:-1;;;4015:38:0;;;;;;;:::i;:::-;11462:4:::1;11427:14;7924:18:::0;;;:9;:18;;;;;;11491:13:::1;::::0;11482:22;::::1;11479:51;;;-1:-1:-1::0;11515:13:0::1;::::0;11479:51:::1;11540:22;11555:6;11540:14;:22::i;:::-;11416:154;11375:195::o:0;11578:242::-;4119:4;4144:5;-1:-1:-1;;;;;4144:5:0;4031:10;4133:16;4015:38;;;;-1:-1:-1;;;4015:38:0;;;;;;;:::i;:::-;11682:41:::1;::::0;-1:-1:-1;;;11682:41:0;;11717:4:::1;11682:41;::::0;::::1;3414:51:1::0;11664:15:0::1;::::0;11682:63:::1;::::0;11741:3:::1;::::0;11682:54:::1;::::0;11728:7;;-1:-1:-1;;;;;11682:26:0;::::1;::::0;::::1;::::0;3387:18:1;;11682:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45:::0;::::1;:54::i;:63::-;11782:20;::::0;11756:56:::1;::::0;-1:-1:-1;;;11756:56:0;;-1:-1:-1;;;;;11782:20:0;;::::1;11756:56;::::0;::::1;7028:51:1::0;7095:18;;;7088:34;;;11664:81:0;;-1:-1:-1;11756:25:0;::::1;::::0;::::1;::::0;7001:18:1;;11756:56:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11653:167;11578:242:::0;;:::o;10407:338::-;4119:4;4144:5;-1:-1:-1;;;;;4144:5:0;4031:10;4133:16;4015:38;;;;-1:-1:-1;;;4015:38:0;;;;;;;:::i;:::-;10529:18:::1;:31:::0;;-1:-1:-1;;;;;10529:31:0;;::::1;-1:-1:-1::0;;;;;;10529:31:0;;::::1;::::0;::::1;::::0;;;10562:18:::1;:31:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;10595:20:::1;:35:::0;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;10529:18:::1;10641:23:::0;;;:11:::1;:23;::::0;;;;;:30;;-1:-1:-1;;10641:30:0;;::::1;10529:31:::0;10641:30;;::::1;::::0;;;10673:23;;;;;;:30;;;::::1;::::0;::::1;::::0;;10705:25;;;;;;:32;;;;::::1;::::0;;::::1;::::0;;10407:338::o;9843:556::-;4119:4;4144:5;-1:-1:-1;;;;;4144:5:0;4031:10;4133:16;4015:38;;;;-1:-1:-1;;;4015:38:0;;;;;;;:::i;:::-;9949:13:::1;9965:33;9992:5;9965:22;9982:4;9965:12;;:16;;:22;;;;:::i;:33::-;9949:49;;10000:19;10022:34;10050:5;10022:23;10039:5;10022:12;;:16;;:23;;;;:::i;:34::-;10000:56;;10058:17;10078:36;10108:5;10078:25;10095:7;10078:12;;:16;;:25;;;;:::i;:36::-;10125:12;:20:::0;;;10147:14:::1;:28:::0;;;10177:15:::1;:27:::0;;;10058:56;-1:-1:-1;;10231:30:0::1;10256:4;10231:20;10249:1;10231:13;8551:12:::0;;;8481:84;10231:30:::1;10215:46;;10289:5;10280;:14;;:38;;;;;10313:5;10298:11;:20;;10280:38;:60;;;;;10335:5;10322:9;:18;;10280:60;10272:119;;;::::0;-1:-1:-1;;;10272:119:0;;7585:2:1;10272:119:0::1;::::0;::::1;7567:21:1::0;7624:2;7604:18;;;7597:30;7663:34;7643:18;;;7636:62;-1:-1:-1;;;7714:18:1;;;7707:44;7768:19;;10272:119:0::1;7383:410:1::0;10272:119:0::1;9938:461;;;;9843:556:::0;;;:::o;8984:319::-;4119:4;4144:5;-1:-1:-1;;;;;4144:5:0;4031:10;4133:16;4015:38;;;;-1:-1:-1;;;4015:38:0;;;;;;;:::i;:::-;9117:10:::1;:24:::0;;;9159:12:::1;::::0;:53:::1;::::0;9204:6:::1;::::0;9159:32:::1;::::0;9176:14;9159:16:::1;:32::i;:53::-;9143:13;:69:::0;9241:12:::1;::::0;:54:::1;::::0;9287:6:::1;::::0;9241:33:::1;::::0;9258:15;9241:16:::1;:33::i;:54::-;9224:14;:71:::0;-1:-1:-1;;;8984:319:0:o;11828:193::-;4119:4;4144:5;-1:-1:-1;;;;;4144:5:0;4031:10;4133:16;4015:38;;;;-1:-1:-1;;;4015:38:0;;;;;;;:::i;:::-;11894:15:::1;11912:43;11951:3;11912:34;:21;11938:7:::0;11912:25:::1;:34::i;:43::-;11974:20;::::0;11966:47:::1;::::0;11894:61;;-1:-1:-1;;;;;;11974:20:0::1;::::0;11966:47;::::1;;;::::0;11894:61;;11974:20:::1;11966:47:::0;11974:20;11966:47;11894:61;11974:20;11966:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11883:138;11828:193:::0;:::o;7950:139::-;8028:4;8035:40;8045:10;8057:9;8068:6;8035:9;:40::i;9311:524::-;4119:4;4144:5;-1:-1:-1;;;;;4144:5:0;4031:10;4133:16;4015:38;;;;-1:-1:-1;;;4015:38:0;;;;;;;:::i;:::-;9501:12:::1;:25:::0;;;9528:12:::1;:25:::0;;;9555:7:::1;:15:::0;;;9572:14:::1;:29:::0;;;9603:8:::1;:17:::0;;;9622:7:::1;:15:::0;;;9639:11:::1;:20:::0;;;9690:11:::1;::::0;:18:::1;::::0;-1:-1:-1;9690:15:0::1;:18::i;:::-;9678:8;;:30;;:63;;;;-1:-1:-1::0;9723:11:0::1;::::0;:18:::1;::::0;9739:1:::1;9723:15;:18::i;:::-;9712:7;;:29;;9678:63;:100;;;;-1:-1:-1::0;9760:11:0::1;::::0;:18:::1;::::0;9776:1:::1;9760:15;:18::i;:::-;9745:11;;:33;;9678:100;9670:157;;;::::0;-1:-1:-1;;;9670:157:0;;8000:2:1;9670:157:0::1;::::0;::::1;7982:21:1::0;8039:2;8019:18;;;8012:30;8078:34;8058:18;;;8051:62;-1:-1:-1;;;8129:18:1;;;8122:42;8181:19;;9670:157:0::1;7798:408:1::0;4157:111:0;4119:4;4144:5;-1:-1:-1;;;;;4144:5:0;4031:10;4133:16;4015:38;;;;-1:-1:-1;;;4015:38:0;;;;;;;:::i;:::-;4223:5:::1;:11:::0;;-1:-1:-1;;;;;;4223:11:0::1;-1:-1:-1::0;;;;;4223:11:0;::::1;::::0;;::::1;::::0;;;4241:25:::1;::::0;3414:51:1;;;4241:25:0::1;::::0;3402:2:1;3387:18;4241:25:0::1;;;;;;;4157:111:::0;:::o;16644:335::-;-1:-1:-1;;;;;16737:19:0;;16729:68;;;;-1:-1:-1;;;16729:68:0;;8629:2:1;16729:68:0;;;8611:21:1;8668:2;8648:18;;;8641:30;8707:34;8687:18;;;8680:62;-1:-1:-1;;;8758:18:1;;;8751:34;8802:19;;16729:68:0;8427:400:1;16729:68:0;-1:-1:-1;;;;;16816:21:0;;16808:68;;;;-1:-1:-1;;;16808:68:0;;9034:2:1;16808:68:0;;;9016:21:1;9073:2;9053:18;;;9046:30;9112:34;9092:18;;;9085:62;-1:-1:-1;;;9163:18:1;;;9156:32;9205:19;;16808:68:0;8832:398:1;16808:68:0;-1:-1:-1;;;;;16887:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16939:32;;1820:25:1;;;16939:32:0;;1793:18:1;16939:32:0;;;;;;;16644:335;;;:::o;1909:98::-;1967:7;1994:5;1998:1;1994;:5;:::i;2015:98::-;2073:7;2100:5;2104:1;2100;:5;:::i;14886:1433::-;-1:-1:-1;;;;;14983:20:0;;14975:70;;;;-1:-1:-1;;;14975:70:0;;9964:2:1;14975:70:0;;;9946:21:1;10003:2;9983:18;;;9976:30;10042:34;10022:18;;;10015:62;-1:-1:-1;;;10093:18:1;;;10086:35;10138:19;;14975:70:0;9762:401:1;14975:70:0;-1:-1:-1;;;;;15064:23:0;;15056:71;;;;-1:-1:-1;;;15056:71:0;;10370:2:1;15056:71:0;;;10352:21:1;10409:2;10389:18;;;10382:30;10448:34;10428:18;;;10421:62;-1:-1:-1;;;10499:18:1;;;10492:33;10542:19;;15056:71:0;10168:399:1;15056:71:0;-1:-1:-1;;;;;7924:18:0;;7907:7;7924:18;;;:9;:18;;;;;;15146:6;:27;;15138:88;;;;-1:-1:-1;;;15138:88:0;;10774:2:1;15138:88:0;;;10756:21:1;10813:2;10793:18;;;10786:30;10852:34;10832:18;;;10825:62;-1:-1:-1;;;10903:18:1;;;10896:47;10960:19;;15138:88:0;10572:413:1;15138:88:0;-1:-1:-1;;;;;15241:19:0;;;;;;:11;:19;;;;;;;;15240:20;:47;;;;-1:-1:-1;;;;;;15265:22:0;;;;;;:11;:22;;;;;;;;15264:23;15240:47;15237:95;;;15297:14;;-1:-1:-1;;;15297:14:0;;;;15289:41;;;;-1:-1:-1;;;15289:41:0;;11192:2:1;15289:41:0;;;11174:21:1;11231:2;11211:18;;;11204:30;-1:-1:-1;;;11250:18:1;;;11243:44;11304:18;;15289:41:0;10990:338:1;15289:41:0;-1:-1:-1;;;;;15346:19:0;;;;;;:11;:19;;;;;;;;15345:20;:47;;;;-1:-1:-1;;;;;;15370:22:0;;;;;;:11;:22;;;;;;;;15369:23;15345:47;:77;;;;-1:-1:-1;15417:4:0;;-1:-1:-1;;;;;15396:26:0;;;15417:4;;15396:26;;15345:77;:107;;;;-1:-1:-1;;;;;;15426:26:0;;6472:42;15426:26;;15345:107;15342:220;;;15510:15;;-1:-1:-1;;;;;15473:20:0;;;;;;:9;:20;;;;;;:32;;15498:6;15473:24;:32::i;:::-;15472:53;;15464:96;;;;-1:-1:-1;;;15464:96:0;;11535:2:1;15464:96:0;;;11517:21:1;11574:2;11554:18;;;11547:30;11613:32;11593:18;;;11586:60;11663:18;;15464:96:0;11333:354:1;15464:96:0;15585:4;;-1:-1:-1;;;;;15575:14:0;;;15585:4;;15575:14;15572:124;;15609:14;;15599:6;:24;;:47;;;-1:-1:-1;;;;;;15627:19:0;;;;;;:11;:19;;;;;;;;15599:47;:73;;;-1:-1:-1;;;;;;15650:22:0;;;;;;:11;:22;;;;;;;;15599:73;15591:103;;;;-1:-1:-1;;;15591:103:0;;11894:2:1;15591:103:0;;;11876:21:1;11933:2;11913:18;;;11906:30;-1:-1:-1;;;11952:18:1;;;11945:47;12009:18;;15591:103:0;11692:341:1;15591:103:0;15724:12;;15714:6;:22;;:45;;;-1:-1:-1;;;;;;15740:19:0;;;;;;:11;:19;;;;;;;;15714:45;:71;;;-1:-1:-1;;;;;;15763:22:0;;;;;;:11;:22;;;;;;;;15714:71;15706:101;;;;-1:-1:-1;;;15706:101:0;;11894:2:1;15706:101:0;;;11876:21:1;11933:2;11913:18;;;11906:30;-1:-1:-1;;;11952:18:1;;;11945:47;12009:18;;15706:101:0;11692:341:1;15706:101:0;15835:4;;-1:-1:-1;;;;;15822:17:0;;;15835:4;;15822:17;:41;;;;-1:-1:-1;;;;;;15844:19:0;;;;;;:11;:19;;;;;;;;15843:20;15822:41;15819:71;;;15886:1;15865:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;15819:71:0;15903:45;15922:6;15930:9;15941:6;15903:18;:45::i;:::-;15900:105;;;15950:29;15965:13;;15950:14;:29::i;:::-;16001:1;15981:9;:22;15900:105;-1:-1:-1;;;;;16035:17:0;;;;;;:9;:17;;;;;;:29;;16057:6;16035:21;:29::i;:::-;-1:-1:-1;;;;;16015:17:0;;;;;;:9;:17;;;;;:49;;;;16100:32;16025:6;16122:9;16100:13;:32::i;:::-;:78;;16172:6;16100:78;;;16135:34;16143:6;16151:9;16162:6;16135:7;:34::i;:::-;-1:-1:-1;;;;;16212:20:0;;;;;;:9;:20;;;;;;16075:103;;-1:-1:-1;16212:40:0;;16075:103;16212:24;:40::i;:::-;-1:-1:-1;;;;;16189:20:0;;;;;;;:9;:20;;;;;;;:63;;;;16268:43;;;;;;;;;;16296:14;1820:25:1;;1808:2;1793:18;;1674:177;16268:43:0;;;;;;;;14964:1355;14886:1433;;;:::o;13100:343::-;13213:6;;13181:53;;13198:4;;-1:-1:-1;;;;;13213:6:0;13222:11;13181:8;:53::i;:::-;13245:6;;13386:18;;13245:190;;-1:-1:-1;;;13245:190:0;;13308:4;13245:190;;;12509:34:1;12559:18;;;12552:34;;;13245:6:0;12602:18:1;;;12595:34;;;12645:18;;;12638:34;-1:-1:-1;;;;;13386:18:0;;;12688:19:1;;;12681:44;13419:15:0;12741:19:1;;;12734:35;13245:6:0;;;:22;;13275:9;;12443:19:1;;13245:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13100:343;;:::o;2227:240::-;2347:7;2408:12;2400:6;;;;2392:29;;;;-1:-1:-1;;;2392:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2443:5:0;;;2227:240::o;12029:1063::-;6083:8;:15;;-1:-1:-1;;6083:15:0;6094:4;6083:15;;;;;;12166:14:::1;::::0;12148:12:::1;::::0;12124::::1;::::0;6083:8;;12123:66:::1;::::0;12187:1:::1;::::0;12124:57:::1;::::0;12166:14;;12124:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;12123:66::-;12100:89;;12200:32;12235:42;12264:12;12235:24;12246:12;;12235:6;:10;;:24;;;;:::i;:42::-;12200:77:::0;-1:-1:-1;12288:14:0::1;12305:36;:6:::0;12200:77;12305:10:::1;:36::i;:::-;12288:53:::0;-1:-1:-1;12377:21:0::1;12409:24;12288:53:::0;12409:16:::1;:24::i;:::-;12444:20;12467:41;:21;12493:14:::0;12467:25:::1;:41::i;:::-;12444:64;;12519:19;12540:48;12557:30;12574:12;;12557;:16;;:30;;;;:::i;:::-;12540:12:::0;;:16:::1;:48::i;:::-;12519:69;;12599:29;12631;12647:12;;12631:11;:15;;:29;;;;:::i;:::-;12599:61:::0;-1:-1:-1;12674:34:0;;12671:103:::1;;12710:61;12723:24;12749:21;12710:12;:61::i;:::-;12830:12;::::0;12784:20:::1;::::0;12807:36:::1;::::0;:18:::1;:11:::0;12823:1:::1;12807:15;:18::i;:36::-;12784:59:::0;-1:-1:-1;12857:16:0;;12854:73:::1;;12883:18;::::0;12875:50:::1;::::0;-1:-1:-1;;;;;12883:18:0;;::::1;::::0;12875:50;::::1;;;::::0;12912:12;;12883:18:::1;12875:50:::0;12883:18;12875:50;12912:12;12883:18;12875:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12854:73;12963:21;12998:28:::0;;12995:90:::1;;13036:20;::::0;13028:55:::1;::::0;-1:-1:-1;;;;;13036:20:0;;::::1;::::0;13028:55;::::1;;;::::0;13067:15;;13036:20:::1;13028:55:::0;13036:20;13028:55;13067:15;13036:20;13028:55;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12995:90;-1:-1:-1::0;;6103:8:0;:16;;-1:-1:-1;;6103:16:0;;;-1:-1:-1;;;;;;;;12029:1063:0:o;1697:98::-;1755:7;1782:5;1786:1;1782;:5;:::i;8573:403::-;8718:14;;8793:13;;8783:4;8675;7924:18;;;:9;:18;;;;;;8825:8;;8675:4;;8708:24;;;;-1:-1:-1;8765:41:0;;8825:8;;8824:9;:24;;;;-1:-1:-1;8837:11:0;;-1:-1:-1;;;8837:11:0;;;;8824:24;:42;;;;-1:-1:-1;8852:14:0;;-1:-1:-1;;;8852:14:0;;;;8824:42;:54;;;;;8870:8;8824:54;:78;;;;-1:-1:-1;;;;;;8883:19:0;;;;;;:11;:19;;;;;;;;8882:20;8824:78;:99;;;;-1:-1:-1;8919:4:0;;-1:-1:-1;;;;;8906:17:0;;;8919:4;;8906:17;8824:99;:126;;;;;8940:10;;8927:9;;:23;;8824:126;:144;;;;;8954:14;8824:144;8817:151;8573:403;-1:-1:-1;;;;;;8573:403:0:o;1803:98::-;1861:7;1888:5;1892:1;1888;:5;:::i;13893:160::-;-1:-1:-1;;;;;13999:19:0;;13974:4;13999:19;;;:11;:19;;;;;;;;13998:20;:47;;;;-1:-1:-1;;;;;;;14023:22:0;;;;;:11;:22;;;;;;;;14022:23;;13893:160;-1:-1:-1;13893:160:0:o;14288:590::-;14374:7;14430:1;14397:30;14409:6;14417:9;14397:11;:30::i;:::-;:34;14394:462;;;14443:17;14463:59;14491:30;14503:6;14511:9;14491:11;:30::i;:::-;14474:11;;14463:23;;:6;;:10;:23::i;:59::-;14578:4;14560:24;;;;:9;:24;;;;;;14443:79;;-1:-1:-1;14560:39:0;;14443:79;14560:28;:39::i;:::-;14551:4;14533:24;;;;:9;:24;;;;;;;:66;;;;14615:42;;-1:-1:-1;;;;;14615:42:0;;;;;;;14647:9;1820:25:1;;1808:2;1793:18;;1674:177;14615:42:0;;;;;;;;14689:1;14671:7;;:20;:64;;;;;14728:7;;14695:30;14707:6;14715:9;14695:11;:30::i;:::-;:40;14671:64;14668:148;;;14737:77;14755:4;6472:42;14777:36;14805:7;;14777:23;14788:11;;14777:6;:10;;:23;;;;:::i;:36::-;14737:9;:77::i;:::-;14833:21;:6;14844:9;14833:10;:21::i;:::-;14826:28;;;;;14394:462;-1:-1:-1;14864:6:0;14288:590;-1:-1:-1;;14288:590:0:o;13451:434::-;13541:16;;;13555:1;13541:16;;;;;;;;13517:21;;13541:16;;;;;;;;;;-1:-1:-1;13541:16:0;13517:40;;13586:4;13568;13573:1;13568:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13568:23:0;;;:7;;;;;;;;;;:23;;;;13612:6;;:13;;;-1:-1:-1;;;13612:13:0;;;;:6;;;;;:11;;:13;;;;;13568:7;;13612:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13602:4;13607:1;13602:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13602:23:0;;;:7;;;;;;;;;:23;13668:6;;13636:53;;13653:4;;13668:6;13677:11;13636:8;:53::i;:::-;13700:6;;:177;;-1:-1:-1;;;13700:177:0;;-1:-1:-1;;;;;13700:6:0;;;;:57;;:177;;13772:11;;13700:6;;13814:4;;13841;;13861:15;;13700:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13506:379;13451:434;:::o;14061:219::-;14176:4;;14140:7;;-1:-1:-1;;;;;14176:4:0;;;14163:17;;;;14160:38;;-1:-1:-1;14189:7:0;;14182:14;;14160:38;14221:4;;-1:-1:-1;;;;;14221:4:0;;;14211:14;;;;14208:36;;-1:-1:-1;14234:8:0;;14227:15;;14208:36;-1:-1:-1;14261:11:0;;14061:219;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:454::-;1310:6;1318;1326;1334;1342;1395:3;1383:9;1374:7;1370:23;1366:33;1363:53;;;1412:1;1409;1402:12;1363:53;-1:-1:-1;;1435:23:1;;;1505:2;1490:18;;1477:32;;-1:-1:-1;1556:2:1;1541:18;;1528:32;;1607:2;1592:18;;1579:32;;-1:-1:-1;1658:3:1;1643:19;1630:33;;-1:-1:-1;1215:454:1;-1:-1:-1;1215:454:1:o;1856:456::-;1933:6;1941;1949;2002:2;1990:9;1981:7;1977:23;1973:32;1970:52;;;2018:1;2015;2008:12;1970:52;2057:9;2044:23;2076:31;2101:5;2076:31;:::i;:::-;2126:5;-1:-1:-1;2183:2:1;2168:18;;2155:32;2196:33;2155:32;2196:33;:::i;:::-;1856:456;;2248:7;;-1:-1:-1;;;2302:2:1;2287:18;;;;2274:32;;1856:456::o;2317:247::-;2376:6;2429:2;2417:9;2408:7;2404:23;2400:32;2397:52;;;2445:1;2442;2435:12;2397:52;2484:9;2471:23;2503:31;2528:5;2503:31;:::i;2758:118::-;2844:5;2837:13;2830:21;2823:5;2820:32;2810:60;;2866:1;2863;2856:12;2881:382;2946:6;2954;3007:2;2995:9;2986:7;2982:23;2978:32;2975:52;;;3023:1;3020;3013:12;2975:52;3062:9;3049:23;3081:31;3106:5;3081:31;:::i;:::-;3131:5;-1:-1:-1;3188:2:1;3173:18;;3160:32;3201:30;3160:32;3201:30;:::i;:::-;3250:7;3240:17;;;2881:382;;;;;:::o;3476:529::-;3553:6;3561;3569;3622:2;3610:9;3601:7;3597:23;3593:32;3590:52;;;3638:1;3635;3628:12;3590:52;3677:9;3664:23;3696:31;3721:5;3696:31;:::i;:::-;3746:5;-1:-1:-1;3803:2:1;3788:18;;3775:32;3816:33;3775:32;3816:33;:::i;:::-;3868:7;-1:-1:-1;3927:2:1;3912:18;;3899:32;3940:33;3899:32;3940:33;:::i;:::-;3992:7;3982:17;;;3476:529;;;;;:::o;4010:316::-;4087:6;4095;4103;4156:2;4144:9;4135:7;4131:23;4127:32;4124:52;;;4172:1;4169;4162:12;4124:52;-1:-1:-1;;4195:23:1;;;4265:2;4250:18;;4237:32;;-1:-1:-1;4316:2:1;4301:18;;;4288:32;;4010:316;-1:-1:-1;4010:316:1:o;4331:180::-;4390:6;4443:2;4431:9;4422:7;4418:23;4414:32;4411:52;;;4459:1;4456;4449:12;4411:52;-1:-1:-1;4482:23:1;;4331:180;-1:-1:-1;4331:180:1:o;4516:592::-;4629:6;4637;4645;4653;4661;4669;4677;4730:3;4718:9;4709:7;4705:23;4701:33;4698:53;;;4747:1;4744;4737:12;4698:53;-1:-1:-1;;4770:23:1;;;4840:2;4825:18;;4812:32;;-1:-1:-1;4891:2:1;4876:18;;4863:32;;4942:2;4927:18;;4914:32;;-1:-1:-1;4993:3:1;4978:19;;4965:33;;-1:-1:-1;5045:3:1;5030:19;;5017:33;;-1:-1:-1;5097:3:1;5082:19;5069:33;;-1:-1:-1;4516:592:1;-1:-1:-1;4516:592:1:o;5113:388::-;5181:6;5189;5242:2;5230:9;5221:7;5217:23;5213:32;5210:52;;;5258:1;5255;5248:12;5210:52;5297:9;5284:23;5316:31;5341:5;5316:31;:::i;:::-;5366:5;-1:-1:-1;5423:2:1;5408:18;;5395:32;5436:33;5395:32;5436:33;:::i;5766:329::-;5968:2;5950:21;;;6007:1;5987:18;;;5980:29;-1:-1:-1;;;6040:2:1;6025:18;;6018:36;6086:2;6071:18;;5766:329::o;6100:251::-;6170:6;6223:2;6211:9;6202:7;6198:23;6194:32;6191:52;;;6239:1;6236;6229:12;6191:52;6271:9;6265:16;6290:31;6315:5;6290:31;:::i;6665:184::-;6735:6;6788:2;6776:9;6767:7;6763:23;6759:32;6756:52;;;6804:1;6801;6794:12;6756:52;-1:-1:-1;6827:16:1;;6665:184;-1:-1:-1;6665:184:1:o;7133:245::-;7200:6;7253:2;7241:9;7232:7;7228:23;7224:32;7221:52;;;7269:1;7266;7259:12;7221:52;7301:9;7295:16;7320:28;7342:5;7320:28;:::i;9235:127::-;9296:10;9291:3;9287:20;9284:1;9277:31;9327:4;9324:1;9317:15;9351:4;9348:1;9341:15;9367:168;9440:9;;;9471;;9488:15;;;9482:22;;9468:37;9458:71;;9509:18;;:::i;9540:217::-;9580:1;9606;9596:132;;9650:10;9645:3;9641:20;9638:1;9631:31;9685:4;9682:1;9675:15;9713:4;9710:1;9703:15;9596:132;-1:-1:-1;9742:9:1;;9540:217::o;12038:125::-;12103:9;;;12124:10;;;12121:36;;;12137:18;;:::i;12780:306::-;12868:6;12876;12884;12937:2;12925:9;12916:7;12912:23;12908:32;12905:52;;;12953:1;12950;12943:12;12905:52;12982:9;12976:16;12966:26;;13032:2;13021:9;13017:18;13011:25;13001:35;;13076:2;13065:9;13061:18;13055:25;13045:35;;12780:306;;;;;:::o;13091:128::-;13158:9;;;13179:11;;;13176:37;;;13193:18;;:::i;13356:127::-;13417:10;13412:3;13408:20;13405:1;13398:31;13448:4;13445:1;13438:15;13472:4;13469:1;13462:15;13488:980;13750:4;13798:3;13787:9;13783:19;13829:6;13818:9;13811:25;13855:2;13893:6;13888:2;13877:9;13873:18;13866:34;13936:3;13931:2;13920:9;13916:18;13909:31;13960:6;13995;13989:13;14026:6;14018;14011:22;14064:3;14053:9;14049:19;14042:26;;14103:2;14095:6;14091:15;14077:29;;14124:1;14134:195;14148:6;14145:1;14142:13;14134:195;;;14213:13;;-1:-1:-1;;;;;14209:39:1;14197:52;;14304:15;;;;14269:12;;;;14245:1;14163:9;14134:195;;;-1:-1:-1;;;;;;;14385:32:1;;;;14380:2;14365:18;;14358:60;-1:-1:-1;;;14449:3:1;14434:19;14427:35;14346:3;13488:980;-1:-1:-1;;;13488:980:1:o

Swarm Source

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