ETH Price: $2,679.64 (-0.77%)

Token

Crow (CROW)
 

Overview

Max Total Supply

100,000,000 CROW

Holders

10

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,900,000 CROW

Value
$0.00
0xb742f26ca4760a765ac2f095b01fedae765dda40
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:
Crow

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-21
*/

/**
    Crow
    Website: https://www.crowescrow.io/
    Twitter: https://x.com/crowescrow
    Telegram: https://t.me/crowescrow
**/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.21;
pragma experimental ABIEncoderV2;

abstract contract Ownable {
    address private _owner;

    constructor() {
        _owner = msg.sender;
    }

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

    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

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

library SafeERC20 {
    function safeTransfer(address token, address to, uint256 value) internal {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: INTERNAL TRANSFER_FAILED');
    }
}

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external;
}

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

contract Crow is Ownable {
    string private constant _name = unicode"Crow";
    string private constant _symbol = unicode"CROW";
    uint256 private constant _totalSupply = 100_000_000 * 1e18;

    uint256 public maxTransactionAmount = 2_000_000 * 1e18;
    uint256 public maxWallet = 2_000_000 * 1e18;
    uint256 public swapTokensAtAmount = (_totalSupply * 2) / 10000;

    address private revWallet = 0xa1EC2f095DCaCC7d2A19EaeBc8196DEd01f49231;
    address private marketingWallet = 0xe0d7a9c0B85D2608f2251fc11386a4352a8BE880;
    address private teamWallet = 0xAdA879D10C999b8F719917289F900BefF243d13a;
    address private constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    uint8 public buyTotalFees = 5;
    uint8 public sellTotalFees = 5;

    uint8 public revFee = 25;
    uint8 public marketingFee = 50;
    uint8 public teamFee = 25;

    bool private swapping;
    bool public limitsInEffect = true;
    bool private launched;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 teamETH, uint256 revETH, uint256 MarketingETH);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    IUniswapV2Router02 public constant uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public immutable uniswapV2Pair;

    constructor() {
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), WETH);
        automatedMarketMakerPairs[uniswapV2Pair] = true;

        address airdropWallet = 0xBC879213A0b39BCC4219A79851Bd84718F9369A4;

        setExcludedFromFees(owner(), true);
        setExcludedFromFees(address(this), true);
        setExcludedFromFees(address(0xdead), true);
        setExcludedFromFees(teamWallet, true);
        setExcludedFromFees(revWallet, true);
        setExcludedFromFees(marketingWallet, true);

        setExcludedFromMaxTransaction(owner(), true);
        setExcludedFromMaxTransaction(address(uniswapV2Router), true);
        setExcludedFromMaxTransaction(address(this), true);
        setExcludedFromMaxTransaction(address(0xdead), true);
        setExcludedFromMaxTransaction(address(uniswapV2Pair), true);
        setExcludedFromMaxTransaction(teamWallet, true);
        setExcludedFromMaxTransaction(revWallet, true);
        setExcludedFromMaxTransaction(marketingWallet, true);

        _balances[msg.sender] = 3_000_000 * 1e18;
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);
        _balances[marketingWallet] = 2_000_000 * 1e18;
        emit Transfer(address(0), marketingWallet, _balances[marketingWallet]);
        _balances[revWallet] = 15_000_000 * 1e18;
        emit Transfer(address(0), revWallet, _balances[revWallet]);
        _balances[airdropWallet] = 5_000_000 * 1e18;
        emit Transfer(address(0), airdropWallet, _balances[airdropWallet]);
        _balances[address(this)] = 75_000_000 * 1e18;
        emit Transfer(address(0), address(this), _balances[address(this)]);

        _approve(address(this), address(uniswapV2Router), type(uint256).max);
    }

    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 18;
    }

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

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

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

    function approve(address spender, uint256 amount) external returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
        uint256 currentAllowance = _allowances[sender][msg.sender];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, msg.sender, currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

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

        if (!launched && (from != owner() && from != address(this) && to != owner())) {
            revert("Trading not enabled");
        }

        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTx");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount,"Sell transfer amount exceeds the maxTx");
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;

        if (canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 senderBalance = _balances[from];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = (amount * sellTotalFees) / 100;
            } else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = (amount * buyTotalFees) / 100;
            }

            if (fees > 0) {
                unchecked {
                    amount = amount - fees;
                    _balances[from] -= fees;
                    _balances[address(this)] += fees;
                }
                emit Transfer(from, address(this), fees);
            }
        }
        unchecked {
            _balances[from] -= amount;
            _balances[to] += amount;
        }
        emit Transfer(from, to, amount);
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }

    function setDistributionFees(uint8 _RevFee, uint8 _MarketingFee, uint8 _teamFee) external onlyOwner {
        revFee = _RevFee;
        marketingFee = _MarketingFee;
        teamFee = _teamFee;
        require((revFee + marketingFee + teamFee) == 100, "Distribution have to be equal to 100%");
    }

    function setFees(uint8 _buyTotalFees, uint8 _sellTotalFees) external onlyOwner {
        require(_buyTotalFees <= 5, "Buy fees must be less than or equal to 5%");
        require(_sellTotalFees <= 5, "Sell fees must be less than or equal to 5%");
        buyTotalFees = _buyTotalFees;
        sellTotalFees = _sellTotalFees;
    }

    function setExcludedFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
    }

    function setExcludedFromMaxTransaction(address account, bool excluded) public onlyOwner {
        _isExcludedMaxTransactionAmount[account] = excluded;
    }

    function airdropWallets(address[] memory addresses, uint256[] memory amounts) external onlyOwner {
        require(!launched, "Already launched");
        for (uint256 i = 0; i < addresses.length; i++) {
            require(_balances[msg.sender] >= amounts[i], "ERC20: transfer amount exceeds balance");
            _balances[addresses[i]] += amounts[i];
            _balances[msg.sender] -= amounts[i];
            emit Transfer(msg.sender, addresses[i], amounts[i]);
        }
    }

    function openTrade() external onlyOwner {
        require(!launched, "Already launched");
        launched = true;
    }

    function unleashTheCrow() external payable onlyOwner {
        require(!launched, "Already launched");
        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            _balances[address(this)],
            0,
            0,
            teamWallet,
            block.timestamp
        );
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed");
        automatedMarketMakerPairs[pair] = value;
    }

    function setSwapAtAmount(uint256 newSwapAmount) external onlyOwner {
        require(newSwapAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% of the supply");
        require(newSwapAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% of the supply");
        swapTokensAtAmount = newSwapAmount;
    }

    function setMaxTxnAmount(uint256 newMaxTx) external onlyOwner {
        require(newMaxTx >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max transaction lower than 0.1%");
        maxTransactionAmount = newMaxTx * (10**18);
    }

    function setMaxWalletAmount(uint256 newMaxWallet) external onlyOwner {
        require(newMaxWallet >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max wallet lower than 0.1%");
        maxWallet = newMaxWallet * (10**18);
    }

    function updateRevWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        revWallet = newAddress;
    }

    function updateMarketingWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        marketingWallet = newAddress;
    }

    function updateTeamWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        teamWallet = newAddress;
    }

    function excludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function withdrawStuckToken(address token, address to) external onlyOwner {
        uint256 _contractBalance = IERC20(token).balanceOf(address(this));
        SafeERC20.safeTransfer(token, to, _contractBalance); // Use safeTransfer
    }

    function withdrawStuckETH(address addr) external onlyOwner {
        require(addr != address(0), "Invalid address");

        (bool success, ) = addr.call{value: address(this).balance}("");
        require(success, "Withdrawal failed");
    }

    function swapBack() private {
        uint256 swapThreshold = swapTokensAtAmount;
        bool success;

        if (balanceOf(address(this)) > swapTokensAtAmount * 20) {
            swapThreshold = swapTokensAtAmount * 20;
        }

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

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

        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            uint256 ethForRev = (ethBalance * revFee) / 100;
            uint256 ethForTeam = (ethBalance * teamFee) / 100;
            uint256 ethForMarketing = ethBalance - ethForRev - ethForTeam;

            (success, ) = address(teamWallet).call{value: ethForTeam}("");
            (success, ) = address(marketingWallet).call{value: ethForMarketing}("");
            (success, ) = address(revWallet).call{value: ethForRev}("");

            emit SwapAndLiquify(swapThreshold, ethForTeam, ethForRev, ethForMarketing);
        }
    }
}

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":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"teamETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"revETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"MarketingETH","type":"uint256"}],"name":"SwapAndLiquify","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":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropWallets","outputs":[],"stateMutability":"nonpayable","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":"buyTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_RevFee","type":"uint8"},{"internalType":"uint8","name":"_MarketingFee","type":"uint8"},{"internalType":"uint8","name":"_teamFee","type":"uint8"}],"name":"setDistributionFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"_sellTotalFees","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTx","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapAmount","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unleashTheCrow","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateRevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526a01a784379d99db420000006001556a01a784379d99db420000006002556127106a52b7d2dcc80cd2e400000060026200003f919062000735565b6200004b91906200075f565b600355600480546001600160a01b031990811673a1ec2f095dcacc7d2a19eaebc8196ded01f49231179091556005805490911673e0d7a9c0b85d2608f2251fc11386a4352a8be880179055600680547a01001932190505ada879d10c999b8f719917289f900beff243d13a600161ff0160c81b0319909116179055348015620000d2575f80fd5b505f80546001600160a01b031916331790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9163c45a01559160048083019260209291908290030181865afa15801562000133573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015991906200077f565b6040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260248201526001600160a01b03919091169063c9c65396906044016020604051808303815f875af1158015620001b9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001df91906200077f565b6001600160a01b031660808190525f908152600b60205260409020805460ff1916600117905573bc879213a0b39bcc4219a79851bd84718f9369a462000238620002305f546001600160a01b031690565b600162000504565b6200024530600162000504565b6200025461dead600162000504565b6006546200026d906001600160a01b0316600162000504565b60045462000286906001600160a01b0316600162000504565b6005546200029f906001600160a01b0316600162000504565b620002bd620002b55f546001600160a01b031690565b60016200058b565b620002de737a250d5630b4cf539739df2c5dacb4c659f2488d60016200058b565b620002eb3060016200058b565b620002fa61dead60016200058b565b6080516200030a9060016200058b565b60065462000323906001600160a01b031660016200058b565b6004546200033c906001600160a01b031660016200058b565b60055462000355906001600160a01b031660016200058b565b335f8181526007602090815260408083206a027b46536c66c8e30000009081905590519081525f80516020620031b7833981519152910160405180910390a3600580546001600160a01b039081165f908152600760205260408082206a01a784379d99db420000009055925490911680825282822054925190925f80516020620031b783398151915291620003ec91815260200190565b60405180910390a3600480546001600160a01b039081165f908152600760205260408082206a0c685fa11e01ec6f0000009055925490911680825282822054925190925f80516020620031b7833981519152916200044c91815260200190565b60405180910390a36001600160a01b0381165f8181526007602090815260408083206a0422ca8b0a00a4250000009081905590519081525f80516020620031b7833981519152910160405180910390a3305f8181526007602090815260408083206a3e09de2596099e2b0000009081905590519081525f80516020620031b7833981519152910160405180910390a3620004fd30737a250d5630b4cf539739df2c5dacb4c659f2488d5f196200060e565b50620007ae565b33620005175f546001600160a01b031690565b6001600160a01b031614620005615760405162461bcd60e51b815260206004820181905260248201525f805160206200319783398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b336200059e5f546001600160a01b031690565b6001600160a01b031614620005e45760405162461bcd60e51b815260206004820181905260248201525f8051602062003197833981519152604482015260640162000558565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6001600160a01b038316620006725760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000558565b6001600160a01b038216620006d55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000558565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b80820281158282048414176200075957634e487b7160e01b5f52601160045260245ffd5b92915050565b5f826200077a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000790575f80fd5b81516001600160a01b0381168114620007a7575f80fd5b9392505050565b6080516129c9620007ce5f395f81816103d101526110ec01526129c95ff3fe608060405260043610610236575f3560e01c806374010ece11610129578063bc205ad3116100a8578063dd62ed3e1161006d578063dd62ed3e146106f7578063e2f456051461073b578063e710794714610750578063f8b45b051461076f578063fb201b1d14610784575f80fd5b8063bc205ad314610664578063c8c8ebe414610683578063d201b01e14610698578063d7c94efd146106b7578063d85ba063146106d7575f80fd5b806395d89b41116100ee57806395d89b41146105bc5780639a7a23d6146105e8578063a9059cbb14610607578063aacebbe314610626578063adfa29e514610645575f80fd5b806374010ece14610517578063751039fc146105365780637cb332bb1461054a57806385ecafd7146105695780638da5cb5b146105a0575f80fd5b806349bd5a5e116101b557806366650dae1161017a57806366650dae146104705780636a486a8e1461048f5780636b67c4df146104af57806370a08231146104cf578063715018a614610503575f80fd5b806349bd5a5e146103c05780634a62bb65146103f35780634fcd244614610413578063590ffdce146104325780636402511e14610451575f80fd5b806323b872dd116101fb57806323b872dd1461034657806327a14fc214610365578063313ce5671461038657806334e11cfd146103995780633c090c46146103a1575f80fd5b806306fdde0314610241578063095ea7b31461027f5780631694505e146102ae57806318160ddd146102ed57806321d37e3914610314575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b5060408051808201909152600481526343726f7760e01b60208201525b60405161027691906123c5565b60405180910390f35b34801561028a575f80fd5b5061029e610299366004612412565b610798565b6040519015158152602001610276565b3480156102b9575f80fd5b506102d5737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610276565b3480156102f8575f80fd5b506a52b7d2dcc80cd2e40000005b604051908152602001610276565b34801561031f575f80fd5b5060065461033490600160b01b900460ff1681565b60405160ff9091168152602001610276565b348015610351575f80fd5b5061029e61036036600461243a565b6107ae565b348015610370575f80fd5b5061038461037f366004612473565b610862565b005b348015610391575f80fd5b506012610334565b610384610945565b3480156103ac575f80fd5b506103846103bb36600461249a565b610a5d565b3480156103cb575f80fd5b506102d57f000000000000000000000000000000000000000000000000000000000000000081565b3480156103fe575f80fd5b5060065461029e90600160d01b900460ff1681565b34801561041e575f80fd5b5061038461042d3660046124da565b610b60565b34801561043d575f80fd5b5061038461044c36600461251b565b610c99565b34801561045c575f80fd5b5061038461046b366004612473565b610cfb565b34801561047b575f80fd5b5061038461048a36600461251b565b610e58565b34801561049a575f80fd5b5060065461033490600160a81b900460ff1681565b3480156104ba575f80fd5b5060065461033490600160b81b900460ff1681565b3480156104da575f80fd5b506103066104e9366004612550565b6001600160a01b03165f9081526007602052604090205490565b34801561050e575f80fd5b50610384610eba565b348015610522575f80fd5b50610384610531366004612473565b610f03565b348015610541575f80fd5b50610384610feb565b348015610555575f80fd5b50610384610564366004612550565b611032565b348015610574575f80fd5b5061029e610583366004612550565b6001600160a01b03165f9081526009602052604090205460ff1690565b3480156105ab575f80fd5b505f546001600160a01b03166102d5565b3480156105c7575f80fd5b5060408051808201909152600481526343524f5760e01b6020820152610269565b3480156105f3575f80fd5b5061038461060236600461251b565b6110b2565b348015610612575f80fd5b5061029e610621366004612412565b611195565b348015610631575f80fd5b50610384610640366004612550565b6111a1565b348015610650575f80fd5b5061038461065f366004612550565b611221565b34801561066f575f80fd5b5061038461067e366004612570565b6112a1565b34801561068e575f80fd5b5061030660015481565b3480156106a3575f80fd5b506103846106b2366004612550565b61134e565b3480156106c2575f80fd5b5060065461033490600160c01b900460ff1681565b3480156106e2575f80fd5b5060065461033490600160a01b900460ff1681565b348015610702575f80fd5b50610306610711366004612570565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610746575f80fd5b5061030660035481565b34801561075b575f80fd5b5061038461076a366004612668565b611465565b34801561077a575f80fd5b5061030660025481565b34801561078f575f80fd5b5061038461167c565b5f6107a43384846116f3565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19811461084c578281101561083f5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61084c85338584036116f3565b610857858585611816565b506001949350505050565b336108745f546001600160a01b031690565b6001600160a01b03161461089a5760405162461bcd60e51b815260040161083690612722565b670de0b6b3a76400006103e86108bc6a52b7d2dcc80cd2e4000000600161276b565b6108c69190612782565b6108d09190612782565b81101561092d5760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b6064820152608401610836565b61093f81670de0b6b3a764000061276b565b60025550565b336109575f546001600160a01b031690565b6001600160a01b03161461097d5760405162461bcd60e51b815260040161083690612722565b600654600160d81b900460ff16156109a75760405162461bcd60e51b8152600401610836906127a1565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af1158015610a33573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a5891906127cb565b505050565b33610a6f5f546001600160a01b031690565b6001600160a01b031614610a955760405162461bcd60e51b815260040161083690612722565b6006805461ffff60b01b1916600160b01b60ff868116820260ff60b81b191692909217600160b81b86841681029190911760ff60c01b1916600160c01b868516810291909117948590558404831693610af6939181048216929004166127f6565b610b0091906127f6565b60ff16606414610a585760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b6064820152608401610836565b33610b725f546001600160a01b031690565b6001600160a01b031614610b985760405162461bcd60e51b815260040161083690612722565b60058260ff161115610bfe5760405162461bcd60e51b815260206004820152602960248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526875616c20746f20352560b81b6064820152608401610836565b60058160ff161115610c655760405162461bcd60e51b815260206004820152602a60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f7220656044820152697175616c20746f20352560b01b6064820152608401610836565b6006805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610cab5f546001600160a01b031690565b6001600160a01b031614610cd15760405162461bcd60e51b815260040161083690612722565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610d0d5f546001600160a01b031690565b6001600160a01b031614610d335760405162461bcd60e51b815260040161083690612722565b620186a0610d4d6a52b7d2dcc80cd2e4000000600161276b565b610d579190612782565b811015610dc45760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b6064820152608401610836565b6103e8610ddd6a52b7d2dcc80cd2e4000000600561276b565b610de79190612782565b811115610e535760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b6064820152608401610836565b600355565b33610e6a5f546001600160a01b031690565b6001600160a01b031614610e905760405162461bcd60e51b815260040161083690612722565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610ecc5f546001600160a01b031690565b6001600160a01b031614610ef25760405162461bcd60e51b815260040161083690612722565b5f80546001600160a01b0319169055565b33610f155f546001600160a01b031690565b6001600160a01b031614610f3b5760405162461bcd60e51b815260040161083690612722565b670de0b6b3a76400006103e8610f5d6a52b7d2dcc80cd2e4000000600161276b565b610f679190612782565b610f719190612782565b811015610fd35760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b6064820152608401610836565b610fe581670de0b6b3a764000061276b565b60015550565b33610ffd5f546001600160a01b031690565b6001600160a01b0316146110235760405162461bcd60e51b815260040161083690612722565b6006805460ff60d01b19169055565b336110445f546001600160a01b031690565b6001600160a01b03161461106a5760405162461bcd60e51b815260040161083690612722565b6001600160a01b0381166110905760405162461bcd60e51b81526004016108369061280f565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b336110c45f546001600160a01b031690565b6001600160a01b0316146110ea5760405162461bcd60e51b815260040161083690612722565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361116b5760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f7665640000000000006044820152606401610836565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f6107a4338484611816565b336111b35f546001600160a01b031690565b6001600160a01b0316146111d95760405162461bcd60e51b815260040161083690612722565b6001600160a01b0381166111ff5760405162461bcd60e51b81526004016108369061280f565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b336112335f546001600160a01b031690565b6001600160a01b0316146112595760405162461bcd60e51b815260040161083690612722565b6001600160a01b03811661127f5760405162461bcd60e51b81526004016108369061280f565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336112b35f546001600160a01b031690565b6001600160a01b0316146112d95760405162461bcd60e51b815260040161083690612722565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa15801561131d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611341919061283f565b9050610a58838383611f8d565b336113605f546001600160a01b031690565b6001600160a01b0316146113865760405162461bcd60e51b815260040161083690612722565b6001600160a01b0381166113ce5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610836565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f8114611417576040519150601f19603f3d011682016040523d82523d5f602084013e61141c565b606091505b50509050806114615760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b6044820152606401610836565b5050565b336114775f546001600160a01b031690565b6001600160a01b03161461149d5760405162461bcd60e51b815260040161083690612722565b600654600160d81b900460ff16156114c75760405162461bcd60e51b8152600401610836906127a1565b5f5b8251811015610a58578181815181106114e4576114e4612856565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f2054101561152e5760405162461bcd60e51b81526004016108369061286a565b81818151811061154057611540612856565b602002602001015160075f85848151811061155d5761155d612856565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f82825461159291906128b0565b925050819055508181815181106115ab576115ab612856565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f8282546115e491906128c3565b925050819055508281815181106115fd576115fd612856565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84848151811061164b5761164b612856565b602002602001015160405161166291815260200190565b60405180910390a380611674816128d6565b9150506114c9565b3361168e5f546001600160a01b031690565b6001600160a01b0316146116b45760405162461bcd60e51b815260040161083690612722565b600654600160d81b900460ff16156116de5760405162461bcd60e51b8152600401610836906127a1565b6006805460ff60d81b1916600160d81b179055565b6001600160a01b0383166117555760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610836565b6001600160a01b0382166117b65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610836565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661187a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610836565b6001600160a01b0382166118dc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610836565b5f811161193d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610836565b600654600160d81b900460ff1615801561199157505f546001600160a01b0384811691161480159061197857506001600160a01b0383163014155b801561199157505f546001600160a01b03838116911614155b156119d45760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610836565b600654600160d01b900460ff1615611c95575f546001600160a01b03848116911614801590611a1057505f546001600160a01b03838116911614155b8015611a2457506001600160a01b03821615155b8015611a3b57506001600160a01b03821661dead14155b8015611a515750600654600160c81b900460ff16155b15611c95576001600160a01b0383165f908152600b602052604090205460ff168015611a9557506001600160a01b0382165f908152600a602052604090205460ff16155b15611b6857600154811115611afa5760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b6064820152608401610836565b6002546001600160a01b0383165f90815260076020526040902054611b1f90836128b0565b1115611b635760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610836565b611c95565b6001600160a01b0382165f908152600b602052604090205460ff168015611ba757506001600160a01b0383165f908152600a602052604090205460ff16155b15611c0d57600154811115611b635760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b6064820152608401610836565b6001600160a01b0382165f908152600a602052604090205460ff16611c95576002546001600160a01b0383165f90815260076020526040902054611c5190836128b0565b1115611c955760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610836565b600354305f90815260076020526040902054108015908190611cc15750600654600160c81b900460ff16155b8015611ce557506001600160a01b0384165f908152600b602052604090205460ff16155b8015611d0957506001600160a01b0384165f9081526009602052604090205460ff16155b8015611d2d57506001600160a01b0383165f9081526009602052604090205460ff16155b15611d5b576006805460ff60c81b1916600160c81b179055611d4d6120b4565b6006805460ff60c81b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160c81b909204821615911680611da757506001600160a01b0384165f9081526009602052604090205460ff165b15611daf57505f5b6001600160a01b0385165f9081526007602052604090205483811015611de75760405162461bcd60e51b81526004016108369061286a565b5f8215611f1b576001600160a01b0386165f908152600b602052604090205460ff168015611e205750600654600160a81b900460ff1615155b15611e5057600654606490611e3f90600160a81b900460ff168761276b565b611e499190612782565b9050611eae565b6001600160a01b0387165f908152600b602052604090205460ff168015611e825750600654600160a01b900460ff1615155b15611eae57600654606490611ea190600160a01b900460ff168761276b565b611eab9190612782565b90505b8015611f1b576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f7c9089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f92839290871691611fe891906128ee565b5f604051808303815f865af19150503d805f8114612021576040519150601f19603f3d011682016040523d82523d5f602084013e612026565b606091505b50915091508180156120505750805115806120505750808060200190518101906120509190612909565b6120ad5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346456044820152671497d1905253115160c21b6064820152608401610836565b5050505050565b6003545f6120c382601461276b565b305f9081526007602052604090205411156120e9576003546120e690601461276b565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061211c5761211c612856565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061216457612164612856565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906121bb9086905f90869030904290600401612924565b5f604051808303815f87803b1580156121d2575f80fd5b505af11580156121e4573d5f803e3d5ffd5b50479250508115905061239d576006545f9060649061220d90600160b01b900460ff168461276b565b6122179190612782565b6006549091505f9060649061223690600160c01b900460ff168561276b565b6122409190612782565b90505f8161224e84866128c3565b61225891906128c3565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146122a3576040519150601f19603f3d011682016040523d82523d5f602084013e6122a8565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f81146122f5576040519150601f19603f3d011682016040523d82523d5f602084013e6122fa565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f8114612347576040519150601f19603f3d011682016040523d82523d5f602084013e61234c565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f5b838110156123bd5781810151838201526020016123a5565b50505f910152565b602081525f82518060208401526123e38160408501602087016123a3565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461240d575f80fd5b919050565b5f8060408385031215612423575f80fd5b61242c836123f7565b946020939093013593505050565b5f805f6060848603121561244c575f80fd5b612455846123f7565b9250612463602085016123f7565b9150604084013590509250925092565b5f60208284031215612483575f80fd5b5035919050565b803560ff8116811461240d575f80fd5b5f805f606084860312156124ac575f80fd5b6124b58461248a565b92506124c36020850161248a565b91506124d16040850161248a565b90509250925092565b5f80604083850312156124eb575f80fd5b6124f48361248a565b91506125026020840161248a565b90509250929050565b8015158114612518575f80fd5b50565b5f806040838503121561252c575f80fd5b612535836123f7565b915060208301356125458161250b565b809150509250929050565b5f60208284031215612560575f80fd5b612569826123f7565b9392505050565b5f8060408385031215612581575f80fd5b61258a836123f7565b9150612502602084016123f7565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156125d5576125d5612598565b604052919050565b5f67ffffffffffffffff8211156125f6576125f6612598565b5060051b60200190565b5f82601f83011261260f575f80fd5b8135602061262461261f836125dd565b6125ac565b82815260059290921b84018101918181019086841115612642575f80fd5b8286015b8481101561265d5780358352918301918301612646565b509695505050505050565b5f8060408385031215612679575f80fd5b823567ffffffffffffffff80821115612690575f80fd5b818501915085601f8301126126a3575f80fd5b813560206126b361261f836125dd565b82815260059290921b840181019181810190898411156126d1575f80fd5b948201945b838610156126f6576126e7866123f7565b825294820194908201906126d6565b9650508601359250508082111561270b575f80fd5b5061271885828601612600565b9150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176107a8576107a8612757565b5f8261279c57634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526010908201526f105b1c9958591e481b185d5b98da195960821b604082015260600190565b5f805f606084860312156127dd575f80fd5b8351925060208401519150604084015190509250925092565b60ff81811683821601908111156107a8576107a8612757565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b5f6020828403121561284f575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808201808211156107a8576107a8612757565b818103818111156107a8576107a8612757565b5f600182016128e7576128e7612757565b5060010190565b5f82516128ff8184602087016123a3565b9190910192915050565b5f60208284031215612919575f80fd5b81516125698161250b565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156129725784516001600160a01b03168352938301939183019160010161294d565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f7b81f3a24d36ae81305ff6244faf647e1b9a1c8cb019e139814d3000bea073164736f6c634300081500334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x608060405260043610610236575f3560e01c806374010ece11610129578063bc205ad3116100a8578063dd62ed3e1161006d578063dd62ed3e146106f7578063e2f456051461073b578063e710794714610750578063f8b45b051461076f578063fb201b1d14610784575f80fd5b8063bc205ad314610664578063c8c8ebe414610683578063d201b01e14610698578063d7c94efd146106b7578063d85ba063146106d7575f80fd5b806395d89b41116100ee57806395d89b41146105bc5780639a7a23d6146105e8578063a9059cbb14610607578063aacebbe314610626578063adfa29e514610645575f80fd5b806374010ece14610517578063751039fc146105365780637cb332bb1461054a57806385ecafd7146105695780638da5cb5b146105a0575f80fd5b806349bd5a5e116101b557806366650dae1161017a57806366650dae146104705780636a486a8e1461048f5780636b67c4df146104af57806370a08231146104cf578063715018a614610503575f80fd5b806349bd5a5e146103c05780634a62bb65146103f35780634fcd244614610413578063590ffdce146104325780636402511e14610451575f80fd5b806323b872dd116101fb57806323b872dd1461034657806327a14fc214610365578063313ce5671461038657806334e11cfd146103995780633c090c46146103a1575f80fd5b806306fdde0314610241578063095ea7b31461027f5780631694505e146102ae57806318160ddd146102ed57806321d37e3914610314575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b5060408051808201909152600481526343726f7760e01b60208201525b60405161027691906123c5565b60405180910390f35b34801561028a575f80fd5b5061029e610299366004612412565b610798565b6040519015158152602001610276565b3480156102b9575f80fd5b506102d5737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610276565b3480156102f8575f80fd5b506a52b7d2dcc80cd2e40000005b604051908152602001610276565b34801561031f575f80fd5b5060065461033490600160b01b900460ff1681565b60405160ff9091168152602001610276565b348015610351575f80fd5b5061029e61036036600461243a565b6107ae565b348015610370575f80fd5b5061038461037f366004612473565b610862565b005b348015610391575f80fd5b506012610334565b610384610945565b3480156103ac575f80fd5b506103846103bb36600461249a565b610a5d565b3480156103cb575f80fd5b506102d57f000000000000000000000000a55b3fb27bdb69ba9087b6dc960abf7ffc64cd9f81565b3480156103fe575f80fd5b5060065461029e90600160d01b900460ff1681565b34801561041e575f80fd5b5061038461042d3660046124da565b610b60565b34801561043d575f80fd5b5061038461044c36600461251b565b610c99565b34801561045c575f80fd5b5061038461046b366004612473565b610cfb565b34801561047b575f80fd5b5061038461048a36600461251b565b610e58565b34801561049a575f80fd5b5060065461033490600160a81b900460ff1681565b3480156104ba575f80fd5b5060065461033490600160b81b900460ff1681565b3480156104da575f80fd5b506103066104e9366004612550565b6001600160a01b03165f9081526007602052604090205490565b34801561050e575f80fd5b50610384610eba565b348015610522575f80fd5b50610384610531366004612473565b610f03565b348015610541575f80fd5b50610384610feb565b348015610555575f80fd5b50610384610564366004612550565b611032565b348015610574575f80fd5b5061029e610583366004612550565b6001600160a01b03165f9081526009602052604090205460ff1690565b3480156105ab575f80fd5b505f546001600160a01b03166102d5565b3480156105c7575f80fd5b5060408051808201909152600481526343524f5760e01b6020820152610269565b3480156105f3575f80fd5b5061038461060236600461251b565b6110b2565b348015610612575f80fd5b5061029e610621366004612412565b611195565b348015610631575f80fd5b50610384610640366004612550565b6111a1565b348015610650575f80fd5b5061038461065f366004612550565b611221565b34801561066f575f80fd5b5061038461067e366004612570565b6112a1565b34801561068e575f80fd5b5061030660015481565b3480156106a3575f80fd5b506103846106b2366004612550565b61134e565b3480156106c2575f80fd5b5060065461033490600160c01b900460ff1681565b3480156106e2575f80fd5b5060065461033490600160a01b900460ff1681565b348015610702575f80fd5b50610306610711366004612570565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610746575f80fd5b5061030660035481565b34801561075b575f80fd5b5061038461076a366004612668565b611465565b34801561077a575f80fd5b5061030660025481565b34801561078f575f80fd5b5061038461167c565b5f6107a43384846116f3565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19811461084c578281101561083f5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61084c85338584036116f3565b610857858585611816565b506001949350505050565b336108745f546001600160a01b031690565b6001600160a01b03161461089a5760405162461bcd60e51b815260040161083690612722565b670de0b6b3a76400006103e86108bc6a52b7d2dcc80cd2e4000000600161276b565b6108c69190612782565b6108d09190612782565b81101561092d5760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b6064820152608401610836565b61093f81670de0b6b3a764000061276b565b60025550565b336109575f546001600160a01b031690565b6001600160a01b03161461097d5760405162461bcd60e51b815260040161083690612722565b600654600160d81b900460ff16156109a75760405162461bcd60e51b8152600401610836906127a1565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af1158015610a33573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a5891906127cb565b505050565b33610a6f5f546001600160a01b031690565b6001600160a01b031614610a955760405162461bcd60e51b815260040161083690612722565b6006805461ffff60b01b1916600160b01b60ff868116820260ff60b81b191692909217600160b81b86841681029190911760ff60c01b1916600160c01b868516810291909117948590558404831693610af6939181048216929004166127f6565b610b0091906127f6565b60ff16606414610a585760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b6064820152608401610836565b33610b725f546001600160a01b031690565b6001600160a01b031614610b985760405162461bcd60e51b815260040161083690612722565b60058260ff161115610bfe5760405162461bcd60e51b815260206004820152602960248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526875616c20746f20352560b81b6064820152608401610836565b60058160ff161115610c655760405162461bcd60e51b815260206004820152602a60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f7220656044820152697175616c20746f20352560b01b6064820152608401610836565b6006805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610cab5f546001600160a01b031690565b6001600160a01b031614610cd15760405162461bcd60e51b815260040161083690612722565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610d0d5f546001600160a01b031690565b6001600160a01b031614610d335760405162461bcd60e51b815260040161083690612722565b620186a0610d4d6a52b7d2dcc80cd2e4000000600161276b565b610d579190612782565b811015610dc45760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b6064820152608401610836565b6103e8610ddd6a52b7d2dcc80cd2e4000000600561276b565b610de79190612782565b811115610e535760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b6064820152608401610836565b600355565b33610e6a5f546001600160a01b031690565b6001600160a01b031614610e905760405162461bcd60e51b815260040161083690612722565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610ecc5f546001600160a01b031690565b6001600160a01b031614610ef25760405162461bcd60e51b815260040161083690612722565b5f80546001600160a01b0319169055565b33610f155f546001600160a01b031690565b6001600160a01b031614610f3b5760405162461bcd60e51b815260040161083690612722565b670de0b6b3a76400006103e8610f5d6a52b7d2dcc80cd2e4000000600161276b565b610f679190612782565b610f719190612782565b811015610fd35760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b6064820152608401610836565b610fe581670de0b6b3a764000061276b565b60015550565b33610ffd5f546001600160a01b031690565b6001600160a01b0316146110235760405162461bcd60e51b815260040161083690612722565b6006805460ff60d01b19169055565b336110445f546001600160a01b031690565b6001600160a01b03161461106a5760405162461bcd60e51b815260040161083690612722565b6001600160a01b0381166110905760405162461bcd60e51b81526004016108369061280f565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b336110c45f546001600160a01b031690565b6001600160a01b0316146110ea5760405162461bcd60e51b815260040161083690612722565b7f000000000000000000000000a55b3fb27bdb69ba9087b6dc960abf7ffc64cd9f6001600160a01b0316826001600160a01b03160361116b5760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f7665640000000000006044820152606401610836565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f6107a4338484611816565b336111b35f546001600160a01b031690565b6001600160a01b0316146111d95760405162461bcd60e51b815260040161083690612722565b6001600160a01b0381166111ff5760405162461bcd60e51b81526004016108369061280f565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b336112335f546001600160a01b031690565b6001600160a01b0316146112595760405162461bcd60e51b815260040161083690612722565b6001600160a01b03811661127f5760405162461bcd60e51b81526004016108369061280f565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336112b35f546001600160a01b031690565b6001600160a01b0316146112d95760405162461bcd60e51b815260040161083690612722565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa15801561131d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611341919061283f565b9050610a58838383611f8d565b336113605f546001600160a01b031690565b6001600160a01b0316146113865760405162461bcd60e51b815260040161083690612722565b6001600160a01b0381166113ce5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610836565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f8114611417576040519150601f19603f3d011682016040523d82523d5f602084013e61141c565b606091505b50509050806114615760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b6044820152606401610836565b5050565b336114775f546001600160a01b031690565b6001600160a01b03161461149d5760405162461bcd60e51b815260040161083690612722565b600654600160d81b900460ff16156114c75760405162461bcd60e51b8152600401610836906127a1565b5f5b8251811015610a58578181815181106114e4576114e4612856565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f2054101561152e5760405162461bcd60e51b81526004016108369061286a565b81818151811061154057611540612856565b602002602001015160075f85848151811061155d5761155d612856565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f82825461159291906128b0565b925050819055508181815181106115ab576115ab612856565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f8282546115e491906128c3565b925050819055508281815181106115fd576115fd612856565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84848151811061164b5761164b612856565b602002602001015160405161166291815260200190565b60405180910390a380611674816128d6565b9150506114c9565b3361168e5f546001600160a01b031690565b6001600160a01b0316146116b45760405162461bcd60e51b815260040161083690612722565b600654600160d81b900460ff16156116de5760405162461bcd60e51b8152600401610836906127a1565b6006805460ff60d81b1916600160d81b179055565b6001600160a01b0383166117555760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610836565b6001600160a01b0382166117b65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610836565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661187a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610836565b6001600160a01b0382166118dc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610836565b5f811161193d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610836565b600654600160d81b900460ff1615801561199157505f546001600160a01b0384811691161480159061197857506001600160a01b0383163014155b801561199157505f546001600160a01b03838116911614155b156119d45760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610836565b600654600160d01b900460ff1615611c95575f546001600160a01b03848116911614801590611a1057505f546001600160a01b03838116911614155b8015611a2457506001600160a01b03821615155b8015611a3b57506001600160a01b03821661dead14155b8015611a515750600654600160c81b900460ff16155b15611c95576001600160a01b0383165f908152600b602052604090205460ff168015611a9557506001600160a01b0382165f908152600a602052604090205460ff16155b15611b6857600154811115611afa5760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b6064820152608401610836565b6002546001600160a01b0383165f90815260076020526040902054611b1f90836128b0565b1115611b635760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610836565b611c95565b6001600160a01b0382165f908152600b602052604090205460ff168015611ba757506001600160a01b0383165f908152600a602052604090205460ff16155b15611c0d57600154811115611b635760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b6064820152608401610836565b6001600160a01b0382165f908152600a602052604090205460ff16611c95576002546001600160a01b0383165f90815260076020526040902054611c5190836128b0565b1115611c955760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610836565b600354305f90815260076020526040902054108015908190611cc15750600654600160c81b900460ff16155b8015611ce557506001600160a01b0384165f908152600b602052604090205460ff16155b8015611d0957506001600160a01b0384165f9081526009602052604090205460ff16155b8015611d2d57506001600160a01b0383165f9081526009602052604090205460ff16155b15611d5b576006805460ff60c81b1916600160c81b179055611d4d6120b4565b6006805460ff60c81b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160c81b909204821615911680611da757506001600160a01b0384165f9081526009602052604090205460ff165b15611daf57505f5b6001600160a01b0385165f9081526007602052604090205483811015611de75760405162461bcd60e51b81526004016108369061286a565b5f8215611f1b576001600160a01b0386165f908152600b602052604090205460ff168015611e205750600654600160a81b900460ff1615155b15611e5057600654606490611e3f90600160a81b900460ff168761276b565b611e499190612782565b9050611eae565b6001600160a01b0387165f908152600b602052604090205460ff168015611e825750600654600160a01b900460ff1615155b15611eae57600654606490611ea190600160a01b900460ff168761276b565b611eab9190612782565b90505b8015611f1b576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f7c9089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f92839290871691611fe891906128ee565b5f604051808303815f865af19150503d805f8114612021576040519150601f19603f3d011682016040523d82523d5f602084013e612026565b606091505b50915091508180156120505750805115806120505750808060200190518101906120509190612909565b6120ad5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346456044820152671497d1905253115160c21b6064820152608401610836565b5050505050565b6003545f6120c382601461276b565b305f9081526007602052604090205411156120e9576003546120e690601461276b565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061211c5761211c612856565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061216457612164612856565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906121bb9086905f90869030904290600401612924565b5f604051808303815f87803b1580156121d2575f80fd5b505af11580156121e4573d5f803e3d5ffd5b50479250508115905061239d576006545f9060649061220d90600160b01b900460ff168461276b565b6122179190612782565b6006549091505f9060649061223690600160c01b900460ff168561276b565b6122409190612782565b90505f8161224e84866128c3565b61225891906128c3565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146122a3576040519150601f19603f3d011682016040523d82523d5f602084013e6122a8565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f81146122f5576040519150601f19603f3d011682016040523d82523d5f602084013e6122fa565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f8114612347576040519150601f19603f3d011682016040523d82523d5f602084013e61234c565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f5b838110156123bd5781810151838201526020016123a5565b50505f910152565b602081525f82518060208401526123e38160408501602087016123a3565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461240d575f80fd5b919050565b5f8060408385031215612423575f80fd5b61242c836123f7565b946020939093013593505050565b5f805f6060848603121561244c575f80fd5b612455846123f7565b9250612463602085016123f7565b9150604084013590509250925092565b5f60208284031215612483575f80fd5b5035919050565b803560ff8116811461240d575f80fd5b5f805f606084860312156124ac575f80fd5b6124b58461248a565b92506124c36020850161248a565b91506124d16040850161248a565b90509250925092565b5f80604083850312156124eb575f80fd5b6124f48361248a565b91506125026020840161248a565b90509250929050565b8015158114612518575f80fd5b50565b5f806040838503121561252c575f80fd5b612535836123f7565b915060208301356125458161250b565b809150509250929050565b5f60208284031215612560575f80fd5b612569826123f7565b9392505050565b5f8060408385031215612581575f80fd5b61258a836123f7565b9150612502602084016123f7565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156125d5576125d5612598565b604052919050565b5f67ffffffffffffffff8211156125f6576125f6612598565b5060051b60200190565b5f82601f83011261260f575f80fd5b8135602061262461261f836125dd565b6125ac565b82815260059290921b84018101918181019086841115612642575f80fd5b8286015b8481101561265d5780358352918301918301612646565b509695505050505050565b5f8060408385031215612679575f80fd5b823567ffffffffffffffff80821115612690575f80fd5b818501915085601f8301126126a3575f80fd5b813560206126b361261f836125dd565b82815260059290921b840181019181810190898411156126d1575f80fd5b948201945b838610156126f6576126e7866123f7565b825294820194908201906126d6565b9650508601359250508082111561270b575f80fd5b5061271885828601612600565b9150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176107a8576107a8612757565b5f8261279c57634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526010908201526f105b1c9958591e481b185d5b98da195960821b604082015260600190565b5f805f606084860312156127dd575f80fd5b8351925060208401519150604084015190509250925092565b60ff81811683821601908111156107a8576107a8612757565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b5f6020828403121561284f575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808201808211156107a8576107a8612757565b818103818111156107a8576107a8612757565b5f600182016128e7576128e7612757565b5060010190565b5f82516128ff8184602087016123a3565b9190910192915050565b5f60208284031215612919575f80fd5b81516125698161250b565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156129725784516001600160a01b03168352938301939183019160010161294d565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f7b81f3a24d36ae81305ff6244faf647e1b9a1c8cb019e139814d3000bea073164736f6c63430008150033

Deployed Bytecode Sourcemap

1884:13514:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5460:83;;;;;;;;;;-1:-1:-1;5530:5:0;;;;;;;;;;;;-1:-1:-1;;;5530:5:0;;;;5460:83;;;;;;;:::i;:::-;;;;;;;;6089:152;;;;;;;;;;-1:-1:-1;6089:152:0;;;;;:::i;:::-;;:::i;:::-;;;1272:14:1;;1265:22;1247:41;;1235:2;1220:18;6089:152:0;1107:187:1;3459:115:0;;;;;;;;;;;;3531:42;3459:115;;;;;-1:-1:-1;;;;;1489:32:1;;;1471:51;;1459:2;1444:18;3459:115:0;1299:229:1;5730:91:0;;;;;;;;;;-1:-1:-1;2062:18:0;5730:91;;;1679:25:1;;;1667:2;1652:18;5730:91:0;1533:177:1;2667:24:0;;;;;;;;;;-1:-1:-1;2667:24:0;;;;-1:-1:-1;;;2667:24:0;;;;;;;;;1887:4:1;1875:17;;;1857:36;;1845:2;1830:18;2667:24:0;1715:184:1;6760:520:0;;;;;;;;;;-1:-1:-1;6760:520:0;;;;;:::i;:::-;;:::i;12834:235::-;;;;;;;;;;-1:-1:-1;12834:235:0;;;;;:::i;:::-;;:::i;:::-;;5646:76;;;;;;;;;;-1:-1:-1;5712:2:0;5646:76;;11659:335;;;:::i;10063:304::-;;;;;;;;;;-1:-1:-1;10063:304:0;;;;;:::i;:::-;;:::i;3581:38::-;;;;;;;;;;;;;;;2797:33;;;;;;;;;;-1:-1:-1;2797:33:0;;;;-1:-1:-1;;;2797:33:0;;;;;;10375:335;;;;;;;;;;-1:-1:-1;10375:335:0;;;;;:::i;:::-;;:::i;10718:136::-;;;;;;;;;;-1:-1:-1;10718:136:0;;;;;:::i;:::-;;:::i;12221:361::-;;;;;;;;;;-1:-1:-1;12221:361:0;;;;;:::i;:::-;;:::i;10862:158::-;;;;;;;;;;-1:-1:-1;10862:158:0;;;;;:::i;:::-;;:::i;2628:30::-;;;;;;;;;;-1:-1:-1;2628:30:0;;;;-1:-1:-1;;;2628:30:0;;;;;;2698;;;;;;;;;;-1:-1:-1;2698:30:0;;;;-1:-1:-1;;;2698:30:0;;;;;;5829:110;;;;;;;;;;-1:-1:-1;5829:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;5913:18:0;5886:7;5913:18;;;:9;:18;;;;;;;5829:110;581:92;;;;;;;;;;;;;:::i;12590:236::-;;;;;;;;;;-1:-1:-1;12590:236:0;;;;;:::i;:::-;;:::i;9971:84::-;;;;;;;;;;;;;:::i;13455:177::-;;;;;;;;;;-1:-1:-1;13455:177:0;;;;;:::i;:::-;;:::i;13640:123::-;;;;;;;;;;-1:-1:-1;13640:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;13727:28:0;13703:4;13727:28;;;:19;:28;;;;;;;;;13640:123;360:87;;;;;;;;;;-1:-1:-1;406:7:0;433:6;-1:-1:-1;;;;;433:6:0;360:87;;5551;;;;;;;;;;-1:-1:-1;5623:7:0;;;;;;;;;;;;-1:-1:-1;;;5623:7:0;;;;5551:87;;12002:211;;;;;;;;;;-1:-1:-1;12002:211:0;;;;;:::i;:::-;;:::i;6594:158::-;;;;;;;;;;-1:-1:-1;6594:158:0;;;;;:::i;:::-;;:::i;13260:187::-;;;;;;;;;;-1:-1:-1;13260:187:0;;;;;:::i;:::-;;:::i;13077:175::-;;;;;;;;;;-1:-1:-1;13077:175:0;;;;;:::i;:::-;;:::i;13771:240::-;;;;;;;;;;-1:-1:-1;13771:240:0;;;;;:::i;:::-;;:::i;2089:54::-;;;;;;;;;;;;;;;;14019:247;;;;;;;;;;-1:-1:-1;14019:247:0;;;;;:::i;:::-;;:::i;2735:25::-;;;;;;;;;;-1:-1:-1;2735:25:0;;;;-1:-1:-1;;;2735:25:0;;;;;;2592:29;;;;;;;;;;-1:-1:-1;2592:29:0;;;;-1:-1:-1;;;2592:29:0;;;;;;5947:134;;;;;;;;;;-1:-1:-1;5947:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;6046:18:0;;;6019:7;6046:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5947:134;2200:62;;;;;;;;;;;;;;;;11028:492;;;;;;;;;;-1:-1:-1;11028:492:0;;;;;:::i;:::-;;:::i;2150:43::-;;;;;;;;;;;;;;;;11528:123;;;;;;;;;;;;;:::i;6089:152::-;6157:4;6174:37;6183:10;6195:7;6204:6;6174:8;:37::i;:::-;-1:-1:-1;6229:4:0;6089:152;;;;;:::o;6760:520::-;-1:-1:-1;;;;;6895:19:0;;6851:4;6895:19;;;:11;:19;;;;;;;;6915:10;6895:31;;;;;;;;-1:-1:-1;;6941:37:0;;6937:263;;7023:6;7003:16;:26;;6995:79;;;;-1:-1:-1;;;6995:79:0;;6894:2:1;6995:79:0;;;6876:21:1;6933:2;6913:18;;;6906:30;6972:34;6952:18;;;6945:62;-1:-1:-1;;;7023:18:1;;;7016:38;7071:19;;6995:79:0;;;;;;;;;7118:55;7127:6;7135:10;7166:6;7147:16;:25;7118:8;:55::i;:::-;7212:36;7222:6;7230:9;7241:6;7212:9;:36::i;:::-;-1:-1:-1;7268:4:0;;6760:520;-1:-1:-1;;;;6760:520:0:o;12834:235::-;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;12969:4:::1;12961;12940:17;2062:18:::0;12956:1:::1;12940:17;:::i;:::-;12939:26;;;;:::i;:::-;12938:35;;;;:::i;:::-;12922:12;:51;;12914:101;;;::::0;-1:-1:-1;;;12914:101:0;;8191:2:1;12914:101:0::1;::::0;::::1;8173:21:1::0;8230:2;8210:18;;;8203:30;8269:34;8249:18;;;8242:62;-1:-1:-1;;;8320:18:1;;;8313:35;8365:19;;12914:101:0::1;7989:401:1::0;12914:101:0::1;13038:23;:12:::0;13054:6:::1;13038:23;:::i;:::-;13026:9;:35:::0;-1:-1:-1;12834:235:0:o;11659:335::-;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;11732:8:::1;::::0;-1:-1:-1;;;11732:8:0;::::1;;;11731:9;11723:38;;;;-1:-1:-1::0;;;11723:38:0::1;;;;;;;:::i;:::-;11844:4;11864:24;::::0;;;:9:::1;:24;::::0;;;;;;11935:10:::1;::::0;11772:214;;-1:-1:-1;;;11772:214:0;;::::1;::::0;::::1;9081:34:1::0;;;;9131:18;;;9124:34;9174:18;;;9167:34;;;9217:18;;;9210:34;;;;-1:-1:-1;;;;;11935:10:0::1;9260:19:1::0;;;9253:44;11960:15:0::1;9313:19:1::0;;;9306:35;3531:42:0::1;::::0;11772:31:::1;::::0;11811:9:::1;::::0;9015:19:1;;11772:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11659:335::o:0;10063:304::-;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;10174:6:::1;:16:::0;;-1:-1:-1;;;;10201:28:0;-1:-1:-1;;;10174:16:0::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;;;10201:28:0;;;;;-1:-1:-1;;;10201:28:0;;::::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;;;;10240:18:0::1;-1:-1:-1::0;;;10240:18:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;10302:7;::::1;::::0;::::1;::::0;10278:21:::1;::::0;10287:12;;::::1;::::0;::::1;::::0;10278:6;::::1;;:21;:::i;:::-;:31;;;;:::i;:::-;10277:40;;10314:3;10277:40;10269:90;;;::::0;-1:-1:-1;;;10269:90:0;;10018:2:1;10269:90:0::1;::::0;::::1;10000:21:1::0;10057:2;10037:18;;;10030:30;10096:34;10076:18;;;10069:62;-1:-1:-1;;;10147:18:1;;;10140:35;10192:19;;10269:90:0::1;9816:401:1::0;10375:335:0;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;10490:1:::1;10473:13;:18;;;;10465:72;;;::::0;-1:-1:-1;;;10465:72:0;;10424:2:1;10465:72:0::1;::::0;::::1;10406:21:1::0;10463:2;10443:18;;;10436:30;10502:34;10482:18;;;10475:62;-1:-1:-1;;;10553:18:1;;;10546:39;10602:19;;10465:72:0::1;10222:405:1::0;10465:72:0::1;10574:1;10556:14;:19;;;;10548:74;;;::::0;-1:-1:-1;;;10548:74:0;;10834:2:1;10548:74:0::1;::::0;::::1;10816:21:1::0;10873:2;10853:18;;;10846:30;10912:34;10892:18;;;10885:62;-1:-1:-1;;;10963:18:1;;;10956:40;11013:19;;10548:74:0::1;10632:406:1::0;10548:74:0::1;10633:12;:28:::0;;-1:-1:-1;;;;10672:30:0;-1:-1:-1;;;10633:28:0::1;::::0;;::::1;;-1:-1:-1::0;;;;10672:30:0;;-1:-1:-1;;;10672:30:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;10375:335::o;10718:136::-;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10807:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;10807:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10718:136::o;12221:361::-;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;12346:6:::1;12325:17;2062:18:::0;12341:1:::1;12325:17;:::i;:::-;12324:28;;;;:::i;:::-;12307:13;:45;;12299:111;;;::::0;-1:-1:-1;;;12299:111:0;;11245:2:1;12299:111:0::1;::::0;::::1;11227:21:1::0;11284:2;11264:18;;;11257:30;11323:34;11303:18;;;11296:62;-1:-1:-1;;;11374:18:1;;;11367:51;11435:19;;12299:111:0::1;11043:417:1::0;12299:111:0::1;12468:4;12447:17;2062:18:::0;12463:1:::1;12447:17;:::i;:::-;12446:26;;;;:::i;:::-;12429:13;:43;;12421:108;;;::::0;-1:-1:-1;;;12421:108:0;;11667:2:1;12421:108:0::1;::::0;::::1;11649:21:1::0;11706:2;11686:18;;;11679:30;11745:34;11725:18;;;11718:62;-1:-1:-1;;;11796:18:1;;;11789:50;11856:19;;12421:108:0::1;11465:416:1::0;12421:108:0::1;12540:18;:34:::0;12221:361::o;10862:158::-;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10961:40:0;;;::::1;;::::0;;;:31:::1;:40;::::0;;;;:51;;-1:-1:-1;;10961:51:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10862:158::o;581:92::-;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;663:1:::1;646:19:::0;;-1:-1:-1;;;;;;646:19:0::1;::::0;;581:92::o;12590:236::-;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;12714:4:::1;12706;12685:17;2062:18:::0;12701:1:::1;12685:17;:::i;:::-;12684:26;;;;:::i;:::-;12683:35;;;;:::i;:::-;12671:8;:47;;12663:102;;;::::0;-1:-1:-1;;;12663:102:0;;12088:2:1;12663:102:0::1;::::0;::::1;12070:21:1::0;12127:2;12107:18;;;12100:30;12166:34;12146:18;;;12139:62;-1:-1:-1;;;12217:18:1;;;12210:40;12267:19;;12663:102:0::1;11886:406:1::0;12663:102:0::1;12799:19;:8:::0;12811:6:::1;12799:19;:::i;:::-;12776:20;:42:::0;-1:-1:-1;12590:236:0:o;9971:84::-;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;10025:14:::1;:22:::0;;-1:-1:-1;;;;10025:22:0::1;::::0;;9971:84::o;13455:177::-;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13539:24:0;::::1;13531:59;;;;-1:-1:-1::0;;;13531:59:0::1;;;;;;;:::i;:::-;13601:10;:23:::0;;-1:-1:-1;;;;;;13601:23:0::1;-1:-1:-1::0;;;;;13601:23:0;;;::::1;::::0;;;::::1;::::0;;13455:177::o;12002:211::-;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;12111:13:::1;-1:-1:-1::0;;;;;12103:21:0::1;:4;-1:-1:-1::0;;;;;12103:21:0::1;::::0;12095:60:::1;;;::::0;-1:-1:-1;;;12095:60:0;;12850:2:1;12095:60:0::1;::::0;::::1;12832:21:1::0;12889:2;12869:18;;;12862:30;12928:28;12908:18;;;12901:56;12974:18;;12095:60:0::1;12648:350:1::0;12095:60:0::1;-1:-1:-1::0;;;;;12166:31:0;;;::::1;;::::0;;;:25:::1;:31;::::0;;;;:39;;-1:-1:-1;;12166:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12002:211::o;6594:158::-;6665:4;6682:40;6692:10;6704:9;6715:6;6682:9;:40::i;13260:187::-;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13349:24:0;::::1;13341:59;;;;-1:-1:-1::0;;;13341:59:0::1;;;;;;;:::i;:::-;13411:15;:28:::0;;-1:-1:-1;;;;;;13411:28:0::1;-1:-1:-1::0;;;;;13411:28:0;;;::::1;::::0;;;::::1;::::0;;13260:187::o;13077:175::-;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13160:24:0;::::1;13152:59;;;;-1:-1:-1::0;;;13152:59:0::1;;;;;;;:::i;:::-;13222:9;:22:::0;;-1:-1:-1;;;;;;13222:22:0::1;-1:-1:-1::0;;;;;13222:22:0;;;::::1;::::0;;;::::1;::::0;;13077:175::o;13771:240::-;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;13883:38:::1;::::0;-1:-1:-1;;;13883:38:0;;13915:4:::1;13883:38;::::0;::::1;1471:51:1::0;13856:24:0::1;::::0;-1:-1:-1;;;;;13883:23:0;::::1;::::0;::::1;::::0;1444:18:1;;13883:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13856:65;;13932:51;13955:5;13962:2;13966:16;13932:22;:51::i;14019:247::-:0;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14097:18:0;::::1;14089:46;;;::::0;-1:-1:-1;;;14089:46:0;;13394:2:1;14089:46:0::1;::::0;::::1;13376:21:1::0;13433:2;13413:18;;;13406:30;-1:-1:-1;;;13452:18:1;;;13445:45;13507:18;;14089:46:0::1;13192:339:1::0;14089:46:0::1;14149:12;14167:4;-1:-1:-1::0;;;;;14167:9:0::1;14184:21;14167:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14148:62;;;14229:7;14221:37;;;::::0;-1:-1:-1;;;14221:37:0;;13948:2:1;14221:37:0::1;::::0;::::1;13930:21:1::0;13987:2;13967:18;;;13960:30;-1:-1:-1;;;14006:18:1;;;13999:47;14063:18;;14221:37:0::1;13746:341:1::0;14221:37:0::1;14078:188;14019:247:::0;:::o;11028:492::-;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;11145:8:::1;::::0;-1:-1:-1;;;11145:8:0;::::1;;;11144:9;11136:38;;;;-1:-1:-1::0;;;11136:38:0::1;;;;;;;:::i;:::-;11190:9;11185:328;11209:9;:16;11205:1;:20;11185:328;;;11280:7;11288:1;11280:10;;;;;;;;:::i;:::-;;;;;;;11255:9;:21;11265:10;-1:-1:-1::0;;;;;11255:21:0::1;-1:-1:-1::0;;;;;11255:21:0::1;;;;;;;;;;;;;:35;;11247:86;;;;-1:-1:-1::0;;;11247:86:0::1;;;;;;;:::i;:::-;11375:7;11383:1;11375:10;;;;;;;;:::i;:::-;;;;;;;11348:9;:23;11358:9;11368:1;11358:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;11348:23:0::1;-1:-1:-1::0;;;;;11348:23:0::1;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;11425:7;11433:1;11425:10;;;;;;;;:::i;:::-;;;;;;;11400:9;:21;11410:10;-1:-1:-1::0;;;;;11400:21:0::1;-1:-1:-1::0;;;;;11400:21:0::1;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;11476:9;11486:1;11476:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;11455:46:0::1;11464:10;-1:-1:-1::0;;;;;11455:46:0::1;;11490:7;11498:1;11490:10;;;;;;;;:::i;:::-;;;;;;;11455:46;;;;1679:25:1::0;;1667:2;1652:18;;1533:177;11455:46:0::1;;;;;;;;11227:3:::0;::::1;::::0;::::1;:::i;:::-;;;;11185:328;;11528:123:::0;506:10;495:7;406;433:6;-1:-1:-1;;;;;433:6:0;;360:87;495:7;-1:-1:-1;;;;;495:21:0;;487:66;;;;-1:-1:-1;;;487:66:0;;;;;;;:::i;:::-;11588:8:::1;::::0;-1:-1:-1;;;11588:8:0;::::1;;;11587:9;11579:38;;;;-1:-1:-1::0;;;11579:38:0::1;;;;;;;:::i;:::-;11628:8;:15:::0;;-1:-1:-1;;;;11628:15:0::1;-1:-1:-1::0;;;11628:15:0::1;::::0;;11528:123::o;6249:337::-;-1:-1:-1;;;;;6342:19:0;;6334:68;;;;-1:-1:-1;;;6334:68:0;;15236:2:1;6334:68:0;;;15218:21:1;15275:2;15255:18;;;15248:30;15314:34;15294:18;;;15287:62;-1:-1:-1;;;15365:18:1;;;15358:34;15409:19;;6334:68:0;15034:400:1;6334:68:0;-1:-1:-1;;;;;6421:21:0;;6413:68;;;;-1:-1:-1;;;6413:68:0;;15641:2:1;6413:68:0;;;15623:21:1;15680:2;15660:18;;;15653:30;15719:34;15699:18;;;15692:62;-1:-1:-1;;;15770:18:1;;;15763:32;15812:19;;6413:68:0;15439:398:1;6413:68:0;-1:-1:-1;;;;;6494:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6546:32;;1679:25:1;;;6546:32:0;;1652:18:1;6546:32:0;;;;;;;6249:337;;;:::o;7288:2675::-;-1:-1:-1;;;;;7376:18:0;;7368:68;;;;-1:-1:-1;;;7368:68:0;;16044:2:1;7368:68:0;;;16026:21:1;16083:2;16063:18;;;16056:30;16122:34;16102:18;;;16095:62;-1:-1:-1;;;16173:18:1;;;16166:35;16218:19;;7368:68:0;15842:401:1;7368:68:0;-1:-1:-1;;;;;7455:16:0;;7447:64;;;;-1:-1:-1;;;7447:64:0;;16450:2:1;7447:64:0;;;16432:21:1;16489:2;16469:18;;;16462:30;16528:34;16508:18;;;16501:62;-1:-1:-1;;;16579:18:1;;;16572:33;16622:19;;7447:64:0;16248:399:1;7447:64:0;7539:1;7530:6;:10;7522:64;;;;-1:-1:-1;;;7522:64:0;;16854:2:1;7522:64:0;;;16836:21:1;16893:2;16873:18;;;16866:30;16932:34;16912:18;;;16905:62;-1:-1:-1;;;16983:18:1;;;16976:39;17032:19;;7522:64:0;16652:405:1;7522:64:0;7604:8;;-1:-1:-1;;;7604:8:0;;;;7603:9;:72;;;;-1:-1:-1;406:7:0;433:6;-1:-1:-1;;;;;7617:15:0;;;433:6;;7617:15;;;;:40;;-1:-1:-1;;;;;;7636:21:0;;7652:4;7636:21;;7617:40;:57;;;;-1:-1:-1;406:7:0;433:6;-1:-1:-1;;;;;7661:13:0;;;433:6;;7661:13;;7617:57;7599:134;;;7692:29;;-1:-1:-1;;;7692:29:0;;17264:2:1;7692:29:0;;;17246:21:1;17303:2;17283:18;;;17276:30;-1:-1:-1;;;17322:18:1;;;17315:49;17381:18;;7692:29:0;17062:343:1;7599:134:0;7749:14;;-1:-1:-1;;;7749:14:0;;;;7745:830;;;406:7;433:6;-1:-1:-1;;;;;7784:15:0;;;433:6;;7784:15;;;;:32;;-1:-1:-1;406:7:0;433:6;-1:-1:-1;;;;;7803:13:0;;;433:6;;7803:13;;7784:32;:52;;;;-1:-1:-1;;;;;;7820:16:0;;;;7784:52;:77;;;;-1:-1:-1;;;;;;7840:21:0;;7854:6;7840:21;;7784:77;:90;;;;-1:-1:-1;7866:8:0;;-1:-1:-1;;;7866:8:0;;;;7865:9;7784:90;7780:784;;;-1:-1:-1;;;;;7899:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;7935:35:0;;;;;;:31;:35;;;;;;;;7934:36;7899:71;7895:654;;;8013:20;;8003:6;:30;;7995:80;;;;-1:-1:-1;;;7995:80:0;;17612:2:1;7995:80:0;;;17594:21:1;17651:2;17631:18;;;17624:30;17690:34;17670:18;;;17663:62;-1:-1:-1;;;17741:18:1;;;17734:35;17786:19;;7995:80:0;17410:401:1;7995:80:0;8132:9;;-1:-1:-1;;;;;5913:18:0;;5886:7;5913:18;;;:9;:18;;;;;;8106:22;;:6;:22;:::i;:::-;:35;;8098:67;;;;-1:-1:-1;;;8098:67:0;;18018:2:1;8098:67:0;;;18000:21:1;18057:2;18037:18;;;18030:30;-1:-1:-1;;;18076:18:1;;;18069:49;18135:18;;8098:67:0;17816:343:1;8098:67:0;7895:654;;;-1:-1:-1;;;;;8195:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;8229:37:0;;;;;;:31;:37;;;;;;;;8228:38;8195:71;8191:358;;;8309:20;;8299:6;:30;;8291:80;;;;-1:-1:-1;;;8291:80:0;;18366:2:1;8291:80:0;;;18348:21:1;18405:2;18385:18;;;18378:30;18444:34;18424:18;;;18417:62;-1:-1:-1;;;18495:18:1;;;18488:36;18541:19;;8291:80:0;18164:402:1;8191:358:0;-1:-1:-1;;;;;8402:35:0;;;;;;:31;:35;;;;;;;;8397:152;;8496:9;;-1:-1:-1;;;;;5913:18:0;;5886:7;5913:18;;;:9;:18;;;;;;8470:22;;:6;:22;:::i;:::-;:35;;8462:67;;;;-1:-1:-1;;;8462:67:0;;18018:2:1;8462:67:0;;;18000:21:1;18057:2;18037:18;;;18030:30;-1:-1:-1;;;18076:18:1;;;18069:49;18135:18;;8462:67:0;17816:343:1;8462:67:0;8630:18;;8620:4;8587:12;5913:18;;;:9;:18;;;;;;-1:-1:-1;8602:46:0;;;;;8665:20;;-1:-1:-1;8677:8:0;;-1:-1:-1;;;8677:8:0;;;;8676:9;8665:20;:56;;;;-1:-1:-1;;;;;;8690:31:0;;;;;;:25;:31;;;;;;;;8689:32;8665:56;:86;;;;-1:-1:-1;;;;;;8726:25:0;;;;;;:19;:25;;;;;;;;8725:26;8665:86;:114;;;;-1:-1:-1;;;;;;8756:23:0;;;;;;:19;:23;;;;;;;;8755:24;8665:114;8661:218;;;8796:8;:15;;-1:-1:-1;;;;8796:15:0;-1:-1:-1;;;8796:15:0;;;8826:10;:8;:10::i;:::-;8851:8;:16;;-1:-1:-1;;;;8851:16:0;;;8661:218;8907:8;;-1:-1:-1;;;;;8932:25:0;;8891:12;8932:25;;;:19;:25;;;;;;8907:8;-1:-1:-1;;;8907:8:0;;;;;8906:9;;8932:25;;:52;;-1:-1:-1;;;;;;8961:23:0;;;;;;:19;:23;;;;;;;;8932:52;8928:100;;;-1:-1:-1;9011:5:0;8928:100;-1:-1:-1;;;;;9064:15:0;;9040:21;9064:15;;;:9;:15;;;;;;9098:23;;;;9090:74;;;;-1:-1:-1;;;9090:74:0;;;;;;;:::i;:::-;9177:12;9208:7;9204:600;;;-1:-1:-1;;;;;9236:29:0;;;;;;:25;:29;;;;;;;;:50;;;;-1:-1:-1;9269:13:0;;-1:-1:-1;;;9269:13:0;;;;:17;;9236:50;9232:262;;;9324:13;;9341:3;;9315:22;;-1:-1:-1;;;9324:13:0;;;;9315:6;:22;:::i;:::-;9314:30;;;;:::i;:::-;9307:37;;9232:262;;;-1:-1:-1;;;;;9370:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;9405:12:0;;-1:-1:-1;;;9405:12:0;;;;:16;;9370:51;9366:128;;;9459:12;;9475:3;;9450:21;;-1:-1:-1;;;9459:12:0;;;;9450:6;:21;:::i;:::-;9449:29;;;;:::i;:::-;9442:36;;9366:128;9514:8;;9510:283;;-1:-1:-1;;;;;9621:15:0;;;;;;:9;:15;;;;;;;;:23;;;;;;;9685:4;9667:24;;;;;;;:32;;;;;;9742:35;1679:25:1;;;9585:13:0;;;;;9685:4;;9621:15;9742:35;;1652:18:1;9742:35:0;;;;;;;9510:283;-1:-1:-1;;;;;9839:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;9879:13;;;;;;;;;;:23;;;;;;9929:26;;;;;;9858:6;1679:25:1;;1667:2;1652:18;;1533:177;9929:26:0;;;;;;;;7357:2606;;;;7288:2675;;;:::o;705:320::-;836:59;;;-1:-1:-1;;;;;18763:32:1;;;836:59:0;;;18745:51:1;18812:18;;;;18805:34;;;836:59:0;;;;;;;;;;18718:18:1;;;;836:59:0;;;;;;;-1:-1:-1;;;;;836:59:0;-1:-1:-1;;;836:59:0;;;825:71;;-1:-1:-1;;;;825:10:0;;;;:71;;836:59;825:71;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;789:107;;;;915:7;:57;;;;-1:-1:-1;927:11:0;;:16;;:44;;;958:4;947:24;;;;;;;;;;;;:::i;:::-;907:110;;;;-1:-1:-1;;;907:110:0;;19594:2:1;907:110:0;;;19576:21:1;19633:2;19613:18;;;19606:30;19672:34;19652:18;;;19645:62;-1:-1:-1;;;19723:18:1;;;19716:38;19771:19;;907:110:0;19392:404:1;907:110:0;778:247;;705:320;;;:::o;14274:1121::-;14337:18;;14313:21;14422:23;14337:18;14443:2;14422:23;:::i;:::-;14413:4;5886:7;5913:18;;;:9;:18;;;;;;14395:50;14391:122;;;14478:18;;:23;;14499:2;14478:23;:::i;:::-;14462:39;;14391:122;14549:16;;;14563:1;14549:16;;;;;;;;14525:21;;14549:16;;;;;;;;;;-1:-1:-1;14549:16:0;14525:40;;14594:4;14576;14581:1;14576:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;14576:23:0;;;-1:-1:-1;;;;;14576:23:0;;;;;2541:42;14610:4;14615:1;14610:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14610:14:0;;;:7;;;;;;;;;;;:14;14637:122;;-1:-1:-1;;;14637:122:0;;3531:42;;14637:66;;:122;;14704:13;;14719:1;;14722:4;;14736;;14743:15;;14637:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14793:21:0;;-1:-1:-1;;14829:14:0;;;-1:-1:-1;14825:563:0;;14894:6;;14860:17;;14904:3;;14881:19;;-1:-1:-1;;;14894:6:0;;;;14881:10;:19;:::i;:::-;14880:27;;;;:::i;:::-;14957:7;;14860:47;;-1:-1:-1;14922:18:0;;14968:3;;14944:20;;-1:-1:-1;;;14957:7:0;;;;14944:10;:20;:::i;:::-;14943:28;;;;:::i;:::-;14922:49;-1:-1:-1;14986:23:0;14922:49;15012:22;15025:9;15012:10;:22;:::i;:::-;:35;;;;:::i;:::-;15086:10;;15078:47;;14986:61;;-1:-1:-1;;;;;;15086:10:0;;15110;;15078:47;;;;15110:10;15086;15078:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15162:15:0;;15154:57;;15064:61;;-1:-1:-1;;;;;;15162:15:0;;15191;;15154:57;;;;15191:15;15162;15154:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15248:9:0;;15240:45;;15140:71;;-1:-1:-1;;;;;;15248:9:0;;15271;;15240:45;;;;15271:9;15248;15240:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15307:69:0;;;21017:25:1;;;21073:2;21058:18;;21051:34;;;21101:18;;;21094:34;;;21159:2;21144:18;;21137:34;;;15226:59:0;;-1:-1:-1;15307:69:0;;21004:3:1;20989:19;15307:69:0;;;;;;;14845:543;;;14825:563;14302:1093;;;;14274:1121::o;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:173::-;738:20;;-1:-1:-1;;;;;787:31:1;;777:42;;767:70;;833:1;830;823:12;767:70;670:173;;;:::o;848:254::-;916:6;924;977:2;965:9;956:7;952:23;948:32;945:52;;;993:1;990;983:12;945:52;1016:29;1035:9;1016:29;:::i;:::-;1006:39;1092:2;1077:18;;;;1064:32;;-1:-1:-1;;;848:254:1:o;1904:328::-;1981:6;1989;1997;2050:2;2038:9;2029:7;2025:23;2021:32;2018:52;;;2066:1;2063;2056:12;2018:52;2089:29;2108:9;2089:29;:::i;:::-;2079:39;;2137:38;2171:2;2160:9;2156:18;2137:38;:::i;:::-;2127:48;;2222:2;2211:9;2207:18;2194:32;2184:42;;1904:328;;;;;:::o;2237:180::-;2296:6;2349:2;2337:9;2328:7;2324:23;2320:32;2317:52;;;2365:1;2362;2355:12;2317:52;-1:-1:-1;2388:23:1;;2237:180;-1:-1:-1;2237:180:1:o;2422:156::-;2488:20;;2548:4;2537:16;;2527:27;;2517:55;;2568:1;2565;2558:12;2583:322;2654:6;2662;2670;2723:2;2711:9;2702:7;2698:23;2694:32;2691:52;;;2739:1;2736;2729:12;2691:52;2762:27;2779:9;2762:27;:::i;:::-;2752:37;;2808:36;2840:2;2829:9;2825:18;2808:36;:::i;:::-;2798:46;;2863:36;2895:2;2884:9;2880:18;2863:36;:::i;:::-;2853:46;;2583:322;;;;;:::o;3118:252::-;3182:6;3190;3243:2;3231:9;3222:7;3218:23;3214:32;3211:52;;;3259:1;3256;3249:12;3211:52;3282:27;3299:9;3282:27;:::i;:::-;3272:37;;3328:36;3360:2;3349:9;3345:18;3328:36;:::i;:::-;3318:46;;3118:252;;;;;:::o;3375:118::-;3461:5;3454:13;3447:21;3440:5;3437:32;3427:60;;3483:1;3480;3473:12;3427:60;3375:118;:::o;3498:315::-;3563:6;3571;3624:2;3612:9;3603:7;3599:23;3595:32;3592:52;;;3640:1;3637;3630:12;3592:52;3663:29;3682:9;3663:29;:::i;:::-;3653:39;;3742:2;3731:9;3727:18;3714:32;3755:28;3777:5;3755:28;:::i;:::-;3802:5;3792:15;;;3498:315;;;;;:::o;3818:186::-;3877:6;3930:2;3918:9;3909:7;3905:23;3901:32;3898:52;;;3946:1;3943;3936:12;3898:52;3969:29;3988:9;3969:29;:::i;:::-;3959:39;3818:186;-1:-1:-1;;;3818:186:1:o;4009:260::-;4077:6;4085;4138:2;4126:9;4117:7;4113:23;4109:32;4106:52;;;4154:1;4151;4144:12;4106:52;4177:29;4196:9;4177:29;:::i;:::-;4167:39;;4225:38;4259:2;4248:9;4244:18;4225:38;:::i;4274:127::-;4335:10;4330:3;4326:20;4323:1;4316:31;4366:4;4363:1;4356:15;4390:4;4387:1;4380:15;4406:275;4477:2;4471:9;4542:2;4523:13;;-1:-1:-1;;4519:27:1;4507:40;;4577:18;4562:34;;4598:22;;;4559:62;4556:88;;;4624:18;;:::i;:::-;4660:2;4653:22;4406:275;;-1:-1:-1;4406:275:1:o;4686:183::-;4746:4;4779:18;4771:6;4768:30;4765:56;;;4801:18;;:::i;:::-;-1:-1:-1;4846:1:1;4842:14;4858:4;4838:25;;4686:183::o;4874:662::-;4928:5;4981:3;4974:4;4966:6;4962:17;4958:27;4948:55;;4999:1;4996;4989:12;4948:55;5035:6;5022:20;5061:4;5085:60;5101:43;5141:2;5101:43;:::i;:::-;5085:60;:::i;:::-;5179:15;;;5265:1;5261:10;;;;5249:23;;5245:32;;;5210:12;;;;5289:15;;;5286:35;;;5317:1;5314;5307:12;5286:35;5353:2;5345:6;5341:15;5365:142;5381:6;5376:3;5373:15;5365:142;;;5447:17;;5435:30;;5485:12;;;;5398;;5365:142;;;-1:-1:-1;5525:5:1;4874:662;-1:-1:-1;;;;;;4874:662:1:o;5541:1146::-;5659:6;5667;5720:2;5708:9;5699:7;5695:23;5691:32;5688:52;;;5736:1;5733;5726:12;5688:52;5776:9;5763:23;5805:18;5846:2;5838:6;5835:14;5832:34;;;5862:1;5859;5852:12;5832:34;5900:6;5889:9;5885:22;5875:32;;5945:7;5938:4;5934:2;5930:13;5926:27;5916:55;;5967:1;5964;5957:12;5916:55;6003:2;5990:16;6025:4;6049:60;6065:43;6105:2;6065:43;:::i;6049:60::-;6143:15;;;6225:1;6221:10;;;;6213:19;;6209:28;;;6174:12;;;;6249:19;;;6246:39;;;6281:1;6278;6271:12;6246:39;6305:11;;;;6325:148;6341:6;6336:3;6333:15;6325:148;;;6407:23;6426:3;6407:23;:::i;:::-;6395:36;;6358:12;;;;6451;;;;6325:148;;;6492:5;-1:-1:-1;;6535:18:1;;6522:32;;-1:-1:-1;;6566:16:1;;;6563:36;;;6595:1;6592;6585:12;6563:36;;6618:63;6673:7;6662:8;6651:9;6647:24;6618:63;:::i;:::-;6608:73;;;5541:1146;;;;;:::o;7101:356::-;7303:2;7285:21;;;7322:18;;;7315:30;7381:34;7376:2;7361:18;;7354:62;7448:2;7433:18;;7101:356::o;7462:127::-;7523:10;7518:3;7514:20;7511:1;7504:31;7554:4;7551:1;7544:15;7578:4;7575:1;7568:15;7594:168;7667:9;;;7698;;7715:15;;;7709:22;;7695:37;7685:71;;7736:18;;:::i;7767:217::-;7807:1;7833;7823:132;;7877:10;7872:3;7868:20;7865:1;7858:31;7912:4;7909:1;7902:15;7940:4;7937:1;7930:15;7823:132;-1:-1:-1;7969:9:1;;7767:217::o;8395:340::-;8597:2;8579:21;;;8636:2;8616:18;;;8609:30;-1:-1:-1;;;8670:2:1;8655:18;;8648:46;8726:2;8711:18;;8395:340::o;9352:306::-;9440:6;9448;9456;9509:2;9497:9;9488:7;9484:23;9480:32;9477:52;;;9525:1;9522;9515:12;9477:52;9554:9;9548:16;9538:26;;9604:2;9593:9;9589:18;9583:25;9573:35;;9648:2;9637:9;9633:18;9627:25;9617:35;;9352:306;;;;;:::o;9663:148::-;9751:4;9730:12;;;9744;;;9726:31;;9769:13;;9766:39;;;9785:18;;:::i;12297:346::-;12499:2;12481:21;;;12538:2;12518:18;;;12511:30;-1:-1:-1;;;12572:2:1;12557:18;;12550:52;12634:2;12619:18;;12297:346::o;13003:184::-;13073:6;13126:2;13114:9;13105:7;13101:23;13097:32;13094:52;;;13142:1;13139;13132:12;13094:52;-1:-1:-1;13165:16:1;;13003:184;-1:-1:-1;13003:184:1:o;14092:127::-;14153:10;14148:3;14144:20;14141:1;14134:31;14184:4;14181:1;14174:15;14208:4;14205:1;14198:15;14224:402;14426:2;14408:21;;;14465:2;14445:18;;;14438:30;14504:34;14499:2;14484:18;;14477:62;-1:-1:-1;;;14570:2:1;14555:18;;14548:36;14616:3;14601:19;;14224:402::o;14631:125::-;14696:9;;;14717:10;;;14714:36;;;14730:18;;:::i;14761:128::-;14828:9;;;14849:11;;;14846:37;;;14863:18;;:::i;14894:135::-;14933:3;14954:17;;;14951:43;;14974:18;;:::i;:::-;-1:-1:-1;15021:1:1;15010:13;;14894:135::o;18850:287::-;18979:3;19017:6;19011:13;19033:66;19092:6;19087:3;19080:4;19072:6;19068:17;19033:66;:::i;:::-;19115:16;;;;;18850:287;-1:-1:-1;;18850:287:1:o;19142:245::-;19209:6;19262:2;19250:9;19241:7;19237:23;19233:32;19230:52;;;19278:1;19275;19268:12;19230:52;19310:9;19304:16;19329:28;19351:5;19329:28;:::i;19801:980::-;20063:4;20111:3;20100:9;20096:19;20142:6;20131:9;20124:25;20168:2;20206:6;20201:2;20190:9;20186:18;20179:34;20249:3;20244:2;20233:9;20229:18;20222:31;20273:6;20308;20302:13;20339:6;20331;20324:22;20377:3;20366:9;20362:19;20355:26;;20416:2;20408:6;20404:15;20390:29;;20437:1;20447:195;20461:6;20458:1;20455:13;20447:195;;;20526:13;;-1:-1:-1;;;;;20522:39:1;20510:52;;20617:15;;;;20582:12;;;;20558:1;20476:9;20447:195;;;-1:-1:-1;;;;;;;20698:32:1;;;;20693:2;20678:18;;20671:60;-1:-1:-1;;;20762:3:1;20747:19;20740:35;20659:3;19801:980;-1:-1:-1;;;19801:980:1:o

Swarm Source

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