ETH Price: $3,954.10 (+1.48%)

Token

ERC-20: Frengate (FGATE)
 

Overview

Max Total Supply

99,792,563 FGATE

Holders

666

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000004233521 FGATE

Value
$0.00
0xaf69cdf3f675a3a3e4f40da3dbe9e881b507f16c
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:
Frengate

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*

Your Shares, Your Access:
We're empowering creators with simplified, secure, and transparent Discord & Telegram authentication solutions. 

https://frengate.app
https://x.com/frengate

*/

// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

// File: @openzeppelin/contracts/access/Ownable.sol


// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;


/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

// File: contracts/FrenToken.sol

pragma solidity ^0.8.19;

error ZeroAddressNotAllowed();
error NotAnAdmin();
error TradingDisabled();
error AccountFrozen();
error ExceedsBuyLimit();
error BalanceTooLow();
error ExceedsMaxTaxRate();
error NoEthBalance();

contract Frengate is IERC20, Ownable {
    string public tokenName = "Frengate";
    string public tokenSymbol = "FGATE";
    uint256 public totalSupplyAmount = 100_000_000 ether;

    address constant DESTROY_ADDRESS = 0x000000000000000000000000000000000000dEaD;
    uint256 constant MAXIMUM_TAX = 5;

    mapping(address => uint256) public balances;
    mapping(address => mapping(address => uint256)) private allowances;
    mapping(address => bool) public isTaxExempt;
    mapping(address => bool) public isFrozen;

    bool public isTradingEnabled = false;
    bool public isBuyLimitActive = true;
    uint256 public buyLimitAmount = totalSupplyAmount / 1000; // max 0.1% of supply

    uint256 public buyTaxRate = 5;
    uint256 public sellTaxRate = 5;
    uint256 public transferTaxRate = 0;
    uint256 public totalTransactions;

    address private managerAddress;
    address private teamAddress;
    address public uniswapV2Pair;

    modifier onlyAdmin() {
        if (msg.sender != owner() && msg.sender != managerAddress) {
            revert NotAnAdmin();
        }
        _;
    }

    constructor(address _managerAddress, address _teamAddress) {
        if (_managerAddress == address(0) || _teamAddress == address(0)) {
            revert ZeroAddressNotAllowed();
        }

        managerAddress = _managerAddress;
        teamAddress = _teamAddress;

        isTaxExempt[msg.sender] = true;
        isTaxExempt[address(this)] = true;
        isTaxExempt[managerAddress] = true;
        isTaxExempt[teamAddress] = true;
        isTaxExempt[address(0)] = true;
        isTaxExempt[DESTROY_ADDRESS] = true;

        uint256 initialSupply = (totalSupplyAmount * 90) / 100;
        balances[msg.sender] = initialSupply;
        emit Transfer(address(0), msg.sender, initialSupply);

        initialSupply = (totalSupplyAmount * 10) / 100;
        balances[teamAddress] = initialSupply;
        emit Transfer(address(0), teamAddress, initialSupply);
    }

    function totalSupply() external view override returns (uint256) {
        return totalSupplyAmount;
    }

    function decimals() external pure returns (uint8) {
        return 18;
    }

    function name() external view returns (string memory) {
        return tokenName;
    }

    function symbol() external view returns (string memory) {
        return tokenSymbol;
    }

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

    function allowance(address owner, address spender) external view override returns (uint256)
    {
        return allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) external override returns (bool)
    {
        allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transfer(address to, uint256 amount) external override returns (bool)
    {
        return _processTransfer(msg.sender, to, amount);
    }

    function transferFrom(address from, address to, uint256 amount) external override returns (bool) {
        if (allowances[from][msg.sender] != type(uint256).max) {
            if (allowances[from][msg.sender] < amount) {
                revert BalanceTooLow();
            }
            allowances[from][msg.sender] -= amount;
        }

        return _processTransfer(from, to, amount);
    }

    function toggleTrading() external onlyAdmin {
        if (uniswapV2Pair == address(0)) revert ZeroAddressNotAllowed();
        isTradingEnabled = !isTradingEnabled;
    }

    function burn(uint256 amount) external {
        require(balances[msg.sender] >= amount, "Insufficient balance to burn");
        balances[msg.sender] -= amount;
        totalSupplyAmount -= amount;
        emit Transfer(msg.sender, DESTROY_ADDRESS, amount);
    }

    function setUniswapV2Pair(address _uniswapV2Pair) external onlyAdmin {
        if (_uniswapV2Pair == address(0)) revert ZeroAddressNotAllowed();
        uniswapV2Pair = _uniswapV2Pair;
    }

    function freeze(address account) external onlyAdmin {
        isFrozen[account] = true;
    }

    function unfreeze(address account) external onlyAdmin {
        isFrozen[account] = false;
    }

    function setBuyLimit(uint256 newLimit) external onlyAdmin {
        buyLimitAmount = newLimit;
    }

    function toggleBuyLimit() external onlyAdmin {
        isBuyLimitActive = !isBuyLimitActive;
    }

    function updateManager(address newManager) external onlyAdmin {
        if (newManager == address(0)) revert ZeroAddressNotAllowed();
        managerAddress = newManager;
    }

    function updateTeam(address newTeam) external onlyAdmin {
        if (newTeam == address(0)) revert ZeroAddressNotAllowed();
        teamAddress = newTeam;
    }

    function setBuyTaxRate(uint256 newRate) external onlyAdmin {
        if (newRate > MAXIMUM_TAX) revert ExceedsMaxTaxRate();
        buyTaxRate = newRate;
    }

    function setSellTaxRate(uint256 newRate) external onlyAdmin {
        if (newRate > MAXIMUM_TAX) revert ExceedsMaxTaxRate();
        sellTaxRate = newRate;
    }

    function setTransferTaxRate(uint256 newRate) external onlyAdmin {
        if (newRate > MAXIMUM_TAX) revert ExceedsMaxTaxRate();
        transferTaxRate = newRate;
    }

    function setTransactionCount() external onlyAdmin {
        totalTransactions = 50;
    }

    function _processTransfer(address from, address to, uint256 amount) internal returns (bool) {
        if (amount == 0 || balances[from] < amount) {
            revert BalanceTooLow();
        }

        if (from != managerAddress) {
            if (!isTradingEnabled) {
                revert TradingDisabled();
            }
            if (isFrozen[from] || isFrozen[to]) {
                revert AccountFrozen();
            }

            if (isBuyLimitActive && amount > buyLimitAmount && from == uniswapV2Pair) {
                revert ExceedsBuyLimit();
            }
        }

        uint256 tax = _computeTax(from, to, amount);
        uint256 netAmount = amount - tax;

        balances[from] -= amount;

        if (tax > 0) {
            balances[teamAddress] += tax;
            emit Transfer(from, teamAddress, tax);
        }

        balances[to] += netAmount;
        if ((from == uniswapV2Pair || to == uniswapV2Pair) && totalTransactions <= 25) {
            totalTransactions++;
        }

        emit Transfer(from, to, netAmount);
        return true;
    }

    function _computeTax(address from, address to, uint256 amount) internal view returns (uint256) {
        if (isTaxExempt[from] || isTaxExempt[to] || uniswapV2Pair == address(0)) {
            return 0;
        }

        uint256 currentBuyTaxRate = buyTaxRate;
        uint256 currentSellTaxRate = sellTaxRate;

        if (totalTransactions <= 25) {
            currentBuyTaxRate = 25;
            currentSellTaxRate = 30;
        }

        if (from == uniswapV2Pair) {
            return (amount * currentBuyTaxRate) / 100;
        } else if (to == uniswapV2Pair) {
            return (amount * currentSellTaxRate) / 100;
        } else {
            return (amount * transferTaxRate) / 100;
        }
    }

    function withdrawStuckETH() external onlyAdmin {
        uint256 balance = address(this).balance;
        if (balance <= 0) revert NoEthBalance();
        payable(managerAddress).transfer(balance);
    }

    function withdrawStuckTokens(address tokenAddress, uint256 amount) external onlyAdmin
    {
        if (tokenAddress == address(0))  revert ZeroAddressNotAllowed();
        if (amount <= 0) revert BalanceTooLow();

        IERC20(tokenAddress).transfer(managerAddress, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_managerAddress","type":"address"},{"internalType":"address","name":"_teamAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccountFrozen","type":"error"},{"inputs":[],"name":"BalanceTooLow","type":"error"},{"inputs":[],"name":"ExceedsBuyLimit","type":"error"},{"inputs":[],"name":"ExceedsMaxTaxRate","type":"error"},{"inputs":[],"name":"NoEthBalance","type":"error"},{"inputs":[],"name":"NotAnAdmin","type":"error"},{"inputs":[],"name":"TradingDisabled","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyLimitAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTaxRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"freeze","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isBuyLimitActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFrozen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTaxExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTaxRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRate","type":"uint256"}],"name":"setBuyTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRate","type":"uint256"}],"name":"setSellTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTransactionCount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRate","type":"uint256"}],"name":"setTransferTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"name":"setUniswapV2Pair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenSymbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupplyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTransactions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTaxRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unfreeze","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newManager","type":"address"}],"name":"updateManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTeam","type":"address"}],"name":"updateTeam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526040518060400160405280600881526020017f4672656e67617465000000000000000000000000000000000000000000000000815250600190816200004a9190620009f5565b506040518060400160405280600581526020017f464741544500000000000000000000000000000000000000000000000000000081525060029081620000919190620009f5565b506a52b7d2dcc80cd2e40000006003556000600860006101000a81548160ff0219169083151502179055506001600860016101000a81548160ff0219169083151502179055506103e8600354620000e9919062000b3a565b6009556005600a556005600b556000600c553480156200010857600080fd5b5060405162003ed238038062003ed283398181016040528101906200012e919062000bdc565b6200014e62000142620006af60201b60201c565b620006b760201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480620001b65750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15620001ee576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060006064605a600354620004db919062000c23565b620004e7919062000b3a565b905080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200058d919062000c7f565b60405180910390a36064600a600354620005a8919062000c23565b620005b4919062000b3a565b90508060046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200069e919062000c7f565b60405180910390a350505062000c9c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620007fd57607f821691505b602082108103620008135762000812620007b5565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200087d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200083e565b6200088986836200083e565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620008d6620008d0620008ca84620008a1565b620008ab565b620008a1565b9050919050565b6000819050919050565b620008f283620008b5565b6200090a6200090182620008dd565b8484546200084b565b825550505050565b600090565b6200092162000912565b6200092e818484620008e7565b505050565b5b8181101562000956576200094a60008262000917565b60018101905062000934565b5050565b601f821115620009a5576200096f8162000819565b6200097a846200082e565b810160208510156200098a578190505b620009a262000999856200082e565b83018262000933565b50505b505050565b600082821c905092915050565b6000620009ca60001984600802620009aa565b1980831691505092915050565b6000620009e58383620009b7565b9150826002028217905092915050565b62000a00826200077b565b67ffffffffffffffff81111562000a1c5762000a1b62000786565b5b62000a288254620007e4565b62000a358282856200095a565b600060209050601f83116001811462000a6d576000841562000a58578287015190505b62000a648582620009d7565b86555062000ad4565b601f19841662000a7d8662000819565b60005b8281101562000aa75784890151825560018201915060208501945060208101905062000a80565b8683101562000ac7578489015162000ac3601f891682620009b7565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b4782620008a1565b915062000b5483620008a1565b92508262000b675762000b6662000adc565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ba48262000b77565b9050919050565b62000bb68162000b97565b811462000bc257600080fd5b50565b60008151905062000bd68162000bab565b92915050565b6000806040838503121562000bf65762000bf562000b72565b5b600062000c068582860162000bc5565b925050602062000c198582860162000bc5565b9150509250929050565b600062000c3082620008a1565b915062000c3d83620008a1565b925082820262000c4d81620008a1565b9150828204841483151762000c675762000c6662000b0b565b5b5092915050565b62000c7981620008a1565b82525050565b600060208201905062000c96600083018462000c6e565b92915050565b6132268062000cac6000396000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c806388d63aac11610146578063b65d08b0116100c3578063e583983611610087578063e58398361461068c578063e5dc6b21146106bc578063e62684db146106d8578063f2fde38b146106f6578063f5648a4f14610712578063f828f50b1461071c57610253565b8063b65d08b0146105e8578063b9a6003814610606578063bd61f0a614610624578063dd31ee2d14610640578063dd62ed3e1461065c57610253565b806395d89b411161010a57806395d89b41146105585780639fd0686914610576578063a29a608914610580578063a9059cbb1461059c578063b23f3594146105cc57610253565b806388d63aac146104da5780638d1fdf2f146104f65780638da5cb5b146105125780638f201dbd1461053057806390f2b6c11461053a57610253565b806342966c68116101d4578063691f224f11610198578063691f224f146104465780636c02a9311461046457806370a0823114610482578063715018a6146104b25780637b61c320146104bc57610253565b806342966c68146103b857806345c8b1a6146103d457806349bd5a5e146103f057806355e2e9741461040e57806358aba00f1461042a57610253565b806318160ddd1161021b57806318160ddd146102fe57806323b872dd1461031c57806324024efd1461034c57806327e235e31461036a578063313ce5671461039a57610253565b8063064a59d01461025857806306fdde0314610276578063095ea7b3146102945780630f120fc3146102c457806316c2be6b146102ce575b600080fd5b61026061073a565b60405161026d9190612b05565b60405180910390f35b61027e61074d565b60405161028b9190612bb0565b60405180910390f35b6102ae60048036038101906102a99190612c6b565b6107df565b6040516102bb9190612b05565b60405180910390f35b6102cc6108d1565b005b6102e860048036038101906102e39190612cab565b610a4d565b6040516102f59190612b05565b60405180910390f35b610306610a6d565b6040516103139190612ce7565b60405180910390f35b61033660048036038101906103319190612d02565b610a77565b6040516103439190612b05565b60405180910390f35b610354610c7a565b6040516103619190612ce7565b60405180910390f35b610384600480360381019061037f9190612cab565b610c80565b6040516103919190612ce7565b60405180910390f35b6103a2610c98565b6040516103af9190612d71565b60405180910390f35b6103d260048036038101906103cd9190612d8c565b610ca1565b005b6103ee60048036038101906103e99190612cab565b610dfc565b005b6103f8610f1f565b6040516104059190612dc8565b60405180910390f35b61042860048036038101906104239190612d8c565b610f45565b005b610444600480360381019061043f9190612cab565b611052565b005b61044e6111c4565b60405161045b9190612ce7565b60405180910390f35b61046c6111ca565b6040516104799190612bb0565b60405180910390f35b61049c60048036038101906104979190612cab565b611258565b6040516104a99190612ce7565b60405180910390f35b6104ba6112a1565b005b6104c46112b5565b6040516104d19190612bb0565b60405180910390f35b6104f460048036038101906104ef9190612d8c565b611343565b005b610510600480360381019061050b9190612cab565b611450565b005b61051a611573565b6040516105279190612dc8565b60405180910390f35b61053861159c565b005b610542611690565b60405161054f9190612b05565b60405180910390f35b6105606116a3565b60405161056d9190612bb0565b60405180910390f35b61057e611735565b005b61059a60048036038101906105959190612cab565b611807565b005b6105b660048036038101906105b19190612c6b565b611979565b6040516105c39190612b05565b60405180910390f35b6105e660048036038101906105e19190612cab565b61198e565b005b6105f0611b00565b6040516105fd9190612ce7565b60405180910390f35b61060e611b06565b60405161061b9190612ce7565b60405180910390f35b61063e60048036038101906106399190612c6b565b611b0c565b005b61065a60048036038101906106559190612d8c565b611d19565b005b61067660048036038101906106719190612de3565b611deb565b6040516106839190612ce7565b60405180910390f35b6106a660048036038101906106a19190612cab565b611e72565b6040516106b39190612b05565b60405180910390f35b6106d660048036038101906106d19190612d8c565b611e92565b005b6106e0611f9f565b6040516106ed9190612ce7565b60405180910390f35b610710600480360381019061070b9190612cab565b611fa5565b005b61071a612028565b005b61072461219b565b6040516107319190612ce7565b60405180910390f35b600860009054906101000a900460ff1681565b60606001805461075c90612e52565b80601f016020809104026020016040519081016040528092919081815260200182805461078890612e52565b80156107d55780601f106107aa576101008083540402835291602001916107d5565b820191906000526020600020905b8154815290600101906020018083116107b857829003601f168201915b5050505050905090565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108bf9190612ce7565b60405180910390a36001905092915050565b6108d9611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156109625750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610999576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610a21576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600860009054906101000a900460ff1615600860006101000a81548160ff021916908315150217905550565b60066020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c665781600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610bd2576040517fa328167200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c5e9190612eb2565b925050819055505b610c718484846121a1565b90509392505050565b600b5481565b60046020528060005260406000206000915090505481565b60006012905090565b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a90612f32565b60405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d729190612eb2565b925050819055508060036000828254610d8b9190612eb2565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610df19190612ce7565b60405180910390a350565b610e04611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610e8d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610ec4576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f4d611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610fd65750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561100d576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005811115611048576040517f48762a8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600a8190555050565b61105a611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156110e35750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561111a576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611180576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b600180546111d790612e52565b80601f016020809104026020016040519081016040528092919081815260200182805461120390612e52565b80156112505780601f1061122557610100808354040283529160200191611250565b820191906000526020600020905b81548152906001019060200180831161123357829003601f168201915b505050505081565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112a9612763565b6112b360006127e1565b565b600280546112c290612e52565b80601f01602080910402602001604051908101604052809291908181526020018280546112ee90612e52565b801561133b5780601f106113105761010080835404028352916020019161133b565b820191906000526020600020905b81548152906001019060200180831161131e57829003601f168201915b505050505081565b61134b611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156113d45750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561140b576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005811115611446576040517f48762a8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600c8190555050565b611458611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156114e15750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611518576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6115a4611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561162d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611664576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600860019054906101000a900460ff1615600860016101000a81548160ff021916908315150217905550565b600860019054906101000a900460ff1681565b6060600280546116b290612e52565b80601f01602080910402602001604051908101604052809291908181526020018280546116de90612e52565b801561172b5780601f106117005761010080835404028352916020019161172b565b820191906000526020600020905b81548152906001019060200180831161170e57829003601f168201915b5050505050905090565b61173d611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156117c65750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156117fd576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6032600d81905550565b61180f611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156118985750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156118cf576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611935576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006119863384846121a1565b905092915050565b611996611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611a1f5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611a56576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611abc576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5481565b600d5481565b611b14611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611b9d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611bd4576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c3a576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008111611c74576040517fa328167200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611cd1929190612f52565b6020604051808303816000875af1158015611cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d149190612fa7565b505050565b611d21611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611daa5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611de1576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060098190555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b611e9a611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611f235750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611f5a576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005811115611f95576040517f48762a8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b8190555050565b60095481565b611fad612763565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361201c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201390613046565b60405180910390fd5b612025816127e1565b50565b612030611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156120b95750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156120f0576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60004790506000811161212f576040517fa8088f3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612197573d6000803e3d6000fd5b5050565b60035481565b6000808214806121ef575081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b15612226576040517fa328167200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461244757600860009054906101000a900460ff166122c1576040517fbcb8b8fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123625750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612399576040517f552afea000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600860019054906101000a900460ff1680156123b6575060095482115b801561240f5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15612446576040517f680427a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b60006124548585856128a5565b9050600081846124649190612eb2565b905083600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124b59190612eb2565b9250508190555060008211156125c5578160046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125369190613066565b92505081905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125bc9190612ce7565b60405180910390a35b80600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126149190613066565b92505081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614806126c45750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80156126d357506019600d5411155b156126f157600d60008154809291906126eb9061309a565b91905055505b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161274e9190612ce7565b60405180910390a36001925050509392505050565b61276b612ae2565b73ffffffffffffffffffffffffffffffffffffffff16612789611573565b73ffffffffffffffffffffffffffffffffffffffff16146127df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d69061312e565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129485750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806129a15750600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156129af5760009050612adb565b6000600a5490506000600b5490506019600d54116129d05760199150601e90505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612a465760648285612a33919061314e565b612a3d91906131bf565b92505050612adb565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612abc5760648185612aa9919061314e565b612ab391906131bf565b92505050612adb565b6064600c5485612acc919061314e565b612ad691906131bf565b925050505b9392505050565b600033905090565b60008115159050919050565b612aff81612aea565b82525050565b6000602082019050612b1a6000830184612af6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b5a578082015181840152602081019050612b3f565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b8282612b20565b612b8c8185612b2b565b9350612b9c818560208601612b3c565b612ba581612b66565b840191505092915050565b60006020820190508181036000830152612bca8184612b77565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c0282612bd7565b9050919050565b612c1281612bf7565b8114612c1d57600080fd5b50565b600081359050612c2f81612c09565b92915050565b6000819050919050565b612c4881612c35565b8114612c5357600080fd5b50565b600081359050612c6581612c3f565b92915050565b60008060408385031215612c8257612c81612bd2565b5b6000612c9085828601612c20565b9250506020612ca185828601612c56565b9150509250929050565b600060208284031215612cc157612cc0612bd2565b5b6000612ccf84828501612c20565b91505092915050565b612ce181612c35565b82525050565b6000602082019050612cfc6000830184612cd8565b92915050565b600080600060608486031215612d1b57612d1a612bd2565b5b6000612d2986828701612c20565b9350506020612d3a86828701612c20565b9250506040612d4b86828701612c56565b9150509250925092565b600060ff82169050919050565b612d6b81612d55565b82525050565b6000602082019050612d866000830184612d62565b92915050565b600060208284031215612da257612da1612bd2565b5b6000612db084828501612c56565b91505092915050565b612dc281612bf7565b82525050565b6000602082019050612ddd6000830184612db9565b92915050565b60008060408385031215612dfa57612df9612bd2565b5b6000612e0885828601612c20565b9250506020612e1985828601612c20565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612e6a57607f821691505b602082108103612e7d57612e7c612e23565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ebd82612c35565b9150612ec883612c35565b9250828203905081811115612ee057612edf612e83565b5b92915050565b7f496e73756666696369656e742062616c616e636520746f206275726e00000000600082015250565b6000612f1c601c83612b2b565b9150612f2782612ee6565b602082019050919050565b60006020820190508181036000830152612f4b81612f0f565b9050919050565b6000604082019050612f676000830185612db9565b612f746020830184612cd8565b9392505050565b612f8481612aea565b8114612f8f57600080fd5b50565b600081519050612fa181612f7b565b92915050565b600060208284031215612fbd57612fbc612bd2565b5b6000612fcb84828501612f92565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613030602683612b2b565b915061303b82612fd4565b604082019050919050565b6000602082019050818103600083015261305f81613023565b9050919050565b600061307182612c35565b915061307c83612c35565b925082820190508082111561309457613093612e83565b5b92915050565b60006130a582612c35565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130d7576130d6612e83565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613118602083612b2b565b9150613123826130e2565b602082019050919050565b600060208201905081810360008301526131478161310b565b9050919050565b600061315982612c35565b915061316483612c35565b925082820261317281612c35565b9150828204841483151761318957613188612e83565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131ca82612c35565b91506131d583612c35565b9250826131e5576131e4613190565b5b82820490509291505056fea264697066735822122077dfa445cce35284c386afc1cda3a74688478df9403f513939d2ad3c83389b8e64736f6c6343000813003300000000000000000000000073cfcad68c40d0f09bbc0fd3d200a9f4d5465bea000000000000000000000000827f5a7c54de1c00071aea4211b5faade415e08e

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102535760003560e01c806388d63aac11610146578063b65d08b0116100c3578063e583983611610087578063e58398361461068c578063e5dc6b21146106bc578063e62684db146106d8578063f2fde38b146106f6578063f5648a4f14610712578063f828f50b1461071c57610253565b8063b65d08b0146105e8578063b9a6003814610606578063bd61f0a614610624578063dd31ee2d14610640578063dd62ed3e1461065c57610253565b806395d89b411161010a57806395d89b41146105585780639fd0686914610576578063a29a608914610580578063a9059cbb1461059c578063b23f3594146105cc57610253565b806388d63aac146104da5780638d1fdf2f146104f65780638da5cb5b146105125780638f201dbd1461053057806390f2b6c11461053a57610253565b806342966c68116101d4578063691f224f11610198578063691f224f146104465780636c02a9311461046457806370a0823114610482578063715018a6146104b25780637b61c320146104bc57610253565b806342966c68146103b857806345c8b1a6146103d457806349bd5a5e146103f057806355e2e9741461040e57806358aba00f1461042a57610253565b806318160ddd1161021b57806318160ddd146102fe57806323b872dd1461031c57806324024efd1461034c57806327e235e31461036a578063313ce5671461039a57610253565b8063064a59d01461025857806306fdde0314610276578063095ea7b3146102945780630f120fc3146102c457806316c2be6b146102ce575b600080fd5b61026061073a565b60405161026d9190612b05565b60405180910390f35b61027e61074d565b60405161028b9190612bb0565b60405180910390f35b6102ae60048036038101906102a99190612c6b565b6107df565b6040516102bb9190612b05565b60405180910390f35b6102cc6108d1565b005b6102e860048036038101906102e39190612cab565b610a4d565b6040516102f59190612b05565b60405180910390f35b610306610a6d565b6040516103139190612ce7565b60405180910390f35b61033660048036038101906103319190612d02565b610a77565b6040516103439190612b05565b60405180910390f35b610354610c7a565b6040516103619190612ce7565b60405180910390f35b610384600480360381019061037f9190612cab565b610c80565b6040516103919190612ce7565b60405180910390f35b6103a2610c98565b6040516103af9190612d71565b60405180910390f35b6103d260048036038101906103cd9190612d8c565b610ca1565b005b6103ee60048036038101906103e99190612cab565b610dfc565b005b6103f8610f1f565b6040516104059190612dc8565b60405180910390f35b61042860048036038101906104239190612d8c565b610f45565b005b610444600480360381019061043f9190612cab565b611052565b005b61044e6111c4565b60405161045b9190612ce7565b60405180910390f35b61046c6111ca565b6040516104799190612bb0565b60405180910390f35b61049c60048036038101906104979190612cab565b611258565b6040516104a99190612ce7565b60405180910390f35b6104ba6112a1565b005b6104c46112b5565b6040516104d19190612bb0565b60405180910390f35b6104f460048036038101906104ef9190612d8c565b611343565b005b610510600480360381019061050b9190612cab565b611450565b005b61051a611573565b6040516105279190612dc8565b60405180910390f35b61053861159c565b005b610542611690565b60405161054f9190612b05565b60405180910390f35b6105606116a3565b60405161056d9190612bb0565b60405180910390f35b61057e611735565b005b61059a60048036038101906105959190612cab565b611807565b005b6105b660048036038101906105b19190612c6b565b611979565b6040516105c39190612b05565b60405180910390f35b6105e660048036038101906105e19190612cab565b61198e565b005b6105f0611b00565b6040516105fd9190612ce7565b60405180910390f35b61060e611b06565b60405161061b9190612ce7565b60405180910390f35b61063e60048036038101906106399190612c6b565b611b0c565b005b61065a60048036038101906106559190612d8c565b611d19565b005b61067660048036038101906106719190612de3565b611deb565b6040516106839190612ce7565b60405180910390f35b6106a660048036038101906106a19190612cab565b611e72565b6040516106b39190612b05565b60405180910390f35b6106d660048036038101906106d19190612d8c565b611e92565b005b6106e0611f9f565b6040516106ed9190612ce7565b60405180910390f35b610710600480360381019061070b9190612cab565b611fa5565b005b61071a612028565b005b61072461219b565b6040516107319190612ce7565b60405180910390f35b600860009054906101000a900460ff1681565b60606001805461075c90612e52565b80601f016020809104026020016040519081016040528092919081815260200182805461078890612e52565b80156107d55780601f106107aa576101008083540402835291602001916107d5565b820191906000526020600020905b8154815290600101906020018083116107b857829003601f168201915b5050505050905090565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108bf9190612ce7565b60405180910390a36001905092915050565b6108d9611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156109625750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610999576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610a21576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600860009054906101000a900460ff1615600860006101000a81548160ff021916908315150217905550565b60066020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c665781600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610bd2576040517fa328167200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c5e9190612eb2565b925050819055505b610c718484846121a1565b90509392505050565b600b5481565b60046020528060005260406000206000915090505481565b60006012905090565b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a90612f32565b60405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d729190612eb2565b925050819055508060036000828254610d8b9190612eb2565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610df19190612ce7565b60405180910390a350565b610e04611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610e8d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610ec4576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f4d611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610fd65750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561100d576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005811115611048576040517f48762a8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600a8190555050565b61105a611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156110e35750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561111a576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611180576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b600180546111d790612e52565b80601f016020809104026020016040519081016040528092919081815260200182805461120390612e52565b80156112505780601f1061122557610100808354040283529160200191611250565b820191906000526020600020905b81548152906001019060200180831161123357829003601f168201915b505050505081565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112a9612763565b6112b360006127e1565b565b600280546112c290612e52565b80601f01602080910402602001604051908101604052809291908181526020018280546112ee90612e52565b801561133b5780601f106113105761010080835404028352916020019161133b565b820191906000526020600020905b81548152906001019060200180831161131e57829003601f168201915b505050505081565b61134b611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156113d45750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561140b576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005811115611446576040517f48762a8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600c8190555050565b611458611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156114e15750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611518576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6115a4611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561162d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611664576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600860019054906101000a900460ff1615600860016101000a81548160ff021916908315150217905550565b600860019054906101000a900460ff1681565b6060600280546116b290612e52565b80601f01602080910402602001604051908101604052809291908181526020018280546116de90612e52565b801561172b5780601f106117005761010080835404028352916020019161172b565b820191906000526020600020905b81548152906001019060200180831161170e57829003601f168201915b5050505050905090565b61173d611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156117c65750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156117fd576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6032600d81905550565b61180f611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156118985750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156118cf576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611935576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006119863384846121a1565b905092915050565b611996611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611a1f5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611a56576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611abc576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5481565b600d5481565b611b14611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611b9d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611bd4576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c3a576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008111611c74576040517fa328167200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611cd1929190612f52565b6020604051808303816000875af1158015611cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d149190612fa7565b505050565b611d21611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611daa5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611de1576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060098190555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b611e9a611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611f235750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611f5a576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005811115611f95576040517f48762a8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b8190555050565b60095481565b611fad612763565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361201c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201390613046565b60405180910390fd5b612025816127e1565b50565b612030611573565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156120b95750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156120f0576040517f55098f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60004790506000811161212f576040517fa8088f3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612197573d6000803e3d6000fd5b5050565b60035481565b6000808214806121ef575081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b15612226576040517fa328167200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461244757600860009054906101000a900460ff166122c1576040517fbcb8b8fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123625750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612399576040517f552afea000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600860019054906101000a900460ff1680156123b6575060095482115b801561240f5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15612446576040517f680427a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b60006124548585856128a5565b9050600081846124649190612eb2565b905083600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124b59190612eb2565b9250508190555060008211156125c5578160046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125369190613066565b92505081905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125bc9190612ce7565b60405180910390a35b80600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126149190613066565b92505081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614806126c45750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80156126d357506019600d5411155b156126f157600d60008154809291906126eb9061309a565b91905055505b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161274e9190612ce7565b60405180910390a36001925050509392505050565b61276b612ae2565b73ffffffffffffffffffffffffffffffffffffffff16612789611573565b73ffffffffffffffffffffffffffffffffffffffff16146127df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d69061312e565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129485750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806129a15750600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156129af5760009050612adb565b6000600a5490506000600b5490506019600d54116129d05760199150601e90505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612a465760648285612a33919061314e565b612a3d91906131bf565b92505050612adb565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612abc5760648185612aa9919061314e565b612ab391906131bf565b92505050612adb565b6064600c5485612acc919061314e565b612ad691906131bf565b925050505b9392505050565b600033905090565b60008115159050919050565b612aff81612aea565b82525050565b6000602082019050612b1a6000830184612af6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b5a578082015181840152602081019050612b3f565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b8282612b20565b612b8c8185612b2b565b9350612b9c818560208601612b3c565b612ba581612b66565b840191505092915050565b60006020820190508181036000830152612bca8184612b77565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c0282612bd7565b9050919050565b612c1281612bf7565b8114612c1d57600080fd5b50565b600081359050612c2f81612c09565b92915050565b6000819050919050565b612c4881612c35565b8114612c5357600080fd5b50565b600081359050612c6581612c3f565b92915050565b60008060408385031215612c8257612c81612bd2565b5b6000612c9085828601612c20565b9250506020612ca185828601612c56565b9150509250929050565b600060208284031215612cc157612cc0612bd2565b5b6000612ccf84828501612c20565b91505092915050565b612ce181612c35565b82525050565b6000602082019050612cfc6000830184612cd8565b92915050565b600080600060608486031215612d1b57612d1a612bd2565b5b6000612d2986828701612c20565b9350506020612d3a86828701612c20565b9250506040612d4b86828701612c56565b9150509250925092565b600060ff82169050919050565b612d6b81612d55565b82525050565b6000602082019050612d866000830184612d62565b92915050565b600060208284031215612da257612da1612bd2565b5b6000612db084828501612c56565b91505092915050565b612dc281612bf7565b82525050565b6000602082019050612ddd6000830184612db9565b92915050565b60008060408385031215612dfa57612df9612bd2565b5b6000612e0885828601612c20565b9250506020612e1985828601612c20565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612e6a57607f821691505b602082108103612e7d57612e7c612e23565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ebd82612c35565b9150612ec883612c35565b9250828203905081811115612ee057612edf612e83565b5b92915050565b7f496e73756666696369656e742062616c616e636520746f206275726e00000000600082015250565b6000612f1c601c83612b2b565b9150612f2782612ee6565b602082019050919050565b60006020820190508181036000830152612f4b81612f0f565b9050919050565b6000604082019050612f676000830185612db9565b612f746020830184612cd8565b9392505050565b612f8481612aea565b8114612f8f57600080fd5b50565b600081519050612fa181612f7b565b92915050565b600060208284031215612fbd57612fbc612bd2565b5b6000612fcb84828501612f92565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613030602683612b2b565b915061303b82612fd4565b604082019050919050565b6000602082019050818103600083015261305f81613023565b9050919050565b600061307182612c35565b915061307c83612c35565b925082820190508082111561309457613093612e83565b5b92915050565b60006130a582612c35565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130d7576130d6612e83565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613118602083612b2b565b9150613123826130e2565b602082019050919050565b600060208201905081810360008301526131478161310b565b9050919050565b600061315982612c35565b915061316483612c35565b925082820261317281612c35565b9150828204841483151761318957613188612e83565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131ca82612c35565b91506131d583612c35565b9250826131e5576131e4613190565b5b82820490509291505056fea264697066735822122077dfa445cce35284c386afc1cda3a74688478df9403f513939d2ad3c83389b8e64736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000073cfcad68c40d0f09bbc0fd3d200a9f4d5465bea000000000000000000000000827f5a7c54de1c00071aea4211b5faade415e08e

-----Decoded View---------------
Arg [0] : _managerAddress (address): 0x73CFCAd68c40D0f09bbC0fd3d200A9f4d5465bea
Arg [1] : _teamAddress (address): 0x827F5A7c54De1C00071aEA4211b5faade415E08e

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000073cfcad68c40d0f09bbc0fd3d200a9f4d5465bea
Arg [1] : 000000000000000000000000827f5a7c54de1c00071aea4211b5faade415e08e


Deployed Bytecode Sourcemap

6939:7951:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7476:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9174:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9655:222;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10454:173;;;:::i;:::-;;7377:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8973:107;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10043:403;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7684:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7254:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9088:78;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10635:269;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11216:98;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7874:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11899:162;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11540:179;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7648:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6983:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9372:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3007:103;;;:::i;:::-;;7026:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12241:172;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11113:95;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2366:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11432:100;;;:::i;:::-;;7519:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9271:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12421:91;;;:::i;:::-;;10912:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9885:150;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11727:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7721:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7762:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14598:289;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11322:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9498:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7427:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12069:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7561:56;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3265:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14383:207;;;:::i;:::-;;7068:52;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7476:36;;;;;;;;;;;;;:::o;9174:89::-;9213:13;9246:9;9239:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9174:89;:::o;9655:222::-;9732:4;9788:6;9754:10;:22;9765:10;9754:22;;;;;;;;;;;;;;;:31;9777:7;9754:31;;;;;;;;;;;;;;;:40;;;;9831:7;9810:37;;9819:10;9810:37;;;9840:6;9810:37;;;;;;:::i;:::-;;;;;;;;9865:4;9858:11;;9655:222;;;;:::o;10454:173::-;7961:7;:5;:7::i;:::-;7947:21;;:10;:21;;;;:53;;;;;7986:14;;;;;;;;;;;7972:28;;:10;:28;;;;7947:53;7943:105;;;8024:12;;;;;;;;;;;;;;7943:105;10538:1:::1;10513:27;;:13;;;;;;;;;;;:27;;::::0;10509:63:::1;;10549:23;;;;;;;;;;;;;;10509:63;10603:16;;;;;;;;;;;10602:17;10583:16;;:36;;;;;;;;;;;;;;;;;;10454:173::o:0;7377:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;8973:107::-;9028:7;9055:17;;9048:24;;8973:107;:::o;10043:403::-;10134:4;10187:17;10155:10;:16;10166:4;10155:16;;;;;;;;;;;;;;;:28;10172:10;10155:28;;;;;;;;;;;;;;;;:49;10151:234;;10256:6;10225:10;:16;10236:4;10225:16;;;;;;;;;;;;;;;:28;10242:10;10225:28;;;;;;;;;;;;;;;;:37;10221:100;;;10290:15;;;;;;;;;;;;;;10221:100;10367:6;10335:10;:16;10346:4;10335:16;;;;;;;;;;;;;;;:28;10352:10;10335:28;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;10151:234;10404:34;10421:4;10427:2;10431:6;10404:16;:34::i;:::-;10397:41;;10043:403;;;;;:::o;7684:30::-;;;;:::o;7254:43::-;;;;;;;;;;;;;;;;;:::o;9088:78::-;9131:5;9156:2;9149:9;;9088:78;:::o;10635:269::-;10717:6;10693:8;:20;10702:10;10693:20;;;;;;;;;;;;;;;;:30;;10685:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10791:6;10767:8;:20;10776:10;10767:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;10829:6;10808:17;;:27;;;;;;;:::i;:::-;;;;;;;;7164:42;10851:45;;10860:10;10851:45;;;10889:6;10851:45;;;;;;:::i;:::-;;;;;;;;10635:269;:::o;11216:98::-;7961:7;:5;:7::i;:::-;7947:21;;:10;:21;;;;:53;;;;;7986:14;;;;;;;;;;;7972:28;;:10;:28;;;;7947:53;7943:105;;;8024:12;;;;;;;;;;;;;;7943:105;11301:5:::1;11281:8;:17;11290:7;11281:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;11216:98:::0;:::o;7874:28::-;;;;;;;;;;;;;:::o;11899:162::-;7961:7;:5;:7::i;:::-;7947:21;;:10;:21;;;;:53;;;;;7986:14;;;;;;;;;;;7972:28;;:10;:28;;;;7947:53;7943:105;;;8024:12;;;;;;;;;;;;;;7943:105;7244:1:::1;11973:7;:21;11969:53;;;12003:19;;;;;;;;;;;;;;11969:53;12046:7;12033:10;:20;;;;11899:162:::0;:::o;11540:179::-;7961:7;:5;:7::i;:::-;7947:21;;:10;:21;;;;:53;;;;;7986:14;;;;;;;;;;;7972:28;;:10;:28;;;;7947:53;7943:105;;;8024:12;;;;;;;;;;;;;;7943:105;11639:1:::1;11617:24;;:10;:24;;::::0;11613:60:::1;;11650:23;;;;;;;;;;;;;;11613:60;11701:10;11684:14;;:27;;;;;;;;;;;;;;;;;;11540:179:::0;:::o;7648:29::-;;;;:::o;6983:36::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9372:118::-;9438:7;9465:8;:17;9474:7;9465:17;;;;;;;;;;;;;;;;9458:24;;9372:118;;;:::o;3007:103::-;2252:13;:11;:13::i;:::-;3072:30:::1;3099:1;3072:18;:30::i;:::-;3007:103::o:0;7026:35::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12241:172::-;7961:7;:5;:7::i;:::-;7947:21;;:10;:21;;;;:53;;;;;7986:14;;;;;;;;;;;7972:28;;:10;:28;;;;7947:53;7943:105;;;8024:12;;;;;;;;;;;;;;7943:105;7244:1:::1;12320:7;:21;12316:53;;;12350:19;;;;;;;;;;;;;;12316:53;12398:7;12380:15;:25;;;;12241:172:::0;:::o;11113:95::-;7961:7;:5;:7::i;:::-;7947:21;;:10;:21;;;;:53;;;;;7986:14;;;;;;;;;;;7972:28;;:10;:28;;;;7947:53;7943:105;;;8024:12;;;;;;;;;;;;;;7943:105;11196:4:::1;11176:8;:17;11185:7;11176:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;11113:95:::0;:::o;2366:87::-;2412:7;2439:6;;;;;;;;;;;2432:13;;2366:87;:::o;11432:100::-;7961:7;:5;:7::i;:::-;7947:21;;:10;:21;;;;:53;;;;;7986:14;;;;;;;;;;;7972:28;;:10;:28;;;;7947:53;7943:105;;;8024:12;;;;;;;;;;;;;;7943:105;11508:16:::1;;;;;;;;;;;11507:17;11488:16;;:36;;;;;;;;;;;;;;;;;;11432:100::o:0;7519:35::-;;;;;;;;;;;;;:::o;9271:93::-;9312:13;9345:11;9338:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9271:93;:::o;12421:91::-;7961:7;:5;:7::i;:::-;7947:21;;:10;:21;;;;:53;;;;;7986:14;;;;;;;;;;;7972:28;;:10;:28;;;;7947:53;7943:105;;;8024:12;;;;;;;;;;;;;;7943:105;12502:2:::1;12482:17;:22;;;;12421:91::o:0;10912:193::-;7961:7;:5;:7::i;:::-;7947:21;;:10;:21;;;;:53;;;;;7986:14;;;;;;;;;;;7972:28;;:10;:28;;;;7947:53;7943:105;;;8024:12;;;;;;;;;;;;;;7943:105;11022:1:::1;10996:28;;:14;:28;;::::0;10992:64:::1;;11033:23;;;;;;;;;;;;;;10992:64;11083:14;11067:13;;:30;;;;;;;;;;;;;;;;;;10912:193:::0;:::o;9885:150::-;9958:4;9987:40;10004:10;10016:2;10020:6;9987:16;:40::i;:::-;9980:47;;9885:150;;;;:::o;11727:164::-;7961:7;:5;:7::i;:::-;7947:21;;:10;:21;;;;:53;;;;;7986:14;;;;;;;;;;;7972:28;;:10;:28;;;;7947:53;7943:105;;;8024:12;;;;;;;;;;;;;;7943:105;11817:1:::1;11798:21;;:7;:21;;::::0;11794:57:::1;;11828:23;;;;;;;;;;;;;;11794:57;11876:7;11862:11;;:21;;;;;;;;;;;;;;;;;;11727:164:::0;:::o;7721:34::-;;;;:::o;7762:32::-;;;;:::o;14598:289::-;7961:7;:5;:7::i;:::-;7947:21;;:10;:21;;;;:53;;;;;7986:14;;;;;;;;;;;7972:28;;:10;:28;;;;7947:53;7943:105;;;8024:12;;;;;;;;;;;;;;7943:105;14728:1:::1;14704:26;;:12;:26;;::::0;14700:63:::1;;14740:23;;;;;;;;;;;;;;14700:63;14788:1;14778:6;:11;14774:39;;14798:15;;;;;;;;;;;;;;14774:39;14833:12;14826:29;;;14856:14;;;;;;;;;;;14872:6;14826:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14598:289:::0;;:::o;11322:102::-;7961:7;:5;:7::i;:::-;7947:21;;:10;:21;;;;:53;;;;;7986:14;;;;;;;;;;;7972:28;;:10;:28;;;;7947:53;7943:105;;;8024:12;;;;;;;;;;;;;;7943:105;11408:8:::1;11391:14;:25;;;;11322:102:::0;:::o;9498:149::-;9581:7;9613:10;:17;9624:5;9613:17;;;;;;;;;;;;;;;:26;9631:7;9613:26;;;;;;;;;;;;;;;;9606:33;;9498:149;;;;:::o;7427:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;12069:164::-;7961:7;:5;:7::i;:::-;7947:21;;:10;:21;;;;:53;;;;;7986:14;;;;;;;;;;;7972:28;;:10;:28;;;;7947:53;7943:105;;;8024:12;;;;;;;;;;;;;;7943:105;7244:1:::1;12144:7;:21;12140:53;;;12174:19;;;;;;;;;;;;;;12140:53;12218:7;12204:11;:21;;;;12069:164:::0;:::o;7561:56::-;;;;:::o;3265:201::-;2252:13;:11;:13::i;:::-;3374:1:::1;3354:22;;:8;:22;;::::0;3346:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3430:28;3449:8;3430:18;:28::i;:::-;3265:201:::0;:::o;14383:207::-;7961:7;:5;:7::i;:::-;7947:21;;:10;:21;;;;:53;;;;;7986:14;;;;;;;;;;;7972:28;;:10;:28;;;;7947:53;7943:105;;;8024:12;;;;;;;;;;;;;;7943:105;14441:15:::1;14459:21;14441:39;;14506:1;14495:7;:12;14491:39;;14516:14;;;;;;;;;;;;;;14491:39;14549:14;;;;;;;;;;;14541:32;;:41;14574:7;14541:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14430:160;14383:207::o:0;7068:52::-;;;;:::o;12520:1117::-;12606:4;12637:1;12627:6;:11;:38;;;;12659:6;12642:8;:14;12651:4;12642:14;;;;;;;;;;;;;;;;:23;12627:38;12623:93;;;12689:15;;;;;;;;;;;;;;12623:93;12740:14;;;;;;;;;;;12732:22;;:4;:22;;;12728:392;;12776:16;;;;;;;;;;;12771:82;;12820:17;;;;;;;;;;;;;;12771:82;12871:8;:14;12880:4;12871:14;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;;12889:8;:12;12898:2;12889:12;;;;;;;;;;;;;;;;;;;;;;;;;12871:30;12867:93;;;12929:15;;;;;;;;;;;;;;12867:93;12980:16;;;;;;;;;;;:43;;;;;13009:14;;13000:6;:23;12980:43;:68;;;;;13035:13;;;;;;;;;;;13027:21;;:4;:21;;;12980:68;12976:133;;;13076:17;;;;;;;;;;;;;;12976:133;12728:392;13132:11;13146:29;13158:4;13164:2;13168:6;13146:11;:29::i;:::-;13132:43;;13186:17;13215:3;13206:6;:12;;;;:::i;:::-;13186:32;;13249:6;13231:8;:14;13240:4;13231:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;13278:1;13272:3;:7;13268:120;;;13321:3;13296:8;:21;13305:11;;;;;;;;;;;13296:21;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;13359:11;;;;;;;;;;;13344:32;;13353:4;13344:32;;;13372:3;13344:32;;;;;;:::i;:::-;;;;;;;;13268:120;13416:9;13400:8;:12;13409:2;13400:12;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;13449:13;;;;;;;;;;;13441:21;;:4;:21;;;:44;;;;13472:13;;;;;;;;;;;13466:19;;:2;:19;;;13441:44;13440:73;;;;;13511:2;13490:17;;:23;;13440:73;13436:125;;;13530:17;;:19;;;;;;;;;:::i;:::-;;;;;;13436:125;13593:2;13578:29;;13587:4;13578:29;;;13597:9;13578:29;;;;;;:::i;:::-;;;;;;;;13625:4;13618:11;;;;12520:1117;;;;;:::o;2531:132::-;2606:12;:10;:12::i;:::-;2595:23;;:7;:5;:7::i;:::-;:23;;;2587:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2531:132::o;3626:191::-;3700:16;3719:6;;;;;;;;;;;3700:25;;3745:8;3736:6;;:17;;;;;;;;;;;;;;;;;;3800:8;3769:40;;3790:8;3769:40;;;;;;;;;;;;3689:128;3626:191;:::o;13645:730::-;13731:7;13755:11;:17;13767:4;13755:17;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;13776:11;:15;13788:2;13776:15;;;;;;;;;;;;;;;;;;;;;;;;;13755:36;:67;;;;13820:1;13795:27;;:13;;;;;;;;;;;:27;;;13755:67;13751:108;;;13846:1;13839:8;;;;13751:108;13871:25;13899:10;;13871:38;;13920:26;13949:11;;13920:40;;13998:2;13977:17;;:23;13973:116;;14037:2;14017:22;;14075:2;14054:23;;13973:116;14113:13;;;;;;;;;;;14105:21;;:4;:21;;;14101:267;;14181:3;14160:17;14151:6;:26;;;;:::i;:::-;14150:34;;;;:::i;:::-;14143:41;;;;;;14101:267;14212:13;;;;;;;;;;;14206:19;;:2;:19;;;14202:166;;14281:3;14259:18;14250:6;:27;;;;:::i;:::-;14249:35;;;;:::i;:::-;14242:42;;;;;;14202:166;14353:3;14334:15;;14325:6;:24;;;;:::i;:::-;14324:32;;;;:::i;:::-;14317:39;;;;13645:730;;;;;;:::o;917:98::-;970:7;997:10;990:17;;917:98;:::o;7:90:1:-;41:7;84:5;77:13;70:21;59:32;;7:90;;;:::o;103:109::-;184:21;199:5;184:21;:::i;:::-;179:3;172:34;103:109;;:::o;218:210::-;305:4;343:2;332:9;328:18;320:26;;356:65;418:1;407:9;403:17;394:6;356:65;:::i;:::-;218:210;;;;:::o;434:99::-;486:6;520:5;514:12;504:22;;434:99;;;:::o;539:169::-;623:11;657:6;652:3;645:19;697:4;692:3;688:14;673:29;;539:169;;;;:::o;714:246::-;795:1;805:113;819:6;816:1;813:13;805:113;;;904:1;899:3;895:11;889:18;885:1;880:3;876:11;869:39;841:2;838:1;834:10;829:15;;805:113;;;952:1;943:6;938:3;934:16;927:27;776:184;714:246;;;:::o;966:102::-;1007:6;1058:2;1054:7;1049:2;1042:5;1038:14;1034:28;1024:38;;966:102;;;:::o;1074:377::-;1162:3;1190:39;1223:5;1190:39;:::i;:::-;1245:71;1309:6;1304:3;1245:71;:::i;:::-;1238:78;;1325:65;1383:6;1378:3;1371:4;1364:5;1360:16;1325:65;:::i;:::-;1415:29;1437:6;1415:29;:::i;:::-;1410:3;1406:39;1399:46;;1166:285;1074:377;;;;:::o;1457:313::-;1570:4;1608:2;1597:9;1593:18;1585:26;;1657:9;1651:4;1647:20;1643:1;1632:9;1628:17;1621:47;1685:78;1758:4;1749:6;1685:78;:::i;:::-;1677:86;;1457:313;;;;:::o;1857:117::-;1966:1;1963;1956:12;2103:126;2140:7;2180:42;2173:5;2169:54;2158:65;;2103:126;;;:::o;2235:96::-;2272:7;2301:24;2319:5;2301:24;:::i;:::-;2290:35;;2235:96;;;:::o;2337:122::-;2410:24;2428:5;2410:24;:::i;:::-;2403:5;2400:35;2390:63;;2449:1;2446;2439:12;2390:63;2337:122;:::o;2465:139::-;2511:5;2549:6;2536:20;2527:29;;2565:33;2592:5;2565:33;:::i;:::-;2465:139;;;;:::o;2610:77::-;2647:7;2676:5;2665:16;;2610:77;;;:::o;2693:122::-;2766:24;2784:5;2766:24;:::i;:::-;2759:5;2756:35;2746:63;;2805:1;2802;2795:12;2746:63;2693:122;:::o;2821:139::-;2867:5;2905:6;2892:20;2883:29;;2921:33;2948:5;2921:33;:::i;:::-;2821:139;;;;:::o;2966:474::-;3034:6;3042;3091:2;3079:9;3070:7;3066:23;3062:32;3059:119;;;3097:79;;:::i;:::-;3059:119;3217:1;3242:53;3287:7;3278:6;3267:9;3263:22;3242:53;:::i;:::-;3232:63;;3188:117;3344:2;3370:53;3415:7;3406:6;3395:9;3391:22;3370:53;:::i;:::-;3360:63;;3315:118;2966:474;;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:320;6585:6;6622:1;6616:4;6612:12;6602:22;;6669:1;6663:4;6659:12;6690:18;6680:81;;6746:4;6738:6;6734:17;6724:27;;6680:81;6808:2;6800:6;6797:14;6777:18;6774:38;6771:84;;6827:18;;:::i;:::-;6771:84;6592:269;6541:320;;;:::o;6867:180::-;6915:77;6912:1;6905:88;7012:4;7009:1;7002:15;7036:4;7033:1;7026:15;7053:194;7093:4;7113:20;7131:1;7113:20;:::i;:::-;7108:25;;7147:20;7165:1;7147:20;:::i;:::-;7142:25;;7191:1;7188;7184:9;7176:17;;7215:1;7209:4;7206:11;7203:37;;;7220:18;;:::i;:::-;7203:37;7053:194;;;;:::o;7253:178::-;7393:30;7389:1;7381:6;7377:14;7370:54;7253:178;:::o;7437:366::-;7579:3;7600:67;7664:2;7659:3;7600:67;:::i;:::-;7593:74;;7676:93;7765:3;7676:93;:::i;:::-;7794:2;7789:3;7785:12;7778:19;;7437:366;;;:::o;7809:419::-;7975:4;8013:2;8002:9;7998:18;7990:26;;8062:9;8056:4;8052:20;8048:1;8037:9;8033:17;8026:47;8090:131;8216:4;8090:131;:::i;:::-;8082:139;;7809:419;;;:::o;8234:332::-;8355:4;8393:2;8382:9;8378:18;8370:26;;8406:71;8474:1;8463:9;8459:17;8450:6;8406:71;:::i;:::-;8487:72;8555:2;8544:9;8540:18;8531:6;8487:72;:::i;:::-;8234:332;;;;;:::o;8572:116::-;8642:21;8657:5;8642:21;:::i;:::-;8635:5;8632:32;8622:60;;8678:1;8675;8668:12;8622:60;8572:116;:::o;8694:137::-;8748:5;8779:6;8773:13;8764:22;;8795:30;8819:5;8795:30;:::i;:::-;8694:137;;;;:::o;8837:345::-;8904:6;8953:2;8941:9;8932:7;8928:23;8924:32;8921:119;;;8959:79;;:::i;:::-;8921:119;9079:1;9104:61;9157:7;9148:6;9137:9;9133:22;9104:61;:::i;:::-;9094:71;;9050:125;8837:345;;;;:::o;9188:225::-;9328:34;9324:1;9316:6;9312:14;9305:58;9397:8;9392:2;9384:6;9380:15;9373:33;9188:225;:::o;9419:366::-;9561:3;9582:67;9646:2;9641:3;9582:67;:::i;:::-;9575:74;;9658:93;9747:3;9658:93;:::i;:::-;9776:2;9771:3;9767:12;9760:19;;9419:366;;;:::o;9791:419::-;9957:4;9995:2;9984:9;9980:18;9972:26;;10044:9;10038:4;10034:20;10030:1;10019:9;10015:17;10008:47;10072:131;10198:4;10072:131;:::i;:::-;10064:139;;9791:419;;;:::o;10216:191::-;10256:3;10275:20;10293:1;10275:20;:::i;:::-;10270:25;;10309:20;10327:1;10309:20;:::i;:::-;10304:25;;10352:1;10349;10345:9;10338:16;;10373:3;10370:1;10367:10;10364:36;;;10380:18;;:::i;:::-;10364:36;10216:191;;;;:::o;10413:233::-;10452:3;10475:24;10493:5;10475:24;:::i;:::-;10466:33;;10521:66;10514:5;10511:77;10508:103;;10591:18;;:::i;:::-;10508:103;10638:1;10631:5;10627:13;10620:20;;10413:233;;;:::o;10652:182::-;10792:34;10788:1;10780:6;10776:14;10769:58;10652:182;:::o;10840:366::-;10982:3;11003:67;11067:2;11062:3;11003:67;:::i;:::-;10996:74;;11079:93;11168:3;11079:93;:::i;:::-;11197:2;11192:3;11188:12;11181:19;;10840:366;;;:::o;11212:419::-;11378:4;11416:2;11405:9;11401:18;11393:26;;11465:9;11459:4;11455:20;11451:1;11440:9;11436:17;11429:47;11493:131;11619:4;11493:131;:::i;:::-;11485:139;;11212:419;;;:::o;11637:410::-;11677:7;11700:20;11718:1;11700:20;:::i;:::-;11695:25;;11734:20;11752:1;11734:20;:::i;:::-;11729:25;;11789:1;11786;11782:9;11811:30;11829:11;11811:30;:::i;:::-;11800:41;;11990:1;11981:7;11977:15;11974:1;11971:22;11951:1;11944:9;11924:83;11901:139;;12020:18;;:::i;:::-;11901:139;11685:362;11637:410;;;;:::o;12053:180::-;12101:77;12098:1;12091:88;12198:4;12195:1;12188:15;12222:4;12219:1;12212:15;12239:185;12279:1;12296:20;12314:1;12296:20;:::i;:::-;12291:25;;12330:20;12348:1;12330:20;:::i;:::-;12325:25;;12369:1;12359:35;;12374:18;;:::i;:::-;12359:35;12416:1;12413;12409:9;12404:14;;12239:185;;;;:::o

Swarm Source

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