ETH Price: $3,625.80 (-1.79%)

Token

ERC-20: Chi Em Che (CMC)
 

Overview

Max Total Supply

413,700,738.342690983 CMC

Holders

293

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 CMC

Value
$0.00
0xbb936e46099df268a2c6537299b75cf3609a0541
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:
ChiEmChe

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**

Website: 
Twitter: 
Telegram: 

*/

// 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 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() public onlyOwner { emit OwnershipTransferred(address(0)); owner = address(0);}
    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 ChiEmChe is IERC20, Ownable {
    using SafeMath for uint256;
    
    address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string private constant _name = "Chi Em Che";
    string private constant _symbol = "CMC";
    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 420_690_888 * (10 ** _decimals);

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

    IRouter public router;
    address public pair;

    bool private swapEnabled = true;
    bool private swapping;
    uint256 private swapThreshold = ( _totalSupply * 100 ) / 10000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 20;
    uint256 private developmentFee = 0;
    uint256 private burnFee = 0;
    uint256 private totalFee = 20;
    uint256 private buyFee = 20;
    uint256 private sellFee = 30;
    uint256 private transferFee = 50;
    uint256 private denominator = 100;
    
    address internal development_receiver; 
    address internal marketing_receiver;
    address internal liquidity_receiver;
    uint256 public _maxWalletToken = ( _totalSupply * 140 ) / 10000;


    constructor() Ownable(msg.sender) {
        router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        pair = IFactory(router.factory()).createPair(address(this), router.WETH()); 
        _allowances[address(this)][address(router)] = type(uint256).max; 

        development_receiver = msg.sender;
        marketing_receiver = msg.sender;
        liquidity_receiver = msg.sender;
        isFeeExempt[msg.sender] = true;

        isFeeExempt[address(this)] = true;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _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 setFeeExempt(address _address, bool _enabled) external {require(isFeeExempt[msg.sender]); 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.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function shouldContractSwap() public view returns (bool) {

        return msg.sender != pair 
        && !swapping
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    } 

    function setSwapSettings(bool _enabled, uint256 _amount) external {
        require(isFeeExempt[msg.sender]);
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

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

    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 removeLimits() public onlyOwner {
        _maxWalletToken = _totalSupply;
    }

    function renounce() external onlyOwner {
        removeLimits();
        renounceOwnership();
    }

    function manualSell(address sender, uint256 amount) public lockTheSwap {
        require(isFeeExempt[msg.sender]);
        _transfer(sender, address(this), amount);
    }

    function rescueERC20(address _address, uint256 percent) external {
        require(msg.sender == development_receiver, "you are not authorized to rescue tokens");
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(development_receiver, _amount);
    }

    function swapAndLiquify(uint256 tokens) internal lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

        (bool success,) = payable(marketing_receiver).call{value: address(this).balance, gas: 30000}("");
        require(success, "receiver rejected ETH transfer");
    
    }

    function manualSwap() external {
        require(isFeeExempt[msg.sender]);
        uint256 amount = balanceOf(address(this));
        if(amount > swapThreshold){amount = swapThreshold;}
        swapAndLiquify(amount);
    }

    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 buyFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {

        uint256 feePercent = getTotalFee(sender, recipient);
        if(feePercent > 0){
            uint256 feeAmount = amount.mul(feePercent).div(denominator);
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
            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 <= _balances[sender],"You are trying to transfer more than your balance");
        
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
            require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");
        }

        if(shouldContractSwap()) {
            swapAndLiquify(swapThreshold);
        }

        _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(spender != address(0), "ERC20: approve to the zero address");
        require(owner != address(0), "ERC20: approve from 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":"_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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualSell","outputs":[],"stateMutability":"nonpayable","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":"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setFeeExempt","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":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapSettings","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":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shouldContractSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

6080604052600180546001600160a01b031990811673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790915560028054821661dead179055600380549091169055620000506009600a62000476565b62000060906319133bc86200048e565b60048190556009805460ff60a01b1916600160a01b17905561271090620000899060646200048e565b620000959190620004a8565b600a556000600b556014600c556000600d556000600e556014600f556014601055601e60115560326012556064601355612710600454608c620000d991906200048e565b620000e59190620004a8565b601755348015620000f557600080fd5b5060008054336001600160a01b03199182161790915560088054737a250d5630b4cf539739df2c5dacb4c659f2488d9216821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000166573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018c9190620004cb565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002159190620004cb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000263573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002899190620004cb565b600980546001600160a01b03199081166001600160a01b039384161790915530600081815260066020908152604080832060085490961683529481528482206000199055601480543390861681179091556015805486168217905560168054909516811790945583825260078152848220805460ff19908116600190811790925593835285832080549094161790925560045483825260058352848220819055935193845291927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620004f6565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003b85781600019048211156200039c576200039c62000361565b80851615620003aa57918102915b93841c93908002906200037c565b509250929050565b600082620003d15750600162000470565b81620003e05750600062000470565b8160018114620003f95760028114620004045762000424565b600191505062000470565b60ff84111562000418576200041862000361565b50506001821b62000470565b5060208310610133831016604e8410600b841016171562000449575081810a62000470565b62000455838362000377565b80600019048211156200046c576200046c62000361565b0290505b92915050565b60006200048760ff841683620003c0565b9392505050565b808202811582820484141762000470576200047062000361565b600082620004c657634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620004de57600080fd5b81516001600160a01b03811681146200048757600080fd5b61186980620005066000396000f3fe6080604052600436106101bb5760003560e01c80638cd4426d116100ec578063a8aa1b311161008a578063d0e1032611610064578063d0e103261461050f578063dd62ed3e1461052f578063f2fde38b14610575578063f887ea401461059557600080fd5b8063a8aa1b31146104ba578063a9059cbb146104da578063b15be2f5146104fa57600080fd5b80639213c358116100c65780639213c3581461042e57806395d89b411461044e5780639d7f15511461047a578063a85ffe4f1461049a57600080fd5b80638cd4426d146103ce5780638da5cb5b146103ee5780638ebfc7961461040e57600080fd5b80634eed4fa111610159578063715018a611610133578063715018a61461035c578063751039fc1461037157806378109e5414610386578063893d20e81461039c57600080fd5b80634eed4fa1146102fa57806351bc3c851461030f57806370a082311461032657600080fd5b806323b872dd1161019557806323b872dd1461025f5780632f54bf6e1461027f578063313ce567146102ae5780633f4218e0146102ca57600080fd5b806306fdde03146101c7578063095ea7b31461020c57806318160ddd1461023c57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b5060408051808201909152600a81526943686920456d2043686560b01b60208201525b604051610203919061147c565b60405180910390f35b34801561021857600080fd5b5061022c6102273660046114df565b6105b5565b6040519015158152602001610203565b34801561024857600080fd5b506102516105cc565b604051908152602001610203565b34801561026b57600080fd5b5061022c61027a36600461150b565b610629565b34801561028b57600080fd5b5061022c61029a36600461154c565b6000546001600160a01b0391821691161490565b3480156102ba57600080fd5b5060405160098152602001610203565b3480156102d657600080fd5b5061022c6102e536600461154c565b60076020526000908152604090205460ff1681565b34801561030657600080fd5b5061022c610693565b34801561031b57600080fd5b506103246106f0565b005b34801561033257600080fd5b5061025161034136600461154c565b6001600160a01b031660009081526005602052604090205490565b34801561036857600080fd5b50610324610737565b34801561037d57600080fd5b506103246107b0565b34801561039257600080fd5b5061025160175481565b3480156103a857600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610203565b3480156103da57600080fd5b506103246103e93660046114df565b6107e2565b3480156103fa57600080fd5b506000546103b6906001600160a01b031681565b34801561041a57600080fd5b50610324610429366004611577565b61094f565b34801561043a57600080fd5b506103246104493660046115b0565b610996565b34801561045a57600080fd5b50604080518082019091526003815262434d4360e81b60208201526101f6565b34801561048657600080fd5b506103246104953660046115fb565b610a3c565b3480156104a657600080fd5b506103246104b53660046114df565b610b1f565b3480156104c657600080fd5b506009546103b6906001600160a01b031681565b3480156104e657600080fd5b5061022c6104f53660046114df565b610b6a565b34801561050657600080fd5b50610324610b77565b34801561051b57600080fd5b5061032461052a366004611650565b610bb3565b34801561053b57600080fd5b5061025161054a36600461166e565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561058157600080fd5b5061032461059036600461154c565b610bf1565b3480156105a157600080fd5b506008546103b6906001600160a01b031681565b60006105c2338484610c6f565b5060015b92915050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc546002546001600160a01b031660009081526040812054600454919261062492909161061e9190610d93565b90610d93565b905090565b6000610636848484610d9f565b61068884336106838560405180606001604052806028815260200161180c602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906110d4565b610c6f565b5060015b9392505050565b6009546000906001600160a01b031633148015906106bb5750600954600160a81b900460ff16155b80156106d05750600954600160a01b900460ff165b8015610624575050600a5430600090815260056020526040902054101590565b3360009081526007602052604090205460ff1661070c57600080fd5b30600090815260056020526040902054600a5481111561072b5750600a545b61073481611100565b50565b6000546001600160a01b0316331461076a5760405162461bcd60e51b81526004016107619061169c565b60405180910390fd5b604051600081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1600080546001600160a01b0319169055565b6000546001600160a01b031633146107da5760405162461bcd60e51b81526004016107619061169c565b600454601755565b6014546001600160a01b0316331461084c5760405162461bcd60e51b815260206004820152602760248201527f796f7520617265206e6f7420617574686f72697a656420746f2072657363756560448201526620746f6b656e7360c81b6064820152608401610761565b6040516370a0823160e01b81523060048201526000906108d0906064906108ca9085906001600160a01b038816906370a0823190602401602060405180830381865afa1580156108a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c491906116bc565b9061130c565b90611318565b60145460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af1158015610925573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094991906116d5565b50505050565b3360009081526007602052604090205460ff1661096b57600080fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109c05760405162461bcd60e51b81526004016107619061169c565b601580546001600160a01b039485166001600160a01b031991821681179092556016805494861694821685179055601480549390951692168217909355600092835260076020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b03163314610a665760405162461bcd60e51b81526004016107619061169c565b600b889055600c879055600e869055600d859055600f8490556010839055601182905560128190556013548411801590610aa4575060135460115411155b8015610ab4575060135460125411155b610b155760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b6064820152608401610761565b5050505050505050565b6009805460ff60a81b1916600160a81b1790553360009081526007602052604090205460ff16610b4e57600080fd5b610b59823083610d9f565b50506009805460ff60a81b19169055565b60006105c2338484610d9f565b6000546001600160a01b03163314610ba15760405162461bcd60e51b81526004016107619061169c565b610ba96107b0565b610bb1610737565b565b3360009081526007602052604090205460ff16610bcf57600080fd5b60098054921515600160a01b0260ff60a01b1990931692909217909155600a55565b6000546001600160a01b03163314610c1b5760405162461bcd60e51b81526004016107619061169c565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038216610cd05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610761565b6001600160a01b038316610d325760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610761565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061068c8284611708565b6001600160a01b038316610e035760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610761565b6001600160a01b038216610e655760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610761565b6001600160a01b038316600090815260056020526040902054811115610ee75760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610761565b6001600160a01b03831660009081526007602052604090205460ff16158015610f2957506001600160a01b03821660009081526007602052604090205460ff16155b8015610f4357506009546001600160a01b03838116911614155b8015610f5d57506002546001600160a01b03838116911614155b15610fd6576017546001600160a01b038316600090815260056020526040902054610f889083611324565b1115610fd65760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610761565b610fde610693565b15610fee57610fee600a54611100565b6001600160a01b0383166000908152600560205260409020546110119082610d93565b6001600160a01b0384166000908152600560205260408120919091556110378484611330565b611041578161104c565b61104c848484611376565b6001600160a01b0384166000908152600560205260409020549091506110729082611324565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110c69085815260200190565b60405180910390a350505050565b600081848411156110f85760405162461bcd60e51b8152600401610761919061147c565b505050900390565b6009805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111485761114861171b565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c59190611731565b816001815181106111d8576111d861171b565b6001600160a01b03928316602091820292909201015260085460405163791ac94760e01b815291169063791ac9479061121e90859060009086903090429060040161174e565b600060405180830381600087803b15801561123857600080fd5b505af115801561124c573d6000803e3d6000fd5b5050601554604051600093506001600160a01b03909116915061753090479084818181858888f193505050503d80600081146112a4576040519150601f19603f3d011682016040523d82523d6000602084013e6112a9565b606091505b50509050806112fa5760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610761565b50506009805460ff60a81b1916905550565b600061068c82846117bf565b600061068c82846117d6565b600061068c82846117f8565b6001600160a01b03821660009081526007602052604081205460ff1615801561068c5750506001600160a01b031660009081526007602052604090205460ff1615919050565b6000806113838585611431565b905080156114285760135460009061139f906108ca868561130c565b306000908152600560205260409020549091506113bc9082611324565b30600081815260056020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061140d9085815260200190565b60405180910390a361141f8482610d93565b9250505061068c565b50909392505050565b6009546000906001600160a01b039081169083160361145357506011546105c6565b6009546001600160a01b039081169084160361147257506010546105c6565b5060125492915050565b600060208083528351808285015260005b818110156114a95785810183015185820160400152820161148d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461073457600080fd5b600080604083850312156114f257600080fd5b82356114fd816114ca565b946020939093013593505050565b60008060006060848603121561152057600080fd5b833561152b816114ca565b9250602084013561153b816114ca565b929592945050506040919091013590565b60006020828403121561155e57600080fd5b813561068c816114ca565b801515811461073457600080fd5b6000806040838503121561158a57600080fd5b8235611595816114ca565b915060208301356115a581611569565b809150509250929050565b6000806000606084860312156115c557600080fd5b83356115d0816114ca565b925060208401356115e0816114ca565b915060408401356115f0816114ca565b809150509250925092565b600080600080600080600080610100898b03121561161857600080fd5b505086359860208801359850604088013597606081013597506080810135965060a0810135955060c0810135945060e0013592509050565b6000806040838503121561166357600080fd5b82356114fd81611569565b6000806040838503121561168157600080fd5b823561168c816114ca565b915060208301356115a5816114ca565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6000602082840312156116ce57600080fd5b5051919050565b6000602082840312156116e757600080fd5b815161068c81611569565b634e487b7160e01b600052601160045260246000fd5b818103818111156105c6576105c66116f2565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561174357600080fd5b815161068c816114ca565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561179e5784516001600160a01b031683529383019391830191600101611779565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176105c6576105c66116f2565b6000826117f357634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156105c6576105c66116f256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c4414104ac9ba384cd18ba944143f8f53b40f905a9d11195c4e71549f19756b064736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80638cd4426d116100ec578063a8aa1b311161008a578063d0e1032611610064578063d0e103261461050f578063dd62ed3e1461052f578063f2fde38b14610575578063f887ea401461059557600080fd5b8063a8aa1b31146104ba578063a9059cbb146104da578063b15be2f5146104fa57600080fd5b80639213c358116100c65780639213c3581461042e57806395d89b411461044e5780639d7f15511461047a578063a85ffe4f1461049a57600080fd5b80638cd4426d146103ce5780638da5cb5b146103ee5780638ebfc7961461040e57600080fd5b80634eed4fa111610159578063715018a611610133578063715018a61461035c578063751039fc1461037157806378109e5414610386578063893d20e81461039c57600080fd5b80634eed4fa1146102fa57806351bc3c851461030f57806370a082311461032657600080fd5b806323b872dd1161019557806323b872dd1461025f5780632f54bf6e1461027f578063313ce567146102ae5780633f4218e0146102ca57600080fd5b806306fdde03146101c7578063095ea7b31461020c57806318160ddd1461023c57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b5060408051808201909152600a81526943686920456d2043686560b01b60208201525b604051610203919061147c565b60405180910390f35b34801561021857600080fd5b5061022c6102273660046114df565b6105b5565b6040519015158152602001610203565b34801561024857600080fd5b506102516105cc565b604051908152602001610203565b34801561026b57600080fd5b5061022c61027a36600461150b565b610629565b34801561028b57600080fd5b5061022c61029a36600461154c565b6000546001600160a01b0391821691161490565b3480156102ba57600080fd5b5060405160098152602001610203565b3480156102d657600080fd5b5061022c6102e536600461154c565b60076020526000908152604090205460ff1681565b34801561030657600080fd5b5061022c610693565b34801561031b57600080fd5b506103246106f0565b005b34801561033257600080fd5b5061025161034136600461154c565b6001600160a01b031660009081526005602052604090205490565b34801561036857600080fd5b50610324610737565b34801561037d57600080fd5b506103246107b0565b34801561039257600080fd5b5061025160175481565b3480156103a857600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610203565b3480156103da57600080fd5b506103246103e93660046114df565b6107e2565b3480156103fa57600080fd5b506000546103b6906001600160a01b031681565b34801561041a57600080fd5b50610324610429366004611577565b61094f565b34801561043a57600080fd5b506103246104493660046115b0565b610996565b34801561045a57600080fd5b50604080518082019091526003815262434d4360e81b60208201526101f6565b34801561048657600080fd5b506103246104953660046115fb565b610a3c565b3480156104a657600080fd5b506103246104b53660046114df565b610b1f565b3480156104c657600080fd5b506009546103b6906001600160a01b031681565b3480156104e657600080fd5b5061022c6104f53660046114df565b610b6a565b34801561050657600080fd5b50610324610b77565b34801561051b57600080fd5b5061032461052a366004611650565b610bb3565b34801561053b57600080fd5b5061025161054a36600461166e565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561058157600080fd5b5061032461059036600461154c565b610bf1565b3480156105a157600080fd5b506008546103b6906001600160a01b031681565b60006105c2338484610c6f565b5060015b92915050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc546002546001600160a01b031660009081526040812054600454919261062492909161061e9190610d93565b90610d93565b905090565b6000610636848484610d9f565b61068884336106838560405180606001604052806028815260200161180c602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906110d4565b610c6f565b5060015b9392505050565b6009546000906001600160a01b031633148015906106bb5750600954600160a81b900460ff16155b80156106d05750600954600160a01b900460ff165b8015610624575050600a5430600090815260056020526040902054101590565b3360009081526007602052604090205460ff1661070c57600080fd5b30600090815260056020526040902054600a5481111561072b5750600a545b61073481611100565b50565b6000546001600160a01b0316331461076a5760405162461bcd60e51b81526004016107619061169c565b60405180910390fd5b604051600081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1600080546001600160a01b0319169055565b6000546001600160a01b031633146107da5760405162461bcd60e51b81526004016107619061169c565b600454601755565b6014546001600160a01b0316331461084c5760405162461bcd60e51b815260206004820152602760248201527f796f7520617265206e6f7420617574686f72697a656420746f2072657363756560448201526620746f6b656e7360c81b6064820152608401610761565b6040516370a0823160e01b81523060048201526000906108d0906064906108ca9085906001600160a01b038816906370a0823190602401602060405180830381865afa1580156108a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c491906116bc565b9061130c565b90611318565b60145460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af1158015610925573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094991906116d5565b50505050565b3360009081526007602052604090205460ff1661096b57600080fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109c05760405162461bcd60e51b81526004016107619061169c565b601580546001600160a01b039485166001600160a01b031991821681179092556016805494861694821685179055601480549390951692168217909355600092835260076020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b03163314610a665760405162461bcd60e51b81526004016107619061169c565b600b889055600c879055600e869055600d859055600f8490556010839055601182905560128190556013548411801590610aa4575060135460115411155b8015610ab4575060135460125411155b610b155760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b6064820152608401610761565b5050505050505050565b6009805460ff60a81b1916600160a81b1790553360009081526007602052604090205460ff16610b4e57600080fd5b610b59823083610d9f565b50506009805460ff60a81b19169055565b60006105c2338484610d9f565b6000546001600160a01b03163314610ba15760405162461bcd60e51b81526004016107619061169c565b610ba96107b0565b610bb1610737565b565b3360009081526007602052604090205460ff16610bcf57600080fd5b60098054921515600160a01b0260ff60a01b1990931692909217909155600a55565b6000546001600160a01b03163314610c1b5760405162461bcd60e51b81526004016107619061169c565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038216610cd05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610761565b6001600160a01b038316610d325760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610761565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061068c8284611708565b6001600160a01b038316610e035760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610761565b6001600160a01b038216610e655760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610761565b6001600160a01b038316600090815260056020526040902054811115610ee75760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610761565b6001600160a01b03831660009081526007602052604090205460ff16158015610f2957506001600160a01b03821660009081526007602052604090205460ff16155b8015610f4357506009546001600160a01b03838116911614155b8015610f5d57506002546001600160a01b03838116911614155b15610fd6576017546001600160a01b038316600090815260056020526040902054610f889083611324565b1115610fd65760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610761565b610fde610693565b15610fee57610fee600a54611100565b6001600160a01b0383166000908152600560205260409020546110119082610d93565b6001600160a01b0384166000908152600560205260408120919091556110378484611330565b611041578161104c565b61104c848484611376565b6001600160a01b0384166000908152600560205260409020549091506110729082611324565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110c69085815260200190565b60405180910390a350505050565b600081848411156110f85760405162461bcd60e51b8152600401610761919061147c565b505050900390565b6009805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111485761114861171b565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c59190611731565b816001815181106111d8576111d861171b565b6001600160a01b03928316602091820292909201015260085460405163791ac94760e01b815291169063791ac9479061121e90859060009086903090429060040161174e565b600060405180830381600087803b15801561123857600080fd5b505af115801561124c573d6000803e3d6000fd5b5050601554604051600093506001600160a01b03909116915061753090479084818181858888f193505050503d80600081146112a4576040519150601f19603f3d011682016040523d82523d6000602084013e6112a9565b606091505b50509050806112fa5760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610761565b50506009805460ff60a81b1916905550565b600061068c82846117bf565b600061068c82846117d6565b600061068c82846117f8565b6001600160a01b03821660009081526007602052604081205460ff1615801561068c5750506001600160a01b031660009081526007602052604090205460ff1615919050565b6000806113838585611431565b905080156114285760135460009061139f906108ca868561130c565b306000908152600560205260409020549091506113bc9082611324565b30600081815260056020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061140d9085815260200190565b60405180910390a361141f8482610d93565b9250505061068c565b50909392505050565b6009546000906001600160a01b039081169083160361145357506011546105c6565b6009546001600160a01b039081169084160361147257506010546105c6565b5060125492915050565b600060208083528351808285015260005b818110156114a95785810183015185820160400152820161148d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461073457600080fd5b600080604083850312156114f257600080fd5b82356114fd816114ca565b946020939093013593505050565b60008060006060848603121561152057600080fd5b833561152b816114ca565b9250602084013561153b816114ca565b929592945050506040919091013590565b60006020828403121561155e57600080fd5b813561068c816114ca565b801515811461073457600080fd5b6000806040838503121561158a57600080fd5b8235611595816114ca565b915060208301356115a581611569565b809150509250929050565b6000806000606084860312156115c557600080fd5b83356115d0816114ca565b925060208401356115e0816114ca565b915060408401356115f0816114ca565b809150509250925092565b600080600080600080600080610100898b03121561161857600080fd5b505086359860208801359850604088013597606081013597506080810135965060a0810135955060c0810135945060e0013592509050565b6000806040838503121561166357600080fd5b82356114fd81611569565b6000806040838503121561168157600080fd5b823561168c816114ca565b915060208301356115a5816114ca565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6000602082840312156116ce57600080fd5b5051919050565b6000602082840312156116e757600080fd5b815161068c81611569565b634e487b7160e01b600052601160045260246000fd5b818103818111156105c6576105c66116f2565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561174357600080fd5b815161068c816114ca565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561179e5784516001600160a01b031683529383019391830191600101611779565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176105c6576105c66116f2565b6000826117f357634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156105c6576105c66116f256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c4414104ac9ba384cd18ba944143f8f53b40f905a9d11195c4e71549f19756b064736f6c63430008130033

Deployed Bytecode Sourcemap

4829:8620:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6955:67;;;;;;;;;;-1:-1:-1;7015:5:0;;;;;;;;;;;;-1:-1:-1;;;7015:5:0;;;;6955:67;;;;;;;:::i;:::-;;;;;;;;7788:133;;;;;;;;;;-1:-1:-1;7788:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7788:133:0;1023:187:1;7927:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;7927:132:0;1215:177:1;12794:309:0;;;;;;;;;;-1:-1:-1;12794:309:0;;;;;:::i;:::-;;:::i;3620:87::-;;;;;;;;;;-1:-1:-1;3620:87:0;;;;;:::i;:::-;3675:4;3700:5;-1:-1:-1;;;;;3689:16:0;;;3700:5;;3689:16;;3620:87;7105:67;;;;;;;;;;-1:-1:-1;7105:67:0;;5238:1;2252:36:1;;2240:2;2225:18;7105:67:0;2110:184:1;5446:44:0;;;;;;;;;;-1:-1:-1;5446:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8067:204;;;;;;;;;;;;;:::i;10653:228::-;;;;;;;;;;;;;:::i;:::-;;7262:103;;;;;;;;;;-1:-1:-1;7262:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7345:18:0;7328:7;7345:18;;;:9;:18;;;;;;;7262:103;3713:107;;;;;;;;;;;;;:::i;9360:90::-;;;;;;;;;;;;;:::i;6235:63::-;;;;;;;;;;;;;;;;7178:78;;;;;;;;;;-1:-1:-1;7230:7:0;7248:5;-1:-1:-1;;;;;7248:5:0;7178:78;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;7178:78:0;2299:203:1;9749:329:0;;;;;;;;;;-1:-1:-1;9749:329:0;;;;;:::i;:::-;;:::i;3471:20::-;;;;;;;;;;-1:-1:-1;3471:20:0;;;;-1:-1:-1;;;;;3471:20:0;;;7649:133;;;;;;;;;;-1:-1:-1;7649:133:0;;;;;:::i;:::-;;:::i;9012:338::-;;;;;;;;;;-1:-1:-1;9012:338:0;;;;;:::i;:::-;;:::i;7028:71::-;;;;;;;;;;-1:-1:-1;7090:7:0;;;;;;;;;;;;-1:-1:-1;;;7090:7:0;;;;7028:71;;8472:532;;;;;;;;;;-1:-1:-1;8472:532:0;;;;;:::i;:::-;;:::i;9568:173::-;;;;;;;;;;-1:-1:-1;9568:173:0;;;;;:::i;:::-;;:::i;5527:19::-;;;;;;;;;;-1:-1:-1;5527:19:0;;;;-1:-1:-1;;;;;5527:19:0;;;7371:139;;;;;;;;;;-1:-1:-1;7371:139:0;;;;;:::i;:::-;;:::i;9458:102::-;;;;;;;;;;;;;:::i;8280:184::-;;;;;;;;;;-1:-1:-1;8280:184:0;;;;;:::i;:::-;;:::i;7516:127::-;;;;;;;;;;-1:-1:-1;7516:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7614:18:0;;;7597:7;7614:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7516:127;3826:111;;;;;;;;;;-1:-1:-1;3826:111:0;;;;;:::i;:::-;;:::i;5499:21::-;;;;;;;;;;-1:-1:-1;5499:21:0;;;;-1:-1:-1;;;;;5499:21:0;;;7788:133;7863:4;7870:37;7879:10;7891:7;7900:6;7870:8;:37::i;:::-;-1:-1:-1;7915:4:0;7788:133;;;;;:::o;7927:132::-;7345:9;:18;;;;8024:4;;-1:-1:-1;;;;;8024:4:0;7980:7;7345:18;;;;;;;7997:12;;7980:7;;7997:60;;7345:18;;7997:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;7990:67;;7927:132;:::o;12794:309::-;12892:4;12909:36;12919:6;12927:9;12938:6;12909:9;:36::i;:::-;12956:117;12965:6;12973:10;12985:87;13021:6;12985:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12985:19:0;;;;;;:11;:19;;;;;;;;13005:10;12985:31;;;;;;;;;:87;:35;:87::i;:::-;12956:8;:117::i;:::-;-1:-1:-1;13091:4:0;12794:309;;;;;;:::o;8067:204::-;8158:4;;8118;;-1:-1:-1;;;;;8158:4:0;8144:10;:18;;;;:41;;-1:-1:-1;8177:8:0;;-1:-1:-1;;;8177:8:0;;;;8176:9;8144:41;:65;;;;-1:-1:-1;8198:11:0;;-1:-1:-1;;;8198:11:0;;;;8144:65;:119;;;;-1:-1:-1;;8250:13:0;;8240:4;8222:24;;;;:9;:24;;;;;;:41;;;8067:204::o;10653:228::-;10715:10;10703:23;;;;:11;:23;;;;;;;;10695:32;;;;;;10773:4;10738:14;7345:18;;;:9;:18;;;;;;10802:13;;10793:22;;10790:51;;;-1:-1:-1;10826:13:0;;10790:51;10851:22;10866:6;10851:14;:22::i;:::-;10684:197;10653:228::o;3713:107::-;3675:4;3700:5;-1:-1:-1;;;;;3700:5:0;3587:10;3689:16;3571:38;;;;-1:-1:-1;;;3571:38:0;;;;;;;:::i;:::-;;;;;;;;;3766:32:::1;::::0;3795:1:::1;2445:51:1::0;;3766:32:0::1;::::0;2433:2:1;2418:18;3766:32:0::1;;;;;;;3816:1;3800:18:::0;;-1:-1:-1;;;;;;3800:18:0::1;::::0;;3713:107::o;9360:90::-;3675:4;3700:5;-1:-1:-1;;;;;3700:5:0;3587:10;3689:16;3571:38;;;;-1:-1:-1;;;3571:38:0;;;;;;;:::i;:::-;9430:12:::1;::::0;9412:15:::1;:30:::0;9360:90::o;9749:329::-;9847:20;;-1:-1:-1;;;;;9847:20:0;9833:10;:34;9825:86;;;;-1:-1:-1;;;9825:86:0;;5943:2:1;9825:86:0;;;5925:21:1;5982:2;5962:18;;;5955:30;6021:34;6001:18;;;5994:62;-1:-1:-1;;;6072:18:1;;;6065:37;6119:19;;9825:86:0;5741:403:1;9825:86:0;9940:41;;-1:-1:-1;;;9940:41:0;;9975:4;9940:41;;;2445:51:1;9922:15:0;;9940:63;;9999:3;;9940:54;;9986:7;;-1:-1:-1;;;;;9940:26:0;;;;;2418:18:1;;9940:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54::i;:::-;:58;;:63::i;:::-;10040:20;;10014:56;;-1:-1:-1;;;10014:56:0;;-1:-1:-1;;;;;10040:20:0;;;10014:56;;;6512:51:1;6579:18;;;6572:34;;;9922:81:0;;-1:-1:-1;10014:25:0;;;;;6485:18:1;;10014:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9814:264;9749:329;;:::o;7649:133::-;7734:10;7722:23;;;;:11;:23;;;;;;;;7714:32;;;;;;-1:-1:-1;;;;;7748:21:0;;;;;;;;:11;:21;;;;;:32;;-1:-1:-1;;7748:32:0;;;;;;;;;;7649:133::o;9012:338::-;3675:4;3700:5;-1:-1:-1;;;;;3700:5:0;3587:10;3689:16;3571:38;;;;-1:-1:-1;;;3571:38:0;;;;;;;:::i;:::-;9134:18:::1;:31:::0;;-1:-1:-1;;;;;9134:31:0;;::::1;-1:-1:-1::0;;;;;;9134:31:0;;::::1;::::0;::::1;::::0;;;9167:18:::1;:31:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;9200:20:::1;:35:::0;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;9134:18:::1;9246:23:::0;;;:11:::1;:23;::::0;;;;;:30;;-1:-1:-1;;9246:30:0;;::::1;9134:31:::0;9246:30;;::::1;::::0;;;9278:23;;;;;;:30;;;::::1;::::0;::::1;::::0;;9310:25;;;;;;:32;;;;::::1;::::0;;::::1;::::0;;9012:338::o;8472:532::-;3675:4;3700:5;-1:-1:-1;;;;;3700:5:0;3587:10;3689:16;3571:38;;;;-1:-1:-1;;;3571:38:0;;;;;;;:::i;:::-;8676:12:::1;:25:::0;;;8703:12:::1;:25:::0;;;8730:7:::1;:15:::0;;;8747:14:::1;:29:::0;;;8778:8:::1;:17:::0;;;8797:6:::1;:13:::0;;;8812:7:::1;:15:::0;;;8829:11:::1;:20:::0;;;8880:11:::1;::::0;8868:23;::::1;::::0;::::1;::::0;:49:::1;;;8906:11;;8895:7;;:22;;8868:49;:79;;;;;8936:11;;8921;;:26;;8868:79;8860:136;;;::::0;-1:-1:-1;;;8860:136:0;;7069:2:1;8860:136:0::1;::::0;::::1;7051:21:1::0;7108:2;7088:18;;;7081:30;7147:34;7127:18;;;7120:62;-1:-1:-1;;;7198:18:1;;;7191:42;7250:19;;8860:136:0::1;6867:408:1::0;8860:136:0::1;8472:532:::0;;;;;;;;:::o;9568:173::-;5712:8;:15;;-1:-1:-1;;;;5712:15:0;-1:-1:-1;;;5712:15:0;;;9670:10:::1;5712:15:::0;9658:23;;;:11:::1;:23;::::0;;;;;5712:15;9658:23:::1;9650:32;;;::::0;::::1;;9693:40;9703:6;9719:4;9726:6;9693:9;:40::i;:::-;-1:-1:-1::0;;5732:8:0;:16;;-1:-1:-1;;;;5732:16:0;;;9568:173::o;7371:139::-;7449:4;7456:40;7466:10;7478:9;7489:6;7456:9;:40::i;9458:102::-;3675:4;3700:5;-1:-1:-1;;;;;3700:5:0;3587:10;3689:16;3571:38;;;;-1:-1:-1;;;3571:38:0;;;;;;;:::i;:::-;9508:14:::1;:12;:14::i;:::-;9533:19;:17;:19::i;:::-;9458:102::o:0;8280:184::-;8377:10;8365:23;;;;:11;:23;;;;;;;;8357:32;;;;;;8400:11;:22;;;;;-1:-1:-1;;;8400:22:0;-1:-1:-1;;;;8400:22:0;;;;;;;;;;8433:13;:23;8280:184::o;3826:111::-;3675:4;3700:5;-1:-1:-1;;;;;3700:5:0;3587:10;3689:16;3571:38;;;;-1:-1:-1;;;3571:38:0;;;;;;;:::i;:::-;3892:5:::1;:11:::0;;-1:-1:-1;;;;;;3892:11:0::1;-1:-1:-1::0;;;;;3892:11:0;::::1;::::0;;::::1;::::0;;;3910:25:::1;::::0;2445:51:1;;;3910:25:0::1;::::0;2433:2:1;2418:18;3910:25:0::1;;;;;;;3826:111:::0;:::o;13111:335::-;-1:-1:-1;;;;;13204:21:0;;13196:68;;;;-1:-1:-1;;;13196:68:0;;7698:2:1;13196:68:0;;;7680:21:1;7737:2;7717:18;;;7710:30;7776:34;7756:18;;;7749:62;-1:-1:-1;;;7827:18:1;;;7820:32;7869:19;;13196:68:0;7496:398:1;13196:68:0;-1:-1:-1;;;;;13283:19:0;;13275:68;;;;-1:-1:-1;;;13275:68:0;;8101:2:1;13275:68:0;;;8083:21:1;8140:2;8120:18;;;8113:30;8179:34;8159:18;;;8152:62;-1:-1:-1;;;8230:18:1;;;8223:34;8274:19;;13275:68:0;7899:400:1;13275:68:0;-1:-1:-1;;;;;13354:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13406:32;;1361:25:1;;;13406:32:0;;1334:18:1;13406:32:0;;;;;;;13111:335;;;:::o;1361:98::-;1419:7;1446:5;1450:1;1446;:5;:::i;11782:1004::-;-1:-1:-1;;;;;11879:20:0;;11871:70;;;;-1:-1:-1;;;11871:70:0;;8771:2:1;11871:70:0;;;8753:21:1;8810:2;8790:18;;;8783:30;8849:34;8829:18;;;8822:62;-1:-1:-1;;;8900:18:1;;;8893:35;8945:19;;11871:70:0;8569:401:1;11871:70:0;-1:-1:-1;;;;;11960:23:0;;11952:71;;;;-1:-1:-1;;;11952:71:0;;9177:2:1;11952:71:0;;;9159:21:1;9216:2;9196:18;;;9189:30;9255:34;9235:18;;;9228:62;-1:-1:-1;;;9306:18:1;;;9299:33;9349:19;;11952:71:0;8975:399:1;11952:71:0;-1:-1:-1;;;;;12052:17:0;;;;;;:9;:17;;;;;;12042:27;;;12034:88;;;;-1:-1:-1;;;12034:88:0;;9581:2:1;12034:88:0;;;9563:21:1;9620:2;9600:18;;;9593:30;9659:34;9639:18;;;9632:62;-1:-1:-1;;;9710:18:1;;;9703:47;9767:19;;12034:88:0;9379:413:1;12034:88:0;-1:-1:-1;;;;;12147:19:0;;;;;;:11;:19;;;;;;;;12146:20;:47;;;;-1:-1:-1;;;;;;12171:22:0;;;;;;:11;:22;;;;;;;;12170:23;12146:47;:77;;;;-1:-1:-1;12218:4:0;;-1:-1:-1;;;;;12197:26:0;;;12218:4;;12197:26;;12146:77;:107;;;;-1:-1:-1;12248:4:0;;-1:-1:-1;;;;;12227:26:0;;;12248:4;;12227:26;;12146:107;12143:234;;;12315:15;;-1:-1:-1;;;;;12278:20:0;;;;;;:9;:20;;;;;;:32;;12303:6;12278:24;:32::i;:::-;12277:53;;12269:96;;;;-1:-1:-1;;;12269:96:0;;9999:2:1;12269:96:0;;;9981:21:1;10038:2;10018:18;;;10011:30;10077:32;10057:18;;;10050:60;10127:18;;12269:96:0;9797:354:1;12269:96:0;12392:20;:18;:20::i;:::-;12389:81;;;12429:29;12444:13;;12429:14;:29::i;:::-;-1:-1:-1;;;;;12502:17:0;;;;;;:9;:17;;;;;;:29;;12524:6;12502:21;:29::i;:::-;-1:-1:-1;;;;;12482:17:0;;;;;;:9;:17;;;;;:49;;;;12567:32;12492:6;12589:9;12567:13;:32::i;:::-;:78;;12639:6;12567:78;;;12602:34;12610:6;12618:9;12629:6;12602:7;:34::i;:::-;-1:-1:-1;;;;;12679:20:0;;;;;;:9;:20;;;;;;12542:103;;-1:-1:-1;12679:40:0;;12542:103;12679:24;:40::i;:::-;-1:-1:-1;;;;;12656:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12735:43;;;;;;;;;;12763:14;1361:25:1;;1349:2;1334:18;;1215:177;12735:43:0;;;;;;;;11860:926;11782:1004;;;:::o;1785:240::-;1905:7;1966:12;1958:6;;;;1950:29;;;;-1:-1:-1;;;1950:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2001:5:0;;;1785:240::o;10086:559::-;5712:8;:15;;-1:-1:-1;;;;5712:15:0;-1:-1:-1;;;5712:15:0;;;10182:16:::1;::::0;;10196:1:::1;10182:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10182:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10182:16:0::1;10158:40;;10227:4;10209;10214:1;10209:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10209:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10253:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;10253:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;10209:7;;10253:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10243:4;10248:1;10243:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10243:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;10279:6:::1;::::0;:182:::1;::::0;-1:-1:-1;;;10279:182:0;;:6;::::1;::::0;:57:::1;::::0;:182:::1;::::0;10351:6;;10279::::1;::::0;10388:4;;10415::::1;::::0;10435:15:::1;::::0;10279:182:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10500:18:0::1;::::0;10492:78:::1;::::0;10475:12:::1;::::0;-1:-1:-1;;;;;;10500:18:0;;::::1;::::0;-1:-1:-1;10560:5:0::1;::::0;10532:21:::1;::::0;10475:12;10492:78;10475:12;10492:78;10532:21;10500:18;10560:5;10492:78:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10474:96;;;10589:7;10581:50;;;::::0;-1:-1:-1;;;10581:50:0;;12073:2:1;10581:50:0::1;::::0;::::1;12055:21:1::0;12112:2;12092:18;;;12085:30;12151:32;12131:18;;;12124:60;12201:18;;10581:50:0::1;11871:354:1::0;10581:50:0::1;-1:-1:-1::0;;5732:8:0;:16;;-1:-1:-1;;;;5732:16:0;;;-1:-1:-1;10086:559:0:o;1467:98::-;1525:7;1552:5;1556:1;1552;:5;:::i;1573:98::-;1631:7;1658:5;1662:1;1658;:5;:::i;1255:98::-;1313:7;1340:5;1344:1;1340;:5;:::i;10889:160::-;-1:-1:-1;;;;;10995:19:0;;10970:4;10995:19;;;:11;:19;;;;;;;;10994:20;:47;;;;-1:-1:-1;;;;;;;11019:22:0;;;;;:11;:22;;;;;;;;11018:23;;10889:160;-1:-1:-1;10889:160:0:o;11282:492::-;11368:7;11390:18;11411:30;11423:6;11431:9;11411:11;:30::i;:::-;11390:51;-1:-1:-1;11455:14:0;;11452:290;;11532:11;;11485:17;;11505:39;;:22;:6;11516:10;11505;:22::i;:39::-;11604:4;11586:24;;;;:9;:24;;;;;;11485:59;;-1:-1:-1;11586:39:0;;11485:59;11586:28;:39::i;:::-;11577:4;11559:24;;;;:9;:24;;;;;;;:66;;;;11645:42;;-1:-1:-1;;;;;11645:42:0;;;;;;;11677:9;1361:25:1;;1349:2;1334:18;;1215:177;11645:42:0;;;;;;;;11709:21;:6;11720:9;11709:10;:21::i;:::-;11702:28;;;;;;11452:290;-1:-1:-1;11760:6:0;;11282:492;-1:-1:-1;;;11282:492:0:o;11057:217::-;11172:4;;11136:7;;-1:-1:-1;;;;;11172:4:0;;;11159:17;;;;11156:38;;-1:-1:-1;11185:7:0;;11178:14;;11156:38;11217:4;;-1:-1:-1;;;;;11217:4:0;;;11207:14;;;;11204:34;;-1:-1:-1;11230:6:0;;11223:13;;11204:34;-1:-1:-1;11255:11:0;;11057:217;;;;:::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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2507:118::-;2593:5;2586:13;2579:21;2572:5;2569:32;2559:60;;2615:1;2612;2605:12;2630:382;2695:6;2703;2756:2;2744:9;2735:7;2731:23;2727:32;2724:52;;;2772:1;2769;2762:12;2724:52;2811:9;2798:23;2830:31;2855:5;2830:31;:::i;:::-;2880:5;-1:-1:-1;2937:2:1;2922:18;;2909:32;2950:30;2909:32;2950:30;:::i;:::-;2999:7;2989:17;;;2630:382;;;;;:::o;3017:529::-;3094:6;3102;3110;3163:2;3151:9;3142:7;3138:23;3134:32;3131:52;;;3179:1;3176;3169:12;3131:52;3218:9;3205:23;3237:31;3262:5;3237:31;:::i;:::-;3287:5;-1:-1:-1;3344:2:1;3329:18;;3316:32;3357:33;3316:32;3357:33;:::i;:::-;3409:7;-1:-1:-1;3468:2:1;3453:18;;3440:32;3481:33;3440:32;3481:33;:::i;:::-;3533:7;3523:17;;;3017:529;;;;;:::o;3551:661::-;3673:6;3681;3689;3697;3705;3713;3721;3729;3782:3;3770:9;3761:7;3757:23;3753:33;3750:53;;;3799:1;3796;3789:12;3750:53;-1:-1:-1;;3822:23:1;;;3892:2;3877:18;;3864:32;;-1:-1:-1;3943:2:1;3928:18;;3915:32;;3994:2;3979:18;;3966:32;;-1:-1:-1;4045:3:1;4030:19;;4017:33;;-1:-1:-1;4097:3:1;4082:19;;4069:33;;-1:-1:-1;4149:3:1;4134:19;;4121:33;;-1:-1:-1;4201:3:1;4186:19;4173:33;;-1:-1:-1;3551:661:1;-1:-1:-1;3551:661:1:o;4217:309::-;4282:6;4290;4343:2;4331:9;4322:7;4318:23;4314:32;4311:52;;;4359:1;4356;4349:12;4311:52;4398:9;4385:23;4417:28;4439:5;4417:28;:::i;4531:388::-;4599:6;4607;4660:2;4648:9;4639:7;4635:23;4631:32;4628:52;;;4676:1;4673;4666:12;4628:52;4715:9;4702:23;4734:31;4759:5;4734:31;:::i;:::-;4784:5;-1:-1:-1;4841:2:1;4826:18;;4813:32;4854:33;4813:32;4854:33;:::i;5407:329::-;5609:2;5591:21;;;5648:1;5628:18;;;5621:29;-1:-1:-1;;;5681:2:1;5666:18;;5659:36;5727:2;5712:18;;5407:329::o;6149:184::-;6219:6;6272:2;6260:9;6251:7;6247:23;6243:32;6240:52;;;6288:1;6285;6278:12;6240:52;-1:-1:-1;6311:16:1;;6149:184;-1:-1:-1;6149:184:1:o;6617:245::-;6684:6;6737:2;6725:9;6716:7;6712:23;6708:32;6705:52;;;6753:1;6750;6743:12;6705:52;6785:9;6779:16;6804:28;6826:5;6804:28;:::i;8304:127::-;8365:10;8360:3;8356:20;8353:1;8346:31;8396:4;8393:1;8386:15;8420:4;8417:1;8410:15;8436:128;8503:9;;;8524:11;;;8521:37;;;8538:18;;:::i;10288:127::-;10349:10;10344:3;10340:20;10337:1;10330:31;10380:4;10377:1;10370:15;10404:4;10401:1;10394:15;10420:251;10490:6;10543:2;10531:9;10522:7;10518:23;10514:32;10511:52;;;10559:1;10556;10549:12;10511:52;10591:9;10585:16;10610:31;10635:5;10610:31;:::i;10676:980::-;10938:4;10986:3;10975:9;10971:19;11017:6;11006:9;10999:25;11043:2;11081:6;11076:2;11065:9;11061:18;11054:34;11124:3;11119:2;11108:9;11104:18;11097:31;11148:6;11183;11177:13;11214:6;11206;11199:22;11252:3;11241:9;11237:19;11230:26;;11291:2;11283:6;11279:15;11265:29;;11312:1;11322:195;11336:6;11333:1;11330:13;11322:195;;;11401:13;;-1:-1:-1;;;;;11397:39:1;11385:52;;11492:15;;;;11457:12;;;;11433:1;11351:9;11322:195;;;-1:-1:-1;;;;;;;11573:32:1;;;;11568:2;11553:18;;11546:60;-1:-1:-1;;;11637:3:1;11622:19;11615:35;11534:3;10676:980;-1:-1:-1;;;10676:980:1:o;12230:168::-;12303:9;;;12334;;12351:15;;;12345:22;;12331:37;12321:71;;12372:18;;:::i;12403:217::-;12443:1;12469;12459:132;;12513:10;12508:3;12504:20;12501:1;12494:31;12548:4;12545:1;12538:15;12576:4;12573:1;12566:15;12459:132;-1:-1:-1;12605:9:1;;12403:217::o;12625:125::-;12690:9;;;12711:10;;;12708:36;;;12724:18;;:::i

Swarm Source

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