ETH Price: $3,336.92 (+0.47%)

Token

0xFutures Bot (0xFutures)
 

Overview

Max Total Supply

10,000,000 0xFutures

Holders

42

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
23,953.498346438295635595 0xFutures

Value
$0.00
0x223cf0208a471028a8f2a853a56d3a8927ab16ee
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:
ZxFuturesBot

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 2023-10-08
*/

/**
    0xFutures
    Website: 0xFutures.trade
    Twitter: twitter.com/0xFutures_
    Telegram: https://t.me/ZeroFutures
    Bot: https://t.me/ZeroFutures_bot
**/
// 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 ZxFuturesBot is Ownable {
    string private constant _name = unicode"0xFutures Bot";
    string private constant _symbol = unicode"0xFutures";
    uint256 private constant _totalSupply = 10_000_000 * 1e18;

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

    address private revWallet = 0xefd2F827308C82eec2a2C0e76948EA25eaC9b232;
    address private treasuryWallet = 0xb34e379eD7E3189908f921462d72c13299cd76F6;
    address private teamWallet = 0xFEC39FdECad7d09eFCa975b9f2849a90839ca0f4;
    address private constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    uint8 public buyTotalFees = 50;
    uint8 public sellTotalFees = 50;

    uint8 public revFee = 50;
    uint8 public treasuryFee = 25;
    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 TreasuryETH);
    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 = 0x07910882e64CAA8B86bf3525f289A97FF7327434;
        launched = true;
        setExcludedFromFees(owner(), true);
        setExcludedFromFees(address(this), true);
        setExcludedFromFees(address(0xdead), true);
        setExcludedFromFees(teamWallet, true);
        setExcludedFromFees(revWallet, true);
        setExcludedFromFees(treasuryWallet, 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(treasuryWallet, true);

        _balances[msg.sender] = 3_330_000 * 1e18;
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);
        _balances[treasuryWallet] = 6_380_000 * 1e18;
        emit Transfer(address(0), treasuryWallet, _balances[treasuryWallet]);
        _balances[airdropWallet] = 120_000 * 1e18;
        emit Transfer(address(0), airdropWallet, _balances[airdropWallet]);
        _balances[address(this)] = 170_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) / 1000;
            } else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = (amount * buyTotalFees) / 1000;
            }

            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 _TreasuryFee, uint8 _teamFee) external onlyOwner {
        revFee = _RevFee;
        treasuryFee = _TreasuryFee;
        teamFee = _teamFee;
        require((revFee + treasuryFee + teamFee) == 100, "Distribution have to be equal to 100%");
    }

    function setFees(uint8 _buyTotalFees, uint8 _sellTotalFees) external onlyOwner {
        require(_buyTotalFees <= 50, "Buy fees must be less than or equal to 5%");
        require(_sellTotalFees <= 50, "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 unleashThe0xFutures() 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 updateTreasuryWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        treasuryWallet = newAddress;
    }

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

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

    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 isContract(address addr) internal view returns (bool) {
        uint size;
        assembly { size := extcodesize(addr) }
        return size > 0;
    }

    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 ethForTreasury = ethBalance - ethForRev - ethForTeam;

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

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

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":"TreasuryETH","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":"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":"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":"_TreasuryFee","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":"treasuryFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":"unleashThe0xFutures","outputs":[],"stateMutability":"payable","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":"newAddress","type":"address"}],"name":"updateTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405269152d02c7e14af680000060015569152d02c7e14af68000006002556127106a084595161401484a00000060026200003d9190620006e4565b6200004991906200070e565b600355600480546001600160a01b031990811673efd2f827308c82eec2a2c0e76948ea25eac9b232179091556005805490911673b34e379ed7e3189908f921462d72c13299cd76f6179055600680547a01001919323232fec39fdecad7d09efca975b9f2849a90839ca0f4600161ff0160c81b0319909116179055348015620000d0575f80fd5b505f80546001600160a01b031916331790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9163c45a01559160048083019260209291908290030181865afa15801562000131573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015791906200072e565b6040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260248201526001600160a01b03919091169063c9c65396906044016020604051808303815f875af1158015620001b7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001dd91906200072e565b6001600160a01b031660808190525f908152600b60205260409020805460ff191660011790556006805460ff60d81b1916600160d81b1790557307910882e64caa8b86bf3525f289a97ff732743462000249620002415f546001600160a01b031690565b6001620004b3565b62000256306001620004b3565b6200026561dead6001620004b3565b6006546200027e906001600160a01b03166001620004b3565b60045462000297906001600160a01b03166001620004b3565b600554620002b0906001600160a01b03166001620004b3565b620002ce620002c65f546001600160a01b031690565b60016200053a565b620002ef737a250d5630b4cf539739df2c5dacb4c659f2488d60016200053a565b620002fc3060016200053a565b6200030b61dead60016200053a565b6080516200031b9060016200053a565b60065462000334906001600160a01b031660016200053a565b6004546200034d906001600160a01b031660016200053a565b60055462000366906001600160a01b031660016200053a565b335f8181526007602090815260408083206a02c127a96667d9dd4000009081905590519081525f8051602062002eeb833981519152910160405180910390a3600580546001600160a01b039081165f908152600760205260408082206a0547047e36bf483b8000009055925490911680825282822054925190925f8051602062002eeb83398151915291620003fd91815260200190565b60405180910390a36001600160a01b0381165f818152600760209081526040808320691969368974c05b0000009081905590519081525f8051602062002eeb833981519152910160405180910390a3305f8181526007602090815260408083206923ffb7ed6565d64000009081905590519081525f8051602062002eeb833981519152910160405180910390a3620004ac30737a250d5630b4cf539739df2c5dacb4c659f2488d5f19620005bd565b506200075d565b33620004c65f546001600160a01b031690565b6001600160a01b031614620005105760405162461bcd60e51b815260206004820181905260248201525f8051602062002ecb83398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b336200054d5f546001600160a01b031690565b6001600160a01b031614620005935760405162461bcd60e51b815260206004820181905260248201525f8051602062002ecb833981519152604482015260640162000507565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6001600160a01b038316620006215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000507565b6001600160a01b038216620006845760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000507565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b80820281158282048414176200070857634e487b7160e01b5f52601160045260245ffd5b92915050565b5f826200072957634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156200073f575f80fd5b81516001600160a01b038116811462000756575f80fd5b9392505050565b60805161274e6200077d5f395f81816103c401526111a3015261274e5ff3fe608060405260043610610220575f3560e01c806374010ece1161011e578063adfa29e5116100a8578063d85ba0631161006d578063d85ba063146106b0578063dd62ed3e146106d0578063e2f4560514610714578063e710794714610729578063f8b45b0514610748575f80fd5b8063adfa29e51461061d578063c8c8ebe41461063c578063cc32d17614610651578063d201b01e14610671578063d7c94efd14610690575f80fd5b806385ecafd7116100ee57806385ecafd71461055b5780638da5cb5b1461059257806395d89b41146105ae5780639a7a23d6146105df578063a9059cbb146105fe575f80fd5b806374010ece146104ea578063751039fc146105095780637cb332bb1461051d578063809d458d1461053c575f80fd5b80633cf93386116101aa5780636402511e1161016f5780636402511e1461044457806366650dae146104635780636a486a8e1461048257806370a08231146104a2578063715018a6146104d6575f80fd5b80633cf93386146103ab57806349bd5a5e146103b35780634a62bb65146103e65780634fcd244614610406578063590ffdce14610425575f80fd5b806321d37e39116101f057806321d37e391461030757806323b872dd1461033957806327a14fc214610358578063313ce567146103795780633c090c461461038c575f80fd5b806306fdde031461022b578063095ea7b3146102725780631694505e146102a157806318160ddd146102e0575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5060408051808201909152600d81526c0c1e119d5d1d5c995cc8109bdd609a1b60208201525b60405161026991906121b4565b60405180910390f35b34801561027d575f80fd5b5061029161028c36600461221a565b61075d565b6040519015158152602001610269565b3480156102ac575f80fd5b506102c8737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610269565b3480156102eb575f80fd5b506a084595161401484a0000005b604051908152602001610269565b348015610312575f80fd5b5060065461032790600160b01b900460ff1681565b60405160ff9091168152602001610269565b348015610344575f80fd5b50610291610353366004612242565b610773565b348015610363575f80fd5b5061037761037236600461227b565b610827565b005b348015610384575f80fd5b506012610327565b348015610397575f80fd5b506103776103a63660046122a2565b61090a565b610377610a12565b3480156103be575f80fd5b506102c87f000000000000000000000000000000000000000000000000000000000000000081565b3480156103f1575f80fd5b5060065461029190600160d01b900460ff1681565b348015610411575f80fd5b506103776104203660046122e2565b610b48565b348015610430575f80fd5b5061037761043f366004612313565b610c81565b34801561044f575f80fd5b5061037761045e36600461227b565b610ce3565b34801561046e575f80fd5b5061037761047d366004612313565b610e40565b34801561048d575f80fd5b5060065461032790600160a81b900460ff1681565b3480156104ad575f80fd5b506102f96104bc36600461234c565b6001600160a01b03165f9081526007602052604090205490565b3480156104e1575f80fd5b50610377610ea2565b3480156104f5575f80fd5b5061037761050436600461227b565b610eeb565b348015610514575f80fd5b50610377610fd3565b348015610528575f80fd5b5061037761053736600461234c565b61101a565b348015610547575f80fd5b5061037761055636600461234c565b6110e9565b348015610566575f80fd5b5061029161057536600461234c565b6001600160a01b03165f9081526009602052604090205460ff1690565b34801561059d575f80fd5b505f546001600160a01b03166102c8565b3480156105b9575f80fd5b5060408051808201909152600981526830784675747572657360b81b602082015261025c565b3480156105ea575f80fd5b506103776105f9366004612313565b611169565b348015610609575f80fd5b5061029161061836600461221a565b61124c565b348015610628575f80fd5b5061037761063736600461234c565b611258565b348015610647575f80fd5b506102f960015481565b34801561065c575f80fd5b5060065461032790600160b81b900460ff1681565b34801561067c575f80fd5b5061037761068b36600461234c565b6112d8565b34801561069b575f80fd5b5060065461032790600160c01b900460ff1681565b3480156106bb575f80fd5b5060065461032790600160a01b900460ff1681565b3480156106db575f80fd5b506102f96106ea36600461236c565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b34801561071f575f80fd5b506102f960035481565b348015610734575f80fd5b50610377610743366004612464565b6113ef565b348015610753575f80fd5b506102f960025481565b5f610769338484611629565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19811461081157828110156108045760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108118533858403611629565b61081c85858561174c565b506001949350505050565b336108395f546001600160a01b031690565b6001600160a01b03161461085f5760405162461bcd60e51b81526004016107fb9061251e565b670de0b6b3a76400006103e86108816a084595161401484a0000006001612567565b61088b919061257e565b610895919061257e565b8110156108f25760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b60648201526084016107fb565b61090481670de0b6b3a7640000612567565b60025550565b3361091c5f546001600160a01b031690565b6001600160a01b0316146109425760405162461bcd60e51b81526004016107fb9061251e565b6006805461ffff60b01b1916600160b01b60ff868116820260ff60b81b191692909217600160b81b86841681029190911760ff60c01b1916600160c01b8685168102919091179485905584048316936109a39391810482169290041661259d565b6109ad919061259d565b60ff16606414610a0d5760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b60648201526084016107fb565b505050565b33610a245f546001600160a01b031690565b6001600160a01b031614610a4a5760405162461bcd60e51b81526004016107fb9061251e565b600654600160d81b900460ff1615610a975760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b60448201526064016107fb565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af1158015610b23573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a0d91906125b6565b33610b5a5f546001600160a01b031690565b6001600160a01b031614610b805760405162461bcd60e51b81526004016107fb9061251e565b60328260ff161115610be65760405162461bcd60e51b815260206004820152602960248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526875616c20746f20352560b81b60648201526084016107fb565b60328160ff161115610c4d5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f7220656044820152697175616c20746f20352560b01b60648201526084016107fb565b6006805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610c935f546001600160a01b031690565b6001600160a01b031614610cb95760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610cf55f546001600160a01b031690565b6001600160a01b031614610d1b5760405162461bcd60e51b81526004016107fb9061251e565b620186a0610d356a084595161401484a0000006001612567565b610d3f919061257e565b811015610dac5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b60648201526084016107fb565b6103e8610dc56a084595161401484a0000006005612567565b610dcf919061257e565b811115610e3b5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b60648201526084016107fb565b600355565b33610e525f546001600160a01b031690565b6001600160a01b031614610e785760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610eb45f546001600160a01b031690565b6001600160a01b031614610eda5760405162461bcd60e51b81526004016107fb9061251e565b5f80546001600160a01b0319169055565b33610efd5f546001600160a01b031690565b6001600160a01b031614610f235760405162461bcd60e51b81526004016107fb9061251e565b670de0b6b3a76400006103e8610f456a084595161401484a0000006001612567565b610f4f919061257e565b610f59919061257e565b811015610fbb5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b60648201526084016107fb565b610fcd81670de0b6b3a7640000612567565b60015550565b33610fe55f546001600160a01b031690565b6001600160a01b03161461100b5760405162461bcd60e51b81526004016107fb9061251e565b6006805460ff60d01b19169055565b3361102c5f546001600160a01b031690565b6001600160a01b0316146110525760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b0381166110785760405162461bcd60e51b81526004016107fb906125e1565b803b156110c75760405162461bcd60e51b815260206004820152601a60248201527f416464726573732063616e6e6f7420626520636f6e747261637400000000000060448201526064016107fb565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b336110fb5f546001600160a01b031690565b6001600160a01b0316146111215760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b0381166111475760405162461bcd60e51b81526004016107fb906125e1565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b3361117b5f546001600160a01b031690565b6001600160a01b0316146111a15760405162461bcd60e51b81526004016107fb9061251e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036112225760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f76656400000000000060448201526064016107fb565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f61076933848461174c565b3361126a5f546001600160a01b031690565b6001600160a01b0316146112905760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b0381166112b65760405162461bcd60e51b81526004016107fb906125e1565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336112ea5f546001600160a01b031690565b6001600160a01b0316146113105760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b0381166113585760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016107fb565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f81146113a1576040519150601f19603f3d011682016040523d82523d5f602084013e6113a6565b606091505b50509050806113eb5760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b60448201526064016107fb565b5050565b336114015f546001600160a01b031690565b6001600160a01b0316146114275760405162461bcd60e51b81526004016107fb9061251e565b600654600160d81b900460ff16156114745760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b60448201526064016107fb565b5f5b8251811015610a0d5781818151811061149157611491612611565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205410156114db5760405162461bcd60e51b81526004016107fb90612625565b8181815181106114ed576114ed612611565b602002602001015160075f85848151811061150a5761150a612611565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f82825461153f919061266b565b9250508190555081818151811061155857611558612611565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f828254611591919061267e565b925050819055508281815181106115aa576115aa612611565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484815181106115f8576115f8612611565b602002602001015160405161160f91815260200190565b60405180910390a38061162181612691565b915050611476565b6001600160a01b03831661168b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107fb565b6001600160a01b0382166116ec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107fb565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117b05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107fb565b6001600160a01b0382166118125760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107fb565b5f81116118735760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107fb565b600654600160d81b900460ff161580156118c757505f546001600160a01b038481169116148015906118ae57506001600160a01b0383163014155b80156118c757505f546001600160a01b03838116911614155b1561190a5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107fb565b600654600160d01b900460ff1615611bcb575f546001600160a01b0384811691161480159061194657505f546001600160a01b03838116911614155b801561195a57506001600160a01b03821615155b801561197157506001600160a01b03821661dead14155b80156119875750600654600160c81b900460ff16155b15611bcb576001600160a01b0383165f908152600b602052604090205460ff1680156119cb57506001600160a01b0382165f908152600a602052604090205460ff16155b15611a9e57600154811115611a305760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b60648201526084016107fb565b6002546001600160a01b0383165f90815260076020526040902054611a55908361266b565b1115611a995760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107fb565b611bcb565b6001600160a01b0382165f908152600b602052604090205460ff168015611add57506001600160a01b0383165f908152600a602052604090205460ff16155b15611b4357600154811115611a995760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b60648201526084016107fb565b6001600160a01b0382165f908152600a602052604090205460ff16611bcb576002546001600160a01b0383165f90815260076020526040902054611b87908361266b565b1115611bcb5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107fb565b600354305f90815260076020526040902054108015908190611bf75750600654600160c81b900460ff16155b8015611c1b57506001600160a01b0384165f908152600b602052604090205460ff16155b8015611c3f57506001600160a01b0384165f9081526009602052604090205460ff16155b8015611c6357506001600160a01b0383165f9081526009602052604090205460ff16155b15611c91576006805460ff60c81b1916600160c81b179055611c83611ec5565b6006805460ff60c81b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160c81b909204821615911680611cdd57506001600160a01b0384165f9081526009602052604090205460ff165b15611ce557505f5b6001600160a01b0385165f9081526007602052604090205483811015611d1d5760405162461bcd60e51b81526004016107fb90612625565b5f8215611e53576001600160a01b0386165f908152600b602052604090205460ff168015611d565750600654600160a81b900460ff1615155b15611d87576006546103e890611d7690600160a81b900460ff1687612567565b611d80919061257e565b9050611de6565b6001600160a01b0387165f908152600b602052604090205460ff168015611db95750600654600160a01b900460ff1615155b15611de6576006546103e890611dd990600160a01b900460ff1687612567565b611de3919061257e565b90505b8015611e53576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611eb49089815260200190565b60405180910390a350505050505050565b6003545f611ed4826014612567565b305f908152600760205260409020541115611efa57600354611ef7906014612567565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611f2d57611f2d612611565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611f7557611f75612611565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790611fcc9086905f908690309042906004016126a9565b5f604051808303815f87803b158015611fe3575f80fd5b505af1158015611ff5573d5f803e3d5ffd5b5047925050811590506121ae576006545f9060649061201e90600160b01b900460ff1684612567565b612028919061257e565b6006549091505f9060649061204790600160c01b900460ff1685612567565b612051919061257e565b90505f8161205f848661267e565b612069919061267e565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146120b4576040519150601f19603f3d011682016040523d82523d5f602084013e6120b9565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f8114612106576040519150601f19603f3d011682016040523d82523d5f602084013e61210b565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f8114612158576040519150601f19603f3d011682016040523d82523d5f602084013e61215d565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f6020808352835180828501525f5b818110156121df578581018301518582016040015282016121c3565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114612215575f80fd5b919050565b5f806040838503121561222b575f80fd5b612234836121ff565b946020939093013593505050565b5f805f60608486031215612254575f80fd5b61225d846121ff565b925061226b602085016121ff565b9150604084013590509250925092565b5f6020828403121561228b575f80fd5b5035919050565b803560ff81168114612215575f80fd5b5f805f606084860312156122b4575f80fd5b6122bd84612292565b92506122cb60208501612292565b91506122d960408501612292565b90509250925092565b5f80604083850312156122f3575f80fd5b6122fc83612292565b915061230a60208401612292565b90509250929050565b5f8060408385031215612324575f80fd5b61232d836121ff565b915060208301358015158114612341575f80fd5b809150509250929050565b5f6020828403121561235c575f80fd5b612365826121ff565b9392505050565b5f806040838503121561237d575f80fd5b612386836121ff565b915061230a602084016121ff565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156123d1576123d1612394565b604052919050565b5f67ffffffffffffffff8211156123f2576123f2612394565b5060051b60200190565b5f82601f83011261240b575f80fd5b8135602061242061241b836123d9565b6123a8565b82815260059290921b8401810191818101908684111561243e575f80fd5b8286015b848110156124595780358352918301918301612442565b509695505050505050565b5f8060408385031215612475575f80fd5b823567ffffffffffffffff8082111561248c575f80fd5b818501915085601f83011261249f575f80fd5b813560206124af61241b836123d9565b82815260059290921b840181019181810190898411156124cd575f80fd5b948201945b838610156124f2576124e3866121ff565b825294820194908201906124d2565b96505086013592505080821115612507575f80fd5b50612514858286016123fc565b9150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761076d5761076d612553565b5f8261259857634e487b7160e01b5f52601260045260245ffd5b500490565b60ff818116838216019081111561076d5761076d612553565b5f805f606084860312156125c8575f80fd5b8351925060208401519150604084015190509250925092565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b8082018082111561076d5761076d612553565b8181038181111561076d5761076d612553565b5f600182016126a2576126a2612553565b5060010190565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156126f75784516001600160a01b0316835293830193918301916001016126d2565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220614346de168a7bf8733a65b39758ed11732d6e6b3896d3cf1bf2bdd4aa2345b864736f6c634300081500334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x608060405260043610610220575f3560e01c806374010ece1161011e578063adfa29e5116100a8578063d85ba0631161006d578063d85ba063146106b0578063dd62ed3e146106d0578063e2f4560514610714578063e710794714610729578063f8b45b0514610748575f80fd5b8063adfa29e51461061d578063c8c8ebe41461063c578063cc32d17614610651578063d201b01e14610671578063d7c94efd14610690575f80fd5b806385ecafd7116100ee57806385ecafd71461055b5780638da5cb5b1461059257806395d89b41146105ae5780639a7a23d6146105df578063a9059cbb146105fe575f80fd5b806374010ece146104ea578063751039fc146105095780637cb332bb1461051d578063809d458d1461053c575f80fd5b80633cf93386116101aa5780636402511e1161016f5780636402511e1461044457806366650dae146104635780636a486a8e1461048257806370a08231146104a2578063715018a6146104d6575f80fd5b80633cf93386146103ab57806349bd5a5e146103b35780634a62bb65146103e65780634fcd244614610406578063590ffdce14610425575f80fd5b806321d37e39116101f057806321d37e391461030757806323b872dd1461033957806327a14fc214610358578063313ce567146103795780633c090c461461038c575f80fd5b806306fdde031461022b578063095ea7b3146102725780631694505e146102a157806318160ddd146102e0575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5060408051808201909152600d81526c0c1e119d5d1d5c995cc8109bdd609a1b60208201525b60405161026991906121b4565b60405180910390f35b34801561027d575f80fd5b5061029161028c36600461221a565b61075d565b6040519015158152602001610269565b3480156102ac575f80fd5b506102c8737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610269565b3480156102eb575f80fd5b506a084595161401484a0000005b604051908152602001610269565b348015610312575f80fd5b5060065461032790600160b01b900460ff1681565b60405160ff9091168152602001610269565b348015610344575f80fd5b50610291610353366004612242565b610773565b348015610363575f80fd5b5061037761037236600461227b565b610827565b005b348015610384575f80fd5b506012610327565b348015610397575f80fd5b506103776103a63660046122a2565b61090a565b610377610a12565b3480156103be575f80fd5b506102c87f000000000000000000000000126144e59afa9f39f9bedbee765e6f5d42ff391a81565b3480156103f1575f80fd5b5060065461029190600160d01b900460ff1681565b348015610411575f80fd5b506103776104203660046122e2565b610b48565b348015610430575f80fd5b5061037761043f366004612313565b610c81565b34801561044f575f80fd5b5061037761045e36600461227b565b610ce3565b34801561046e575f80fd5b5061037761047d366004612313565b610e40565b34801561048d575f80fd5b5060065461032790600160a81b900460ff1681565b3480156104ad575f80fd5b506102f96104bc36600461234c565b6001600160a01b03165f9081526007602052604090205490565b3480156104e1575f80fd5b50610377610ea2565b3480156104f5575f80fd5b5061037761050436600461227b565b610eeb565b348015610514575f80fd5b50610377610fd3565b348015610528575f80fd5b5061037761053736600461234c565b61101a565b348015610547575f80fd5b5061037761055636600461234c565b6110e9565b348015610566575f80fd5b5061029161057536600461234c565b6001600160a01b03165f9081526009602052604090205460ff1690565b34801561059d575f80fd5b505f546001600160a01b03166102c8565b3480156105b9575f80fd5b5060408051808201909152600981526830784675747572657360b81b602082015261025c565b3480156105ea575f80fd5b506103776105f9366004612313565b611169565b348015610609575f80fd5b5061029161061836600461221a565b61124c565b348015610628575f80fd5b5061037761063736600461234c565b611258565b348015610647575f80fd5b506102f960015481565b34801561065c575f80fd5b5060065461032790600160b81b900460ff1681565b34801561067c575f80fd5b5061037761068b36600461234c565b6112d8565b34801561069b575f80fd5b5060065461032790600160c01b900460ff1681565b3480156106bb575f80fd5b5060065461032790600160a01b900460ff1681565b3480156106db575f80fd5b506102f96106ea36600461236c565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b34801561071f575f80fd5b506102f960035481565b348015610734575f80fd5b50610377610743366004612464565b6113ef565b348015610753575f80fd5b506102f960025481565b5f610769338484611629565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19811461081157828110156108045760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108118533858403611629565b61081c85858561174c565b506001949350505050565b336108395f546001600160a01b031690565b6001600160a01b03161461085f5760405162461bcd60e51b81526004016107fb9061251e565b670de0b6b3a76400006103e86108816a084595161401484a0000006001612567565b61088b919061257e565b610895919061257e565b8110156108f25760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b60648201526084016107fb565b61090481670de0b6b3a7640000612567565b60025550565b3361091c5f546001600160a01b031690565b6001600160a01b0316146109425760405162461bcd60e51b81526004016107fb9061251e565b6006805461ffff60b01b1916600160b01b60ff868116820260ff60b81b191692909217600160b81b86841681029190911760ff60c01b1916600160c01b8685168102919091179485905584048316936109a39391810482169290041661259d565b6109ad919061259d565b60ff16606414610a0d5760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b60648201526084016107fb565b505050565b33610a245f546001600160a01b031690565b6001600160a01b031614610a4a5760405162461bcd60e51b81526004016107fb9061251e565b600654600160d81b900460ff1615610a975760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b60448201526064016107fb565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af1158015610b23573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a0d91906125b6565b33610b5a5f546001600160a01b031690565b6001600160a01b031614610b805760405162461bcd60e51b81526004016107fb9061251e565b60328260ff161115610be65760405162461bcd60e51b815260206004820152602960248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526875616c20746f20352560b81b60648201526084016107fb565b60328160ff161115610c4d5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f7220656044820152697175616c20746f20352560b01b60648201526084016107fb565b6006805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610c935f546001600160a01b031690565b6001600160a01b031614610cb95760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610cf55f546001600160a01b031690565b6001600160a01b031614610d1b5760405162461bcd60e51b81526004016107fb9061251e565b620186a0610d356a084595161401484a0000006001612567565b610d3f919061257e565b811015610dac5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b60648201526084016107fb565b6103e8610dc56a084595161401484a0000006005612567565b610dcf919061257e565b811115610e3b5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b60648201526084016107fb565b600355565b33610e525f546001600160a01b031690565b6001600160a01b031614610e785760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610eb45f546001600160a01b031690565b6001600160a01b031614610eda5760405162461bcd60e51b81526004016107fb9061251e565b5f80546001600160a01b0319169055565b33610efd5f546001600160a01b031690565b6001600160a01b031614610f235760405162461bcd60e51b81526004016107fb9061251e565b670de0b6b3a76400006103e8610f456a084595161401484a0000006001612567565b610f4f919061257e565b610f59919061257e565b811015610fbb5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b60648201526084016107fb565b610fcd81670de0b6b3a7640000612567565b60015550565b33610fe55f546001600160a01b031690565b6001600160a01b03161461100b5760405162461bcd60e51b81526004016107fb9061251e565b6006805460ff60d01b19169055565b3361102c5f546001600160a01b031690565b6001600160a01b0316146110525760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b0381166110785760405162461bcd60e51b81526004016107fb906125e1565b803b156110c75760405162461bcd60e51b815260206004820152601a60248201527f416464726573732063616e6e6f7420626520636f6e747261637400000000000060448201526064016107fb565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b336110fb5f546001600160a01b031690565b6001600160a01b0316146111215760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b0381166111475760405162461bcd60e51b81526004016107fb906125e1565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b3361117b5f546001600160a01b031690565b6001600160a01b0316146111a15760405162461bcd60e51b81526004016107fb9061251e565b7f000000000000000000000000126144e59afa9f39f9bedbee765e6f5d42ff391a6001600160a01b0316826001600160a01b0316036112225760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f76656400000000000060448201526064016107fb565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f61076933848461174c565b3361126a5f546001600160a01b031690565b6001600160a01b0316146112905760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b0381166112b65760405162461bcd60e51b81526004016107fb906125e1565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336112ea5f546001600160a01b031690565b6001600160a01b0316146113105760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b0381166113585760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016107fb565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f81146113a1576040519150601f19603f3d011682016040523d82523d5f602084013e6113a6565b606091505b50509050806113eb5760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b60448201526064016107fb565b5050565b336114015f546001600160a01b031690565b6001600160a01b0316146114275760405162461bcd60e51b81526004016107fb9061251e565b600654600160d81b900460ff16156114745760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b60448201526064016107fb565b5f5b8251811015610a0d5781818151811061149157611491612611565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205410156114db5760405162461bcd60e51b81526004016107fb90612625565b8181815181106114ed576114ed612611565b602002602001015160075f85848151811061150a5761150a612611565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f82825461153f919061266b565b9250508190555081818151811061155857611558612611565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f828254611591919061267e565b925050819055508281815181106115aa576115aa612611565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484815181106115f8576115f8612611565b602002602001015160405161160f91815260200190565b60405180910390a38061162181612691565b915050611476565b6001600160a01b03831661168b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107fb565b6001600160a01b0382166116ec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107fb565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117b05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107fb565b6001600160a01b0382166118125760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107fb565b5f81116118735760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107fb565b600654600160d81b900460ff161580156118c757505f546001600160a01b038481169116148015906118ae57506001600160a01b0383163014155b80156118c757505f546001600160a01b03838116911614155b1561190a5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107fb565b600654600160d01b900460ff1615611bcb575f546001600160a01b0384811691161480159061194657505f546001600160a01b03838116911614155b801561195a57506001600160a01b03821615155b801561197157506001600160a01b03821661dead14155b80156119875750600654600160c81b900460ff16155b15611bcb576001600160a01b0383165f908152600b602052604090205460ff1680156119cb57506001600160a01b0382165f908152600a602052604090205460ff16155b15611a9e57600154811115611a305760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b60648201526084016107fb565b6002546001600160a01b0383165f90815260076020526040902054611a55908361266b565b1115611a995760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107fb565b611bcb565b6001600160a01b0382165f908152600b602052604090205460ff168015611add57506001600160a01b0383165f908152600a602052604090205460ff16155b15611b4357600154811115611a995760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b60648201526084016107fb565b6001600160a01b0382165f908152600a602052604090205460ff16611bcb576002546001600160a01b0383165f90815260076020526040902054611b87908361266b565b1115611bcb5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107fb565b600354305f90815260076020526040902054108015908190611bf75750600654600160c81b900460ff16155b8015611c1b57506001600160a01b0384165f908152600b602052604090205460ff16155b8015611c3f57506001600160a01b0384165f9081526009602052604090205460ff16155b8015611c6357506001600160a01b0383165f9081526009602052604090205460ff16155b15611c91576006805460ff60c81b1916600160c81b179055611c83611ec5565b6006805460ff60c81b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160c81b909204821615911680611cdd57506001600160a01b0384165f9081526009602052604090205460ff165b15611ce557505f5b6001600160a01b0385165f9081526007602052604090205483811015611d1d5760405162461bcd60e51b81526004016107fb90612625565b5f8215611e53576001600160a01b0386165f908152600b602052604090205460ff168015611d565750600654600160a81b900460ff1615155b15611d87576006546103e890611d7690600160a81b900460ff1687612567565b611d80919061257e565b9050611de6565b6001600160a01b0387165f908152600b602052604090205460ff168015611db95750600654600160a01b900460ff1615155b15611de6576006546103e890611dd990600160a01b900460ff1687612567565b611de3919061257e565b90505b8015611e53576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611eb49089815260200190565b60405180910390a350505050505050565b6003545f611ed4826014612567565b305f908152600760205260409020541115611efa57600354611ef7906014612567565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611f2d57611f2d612611565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611f7557611f75612611565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790611fcc9086905f908690309042906004016126a9565b5f604051808303815f87803b158015611fe3575f80fd5b505af1158015611ff5573d5f803e3d5ffd5b5047925050811590506121ae576006545f9060649061201e90600160b01b900460ff1684612567565b612028919061257e565b6006549091505f9060649061204790600160c01b900460ff1685612567565b612051919061257e565b90505f8161205f848661267e565b612069919061267e565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146120b4576040519150601f19603f3d011682016040523d82523d5f602084013e6120b9565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f8114612106576040519150601f19603f3d011682016040523d82523d5f602084013e61210b565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f8114612158576040519150601f19603f3d011682016040523d82523d5f602084013e61215d565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f6020808352835180828501525f5b818110156121df578581018301518582016040015282016121c3565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114612215575f80fd5b919050565b5f806040838503121561222b575f80fd5b612234836121ff565b946020939093013593505050565b5f805f60608486031215612254575f80fd5b61225d846121ff565b925061226b602085016121ff565b9150604084013590509250925092565b5f6020828403121561228b575f80fd5b5035919050565b803560ff81168114612215575f80fd5b5f805f606084860312156122b4575f80fd5b6122bd84612292565b92506122cb60208501612292565b91506122d960408501612292565b90509250925092565b5f80604083850312156122f3575f80fd5b6122fc83612292565b915061230a60208401612292565b90509250929050565b5f8060408385031215612324575f80fd5b61232d836121ff565b915060208301358015158114612341575f80fd5b809150509250929050565b5f6020828403121561235c575f80fd5b612365826121ff565b9392505050565b5f806040838503121561237d575f80fd5b612386836121ff565b915061230a602084016121ff565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156123d1576123d1612394565b604052919050565b5f67ffffffffffffffff8211156123f2576123f2612394565b5060051b60200190565b5f82601f83011261240b575f80fd5b8135602061242061241b836123d9565b6123a8565b82815260059290921b8401810191818101908684111561243e575f80fd5b8286015b848110156124595780358352918301918301612442565b509695505050505050565b5f8060408385031215612475575f80fd5b823567ffffffffffffffff8082111561248c575f80fd5b818501915085601f83011261249f575f80fd5b813560206124af61241b836123d9565b82815260059290921b840181019181810190898411156124cd575f80fd5b948201945b838610156124f2576124e3866121ff565b825294820194908201906124d2565b96505086013592505080821115612507575f80fd5b50612514858286016123fc565b9150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761076d5761076d612553565b5f8261259857634e487b7160e01b5f52601260045260245ffd5b500490565b60ff818116838216019081111561076d5761076d612553565b5f805f606084860312156125c8575f80fd5b8351925060208401519150604084015190509250925092565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b8082018082111561076d5761076d612553565b8181038181111561076d5761076d612553565b5f600182016126a2576126a2612553565b5060010190565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156126f75784516001600160a01b0316835293830193918301916001016126d2565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220614346de168a7bf8733a65b39758ed11732d6e6b3896d3cf1bf2bdd4aa2345b864736f6c63430008150033

Deployed Bytecode Sourcemap

1916:13298:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5402:83;;;;;;;;;;-1:-1:-1;5472:5:0;;;;;;;;;;;;-1:-1:-1;;;5472:5:0;;;;5402:83;;;;;;;:::i;:::-;;;;;;;;6031:152;;;;;;;;;;-1:-1:-1;6031:152:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;6031:152:0;1004:187:1;3507:115:0;;;;;;;;;;;;3579:42;3507:115;;;;;-1:-1:-1;;;;;1386:32:1;;;1368:51;;1356:2;1341:18;3507:115:0;1196:229:1;5672:91:0;;;;;;;;;;-1:-1:-1;2116:17:0;5672:91;;;1576:25:1;;;1564:2;1549:18;5672:91:0;1430:177:1;2717:24:0;;;;;;;;;;-1:-1:-1;2717:24:0;;;;-1:-1:-1;;;2717:24:0;;;;;;;;;1784:4:1;1772:17;;;1754:36;;1742:2;1727:18;2717:24:0;1612:184:1;6702:520:0;;;;;;;;;;-1:-1:-1;6702:520:0;;;;;:::i;:::-;;:::i;12650:235::-;;;;;;;;;;-1:-1:-1;12650:235:0;;;;;:::i;:::-;;:::i;:::-;;5588:76;;;;;;;;;;-1:-1:-1;5654:2:0;5588:76;;10007:300;;;;;;;;;;-1:-1:-1;10007:300:0;;;;;:::i;:::-;;:::i;11470:340::-;;;:::i;3629:38::-;;;;;;;;;;;;;;;2846:33;;;;;;;;;;-1:-1:-1;2846:33:0;;;;-1:-1:-1;;;2846:33:0;;;;;;10315:337;;;;;;;;;;-1:-1:-1;10315:337:0;;;;;:::i;:::-;;:::i;10660:136::-;;;;;;;;;;-1:-1:-1;10660:136:0;;;;;:::i;:::-;;:::i;12037:361::-;;;;;;;;;;-1:-1:-1;12037:361:0;;;;;:::i;:::-;;:::i;10804:158::-;;;;;;;;;;-1:-1:-1;10804:158:0;;;;;:::i;:::-;;:::i;2677:31::-;;;;;;;;;;-1:-1:-1;2677:31:0;;;;-1:-1:-1;;;2677:31:0;;;;;;5771:110;;;;;;;;;;-1:-1:-1;5771:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;5855:18:0;5828:7;5855:18;;;:9;:18;;;;;;;5771:110;613:92;;;;;;;;;;;;;:::i;12406:236::-;;;;;;;;;;-1:-1:-1;12406:236:0;;;;;:::i;:::-;;:::i;9915:84::-;;;;;;;;;;;;;:::i;13269:258::-;;;;;;;;;;-1:-1:-1;13269:258:0;;;;;:::i;:::-;;:::i;13076:185::-;;;;;;;;;;-1:-1:-1;13076:185:0;;;;;:::i;:::-;;:::i;13535:123::-;;;;;;;;;;-1:-1:-1;13535:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;13622:28:0;13598:4;13622:28;;;:19;:28;;;;;;;;;13535:123;392:87;;;;;;;;;;-1:-1:-1;438:7:0;465:6;-1:-1:-1;;;;;465:6:0;392:87;;5493;;;;;;;;;;-1:-1:-1;5565:7:0;;;;;;;;;;;;-1:-1:-1;;;5565:7:0;;;;5493:87;;11818:211;;;;;;;;;;-1:-1:-1;11818:211:0;;;;;:::i;:::-;;:::i;6536:158::-;;;;;;;;;;-1:-1:-1;6536:158:0;;;;;:::i;:::-;;:::i;12893:175::-;;;;;;;;;;-1:-1:-1;12893:175:0;;;;;:::i;:::-;;:::i;2142:52::-;;;;;;;;;;;;;;;;2748:29;;;;;;;;;;-1:-1:-1;2748:29:0;;;;-1:-1:-1;;;2748:29:0;;;;;;13666:247;;;;;;;;;;-1:-1:-1;13666:247:0;;;;;:::i;:::-;;:::i;2784:25::-;;;;;;;;;;-1:-1:-1;2784:25:0;;;;-1:-1:-1;;;2784:25:0;;;;;;2640:30;;;;;;;;;;-1:-1:-1;2640:30:0;;;;-1:-1:-1;;;2640:30:0;;;;;;5889:134;;;;;;;;;;-1:-1:-1;5889:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;5988:18:0;;;5961:7;5988:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5889:134;2249:62;;;;;;;;;;;;;;;;10970:492;;;;;;;;;;-1:-1:-1;10970:492:0;;;;;:::i;:::-;;:::i;2201:41::-;;;;;;;;;;;;;;;;6031:152;6099:4;6116:37;6125:10;6137:7;6146:6;6116:8;:37::i;:::-;-1:-1:-1;6171:4:0;6031:152;;;;;:::o;6702:520::-;-1:-1:-1;;;;;6837:19:0;;6793:4;6837:19;;;:11;:19;;;;;;;;6857:10;6837:31;;;;;;;;-1:-1:-1;;6883:37:0;;6879:263;;6965:6;6945:16;:26;;6937:79;;;;-1:-1:-1;;;6937:79:0;;6700:2:1;6937:79:0;;;6682:21:1;6739:2;6719:18;;;6712:30;6778:34;6758:18;;;6751:62;-1:-1:-1;;;6829:18:1;;;6822:38;6877:19;;6937:79:0;;;;;;;;;7060:55;7069:6;7077:10;7108:6;7089:16;:25;7060:8;:55::i;:::-;7154:36;7164:6;7172:9;7183:6;7154:9;:36::i;:::-;-1:-1:-1;7210:4:0;;6702:520;-1:-1:-1;;;;6702:520:0:o;12650:235::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;12785:4:::1;12777;12756:17;2116::::0;12772:1:::1;12756:17;:::i;:::-;12755:26;;;;:::i;:::-;12754:35;;;;:::i;:::-;12738:12;:51;;12730:101;;;::::0;-1:-1:-1;;;12730:101:0;;7997:2:1;12730:101:0::1;::::0;::::1;7979:21:1::0;8036:2;8016:18;;;8009:30;8075:34;8055:18;;;8048:62;-1:-1:-1;;;8126:18:1;;;8119:35;8171:19;;12730:101:0::1;7795:401:1::0;12730:101:0::1;12854:23;:12:::0;12870:6:::1;12854:23;:::i;:::-;12842:9;:35:::0;-1:-1:-1;12650:235:0:o;10007:300::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;10117:6:::1;:16:::0;;-1:-1:-1;;;;10144:26:0;-1:-1:-1;;;10117:16:0::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;;;10144:26:0;;;;;-1:-1:-1;;;10144:26:0;;::::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;;;;10181:18:0::1;-1:-1:-1::0;;;10181:18:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;10242:7;::::1;::::0;::::1;::::0;10219:20:::1;::::0;10228:11;;::::1;::::0;::::1;::::0;10219:6;::::1;;:20;:::i;:::-;:30;;;;:::i;:::-;10218:39;;10254:3;10218:39;10210:89;;;::::0;-1:-1:-1;;;10210:89:0;;8556:2:1;10210:89:0::1;::::0;::::1;8538:21:1::0;8595:2;8575:18;;;8568:30;8634:34;8614:18;;;8607:62;-1:-1:-1;;;8685:18:1;;;8678:35;8730:19;;10210:89:0::1;8354:401:1::0;10210:89:0::1;10007:300:::0;;;:::o;11470:340::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;11548:8:::1;::::0;-1:-1:-1;;;11548:8:0;::::1;;;11547:9;11539:38;;;::::0;-1:-1:-1;;;11539:38:0;;8962:2:1;11539:38:0::1;::::0;::::1;8944:21:1::0;9001:2;8981:18;;;8974:30;-1:-1:-1;;;9020:18:1;;;9013:46;9076:18;;11539:38:0::1;8760:340:1::0;11539:38:0::1;11660:4;11680:24;::::0;;;:9:::1;:24;::::0;;;;;;11751:10:::1;::::0;11588:214;;-1:-1:-1;;;11588:214:0;;::::1;::::0;::::1;9446:34:1::0;;;;9496:18;;;9489:34;9539:18;;;9532:34;;;9582:18;;;9575:34;;;;-1:-1:-1;;;;;11751:10:0::1;9625:19:1::0;;;9618:44;11776:15:0::1;9678:19:1::0;;;9671:35;3579:42:0::1;::::0;11588:31:::1;::::0;11627:9:::1;::::0;9380:19:1;;11588:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10315:337::-:0;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;10430:2:::1;10413:13;:19;;;;10405:73;;;::::0;-1:-1:-1;;;10405:73:0;;10230:2:1;10405:73:0::1;::::0;::::1;10212:21:1::0;10269:2;10249:18;;;10242:30;10308:34;10288:18;;;10281:62;-1:-1:-1;;;10359:18:1;;;10352:39;10408:19;;10405:73:0::1;10028:405:1::0;10405:73:0::1;10515:2;10497:14;:20;;;;10489:75;;;::::0;-1:-1:-1;;;10489:75:0;;10640:2:1;10489:75:0::1;::::0;::::1;10622:21:1::0;10679:2;10659:18;;;10652:30;10718:34;10698:18;;;10691:62;-1:-1:-1;;;10769:18:1;;;10762:40;10819:19;;10489:75:0::1;10438:406:1::0;10489:75:0::1;10575:12;:28:::0;;-1:-1:-1;;;;10614:30:0;-1:-1:-1;;;10575:28:0::1;::::0;;::::1;;-1:-1:-1::0;;;;10614:30:0;;-1:-1:-1;;;10614:30:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;10315:337::o;10660:136::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10749:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;10749:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10660:136::o;12037:361::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;12162:6:::1;12141:17;2116::::0;12157:1:::1;12141:17;:::i;:::-;12140:28;;;;:::i;:::-;12123:13;:45;;12115:111;;;::::0;-1:-1:-1;;;12115:111:0;;11051:2:1;12115:111:0::1;::::0;::::1;11033:21:1::0;11090:2;11070:18;;;11063:30;11129:34;11109:18;;;11102:62;-1:-1:-1;;;11180:18:1;;;11173:51;11241:19;;12115:111:0::1;10849:417:1::0;12115:111:0::1;12284:4;12263:17;2116::::0;12279:1:::1;12263:17;:::i;:::-;12262:26;;;;:::i;:::-;12245:13;:43;;12237:108;;;::::0;-1:-1:-1;;;12237:108:0;;11473:2:1;12237:108:0::1;::::0;::::1;11455:21:1::0;11512:2;11492:18;;;11485:30;11551:34;11531:18;;;11524:62;-1:-1:-1;;;11602:18:1;;;11595:50;11662:19;;12237:108:0::1;11271:416:1::0;12237:108:0::1;12356:18;:34:::0;12037:361::o;10804:158::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10903:40:0;;;::::1;;::::0;;;:31:::1;:40;::::0;;;;:51;;-1:-1:-1;;10903:51:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10804:158::o;613:92::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;695:1:::1;678:19:::0;;-1:-1:-1;;;;;;678:19:0::1;::::0;;613:92::o;12406:236::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;12530:4:::1;12522;12501:17;2116::::0;12517:1:::1;12501:17;:::i;:::-;12500:26;;;;:::i;:::-;12499:35;;;;:::i;:::-;12487:8;:47;;12479:102;;;::::0;-1:-1:-1;;;12479:102:0;;11894:2:1;12479:102:0::1;::::0;::::1;11876:21:1::0;11933:2;11913:18;;;11906:30;11972:34;11952:18;;;11945:62;-1:-1:-1;;;12023:18:1;;;12016:40;12073:19;;12479:102:0::1;11692:406:1::0;12479:102:0::1;12615:19;:8:::0;12627:6:::1;12615:19;:::i;:::-;12592:20;:42:::0;-1:-1:-1;12406:236:0:o;9915:84::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;9969:14:::1;:22:::0;;-1:-1:-1;;;;9969:22:0::1;::::0;;9915:84::o;13269:258::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13353:24:0;::::1;13345:59;;;;-1:-1:-1::0;;;13345:59:0::1;;;;;;;:::i;:::-;14034:17:::0;;14070:8;13415:70:::1;;;::::0;-1:-1:-1;;;13415:70:0;;12656:2:1;13415:70:0::1;::::0;::::1;12638:21:1::0;12695:2;12675:18;;;12668:30;12734:28;12714:18;;;12707:56;12780:18;;13415:70:0::1;12454:350:1::0;13415:70:0::1;13496:10;:23:::0;;-1:-1:-1;;;;;;13496:23:0::1;-1:-1:-1::0;;;;;13496:23:0;;;::::1;::::0;;;::::1;::::0;;13269:258::o;13076:185::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13164:24:0;::::1;13156:59;;;;-1:-1:-1::0;;;13156:59:0::1;;;;;;;:::i;:::-;13226:14;:27:::0;;-1:-1:-1;;;;;;13226:27:0::1;-1:-1:-1::0;;;;;13226:27:0;;;::::1;::::0;;;::::1;::::0;;13076:185::o;11818:211::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;11927:13:::1;-1:-1:-1::0;;;;;11919:21:0::1;:4;-1:-1:-1::0;;;;;11919:21:0::1;::::0;11911:60:::1;;;::::0;-1:-1:-1;;;11911:60:0;;13011:2:1;11911:60:0::1;::::0;::::1;12993:21:1::0;13050:2;13030:18;;;13023:30;13089:28;13069:18;;;13062:56;13135:18;;11911:60:0::1;12809:350:1::0;11911:60:0::1;-1:-1:-1::0;;;;;11982:31:0;;;::::1;;::::0;;;:25:::1;:31;::::0;;;;:39;;-1:-1:-1;;11982:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11818:211::o;6536:158::-;6607:4;6624:40;6634:10;6646:9;6657:6;6624:9;:40::i;12893:175::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12976:24:0;::::1;12968:59;;;;-1:-1:-1::0;;;12968:59:0::1;;;;;;;:::i;:::-;13038:9;:22:::0;;-1:-1:-1;;;;;;13038:22:0::1;-1:-1:-1::0;;;;;13038:22:0;;;::::1;::::0;;;::::1;::::0;;12893:175::o;13666:247::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13744:18:0;::::1;13736:46;;;::::0;-1:-1:-1;;;13736:46:0;;13366:2:1;13736:46:0::1;::::0;::::1;13348:21:1::0;13405:2;13385:18;;;13378:30;-1:-1:-1;;;13424:18:1;;;13417:45;13479:18;;13736:46:0::1;13164:339:1::0;13736:46:0::1;13796:12;13814:4;-1:-1:-1::0;;;;;13814:9:0::1;13831:21;13814:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13795:62;;;13876:7;13868:37;;;::::0;-1:-1:-1;;;13868:37:0;;13920:2:1;13868:37:0::1;::::0;::::1;13902:21:1::0;13959:2;13939:18;;;13932:30;-1:-1:-1;;;13978:18:1;;;13971:47;14035:18;;13868:37:0::1;13718:341:1::0;13868:37:0::1;13725:188;13666:247:::0;:::o;10970:492::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;11087:8:::1;::::0;-1:-1:-1;;;11087:8:0;::::1;;;11086:9;11078:38;;;::::0;-1:-1:-1;;;11078:38:0;;8962:2:1;11078:38:0::1;::::0;::::1;8944:21:1::0;9001:2;8981:18;;;8974:30;-1:-1:-1;;;9020:18:1;;;9013:46;9076:18;;11078:38:0::1;8760:340:1::0;11078:38:0::1;11132:9;11127:328;11151:9;:16;11147:1;:20;11127:328;;;11222:7;11230:1;11222:10;;;;;;;;:::i;:::-;;;;;;;11197:9;:21;11207:10;-1:-1:-1::0;;;;;11197:21:0::1;-1:-1:-1::0;;;;;11197:21:0::1;;;;;;;;;;;;;:35;;11189:86;;;;-1:-1:-1::0;;;11189:86:0::1;;;;;;;:::i;:::-;11317:7;11325:1;11317:10;;;;;;;;:::i;:::-;;;;;;;11290:9;:23;11300:9;11310:1;11300:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;11290:23:0::1;-1:-1:-1::0;;;;;11290:23:0::1;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;11367:7;11375:1;11367:10;;;;;;;;:::i;:::-;;;;;;;11342:9;:21;11352:10;-1:-1:-1::0;;;;;11342:21:0::1;-1:-1:-1::0;;;;;11342:21:0::1;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;11418:9;11428:1;11418:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;11397:46:0::1;11406:10;-1:-1:-1::0;;;;;11397:46:0::1;;11432:7;11440:1;11432:10;;;;;;;;:::i;:::-;;;;;;;11397:46;;;;1576:25:1::0;;1564:2;1549:18;;1430:177;11397:46:0::1;;;;;;;;11169:3:::0;::::1;::::0;::::1;:::i;:::-;;;;11127:328;;6191:337:::0;-1:-1:-1;;;;;6284:19:0;;6276:68;;;;-1:-1:-1;;;6276:68:0;;15208:2:1;6276:68:0;;;15190:21:1;15247:2;15227:18;;;15220:30;15286:34;15266:18;;;15259:62;-1:-1:-1;;;15337:18:1;;;15330:34;15381:19;;6276:68:0;15006:400:1;6276:68:0;-1:-1:-1;;;;;6363:21:0;;6355:68;;;;-1:-1:-1;;;6355:68:0;;15613:2:1;6355:68:0;;;15595:21:1;15652:2;15632:18;;;15625:30;15691:34;15671:18;;;15664:62;-1:-1:-1;;;15742:18:1;;;15735:32;15784:19;;6355:68:0;15411:398:1;6355:68:0;-1:-1:-1;;;;;6436:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6488:32;;1576:25:1;;;6488:32:0;;1549:18:1;6488:32:0;;;;;;;6191:337;;;:::o;7230:2677::-;-1:-1:-1;;;;;7318:18:0;;7310:68;;;;-1:-1:-1;;;7310:68:0;;16016:2:1;7310:68:0;;;15998:21:1;16055:2;16035:18;;;16028:30;16094:34;16074:18;;;16067:62;-1:-1:-1;;;16145:18:1;;;16138:35;16190:19;;7310:68:0;15814:401:1;7310:68:0;-1:-1:-1;;;;;7397:16:0;;7389:64;;;;-1:-1:-1;;;7389:64:0;;16422:2:1;7389:64:0;;;16404:21:1;16461:2;16441:18;;;16434:30;16500:34;16480:18;;;16473:62;-1:-1:-1;;;16551:18:1;;;16544:33;16594:19;;7389:64:0;16220:399:1;7389:64:0;7481:1;7472:6;:10;7464:64;;;;-1:-1:-1;;;7464:64:0;;16826:2:1;7464:64:0;;;16808:21:1;16865:2;16845:18;;;16838:30;16904:34;16884:18;;;16877:62;-1:-1:-1;;;16955:18:1;;;16948:39;17004:19;;7464:64:0;16624:405:1;7464:64:0;7546:8;;-1:-1:-1;;;7546:8:0;;;;7545:9;:72;;;;-1:-1:-1;438:7:0;465:6;-1:-1:-1;;;;;7559:15:0;;;465:6;;7559:15;;;;:40;;-1:-1:-1;;;;;;7578:21:0;;7594:4;7578:21;;7559:40;:57;;;;-1:-1:-1;438:7:0;465:6;-1:-1:-1;;;;;7603:13:0;;;465:6;;7603:13;;7559:57;7541:134;;;7634:29;;-1:-1:-1;;;7634:29:0;;17236:2:1;7634:29:0;;;17218:21:1;17275:2;17255:18;;;17248:30;-1:-1:-1;;;17294:18:1;;;17287:49;17353:18;;7634:29:0;17034:343:1;7541:134:0;7691:14;;-1:-1:-1;;;7691:14:0;;;;7687:830;;;438:7;465:6;-1:-1:-1;;;;;7726:15:0;;;465:6;;7726:15;;;;:32;;-1:-1:-1;438:7:0;465:6;-1:-1:-1;;;;;7745:13:0;;;465:6;;7745:13;;7726:32;:52;;;;-1:-1:-1;;;;;;7762:16:0;;;;7726:52;:77;;;;-1:-1:-1;;;;;;7782:21:0;;7796:6;7782:21;;7726:77;:90;;;;-1:-1:-1;7808:8:0;;-1:-1:-1;;;7808:8:0;;;;7807:9;7726:90;7722:784;;;-1:-1:-1;;;;;7841:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;7877:35:0;;;;;;:31;:35;;;;;;;;7876:36;7841:71;7837:654;;;7955:20;;7945:6;:30;;7937:80;;;;-1:-1:-1;;;7937:80:0;;17584:2:1;7937:80:0;;;17566:21:1;17623:2;17603:18;;;17596:30;17662:34;17642:18;;;17635:62;-1:-1:-1;;;17713:18:1;;;17706:35;17758:19;;7937:80:0;17382:401:1;7937:80:0;8074:9;;-1:-1:-1;;;;;5855:18:0;;5828:7;5855:18;;;:9;:18;;;;;;8048:22;;:6;:22;:::i;:::-;:35;;8040:67;;;;-1:-1:-1;;;8040:67:0;;17990:2:1;8040:67:0;;;17972:21:1;18029:2;18009:18;;;18002:30;-1:-1:-1;;;18048:18:1;;;18041:49;18107:18;;8040:67:0;17788:343:1;8040:67:0;7837:654;;;-1:-1:-1;;;;;8137:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;8171:37:0;;;;;;:31;:37;;;;;;;;8170:38;8137:71;8133:358;;;8251:20;;8241:6;:30;;8233:80;;;;-1:-1:-1;;;8233:80:0;;18338:2:1;8233:80:0;;;18320:21:1;18377:2;18357:18;;;18350:30;18416:34;18396:18;;;18389:62;-1:-1:-1;;;18467:18:1;;;18460:36;18513:19;;8233:80:0;18136:402:1;8133:358:0;-1:-1:-1;;;;;8344:35:0;;;;;;:31;:35;;;;;;;;8339:152;;8438:9;;-1:-1:-1;;;;;5855:18:0;;5828:7;5855:18;;;:9;:18;;;;;;8412:22;;:6;:22;:::i;:::-;:35;;8404:67;;;;-1:-1:-1;;;8404:67:0;;17990:2:1;8404:67:0;;;17972:21:1;18029:2;18009:18;;;18002:30;-1:-1:-1;;;18048:18:1;;;18041:49;18107:18;;8404:67:0;17788:343:1;8404:67:0;8572:18;;8562:4;8529:12;5855:18;;;:9;:18;;;;;;-1:-1:-1;8544:46:0;;;;;8607:20;;-1:-1:-1;8619:8:0;;-1:-1:-1;;;8619:8:0;;;;8618:9;8607:20;:56;;;;-1:-1:-1;;;;;;8632:31:0;;;;;;:25;:31;;;;;;;;8631:32;8607:56;:86;;;;-1:-1:-1;;;;;;8668:25:0;;;;;;:19;:25;;;;;;;;8667:26;8607:86;:114;;;;-1:-1:-1;;;;;;8698:23:0;;;;;;:19;:23;;;;;;;;8697:24;8607:114;8603:218;;;8738:8;:15;;-1:-1:-1;;;;8738:15:0;-1:-1:-1;;;8738:15:0;;;8768:10;:8;:10::i;:::-;8793:8;:16;;-1:-1:-1;;;;8793:16:0;;;8603:218;8849:8;;-1:-1:-1;;;;;8874:25:0;;8833:12;8874:25;;;:19;:25;;;;;;8849:8;-1:-1:-1;;;8849:8:0;;;;;8848:9;;8874:25;;:52;;-1:-1:-1;;;;;;8903:23:0;;;;;;:19;:23;;;;;;;;8874:52;8870:100;;;-1:-1:-1;8953:5:0;8870:100;-1:-1:-1;;;;;9006:15:0;;8982:21;9006:15;;;:9;:15;;;;;;9040:23;;;;9032:74;;;;-1:-1:-1;;;9032:74:0;;;;;;;:::i;:::-;9119:12;9150:7;9146:602;;;-1:-1:-1;;;;;9178:29:0;;;;;;:25;:29;;;;;;;;:50;;;;-1:-1:-1;9211:13:0;;-1:-1:-1;;;9211:13:0;;;;:17;;9178:50;9174:264;;;9266:13;;9283:4;;9257:22;;-1:-1:-1;;;9266:13:0;;;;9257:6;:22;:::i;:::-;9256:31;;;;:::i;:::-;9249:38;;9174:264;;;-1:-1:-1;;;;;9313:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;9348:12:0;;-1:-1:-1;;;9348:12:0;;;;:16;;9313:51;9309:129;;;9402:12;;9418:4;;9393:21;;-1:-1:-1;;;9402:12:0;;;;9393:6;:21;:::i;:::-;9392:30;;;;:::i;:::-;9385:37;;9309:129;9458:8;;9454:283;;-1:-1:-1;;;;;9565:15:0;;;;;;:9;:15;;;;;;;;:23;;;;;;;9629:4;9611:24;;;;;;;:32;;;;;;9686:35;1576:25:1;;;9529:13:0;;;;;9629:4;;9565:15;9686:35;;1549:18:1;9686:35:0;;;;;;;9454:283;-1:-1:-1;;;;;9783:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;9823:13;;;;;;;;;;:23;;;;;;9873:26;;;;;;9802:6;1576:25:1;;1564:2;1549:18;;1430:177;9873:26:0;;;;;;;;7299:2608;;;;7230:2677;;;:::o;14094:1117::-;14157:18;;14133:21;14242:23;14157:18;14263:2;14242:23;:::i;:::-;14233:4;5828:7;5855:18;;;:9;:18;;;;;;14215:50;14211:122;;;14298:18;;:23;;14319:2;14298:23;:::i;:::-;14282:39;;14211:122;14369:16;;;14383:1;14369:16;;;;;;;;14345:21;;14369:16;;;;;;;;;;-1:-1:-1;14369:16:0;14345:40;;14414:4;14396;14401:1;14396:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;14396:23:0;;;-1:-1:-1;;;;;14396:23:0;;;;;2589:42;14430:4;14435:1;14430:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14430:14:0;;;:7;;;;;;;;;;;:14;14457:122;;-1:-1:-1;;;14457:122:0;;3579:42;;14457:66;;:122;;14524:13;;14539:1;;14542:4;;14556;;14563:15;;14457:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14613:21:0;;-1:-1:-1;;14649:14:0;;;-1:-1:-1;14645:559:0;;14714:6;;14680:17;;14724:3;;14701:19;;-1:-1:-1;;;14714:6:0;;;;14701:10;:19;:::i;:::-;14700:27;;;;:::i;:::-;14777:7;;14680:47;;-1:-1:-1;14742:18:0;;14788:3;;14764:20;;-1:-1:-1;;;14777:7:0;;;;14764:10;:20;:::i;:::-;14763:28;;;;:::i;:::-;14742:49;-1:-1:-1;14806:22:0;14742:49;14831:22;14844:9;14831:10;:22;:::i;:::-;:35;;;;:::i;:::-;14905:10;;14897:47;;14806:60;;-1:-1:-1;;;;;;14905:10:0;;14929;;14897:47;;;;14929:10;14905;14897:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14981:14:0;;14973:55;;14883:61;;-1:-1:-1;;;;;;14981:14:0;;15009;;14973:55;;;;15009:14;14981;14973:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15065:9:0;;15057:45;;14959:69;;-1:-1:-1;;;;;;15065:9:0;;15088;;15057:45;;;;15088:9;15065;15057:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15124:68:0;;;19759:25:1;;;19815:2;19800:18;;19793:34;;;19843:18;;;19836:34;;;19901:2;19886:18;;19879:34;;;15043:59:0;;-1:-1:-1;15124:68:0;;19746:3:1;19731:19;15124:68:0;;;;;;;14665:539;;;14645:559;14122:1089;;;;14094:1117::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1801:328::-;1878:6;1886;1894;1947:2;1935:9;1926:7;1922:23;1918:32;1915:52;;;1963:1;1960;1953:12;1915:52;1986:29;2005:9;1986:29;:::i;:::-;1976:39;;2034:38;2068:2;2057:9;2053:18;2034:38;:::i;:::-;2024:48;;2119:2;2108:9;2104:18;2091:32;2081:42;;1801:328;;;;;:::o;2134:180::-;2193:6;2246:2;2234:9;2225:7;2221:23;2217:32;2214:52;;;2262:1;2259;2252:12;2214:52;-1:-1:-1;2285:23:1;;2134:180;-1:-1:-1;2134:180:1:o;2319:156::-;2385:20;;2445:4;2434:16;;2424:27;;2414:55;;2465:1;2462;2455:12;2480:322;2551:6;2559;2567;2620:2;2608:9;2599:7;2595:23;2591:32;2588:52;;;2636:1;2633;2626:12;2588:52;2659:27;2676:9;2659:27;:::i;:::-;2649:37;;2705:36;2737:2;2726:9;2722:18;2705:36;:::i;:::-;2695:46;;2760:36;2792:2;2781:9;2777:18;2760:36;:::i;:::-;2750:46;;2480:322;;;;;:::o;3015:252::-;3079:6;3087;3140:2;3128:9;3119:7;3115:23;3111:32;3108:52;;;3156:1;3153;3146:12;3108:52;3179:27;3196:9;3179:27;:::i;:::-;3169:37;;3225:36;3257:2;3246:9;3242:18;3225:36;:::i;:::-;3215:46;;3015:252;;;;;:::o;3272:347::-;3337:6;3345;3398:2;3386:9;3377:7;3373:23;3369:32;3366:52;;;3414:1;3411;3404:12;3366:52;3437:29;3456:9;3437:29;:::i;:::-;3427:39;;3516:2;3505:9;3501:18;3488:32;3563:5;3556:13;3549:21;3542:5;3539:32;3529:60;;3585:1;3582;3575:12;3529:60;3608:5;3598:15;;;3272:347;;;;;:::o;3624:186::-;3683:6;3736:2;3724:9;3715:7;3711:23;3707:32;3704:52;;;3752:1;3749;3742:12;3704:52;3775:29;3794:9;3775:29;:::i;:::-;3765:39;3624:186;-1:-1:-1;;;3624:186:1:o;3815:260::-;3883:6;3891;3944:2;3932:9;3923:7;3919:23;3915:32;3912:52;;;3960:1;3957;3950:12;3912:52;3983:29;4002:9;3983:29;:::i;:::-;3973:39;;4031:38;4065:2;4054:9;4050:18;4031:38;:::i;4080:127::-;4141:10;4136:3;4132:20;4129:1;4122:31;4172:4;4169:1;4162:15;4196:4;4193:1;4186:15;4212:275;4283:2;4277:9;4348:2;4329:13;;-1:-1:-1;;4325:27:1;4313:40;;4383:18;4368:34;;4404:22;;;4365:62;4362:88;;;4430:18;;:::i;:::-;4466:2;4459:22;4212:275;;-1:-1:-1;4212:275:1:o;4492:183::-;4552:4;4585:18;4577:6;4574:30;4571:56;;;4607:18;;:::i;:::-;-1:-1:-1;4652:1:1;4648:14;4664:4;4644:25;;4492:183::o;4680:662::-;4734:5;4787:3;4780:4;4772:6;4768:17;4764:27;4754:55;;4805:1;4802;4795:12;4754:55;4841:6;4828:20;4867:4;4891:60;4907:43;4947:2;4907:43;:::i;:::-;4891:60;:::i;:::-;4985:15;;;5071:1;5067:10;;;;5055:23;;5051:32;;;5016:12;;;;5095:15;;;5092:35;;;5123:1;5120;5113:12;5092:35;5159:2;5151:6;5147:15;5171:142;5187:6;5182:3;5179:15;5171:142;;;5253:17;;5241:30;;5291:12;;;;5204;;5171:142;;;-1:-1:-1;5331:5:1;4680:662;-1:-1:-1;;;;;;4680:662:1:o;5347:1146::-;5465:6;5473;5526:2;5514:9;5505:7;5501:23;5497:32;5494:52;;;5542:1;5539;5532:12;5494:52;5582:9;5569:23;5611:18;5652:2;5644:6;5641:14;5638:34;;;5668:1;5665;5658:12;5638:34;5706:6;5695:9;5691:22;5681:32;;5751:7;5744:4;5740:2;5736:13;5732:27;5722:55;;5773:1;5770;5763:12;5722:55;5809:2;5796:16;5831:4;5855:60;5871:43;5911:2;5871:43;:::i;5855:60::-;5949:15;;;6031:1;6027:10;;;;6019:19;;6015:28;;;5980:12;;;;6055:19;;;6052:39;;;6087:1;6084;6077:12;6052:39;6111:11;;;;6131:148;6147:6;6142:3;6139:15;6131:148;;;6213:23;6232:3;6213:23;:::i;:::-;6201:36;;6164:12;;;;6257;;;;6131:148;;;6298:5;-1:-1:-1;;6341:18:1;;6328:32;;-1:-1:-1;;6372:16:1;;;6369:36;;;6401:1;6398;6391:12;6369:36;;6424:63;6479:7;6468:8;6457:9;6453:24;6424:63;:::i;:::-;6414:73;;;5347:1146;;;;;:::o;6907:356::-;7109:2;7091:21;;;7128:18;;;7121:30;7187:34;7182:2;7167:18;;7160:62;7254:2;7239:18;;6907:356::o;7268:127::-;7329:10;7324:3;7320:20;7317:1;7310:31;7360:4;7357:1;7350:15;7384:4;7381:1;7374:15;7400:168;7473:9;;;7504;;7521:15;;;7515:22;;7501:37;7491:71;;7542:18;;:::i;7573:217::-;7613:1;7639;7629:132;;7683:10;7678:3;7674:20;7671:1;7664:31;7718:4;7715:1;7708:15;7746:4;7743:1;7736:15;7629:132;-1:-1:-1;7775:9:1;;7573:217::o;8201:148::-;8289:4;8268:12;;;8282;;;8264:31;;8307:13;;8304:39;;;8323:18;;:::i;9717:306::-;9805:6;9813;9821;9874:2;9862:9;9853:7;9849:23;9845:32;9842:52;;;9890:1;9887;9880:12;9842:52;9919:9;9913:16;9903:26;;9969:2;9958:9;9954:18;9948:25;9938:35;;10013:2;10002:9;9998:18;9992:25;9982:35;;9717:306;;;;;:::o;12103:346::-;12305:2;12287:21;;;12344:2;12324:18;;;12317:30;-1:-1:-1;;;12378:2:1;12363:18;;12356:52;12440:2;12425:18;;12103:346::o;14064:127::-;14125:10;14120:3;14116:20;14113:1;14106:31;14156:4;14153:1;14146:15;14180:4;14177:1;14170:15;14196:402;14398:2;14380:21;;;14437:2;14417:18;;;14410:30;14476:34;14471:2;14456:18;;14449:62;-1:-1:-1;;;14542:2:1;14527:18;;14520:36;14588:3;14573:19;;14196:402::o;14603:125::-;14668:9;;;14689:10;;;14686:36;;;14702:18;;:::i;14733:128::-;14800:9;;;14821:11;;;14818:37;;;14835:18;;:::i;14866:135::-;14905:3;14926:17;;;14923:43;;14946:18;;:::i;:::-;-1:-1:-1;14993:1:1;14982:13;;14866:135::o;18543:980::-;18805:4;18853:3;18842:9;18838:19;18884:6;18873:9;18866:25;18910:2;18948:6;18943:2;18932:9;18928:18;18921:34;18991:3;18986:2;18975:9;18971:18;18964:31;19015:6;19050;19044:13;19081:6;19073;19066:22;19119:3;19108:9;19104:19;19097:26;;19158:2;19150:6;19146:15;19132:29;;19179:1;19189:195;19203:6;19200:1;19197:13;19189:195;;;19268:13;;-1:-1:-1;;;;;19264:39:1;19252:52;;19359:15;;;;19324:12;;;;19300:1;19218:9;19189:195;;;-1:-1:-1;;;;;;;19440:32:1;;;;19435:2;19420:18;;19413:60;-1:-1:-1;;;19504:3:1;19489:19;19482:35;19401:3;18543:980;-1:-1:-1;;;18543:980:1:o

Swarm Source

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