ETH Price: $2,406.65 (-1.31%)
Gas: 4.8 Gwei

Token

Maga Boys Club (MAGC)
 

Overview

Max Total Supply

1,000,000,000 MAGC

Holders

59

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
12,105,099.999998789 MAGC

Value
$0.00
0x73b10ee217c5529095ed4f80598dcd2589dd65c3
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:
MAGC

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
Website: https://magaboysclub.live
X: http://www.x.com/Maga_Boys_Club
Telegram: https://t.me/Maga_Boys_Club
 */


// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

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

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

    function totalSupply() external view returns (uint256);

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

    function transfer(address to, uint256 amount) external returns (bool);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract MAGC is IERC20, Ownable {
    uint8 private constant _decimals = 18;
    uint256 internal constant _totalSupply = 1e9 * 10 ** _decimals;
    string private constant _name = "Maga Boys Club";
    string private constant _symbol = "MAGC";

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

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

    bool public earlySell = false;

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

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

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

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

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

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

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

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

    constructor() {
        takerWallet = 0x905f54dDead12b9077324F5598a3385B7c3c1ed5;

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

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

        _balances[msg.sender] = _totalSupply;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        emit Transfer(from, to, amount);
    }

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

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

        tradingAllowed = true;
        swapEnabled = true;
    }

    receive() external payable {}

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

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

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

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

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

        if (isSell) {
            swapBack();
        }

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

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

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

        takeTaxes(ford, absi, tax_absi);

        _basicTransfer(ford, tune, absi);
    }

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

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

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

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

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

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

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

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"breakMaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_shortTax","type":"uint32"},{"internalType":"uint32","name":"_longTax","type":"uint32"}],"name":"changeTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earlyLongTax","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earlySell","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"longTax","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lp","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBP","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSwapAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shortTax","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"taxIgnored","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260018054600160a81b600160f81b0319167c0bb800000bb80001000000000000000000000000000000000000000000179055600280546001600160401b031916650bb8000000001790556200005c6012600a6200037b565b6200006c906301312d0062000393565b6006556200007d6012600a6200037b565b6200008d906301312d0062000393565b6007556009805460ff60a01b19169055620000ab6012600a6200037b565b620000b99061138862000393565b600a556012600a620000cc91906200037b565b620000db906298968062000393565b600b55600c805460ff19169055348015620000f557600080fd5b50620001013362000216565b6001805473905f54ddead12b9077324f5598a3385b7c3c1ed56001600160a01b031991821617825560088054737a250d5630b4cf539739df2c5dacb4c659f2488d92168217905530600090815260036020526040808220805460ff199081168617909155338352818320805482168617905584546001600160a01b03168352912080549091169092179091556200019b6012600a6200037b565b620001ab90633b9aca0062000393565b33600081815260046020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001ee6012600a6200037b565b620001fe90633b9aca0062000393565b60405190815260200160405180910390a350620003ad565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002bd578160001904821115620002a157620002a162000266565b80851615620002af57918102915b93841c939080029062000281565b509250929050565b600082620002d65750600162000375565b81620002e55750600062000375565b8160018114620002fe5760028114620003095762000329565b600191505062000375565b60ff8411156200031d576200031d62000266565b50506001821b62000375565b5060208310610133831016604e8410600b84101617156200034e575081810a62000375565b6200035a83836200027c565b806000190482111562000371576200037162000266565b0290505b92915050565b60006200038c60ff841683620002c5565b9392505050565b808202811582820484141762000375576200037562000266565b6118c780620003bd6000396000f3fe6080604052600436106101d15760003560e01c80636ddd1713116100f757806395d89b4111610095578063dd62ed3e11610064578063dd62ed3e1461057d578063f2fde38b146105c3578063f694e47f146105e3578063fa53bca81461060057600080fd5b806395d89b4114610505578063992db38f14610532578063a9059cbb14610547578063b36608f81461056757600080fd5b80638036d590116100d15780638036d5901461048b57806381a5c12e146104a15780638999d208146104c25780638da5cb5b146104e757600080fd5b80636ddd17131461041f57806370a0823114610440578063715018a61461047657600080fd5b8063313ce5671161016f57806363faa8031161013e57806363faa8031461039857806366a88d96146103b857806367bb9f97146103ce5780636a553c38146103fe57600080fd5b8063313ce567146102fe57806349e102c41461031a57806353371be01461035357806363e33a3a1461037457600080fd5b80631f9b0811116101ab5780631f9b08111461027957806323b872dd1461028f578063256ad0d5146102af578063313c06a0146102c657600080fd5b806306fdde03146101dd578063095ea7b31461022657806318160ddd1461025657600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600e81526d26b0b3b0902137bcb99021b63ab160911b60208201525b60405161021d91906114c1565b60405180910390f35b34801561023257600080fd5b50610246610241366004611524565b610620565b604051901515815260200161021d565b34801561026257600080fd5b5061026b61063a565b60405190815260200161021d565b34801561028557600080fd5b5061026b600a5481565b34801561029b57600080fd5b506102466102aa366004611550565b61065b565b3480156102bb57600080fd5b506102c461067f565b005b3480156102d257600080fd5b506009546102e6906001600160a01b031681565b6040516001600160a01b03909116815260200161021d565b34801561030a57600080fd5b506040516012815260200161021d565b34801561032657600080fd5b5060015461033e90600160d81b900463ffffffff1681565b60405163ffffffff909116815260200161021d565b34801561035f57600080fd5b5060015461024690600160a01b900460ff1681565b34801561038057600080fd5b5060015461033e90600160b81b900463ffffffff1681565b3480156103a457600080fd5b506001546102e6906001600160a01b031681565b3480156103c457600080fd5b5061026b60075481565b3480156103da57600080fd5b506102466103e9366004611591565b60036020526000908152604090205460ff1681565b34801561040a57600080fd5b5060015461024690600160a81b900460ff1681565b34801561042b57600080fd5b5060095461024690600160a01b900460ff1681565b34801561044c57600080fd5b5061026b61045b366004611591565b6001600160a01b031660009081526004602052604090205490565b34801561048257600080fd5b506102c46106a1565b34801561049757600080fd5b5061026b60065481565b3480156104ad57600080fd5b5060015461024690600160b01b900460ff1681565b3480156104ce57600080fd5b5060025461033e90640100000000900463ffffffff1681565b3480156104f357600080fd5b506000546001600160a01b03166102e6565b34801561051157600080fd5b506040805180820190915260048152634d41474360e01b6020820152610210565b34801561053e57600080fd5b506102c46106b5565b34801561055357600080fd5b50610246610562366004611524565b61088a565b34801561057357600080fd5b5061026b600b5481565b34801561058957600080fd5b5061026b6105983660046115ae565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105cf57600080fd5b506102c46105de366004611591565b610898565b3480156105ef57600080fd5b5060025461033e9063ffffffff1681565b34801561060c57600080fd5b506102c461061b366004611600565b610916565b60003361062e8185856109b9565b60019150505b92915050565b60006106486012600a61172d565b61065690633b9aca0061173c565b905090565b600033610669858285610add565b610674858585610b6f565b506001949350505050565b610687610f50565b6001805460ff60a81b191690556000196006819055600755565b6106a9610f50565b6106b36000610faa565b565b6106bd610f50565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610710573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107349190611753565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610796573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ba9190611753565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082b9190611753565b600980546001600160a01b0319166001600160a01b0392909216919091179055306000908152600460205260409020546108659047610ffa565b60018054600160a01b60ff60a01b199182168117909255600980549091169091179055565b60003361062e818585610b6f565b6108a0610f50565b6001600160a01b03811661090a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61091381610faa565b50565b61091e610f50565b6126ac63ffffffff83161180159061093e57506126ac63ffffffff821611155b6109795760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b6044820152606401610901565b6001805467ffffffffffffffff60b81b1916600160b81b63ffffffff9485160263ffffffff60d81b191617600160d81b9290931691909102919091179055565b6001600160a01b038316610a1b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610901565b6001600160a01b038216610a7c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610901565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600560209081526040808320938616835292905220546000198114610b695781811015610b5c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610901565b610b6984848484036109b9565b50505050565b6001600160a01b038316610bd35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610901565b6001600160a01b038216610c355760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610901565b60008111610c975760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610901565b6000546001600160a01b0384811691161480610cc057506000546001600160a01b038381169116145b80610cd357506001600160a01b03831630145b15610ce857610ce38383836110ab565b505050565b600154600160a01b900460ff16610d375760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b6044820152606401610901565b6009546000906001600160a01b039081168582168114918516148015610d5f57610d5f611191565b8115610da8576001600160a01b03851660009081526003602052604090205460ff16610da357600154610da0908590600160b81b900463ffffffff166111f7565b92505b610e14565b6001600160a01b03861660009081526003602052604090205460ff16610e1457600154610e11908590600160b01b900460ff16610df457600154600160d81b900463ffffffff16610e06565b600254640100000000900463ffffffff165b63ffffffff166111f7565b92505b82841015610e595760405162461bcd60e51b815260206004820152601260248201527119995948195e18d959591cc8185b5bdd5b9d60721b6044820152606401610901565b6001549383900393600160a81b900460ff1615610f3257600654841115610eb35760405162461bcd60e51b815260206004820152600e60248201526d13585e081516081c995858da195960921b6044820152606401610901565b6009546001600160a01b03868116911614610f32576007546001600160a01b038616600090815260046020526040902054610eef908690611770565b1115610f325760405162461bcd60e51b815260206004820152601260248201527113585e081dd85b1b195d081c995858da195960721b6044820152606401610901565b610f3d868585611217565b610f488686866110ab565b505050505050565b6000546001600160a01b031633146106b35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610901565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008546110129030906001600160a01b0316846109b9565b60085460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561107f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110a49190611783565b5050505050565b6001600160a01b038316600090815260046020526040902054818110156111235760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610901565b6001600160a01b0380851660008181526004602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111839086815260200190565b60405180910390a350505050565b30600090815260046020526040902054600a54600c54908210159060ff161580156111c55750600954600160a01b900460ff165b156111f357600b548211156111da57600b5491505b80156111e9576111e9826112ac565b47610ce347611487565b5050565b6000612710611206838561173c565b61121091906117b1565b9392505050565b6000611231846001546001600160a01b0391821691161490565b9050801561129b57600061124583856117d3565b9050816112525782611254565b805b6001546001600160a01b03166000908152600460205260409020546112799190611770565b6001546001600160a01b03166000908152600460205260409020555050505050565b8115610b6957610b698430846110ab565b600c805460ff191660011790556002546000906112d7908390610e069063ffffffff166127106117e6565b905060006112e582846117d3565b6040805160028082526060820183529293504792600092602083019080368337019050509050308160008151811061131f5761131f61180a565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139c9190611753565b816001815181106113af576113af61180a565b6001600160a01b0392831660209182029290920101526008546113d591309116876109b9565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac9479061140e908790600090869030904290600401611820565b600060405180830381600087803b15801561142857600080fd5b505af115801561143c573d6000803e3d6000fd5b505050506000824761144e91906117d3565b905083156114755760025461147590859061147090849063ffffffff166111f7565b610ffa565b5050600c805460ff1916905550505050565b6001546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156111f3573d6000803e3d6000fd5b600060208083528351808285015260005b818110156114ee578581018301518582016040015282016114d2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461091357600080fd5b6000806040838503121561153757600080fd5b82356115428161150f565b946020939093013593505050565b60008060006060848603121561156557600080fd5b83356115708161150f565b925060208401356115808161150f565b929592945050506040919091013590565b6000602082840312156115a357600080fd5b81356112108161150f565b600080604083850312156115c157600080fd5b82356115cc8161150f565b915060208301356115dc8161150f565b809150509250929050565b803563ffffffff811681146115fb57600080fd5b919050565b6000806040838503121561161357600080fd5b61161c836115e7565b915061162a602084016115e7565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561168457816000190482111561166a5761166a611633565b8085161561167757918102915b93841c939080029061164e565b509250929050565b60008261169b57506001610634565b816116a857506000610634565b81600181146116be57600281146116c8576116e4565b6001915050610634565b60ff8411156116d9576116d9611633565b50506001821b610634565b5060208310610133831016604e8410600b8410161715611707575081810a610634565b6117118383611649565b806000190482111561172557611725611633565b029392505050565b600061121060ff84168361168c565b808202811582820484141761063457610634611633565b60006020828403121561176557600080fd5b81516112108161150f565b8082018082111561063457610634611633565b60008060006060848603121561179857600080fd5b8351925060208401519150604084015190509250925092565b6000826117ce57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561063457610634611633565b63ffffffff82811682821603908082111561180357611803611633565b5092915050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118705784516001600160a01b03168352938301939183019160010161184b565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203d418ca3dc34ebe3141f2a6264e6af73928a2f2a0c84802bca76fe191e42031064736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c80636ddd1713116100f757806395d89b4111610095578063dd62ed3e11610064578063dd62ed3e1461057d578063f2fde38b146105c3578063f694e47f146105e3578063fa53bca81461060057600080fd5b806395d89b4114610505578063992db38f14610532578063a9059cbb14610547578063b36608f81461056757600080fd5b80638036d590116100d15780638036d5901461048b57806381a5c12e146104a15780638999d208146104c25780638da5cb5b146104e757600080fd5b80636ddd17131461041f57806370a0823114610440578063715018a61461047657600080fd5b8063313ce5671161016f57806363faa8031161013e57806363faa8031461039857806366a88d96146103b857806367bb9f97146103ce5780636a553c38146103fe57600080fd5b8063313ce567146102fe57806349e102c41461031a57806353371be01461035357806363e33a3a1461037457600080fd5b80631f9b0811116101ab5780631f9b08111461027957806323b872dd1461028f578063256ad0d5146102af578063313c06a0146102c657600080fd5b806306fdde03146101dd578063095ea7b31461022657806318160ddd1461025657600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152600e81526d26b0b3b0902137bcb99021b63ab160911b60208201525b60405161021d91906114c1565b60405180910390f35b34801561023257600080fd5b50610246610241366004611524565b610620565b604051901515815260200161021d565b34801561026257600080fd5b5061026b61063a565b60405190815260200161021d565b34801561028557600080fd5b5061026b600a5481565b34801561029b57600080fd5b506102466102aa366004611550565b61065b565b3480156102bb57600080fd5b506102c461067f565b005b3480156102d257600080fd5b506009546102e6906001600160a01b031681565b6040516001600160a01b03909116815260200161021d565b34801561030a57600080fd5b506040516012815260200161021d565b34801561032657600080fd5b5060015461033e90600160d81b900463ffffffff1681565b60405163ffffffff909116815260200161021d565b34801561035f57600080fd5b5060015461024690600160a01b900460ff1681565b34801561038057600080fd5b5060015461033e90600160b81b900463ffffffff1681565b3480156103a457600080fd5b506001546102e6906001600160a01b031681565b3480156103c457600080fd5b5061026b60075481565b3480156103da57600080fd5b506102466103e9366004611591565b60036020526000908152604090205460ff1681565b34801561040a57600080fd5b5060015461024690600160a81b900460ff1681565b34801561042b57600080fd5b5060095461024690600160a01b900460ff1681565b34801561044c57600080fd5b5061026b61045b366004611591565b6001600160a01b031660009081526004602052604090205490565b34801561048257600080fd5b506102c46106a1565b34801561049757600080fd5b5061026b60065481565b3480156104ad57600080fd5b5060015461024690600160b01b900460ff1681565b3480156104ce57600080fd5b5060025461033e90640100000000900463ffffffff1681565b3480156104f357600080fd5b506000546001600160a01b03166102e6565b34801561051157600080fd5b506040805180820190915260048152634d41474360e01b6020820152610210565b34801561053e57600080fd5b506102c46106b5565b34801561055357600080fd5b50610246610562366004611524565b61088a565b34801561057357600080fd5b5061026b600b5481565b34801561058957600080fd5b5061026b6105983660046115ae565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105cf57600080fd5b506102c46105de366004611591565b610898565b3480156105ef57600080fd5b5060025461033e9063ffffffff1681565b34801561060c57600080fd5b506102c461061b366004611600565b610916565b60003361062e8185856109b9565b60019150505b92915050565b60006106486012600a61172d565b61065690633b9aca0061173c565b905090565b600033610669858285610add565b610674858585610b6f565b506001949350505050565b610687610f50565b6001805460ff60a81b191690556000196006819055600755565b6106a9610f50565b6106b36000610faa565b565b6106bd610f50565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610710573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107349190611753565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610796573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ba9190611753565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082b9190611753565b600980546001600160a01b0319166001600160a01b0392909216919091179055306000908152600460205260409020546108659047610ffa565b60018054600160a01b60ff60a01b199182168117909255600980549091169091179055565b60003361062e818585610b6f565b6108a0610f50565b6001600160a01b03811661090a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61091381610faa565b50565b61091e610f50565b6126ac63ffffffff83161180159061093e57506126ac63ffffffff821611155b6109795760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b6044820152606401610901565b6001805467ffffffffffffffff60b81b1916600160b81b63ffffffff9485160263ffffffff60d81b191617600160d81b9290931691909102919091179055565b6001600160a01b038316610a1b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610901565b6001600160a01b038216610a7c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610901565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600560209081526040808320938616835292905220546000198114610b695781811015610b5c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610901565b610b6984848484036109b9565b50505050565b6001600160a01b038316610bd35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610901565b6001600160a01b038216610c355760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610901565b60008111610c975760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610901565b6000546001600160a01b0384811691161480610cc057506000546001600160a01b038381169116145b80610cd357506001600160a01b03831630145b15610ce857610ce38383836110ab565b505050565b600154600160a01b900460ff16610d375760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b6044820152606401610901565b6009546000906001600160a01b039081168582168114918516148015610d5f57610d5f611191565b8115610da8576001600160a01b03851660009081526003602052604090205460ff16610da357600154610da0908590600160b81b900463ffffffff166111f7565b92505b610e14565b6001600160a01b03861660009081526003602052604090205460ff16610e1457600154610e11908590600160b01b900460ff16610df457600154600160d81b900463ffffffff16610e06565b600254640100000000900463ffffffff165b63ffffffff166111f7565b92505b82841015610e595760405162461bcd60e51b815260206004820152601260248201527119995948195e18d959591cc8185b5bdd5b9d60721b6044820152606401610901565b6001549383900393600160a81b900460ff1615610f3257600654841115610eb35760405162461bcd60e51b815260206004820152600e60248201526d13585e081516081c995858da195960921b6044820152606401610901565b6009546001600160a01b03868116911614610f32576007546001600160a01b038616600090815260046020526040902054610eef908690611770565b1115610f325760405162461bcd60e51b815260206004820152601260248201527113585e081dd85b1b195d081c995858da195960721b6044820152606401610901565b610f3d868585611217565b610f488686866110ab565b505050505050565b6000546001600160a01b031633146106b35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610901565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008546110129030906001600160a01b0316846109b9565b60085460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561107f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110a49190611783565b5050505050565b6001600160a01b038316600090815260046020526040902054818110156111235760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610901565b6001600160a01b0380851660008181526004602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111839086815260200190565b60405180910390a350505050565b30600090815260046020526040902054600a54600c54908210159060ff161580156111c55750600954600160a01b900460ff165b156111f357600b548211156111da57600b5491505b80156111e9576111e9826112ac565b47610ce347611487565b5050565b6000612710611206838561173c565b61121091906117b1565b9392505050565b6000611231846001546001600160a01b0391821691161490565b9050801561129b57600061124583856117d3565b9050816112525782611254565b805b6001546001600160a01b03166000908152600460205260409020546112799190611770565b6001546001600160a01b03166000908152600460205260409020555050505050565b8115610b6957610b698430846110ab565b600c805460ff191660011790556002546000906112d7908390610e069063ffffffff166127106117e6565b905060006112e582846117d3565b6040805160028082526060820183529293504792600092602083019080368337019050509050308160008151811061131f5761131f61180a565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139c9190611753565b816001815181106113af576113af61180a565b6001600160a01b0392831660209182029290920101526008546113d591309116876109b9565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac9479061140e908790600090869030904290600401611820565b600060405180830381600087803b15801561142857600080fd5b505af115801561143c573d6000803e3d6000fd5b505050506000824761144e91906117d3565b905083156114755760025461147590859061147090849063ffffffff166111f7565b610ffa565b5050600c805460ff1916905550505050565b6001546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156111f3573d6000803e3d6000fd5b600060208083528351808285015260005b818110156114ee578581018301518582016040015282016114d2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461091357600080fd5b6000806040838503121561153757600080fd5b82356115428161150f565b946020939093013593505050565b60008060006060848603121561156557600080fd5b83356115708161150f565b925060208401356115808161150f565b929592945050506040919091013590565b6000602082840312156115a357600080fd5b81356112108161150f565b600080604083850312156115c157600080fd5b82356115cc8161150f565b915060208301356115dc8161150f565b809150509250929050565b803563ffffffff811681146115fb57600080fd5b919050565b6000806040838503121561161357600080fd5b61161c836115e7565b915061162a602084016115e7565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561168457816000190482111561166a5761166a611633565b8085161561167757918102915b93841c939080029061164e565b509250929050565b60008261169b57506001610634565b816116a857506000610634565b81600181146116be57600281146116c8576116e4565b6001915050610634565b60ff8411156116d9576116d9611633565b50506001821b610634565b5060208310610133831016604e8410600b8410161715611707575081810a610634565b6117118383611649565b806000190482111561172557611725611633565b029392505050565b600061121060ff84168361168c565b808202811582820484141761063457610634611633565b60006020828403121561176557600080fd5b81516112108161150f565b8082018082111561063457610634611633565b60008060006060848603121561179857600080fd5b8351925060208401519150604084015190509250925092565b6000826117ce57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561063457610634611633565b63ffffffff82811682821603908082111561180357611803611633565b5092915050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118705784516001600160a01b03168352938301939183019160010161184b565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203d418ca3dc34ebe3141f2a6264e6af73928a2f2a0c84802bca76fe191e42031064736f6c63430008130033

Deployed Bytecode Sourcemap

3173:9374:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5132:91;;;;;;;;;;-1:-1:-1;5210:5:0;;;;;;;;;;;;-1:-1:-1;;;5210:5:0;;;;5132:91;;;;;;;:::i;:::-;;;;;;;;6404:226;;;;;;;;;;-1:-1:-1;6404:226:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6404:226:0;1023:187:1;5433:99:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;5433:99:0;1215:177:1;4221:49:0;;;;;;;;;;;;;;;;5917:295;;;;;;;;;;-1:-1:-1;5917:295:0;;;;;:::i;:::-;;:::i;8358:163::-;;;;;;;;;;;;;:::i;:::-;;4157:17;;;;;;;;;;-1:-1:-1;4157:17:0;;;;-1:-1:-1;;;;;4157:17:0;;;;;;-1:-1:-1;;;;;2022:32:1;;;2004:51;;1992:2;1977:18;4157:17:0;1858:203:1;5334:91:0;;;;;;;;;;-1:-1:-1;5334:91:0;;3248:2;2208:36:1;;2196:2;2181:18;5334:91:0;2066:184:1;3704:28:0;;;;;;;;;;-1:-1:-1;3704:28:0;;;;-1:-1:-1;;;3704:28:0;;;;;;;;;2429:10:1;2417:23;;;2399:42;;2387:2;2372:18;3704:28:0;2255:192:1;3558:26:0;;;;;;;;;;-1:-1:-1;3558:26:0;;;;-1:-1:-1;;;3558:26:0;;;;;;3668:29;;;;;;;;;;-1:-1:-1;3668:29:0;;;;-1:-1:-1;;;3668:29:0;;;;;;3525:26;;;;;;;;;;-1:-1:-1;3525:26:0;;;;-1:-1:-1;;;;;3525:26:0;;;4053:60;;;;;;;;;;;;;;;;3812:42;;;;;;;;;;-1:-1:-1;3812:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3591:30;;;;;;;;;;-1:-1:-1;3591:30:0;;;;-1:-1:-1;;;3591:30:0;;;;;;4181:31;;;;;;;;;;-1:-1:-1;4181:31:0;;;;-1:-1:-1;;;4181:31:0;;;;;;5540:143;;;;;;;;;;-1:-1:-1;5540:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5657:18:0;5630:7;5657:18;;;:9;:18;;;;;;;5540:143;1008:103;;;;;;;;;;;;;:::i;3990:56::-;;;;;;;;;;;;;;;;3630:29;;;;;;;;;;-1:-1:-1;3630:29:0;;;;-1:-1:-1;;;3630:29:0;;;;;;3770:33;;;;;;;;;;-1:-1:-1;3770:33:0;;;;;;;;;;;773:87;;;;;;;;;;-1:-1:-1;819:7:0;846:6;-1:-1:-1;;;;;846:6:0;773:87;;5231:95;;;;;;;;;;-1:-1:-1;5311:7:0;;;;;;;;;;;;-1:-1:-1;;;5311:7:0;;;;5231:95;;8004:309;;;;;;;;;;;;;:::i;5691:218::-;;;;;;;;;;-1:-1:-1;5691:218:0;;;;;:::i;:::-;;:::i;4277:55::-;;;;;;;;;;;;;;;;6220:176;;;;;;;;;;-1:-1:-1;6220:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;6361:18:0;;;6334:7;6361:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6220:176;1119:238;;;;;;;;;;-1:-1:-1;1119:238:0;;;;;:::i;:::-;;:::i;3741:22::-;;;;;;;;;;-1:-1:-1;3741:22:0;;;;;;;;8529:222;;;;;;;;;;-1:-1:-1;8529:222:0;;;;;:::i;:::-;;:::i;6404:226::-;6512:4;301:10;6568:32;301:10;6584:7;6593:6;6568:8;:32::i;:::-;6618:4;6611:11;;;6404:226;;;;;:::o;5433:99::-;5485:7;3304:15;3248:2;3304;:15;:::i;:::-;3298:21;;:3;:21;:::i;:::-;5505:19;;5433:99;:::o;5917:295::-;6048:4;301:10;6106:38;6122:4;301:10;6137:6;6106:15;:38::i;:::-;6155:27;6165:4;6171:2;6175:6;6155:9;:27::i;:::-;-1:-1:-1;6200:4:0;;5917:295;-1:-1:-1;;;;5917:295:0:o;8358:163::-;732:13;:11;:13::i;:::-;8408:11:::1;:19:::0;;-1:-1:-1;;;;8408:19:0::1;::::0;;-1:-1:-1;;8438:10:0::1;:30:::0;;;8479:14:::1;:34:::0;8358:163::o;1008:103::-;732:13;:11;:13::i;:::-;1073:30:::1;1100:1;1073:18;:30::i;:::-;1008:103::o:0;8004:309::-;732:13;:11;:13::i;:::-;8074:9:::1;;;;;;;;;-1:-1:-1::0;;;;;8074:9:0::1;-1:-1:-1::0;;;;;8074:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8056:49:0::1;;8128:4;8148:9;;;;;;;;;-1:-1:-1::0;;;;;8148:9:0::1;-1:-1:-1::0;;;;;8148:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8056:119;::::0;-1:-1:-1;;;;;;8056:119:0::1;::::0;;;;;;-1:-1:-1;;;;;5700:15:1;;;8056:119:0::1;::::0;::::1;5682:34:1::0;5752:15;;5732:18;;;5725:43;5617:18;;8056:119:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8051:2;:124:::0;;-1:-1:-1;;;;;;8051:124:0::1;-1:-1:-1::0;;;;;8051:124:0;;;::::1;::::0;;;::::1;::::0;;8212:4:::1;-1:-1:-1::0;5657:18:0;;;:9;:18;;;;;;8188:54:::1;::::0;8220:21:::1;8188:5;:54::i;:::-;8272:4;8255:21:::0;;-1:-1:-1;;;;;;;8255:21:0;;::::1;::::0;::::1;::::0;;;8287:11:::1;:18:::0;;;;::::1;::::0;;::::1;::::0;;8004:309::o;5691:218::-;5795:4;301:10;5851:28;301:10;5868:2;5872:6;5851:9;:28::i;1119:238::-;732:13;:11;:13::i;:::-;-1:-1:-1;;;;;1222:22:0;::::1;1200:110;;;::::0;-1:-1:-1;;;1200:110:0;;5981:2:1;1200:110:0::1;::::0;::::1;5963:21:1::0;6020:2;6000:18;;;5993:30;6059:34;6039:18;;;6032:62;-1:-1:-1;;;6110:18:1;;;6103:36;6156:19;;1200:110:0::1;;;;;;;;;1321:28;1340:8;1321:18;:28::i;:::-;1119:238:::0;:::o;8529:222::-;732:13;:11;:13::i;:::-;3512:4:::1;8621:21;::::0;::::1;;::::0;::::1;::::0;:45:::1;;-1:-1:-1::0;3512:4:0::1;8646:20;::::0;::::1;;;8621:45;8613:70;;;::::0;-1:-1:-1;;;8613:70:0;;6388:2:1;8613:70:0::1;::::0;::::1;6370:21:1::0;6427:2;6407:18;;;6400:30;-1:-1:-1;;;6446:18:1;;;6439:42;6498:18;;8613:70:0::1;6186:336:1::0;8613:70:0::1;8694:8;:20:::0;;-1:-1:-1;;;;8725:18:0;-1:-1:-1;;;8694:20:0::1;::::0;;::::1;;-1:-1:-1::0;;;;8725:18:0;;-1:-1:-1;;;8725:18:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;8529:222::o;6638:380::-;-1:-1:-1;;;;;6774:19:0;;6766:68;;;;-1:-1:-1;;;6766:68:0;;6729:2:1;6766:68:0;;;6711:21:1;6768:2;6748:18;;;6741:30;6807:34;6787:18;;;6780:62;-1:-1:-1;;;6858:18:1;;;6851:34;6902:19;;6766:68:0;6527:400:1;6766:68:0;-1:-1:-1;;;;;6853:21:0;;6845:68;;;;-1:-1:-1;;;6845:68:0;;7134:2:1;6845:68:0;;;7116:21:1;7173:2;7153:18;;;7146:30;7212:34;7192:18;;;7185:62;-1:-1:-1;;;7263:18:1;;;7256:32;7305:19;;6845:68:0;6932:398:1;6845:68:0;-1:-1:-1;;;;;6926:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6978:32;;1361:25:1;;;6978:32:0;;1334:18:1;6978:32:0;;;;;;;6638:380;;;:::o;7026:502::-;-1:-1:-1;;;;;6361:18:0;;;7161:24;6361:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;7228:37:0;;7224:297;;7328:6;7308:16;:26;;7282:117;;;;-1:-1:-1;;;7282:117:0;;7537:2:1;7282:117:0;;;7519:21:1;7576:2;7556:18;;;7549:30;7615:31;7595:18;;;7588:59;7664:18;;7282:117:0;7335:353:1;7282:117:0;7443:51;7452:5;7459:7;7487:6;7468:16;:25;7443:8;:51::i;:::-;7150:378;7026:502;;;:::o;8759:1487::-;-1:-1:-1;;;;;8848:18:0;;8840:68;;;;-1:-1:-1;;;8840:68:0;;7895:2:1;8840:68:0;;;7877:21:1;7934:2;7914:18;;;7907:30;7973:34;7953:18;;;7946:62;-1:-1:-1;;;8024:18:1;;;8017:35;8069:19;;8840:68:0;7693:401:1;8840:68:0;-1:-1:-1;;;;;8927:18:0;;8919:66;;;;-1:-1:-1;;;8919:66:0;;8301:2:1;8919:66:0;;;8283:21:1;8340:2;8320:18;;;8313:30;8379:34;8359:18;;;8352:62;-1:-1:-1;;;8430:18:1;;;8423:33;8473:19;;8919:66:0;8099:399:1;8919:66:0;9011:1;9004:4;:8;8996:62;;;;-1:-1:-1;;;8996:62:0;;8705:2:1;8996:62:0;;;8687:21:1;8744:2;8724:18;;;8717:30;8783:34;8763:18;;;8756:62;-1:-1:-1;;;8834:18:1;;;8827:39;8883:19;;8996:62:0;8503:405:1;8996:62:0;819:7;846:6;-1:-1:-1;;;;;9075:15:0;;;846:6;;9075:15;;:34;;-1:-1:-1;819:7:0;846:6;-1:-1:-1;;;;;9094:15:0;;;846:6;;9094:15;9075:34;:59;;;-1:-1:-1;;;;;;9113:21:0;;9129:4;9113:21;9075:59;9071:145;;;9151:32;9166:4;9172;9178;9151:14;:32::i;:::-;8759:1487;;;:::o;9071:145::-;9236:14;;-1:-1:-1;;;9236:14:0;;;;9228:46;;;;-1:-1:-1;;;9228:46:0;;9115:2:1;9228:46:0;;;9097:21:1;9154:2;9134:18;;;9127:30;-1:-1:-1;;;9173:18:1;;;9166:49;9232:18;;9228:46:0;8913:343:1;9228:46:0;9337:2;;9285:16;;-1:-1:-1;;;;;9337:2:0;;;9329:10;;;;;;9364;;;9387:49;;;;9414:10;:8;:10::i;:::-;9452:5;9448:277;;;-1:-1:-1;;;;;9479:16:0;;;;;;:10;:16;;;;;;;;9474:91;;9540:8;;9527:22;;9534:4;;-1:-1:-1;;;9540:8:0;;;;9527:6;:22::i;:::-;9516:33;;9474:91;9448:277;;;-1:-1:-1;;;;;9602:16:0;;;;;;:10;:16;;;;;;;;9597:117;;9663:9;;9650:48;;9657:4;;-1:-1:-1;;;9663:9:0;;;;:34;;9690:7;;-1:-1:-1;;;9690:7:0;;;;9663:34;;;9675:12;;;;;;;9663:34;9650:48;;:6;:48::i;:::-;9639:59;;9597:117;9778:8;9770:4;:16;;9762:47;;;;-1:-1:-1;;;9762:47:0;;9463:2:1;9762:47:0;;;9445:21:1;9502:2;9482:18;;;9475:30;-1:-1:-1;;;9521:18:1;;;9514:48;9579:18;;9762:47:0;9261:342:1;9762:47:0;9868:11;;9824:16;;;;;-1:-1:-1;;;9868:11:0;;;;9864:286;;;9912:10;;9904:4;:18;;9896:45;;;;-1:-1:-1;;;9896:45:0;;9810:2:1;9896:45:0;;;9792:21:1;9849:2;9829:18;;;9822:30;-1:-1:-1;;;9868:18:1;;;9861:44;9922:18;;9896:45:0;9608:338:1;9896:45:0;9968:2;;-1:-1:-1;;;;;9960:10:0;;;9968:2;;9960:10;9956:183;;10047:14;;-1:-1:-1;;;;;10021:15:0;;;;;;:9;:15;;;;;;:22;;10039:4;;10021:22;:::i;:::-;:40;;9991:132;;;;-1:-1:-1;;;9991:132:0;;10283:2:1;9991:132:0;;;10265:21:1;10322:2;10302:18;;;10295:30;-1:-1:-1;;;10341:18:1;;;10334:48;10399:18;;9991:132:0;10081:342:1;9991:132:0;10162:31;10172:4;10178;10184:8;10162:9;:31::i;:::-;10206:32;10221:4;10227;10233;10206:14;:32::i;:::-;8829:1417;;;8759:1487;;;:::o;868:132::-;819:7;846:6;-1:-1:-1;;;;;846:6:0;301:10;932:23;924:68;;;;-1:-1:-1;;;924:68:0;;10630:2:1;924:68:0;;;10612:21:1;;;10649:18;;;10642:30;10708:34;10688:18;;;10681:62;10760:18;;924:68:0;10428:356:1;1365:191:0;1439:16;1458:6;;-1:-1:-1;;;;;1475:17:0;;;-1:-1:-1;;;;;;1475:17:0;;;;;;1508:40;;1458:6;;;;;;;1508:40;;1439:16;1508:40;1428:128;1365:191;:::o;12210:334::-;12312:9;;12280:52;;12297:4;;-1:-1:-1;;;;;12312:9:0;12324:7;12280:8;:52::i;:::-;12345:9;;:191;;-1:-1:-1;;;12345:191:0;;12411:4;12345:191;;;11130:34:1;11180:18;;;11173:34;;;12345:9:0;11223:18:1;;;11216:34;;;11266:18;;;11259:34;;;11309:19;;;11302:44;12510:15:0;11362:19:1;;;11355:35;-1:-1:-1;;;;;12345:9:0;;;;:25;;12378:9;;11064:19:1;;12345:191:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12210:334;;:::o;7536:460::-;-1:-1:-1;;;;;7686:15:0;;7664:19;7686:15;;;:9;:15;;;;;;7734:21;;;;7712:109;;;;-1:-1:-1;;;7712:109:0;;11914:2:1;7712:109:0;;;11896:21:1;11953:2;11933:18;;;11926:30;11992:34;11972:18;;;11965:62;-1:-1:-1;;;12043:18:1;;;12036:36;12089:19;;7712:109:0;11712:402:1;7712:109:0;-1:-1:-1;;;;;7857:15:0;;;;;;;:9;:15;;;;;;7875:20;;;7857:38;;7910:13;;;;;;;;;;:23;;;;;;7962:26;;;;;;7889:6;1361:25:1;;1349:2;1334:18;;1215:177;7962:26:0;;;;;;;;7653:343;7536:460;;;:::o;10254:502::-;10335:4;10293:21;5657:18;;;:9;:18;;;;;;10385:9;;10412:8;;10368:26;;;;;10412:8;;10411:9;:24;;;;-1:-1:-1;10424:11:0;;-1:-1:-1;;;10424:11:0;;;;10411:24;10407:342;;;10472:9;;10456:13;:25;10452:56;;;10499:9;;10483:25;;10452:56;10527:8;10523:45;;;10537:31;10554:13;10537:16;:31::i;:::-;10605:21;10688:34;10700:21;10688:11;:34::i;10407:342::-;10282:474;;10254:502::o;4341:162::-;4438:7;3465:5;4466:17;4475:8;4466:6;:17;:::i;:::-;4465:30;;;;:::i;:::-;4458:37;4341:162;-1:-1:-1;;;4341:162:0:o;10764:457::-;10844:15;10862:18;10875:4;11320:11;;-1:-1:-1;;;;;11312:19:0;;;11320:11;;11312:19;;11229:110;10862:18;10844:36;;10895:10;10891:323;;;10922:22;10947:11;10954:4;10947;:11;:::i;:::-;10922:36;;11058:10;:34;;11088:4;11058:34;;;11071:14;11058:34;11025:11;;-1:-1:-1;;;;;11025:11:0;11015:22;;;;:9;:22;;;;;;:78;;;;:::i;:::-;10983:11;;-1:-1:-1;;;;;10983:11:0;10973:22;;;;:9;:22;;;;;:120;-1:-1:-1;;;;;10764:457:0:o;10891:323::-;11151:8;;11147:55;;11161:41;11176:4;11190;11197;11161:14;:41::i;11347:744::-;4578:8;:15;;-1:-1:-1;;4578:15:0;4589:4;4578:15;;;11462:4:::1;::::0;4578:8;;11435:32:::1;::::0;11442:7;;11451:15:::1;::::0;11462:4:::1;;3465:5;11451:15;:::i;11435:32::-;11418:49:::0;-1:-1:-1;11478:14:0::1;11495:16;11418:49:::0;11495:7;:16:::1;:::i;:::-;11605;::::0;;11619:1:::1;11605:16:::0;;;;;::::1;::::0;;11478:33;;-1:-1:-1;11547:21:0::1;::::0;11522:22:::1;::::0;11605:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11605:16:0::1;11581:40;;11650:4;11632;11637:1;11632:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11632:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11676:9:::1;::::0;:16:::1;::::0;;-1:-1:-1;;;11676:16:0;;;;:9;;;::::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;11632:7;;11676:16;;;;;:9;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11666:4;11671:1;11666:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11666:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;11735:9:::1;::::0;11703:52:::1;::::0;11720:4:::1;::::0;11735:9:::1;11747:7:::0;11703:8:::1;:52::i;:::-;11766:9;::::0;:185:::1;::::0;-1:-1:-1;;;11766:185:0;;-1:-1:-1;;;;;11766:9:0;;::::1;::::0;:60:::1;::::0;:185:::1;::::0;11841:6;;11766:9:::1;::::0;11878:4;;11905::::1;::::0;11925:15:::1;::::0;11766:185:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11962:15;12004:14;11980:21;:38;;;;:::i;:::-;11962:56:::0;-1:-1:-1;12035:10:0;;12031:52:::1;;12077:4;::::0;12047:36:::1;::::0;12053:6;;12061:21:::1;::::0;12068:7;;12077:4:::1;;12061:6;:21::i;:::-;12047:5;:36::i;:::-;-1:-1:-1::0;;4616:8:0;:16;;-1:-1:-1;;4616:16:0;;;-1:-1:-1;;;;11347:744:0:o;12099:103::-;12164:11;;12156:38;;-1:-1:-1;;;;;12164:11:0;;;;12156:38;;;;;12186:7;;12164:11;12156:38;12164:11;12156:38;12186:7;12164:11;12156:38;;;;;;;;;;;;;;;;;;;14:548:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2452:247::-;2511:6;2564:2;2552:9;2543:7;2539:23;2535:32;2532:52;;;2580:1;2577;2570:12;2532:52;2619:9;2606:23;2638:31;2663:5;2638:31;:::i;2704:388::-;2772:6;2780;2833:2;2821:9;2812:7;2808:23;2804:32;2801:52;;;2849:1;2846;2839:12;2801:52;2888:9;2875:23;2907:31;2932:5;2907:31;:::i;:::-;2957:5;-1:-1:-1;3014:2:1;2999:18;;2986:32;3027:33;2986:32;3027:33;:::i;:::-;3079:7;3069:17;;;2704:388;;;;;:::o;3097:163::-;3164:20;;3224:10;3213:22;;3203:33;;3193:61;;3250:1;3247;3240:12;3193:61;3097:163;;;:::o;3265:256::-;3331:6;3339;3392:2;3380:9;3371:7;3367:23;3363:32;3360:52;;;3408:1;3405;3398:12;3360:52;3431:28;3449:9;3431:28;:::i;:::-;3421:38;;3478:37;3511:2;3500:9;3496:18;3478:37;:::i;:::-;3468:47;;3265:256;;;;;:::o;3526:127::-;3587:10;3582:3;3578:20;3575:1;3568:31;3618:4;3615:1;3608:15;3642:4;3639:1;3632:15;3658:422;3747:1;3790:5;3747:1;3804:270;3825:7;3815:8;3812:21;3804:270;;;3884:4;3880:1;3876:6;3872:17;3866:4;3863:27;3860:53;;;3893:18;;:::i;:::-;3943:7;3933:8;3929:22;3926:55;;;3963:16;;;;3926:55;4042:22;;;;4002:15;;;;3804:270;;;3808:3;3658:422;;;;;:::o;4085:806::-;4134:5;4164:8;4154:80;;-1:-1:-1;4205:1:1;4219:5;;4154:80;4253:4;4243:76;;-1:-1:-1;4290:1:1;4304:5;;4243:76;4335:4;4353:1;4348:59;;;;4421:1;4416:130;;;;4328:218;;4348:59;4378:1;4369:10;;4392:5;;;4416:130;4453:3;4443:8;4440:17;4437:43;;;4460:18;;:::i;:::-;-1:-1:-1;;4516:1:1;4502:16;;4531:5;;4328:218;;4630:2;4620:8;4617:16;4611:3;4605:4;4602:13;4598:36;4592:2;4582:8;4579:16;4574:2;4568:4;4565:12;4561:35;4558:77;4555:159;;;-1:-1:-1;4667:19:1;;;4699:5;;4555:159;4746:34;4771:8;4765:4;4746:34;:::i;:::-;4816:6;4812:1;4808:6;4804:19;4795:7;4792:32;4789:58;;;4827:18;;:::i;:::-;4865:20;;4085:806;-1:-1:-1;;;4085:806:1:o;4896:140::-;4954:5;4983:47;5024:4;5014:8;5010:19;5004:4;4983:47;:::i;5041:168::-;5114:9;;;5145;;5162:15;;;5156:22;;5142:37;5132:71;;5183:18;;:::i;5214:251::-;5284:6;5337:2;5325:9;5316:7;5312:23;5308:32;5305:52;;;5353:1;5350;5343:12;5305:52;5385:9;5379:16;5404:31;5429:5;5404:31;:::i;9951:125::-;10016:9;;;10037:10;;;10034:36;;;10050:18;;:::i;11401:306::-;11489:6;11497;11505;11558:2;11546:9;11537:7;11533:23;11529:32;11526:52;;;11574:1;11571;11564:12;11526:52;11603:9;11597:16;11587:26;;11653:2;11642:9;11638:18;11632:25;11622:35;;11697:2;11686:9;11682:18;11676:25;11666:35;;11401:306;;;;;:::o;12119:217::-;12159:1;12185;12175:132;;12229:10;12224:3;12220:20;12217:1;12210:31;12264:4;12261:1;12254:15;12292:4;12289:1;12282:15;12175:132;-1:-1:-1;12321:9:1;;12119:217::o;12341:128::-;12408:9;;;12429:11;;;12426:37;;;12443:18;;:::i;12474:175::-;12542:10;12585;;;12573;;;12569:27;;12608:12;;;12605:38;;;12623:18;;:::i;:::-;12605:38;12474:175;;;;:::o;12786:127::-;12847:10;12842:3;12838:20;12835:1;12828:31;12878:4;12875:1;12868:15;12902:4;12899:1;12892:15;12918:980;13180:4;13228:3;13217:9;13213:19;13259:6;13248:9;13241:25;13285:2;13323:6;13318:2;13307:9;13303:18;13296:34;13366:3;13361:2;13350:9;13346:18;13339:31;13390:6;13425;13419:13;13456:6;13448;13441:22;13494:3;13483:9;13479:19;13472:26;;13533:2;13525:6;13521:15;13507:29;;13554:1;13564:195;13578:6;13575:1;13572:13;13564:195;;;13643:13;;-1:-1:-1;;;;;13639:39:1;13627:52;;13734:15;;;;13699:12;;;;13675:1;13593:9;13564:195;;;-1:-1:-1;;;;;;;13815:32:1;;;;13810:2;13795:18;;13788:60;-1:-1:-1;;;13879:3:1;13864:19;13857:35;13776:3;12918:980;-1:-1:-1;;;12918:980:1:o

Swarm Source

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