S Price: $0.742827 (-8.02%)

Token

DONOTBUYTESTING (DNBT)

Overview

Max Total Supply

1,000,000 DNBT

Holders

5

Market

Price

$0.00 @ 0.000000 S

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.024494169783552883 DNBT

Value
$0.00
0x00120d00e83bd9540f7472119afd2b058fd5662a
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
DONOTBUYTESTING

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at SonicScan.org on 2025-02-23
*/

// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.6.12;

// ----------------------
// LIBRARIES & INTERFACES
// ----------------------
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) { return 0; }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

// Router Interface for Metropolis Router
interface IRouter {
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);

    function WETH() external pure returns (address);
	
	function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);
}

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () internal {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

// ----------------------
// SONIC NETWORK TOKEN CONTRACT
// ----------------------
contract DONOTBUYTESTING is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private _name = "DONOTBUYTESTING";
    string private _symbol = "DNBT";
    uint8 private _decimals = 18;
    uint256 private constant _totalSupply = 1e6 * 10**18;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public isExcludedFromRewards;
    mapping(address => bool) public isBlacklisted;
    mapping(address => bool) public isAdmin;
    mapping(address => bool) private isHolder;
    address[] private holders;

    bool public tradingEnabled = false;
    bool public rewardDistributionEnabled = false;
    bool private inSwapAndLiquify;
    
    uint256 public taxFee = 10; // Default 10% tax
    uint256 public liquidityFee = 5; // 5% added to liquidity
    uint256 public rewardsFee = 5; // 5% to rewards wallet

    uint256 public minimumTokensBeforeSwap = _totalSupply.div(10000); // 0.01% of total supply

    address public rewardsWallet;
    address public devWallet;
    address public liquidityPair;
    IRouter public router;

    event RewardsDistributed(uint256 totalDistributed);
    event Blacklisted(address indexed account, bool isBlacklisted);
    event FeesUpdated(uint256 newFee);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor (address _router, address _rewardsWallet, address _devWallet) public {
        router = IRouter(_router);
        rewardsWallet = _rewardsWallet;
        devWallet = _devWallet;
        _balances[_msgSender()] = _totalSupply;
        // Add deployer to holders list
        isHolder[_msgSender()] = true;
        holders.push(_msgSender());
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    // --- ERC20 Standard Functions ---
    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount));
        return true;
    }
	
	// Internal function to remove an address from the holders array.
	function _removeHolder(address account) internal {
		require(isHolder[account], "Account is not a holder");
		uint256 length = holders.length;
		for (uint256 i = 0; i < length; i++) {
			if (holders[i] == account) {
				// Swap with the last element and remove the last element.
				holders[i] = holders[length - 1];
				holders.pop();
				isHolder[account] = false;
				break;
				}
			}
	}

   function _transfer(address sender, address recipient, uint256 amount) internal {
    require(sender != address(0), "ERC20: transfer from the zero address");
    require(recipient != address(0), "ERC20: transfer to the zero address");

    // Calculate fees separately:
    // Liquidity fee is kept in the contract for later liquidity addition.
    uint256 liquidityAmount = amount.mul(liquidityFee).div(100);
    // Rewards fee is sent to the rewards wallet.
    uint256 rewardsAmount = amount.mul(rewardsFee).div(100);
    // Total fee is the sum of these two fees.
    uint256 totalFee = liquidityAmount.add(rewardsAmount);
    // The amount the recipient receives is the original amount minus the total fees.
    uint256 transferAmount = amount.sub(totalFee);

    // Deduct the full amount from sender's balance.
    _balances[sender] = _balances[sender].sub(amount);
    // Credit the recipient with the net amount.
    _balances[recipient] = _balances[recipient].add(transferAmount);
    // Credit the contract with the liquidity fee (for swapAndLiquify later).
    _balances[address(this)] = _balances[address(this)].add(liquidityAmount);
    // Credit the rewards wallet with the rewards fee.
    _balances[rewardsWallet] = _balances[rewardsWallet].add(rewardsAmount);

    emit Transfer(sender, recipient, transferAmount);
    emit Transfer(sender, address(this), liquidityAmount);
    emit Transfer(sender, rewardsWallet, rewardsAmount);

    // Update holders: remove sender if balance drops to zero.
    if (_balances[sender] == 0 && isHolder[sender]) {
        _removeHolder(sender);
    }
    // Add recipient to holders if not already present.
    if (!isHolder[recipient] && _balances[recipient] > 0) {
        isHolder[recipient] = true;
        holders.push(recipient);
    }
   }

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
	
	function name() public view returns (string memory) {
    return _name;
	}

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

	function decimals() public view returns (uint8) {
    return _decimals;
	}
	
    // --- End ERC20 Functions ---

    function setLiquidityPair(address _pair) external onlyOwner {
        require(_pair != address(0), "Liquidity pair cannot be zero address");
        liquidityPair = _pair;
    }

    function setTradingEnabled(bool _enabled) external onlyOwner {
        tradingEnabled = _enabled;
    }

    function setRewardDistribution(bool _enabled) external onlyOwner {
        rewardDistributionEnabled = _enabled;
    }

    function setExcludeFromRewards(address account, bool excluded) external onlyOwner {
        isExcludedFromRewards[account] = excluded;
    }

    function setBlacklist(address account, bool _blacklisted) external onlyOwner {
        isBlacklisted[account] = _blacklisted;
        emit Blacklisted(account, _blacklisted);
    }

    function setTaxFee(uint256 _taxFee, uint256 _liquidityFee, uint256 _rewardsFee) external onlyOwner {
        require(_taxFee <= 20, "Total fee too high");
        taxFee = _taxFee;
        liquidityFee = _liquidityFee;
        rewardsFee = _rewardsFee;
        emit FeesUpdated(_taxFee);
    }

    function distributeRewards() external {
        require(rewardDistributionEnabled, "Reward distribution is disabled");
        require(msg.sender == rewardsWallet || isAdmin[msg.sender], "Not authorized");

        uint256 rewardsBalance = _balances[rewardsWallet];
        require(rewardsBalance > 0, "No rewards to distribute");

        for (uint256 i = 0; i < holders.length; i++) {
            address holder = holders[i];
            if (!isExcludedFromRewards[holder]) {
                uint256 share = _balances[holder].mul(rewardsBalance).div(_totalSupply);
                _balances[rewardsWallet] = _balances[rewardsWallet].sub(share);
                _balances[holder] = _balances[holder].add(share);
                emit Transfer(rewardsWallet, holder, share);
            }
        }
    }

    function swapAndLiquify() internal lockTheSwap {
        uint256 half = _balances[address(this)].div(2);
        uint256 otherHalf = _balances[address(this)].sub(half);
        uint256 initialBalance = address(this).balance;
        swapTokensForEth(half);
        uint256 newBalance = address(this).balance.sub(initialBalance);
        addLiquidity(otherHalf, newBalance);
    }

    function manualSwapAndLiquify(uint256 amount) external {
        require(msg.sender == owner() || isAdmin[msg.sender], "Not authorized");
        require(_balances[address(this)] >= amount, "Insufficient contract balance");
        swapAndLiquify();
    }

    receive() external payable {}

    function withdrawS(uint256 amount) external onlyOwner {
        require(address(this).balance >= amount, "Not enough balance");
        payable(msg.sender).transfer(amount);
    }
	
	function setAdmin(address account, bool _isAdmin) external onlyOwner {
        require(account != address(0), "Cannot set zero address as admin");
        isAdmin[account] = _isAdmin;
    }

    function swapTokensForEth(uint256 tokenAmount) internal {
        // Generate the swap path: token -> WETH
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        
        // Approve the router to spend tokens from this contract
        _approve(address(this), address(router), tokenAmount);
        
        // Swap tokens for ETH
        // Using 0 for amountOutMin to accept any amount (consider adjusting for slippage)
        router.swapExactTokensForETH(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp + 300
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) internal {
        // Approve the router to spend the tokens from this contract
        _approve(address(this), address(router), tokenAmount);
        
        // Add liquidity using the Metropolis Router's addLiquidity function.
        // Using 0 for amountAMin and amountBMin to accept any amounts; adjust as needed for slippage protection.
        router.addLiquidity(
            address(this),
            router.WETH(),
            tokenAmount,
            ethAmount,
            0,
            0,
            owner(),
            block.timestamp + 300
        );
    }
	function getHolders() external view returns (address[] memory) {
    return holders;
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_rewardsWallet","type":"address"},{"internalType":"address","name":"_devWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isBlacklisted","type":"bool"}],"name":"Blacklisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"FeesUpdated","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":false,"internalType":"uint256","name":"totalDistributed","type":"uint256"}],"name":"RewardsDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getHolders","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromRewards","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualSwapAndLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardDistributionEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"_isAdmin","type":"bool"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"_blacklisted","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludeFromRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setLiquidityPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setRewardDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_rewardsFee","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setTradingEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600f81526020017f444f4e4f5442555954455354494e470000000000000000000000000000000000815250600190805190602001906200005192919062000560565b506040518060400160405280600481526020017f444e425400000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000560565b506012600360006101000a81548160ff021916908360ff1602179055506000600b60006101000a81548160ff0219169083151502179055506000600b60016101000a81548160ff021916908315150217905550600a600c556005600d556005600e556200012761271069d3c21bcecceda1000000620004cd60201b6200256f1790919060201c565b600f553480156200013757600080fd5b506040516200415938038062004159833981810160405260608110156200015d57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050620001926200055860201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a382601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555069d3c21bcecceda1000000600460006200032e6200055860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160096000620003826200055860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a620003e56200055860201b60201c565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004556200055860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda10000006040518082815260200191505060405180910390a350505062000606565b600080821162000545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b8183816200054f57fe5b04905092915050565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005a357805160ff1916838001178555620005d4565b82800160010185558215620005d4579182015b82811115620005d3578251825591602001919060010190620005b6565b5b509050620005e39190620005e7565b5090565b5b8082111562000602576000816000905550600101620005e8565b5090565b613b4380620006166000396000f3fe6080604052600436106102085760003560e01c806370a0823111610118578063a8be6a4c116100a0578063d2d7ad831161006f578063d2d7ad8314610b16578063dd62ed3e14610b41578063ee9f36d814610bc6578063f887ea4014610c03578063fe575a8714610c445761020f565b8063a8be6a4c146109de578063a9059cbb14610a0b578063bb1224ea14610a7c578063c2e5ec0414610ad95761020f565b80638ea5220f116100e75780638ea5220f1461086657806395d89b41146108a757806398118cb4146109375780639d93598e14610962578063a071dcf4146109b35761020f565b806370a0823114610768578063715018a6146107cd578063808a5457146107e45780638da5cb5b146108255761020f565b806324d7806c1161019b5780634ada218b1161016a5780634ada218b1461061a5780634b0bddd2146106475780635b35f9c9146106a45780635fe8e7cc146106e55780636f4a2cd0146107515761020f565b806324d7806c1461050b5780632bb14e1d14610572578063313ce5671461059d578063324c3454146105cb5761020f565b806316c66c1e116101d757806316c66c1e146103d957806318160ddd146104145780631a2315b81461043f57806323b872dd1461047a5761020f565b806306fdde0314610214578063095ea7b3146102a45780630e83227314610315578063153b0d1e1461037c5761020f565b3661020f57005b600080fd5b34801561022057600080fd5b50610229610cab565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026957808201518184015260208101905061024e565b50505050905090810190601f1680156102965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102b057600080fd5b506102fd600480360360408110156102c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d4d565b60405180821515815260200191505060405180910390f35b34801561032157600080fd5b506103646004803603602081101561033857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d6b565b60405180821515815260200191505060405180910390f35b34801561038857600080fd5b506103d76004803603604081101561039f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610d8b565b005b3480156103e557600080fd5b50610412600480360360208110156103fc57600080fd5b8101908080359060200190929190505050610efe565b005b34801561042057600080fd5b506104296110ba565b6040518082815260200191505060405180910390f35b34801561044b57600080fd5b506104786004803603602081101561046257600080fd5b81019080803590602001909291905050506110cc565b005b34801561048657600080fd5b506104f36004803603606081101561049d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611254565b60405180821515815260200191505060405180910390f35b34801561051757600080fd5b5061055a6004803603602081101561052e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611313565b60405180821515815260200191505060405180910390f35b34801561057e57600080fd5b50610587611333565b6040518082815260200191505060405180910390f35b3480156105a957600080fd5b506105b2611339565b604051808260ff16815260200191505060405180910390f35b3480156105d757600080fd5b50610618600480360360608110156105ee57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611350565b005b34801561062657600080fd5b5061062f6114e0565b60405180821515815260200191505060405180910390f35b34801561065357600080fd5b506106a26004803603604081101561066a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506114f3565b005b3480156106b057600080fd5b506106b96116b9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106f157600080fd5b506106fa6116df565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561073d578082015181840152602081019050610722565b505050509050019250505060405180910390f35b34801561075d57600080fd5b5061076661176d565b005b34801561077457600080fd5b506107b76004803603602081101561078b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cfa565b6040518082815260200191505060405180910390f35b3480156107d957600080fd5b506107e2611d43565b005b3480156107f057600080fd5b506107f9611ec9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561083157600080fd5b5061083a611eef565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561087257600080fd5b5061087b611f18565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108b357600080fd5b506108bc611f3e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108fc5780820151818401526020810190506108e1565b50505050905090810190601f1680156109295780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561094357600080fd5b5061094c611fe0565b6040518082815260200191505060405180910390f35b34801561096e57600080fd5b506109b16004803603602081101561098557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fe6565b005b3480156109bf57600080fd5b506109c8612178565b6040518082815260200191505060405180910390f35b3480156109ea57600080fd5b506109f361217e565b60405180821515815260200191505060405180910390f35b348015610a1757600080fd5b50610a6460048036036040811015610a2e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612191565b60405180821515815260200191505060405180910390f35b348015610a8857600080fd5b50610ad760048036036040811015610a9f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506121af565b005b348015610ae557600080fd5b50610b1460048036036020811015610afc57600080fd5b810190808035151590602001909291905050506122d2565b005b348015610b2257600080fd5b50610b2b6123b7565b6040518082815260200191505060405180910390f35b348015610b4d57600080fd5b50610bb060048036036040811015610b6457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123bd565b6040518082815260200191505060405180910390f35b348015610bd257600080fd5b50610c0160048036036020811015610be957600080fd5b81019080803515159060200190929190505050612444565b005b348015610c0f57600080fd5b50610c18612529565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c5057600080fd5b50610c9360048036036020811015610c6757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061254f565b60405180821515815260200191505060405180910390f35b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d435780601f10610d1857610100808354040283529160200191610d43565b820191906000526020600020905b815481529060010190602001808311610d2657829003601f168201915b5050505050905090565b6000610d61610d5a6125f8565b8484612600565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b610d936125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e53576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fcf3473b85df1594d47b6958f29a32bea0abff9dd68296f7bf33443646793cfd88260405180821515815260200191505060405180910390a25050565b610f06611eef565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f885750600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610ffa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b80600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156110af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f496e73756666696369656e7420636f6e74726163742062616c616e636500000081525060200191505060405180910390fd5b6110b76127f7565b50565b600069d3c21bcecceda1000000905090565b6110d46125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611194576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8047101561120a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611250573d6000803e3d6000fd5b5050565b600061126184848461290f565b6113088461126d6125f8565b61130385600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006112ba6125f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309490919063ffffffff16565b612600565b600190509392505050565b60086020528060005260406000206000915054906101000a900460ff1681565b600e5481565b6000600360009054906101000a900460ff16905090565b6113586125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611418576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b601483111561148f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f546f74616c2066656520746f6f2068696768000000000000000000000000000081525060200191505060405180910390fd5b82600c8190555081600d8190555080600e819055507f9fe6eeb0f0541c644a56c67efeb872dbadd803a60b909d7dde1b35a3fe230b0e836040518082815260200191505060405180910390a1505050565b600b60009054906101000a900460ff1681565b6114fb6125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561165e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616e6e6f7420736574207a65726f20616464726573732061732061646d696e81525060200191505060405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600a80548060200260200160405190810160405280929190818152602001828054801561176357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611719575b5050505050905090565b600b60019054906101000a900460ff166117ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f52657761726420646973747269627574696f6e2069732064697361626c65640081525060200191505060405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806118945750600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611906576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b600060046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081116119e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f207265776172647320746f2064697374726962757465000000000000000081525060200191505060405180910390fd5b60005b600a80549050811015611cf6576000600a8281548110611a0157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ce8576000611aef69d3c21bcecceda1000000611ae186600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461311790919063ffffffff16565b61256f90919063ffffffff16565b9050611b658160046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309490919063ffffffff16565b60046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c1c81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461319d90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505b5080806001019150506119e5565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611d4b6125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fd65780601f10611fab57610100808354040283529160200191611fd6565b820191906000526020600020905b815481529060010190602001808311611fb957829003601f168201915b5050505050905090565b600d5481565b611fee6125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612134576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613a3a6025913960400191505060405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5481565b600b60019054906101000a900460ff1681565b60006121a561219e6125f8565b848461290f565b6001905092915050565b6121b76125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612277576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6122da6125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461239a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b60006101000a81548160ff02191690831515021790555050565b600f5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61244c6125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461250c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b60016101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b60008082116125e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b8183816125ef57fe5b04905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612686576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613aea6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561270c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613a826022913960400191505060405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6001600b60026101000a81548160ff02191690831515021790555060006128676002600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256f90919063ffffffff16565b905060006128bd82600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309490919063ffffffff16565b905060004790506128cd83613225565b60006128e2824761309490919063ffffffff16565b90506128ee838261359b565b505050506000600b60026101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612995576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613ac56025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613a5f6023913960400191505060405180910390fd5b6000612a456064612a37600d548561311790919063ffffffff16565b61256f90919063ffffffff16565b90506000612a716064612a63600e548661311790919063ffffffff16565b61256f90919063ffffffff16565b90506000612a88828461319d90919063ffffffff16565b90506000612a9f828661309490919063ffffffff16565b9050612af385600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309490919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b8881600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461319d90919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c1d84600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461319d90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cd48360046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461319d90919063ffffffff16565b60046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36000600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148015612f225750600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612f3157612f30876137bb565b5b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612fca57506000600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561308b576001600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50505050505050565b60008282111561310c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b60008083141561312a5760009050613197565b600082840290508284828161313b57fe5b0414613192576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613aa46021913960400191505060405180910390fd5b809150505b92915050565b60008082840190508381101561321b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6060600267ffffffffffffffff8111801561323f57600080fd5b5060405190808252806020026020018201604052801561326e5781602001602082028036833780820191505090505b509050308160008151811061327f57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561332157600080fd5b505afa158015613335573d6000803e3d6000fd5b505050506040513d602081101561334b57600080fd5b81019080805190602001909291905050508160018151811061336957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506133d030601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612600565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318cbafe5836000843061012c42016040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561349857808201518184015260208101905061347d565b505050509050019650505050505050600060405180830381600087803b1580156134c157600080fd5b505af11580156134d5573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156134ff57600080fd5b810190808051604051939291908464010000000082111561351f57600080fd5b8382019150602082018581111561353557600080fd5b825186602082028301116401000000008211171561355257600080fd5b8083526020830192505050908051906020019060200280838360005b8381101561358957808201518184015260208101905061356e565b50505050905001604052505050505050565b6135c830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612600565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e3370030601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561366f57600080fd5b505afa158015613683573d6000803e3d6000fd5b505050506040513d602081101561369957600080fd5b810190808051906020019092919050505085856000806136b7611eef565b61012c42016040518963ffffffff1660e01b8152600401808973ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200198505050505050505050606060405180830381600087803b15801561376557600080fd5b505af1158015613779573d6000803e3d6000fd5b505050506040513d606081101561378f57600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050505050565b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661387a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4163636f756e74206973206e6f74206120686f6c64657200000000000000000081525060200191505060405180910390fd5b6000600a80549050905060005b81811015613a34578273ffffffffffffffffffffffffffffffffffffffff16600a82815481106138b357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613a2757600a600183038154811061390a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a828154811061394257fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a80548061399557fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613a34565b8080600101915050613887565b50505056fe4c697175696469747920706169722063616e6e6f74206265207a65726f206164647265737345524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a264697066735822122019b6f861622cb253a80439455af774367af5bcc716a2e3abdedc0499fa1fd77464736f6c634300060c003300000000000000000000000095a7e403d7cf20f675ff9273d66e94d35ba49fa3000000000000000000000000ef4149365233cd2a3d250ebc4728d02d2a8f1bb9000000000000000000000000b10887b15bd420f676b2fe10c3ea6fd8b41f3bc8

Deployed Bytecode

0x6080604052600436106102085760003560e01c806370a0823111610118578063a8be6a4c116100a0578063d2d7ad831161006f578063d2d7ad8314610b16578063dd62ed3e14610b41578063ee9f36d814610bc6578063f887ea4014610c03578063fe575a8714610c445761020f565b8063a8be6a4c146109de578063a9059cbb14610a0b578063bb1224ea14610a7c578063c2e5ec0414610ad95761020f565b80638ea5220f116100e75780638ea5220f1461086657806395d89b41146108a757806398118cb4146109375780639d93598e14610962578063a071dcf4146109b35761020f565b806370a0823114610768578063715018a6146107cd578063808a5457146107e45780638da5cb5b146108255761020f565b806324d7806c1161019b5780634ada218b1161016a5780634ada218b1461061a5780634b0bddd2146106475780635b35f9c9146106a45780635fe8e7cc146106e55780636f4a2cd0146107515761020f565b806324d7806c1461050b5780632bb14e1d14610572578063313ce5671461059d578063324c3454146105cb5761020f565b806316c66c1e116101d757806316c66c1e146103d957806318160ddd146104145780631a2315b81461043f57806323b872dd1461047a5761020f565b806306fdde0314610214578063095ea7b3146102a45780630e83227314610315578063153b0d1e1461037c5761020f565b3661020f57005b600080fd5b34801561022057600080fd5b50610229610cab565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026957808201518184015260208101905061024e565b50505050905090810190601f1680156102965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102b057600080fd5b506102fd600480360360408110156102c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d4d565b60405180821515815260200191505060405180910390f35b34801561032157600080fd5b506103646004803603602081101561033857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d6b565b60405180821515815260200191505060405180910390f35b34801561038857600080fd5b506103d76004803603604081101561039f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610d8b565b005b3480156103e557600080fd5b50610412600480360360208110156103fc57600080fd5b8101908080359060200190929190505050610efe565b005b34801561042057600080fd5b506104296110ba565b6040518082815260200191505060405180910390f35b34801561044b57600080fd5b506104786004803603602081101561046257600080fd5b81019080803590602001909291905050506110cc565b005b34801561048657600080fd5b506104f36004803603606081101561049d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611254565b60405180821515815260200191505060405180910390f35b34801561051757600080fd5b5061055a6004803603602081101561052e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611313565b60405180821515815260200191505060405180910390f35b34801561057e57600080fd5b50610587611333565b6040518082815260200191505060405180910390f35b3480156105a957600080fd5b506105b2611339565b604051808260ff16815260200191505060405180910390f35b3480156105d757600080fd5b50610618600480360360608110156105ee57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611350565b005b34801561062657600080fd5b5061062f6114e0565b60405180821515815260200191505060405180910390f35b34801561065357600080fd5b506106a26004803603604081101561066a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506114f3565b005b3480156106b057600080fd5b506106b96116b9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106f157600080fd5b506106fa6116df565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561073d578082015181840152602081019050610722565b505050509050019250505060405180910390f35b34801561075d57600080fd5b5061076661176d565b005b34801561077457600080fd5b506107b76004803603602081101561078b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cfa565b6040518082815260200191505060405180910390f35b3480156107d957600080fd5b506107e2611d43565b005b3480156107f057600080fd5b506107f9611ec9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561083157600080fd5b5061083a611eef565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561087257600080fd5b5061087b611f18565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108b357600080fd5b506108bc611f3e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108fc5780820151818401526020810190506108e1565b50505050905090810190601f1680156109295780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561094357600080fd5b5061094c611fe0565b6040518082815260200191505060405180910390f35b34801561096e57600080fd5b506109b16004803603602081101561098557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fe6565b005b3480156109bf57600080fd5b506109c8612178565b6040518082815260200191505060405180910390f35b3480156109ea57600080fd5b506109f361217e565b60405180821515815260200191505060405180910390f35b348015610a1757600080fd5b50610a6460048036036040811015610a2e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612191565b60405180821515815260200191505060405180910390f35b348015610a8857600080fd5b50610ad760048036036040811015610a9f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506121af565b005b348015610ae557600080fd5b50610b1460048036036020811015610afc57600080fd5b810190808035151590602001909291905050506122d2565b005b348015610b2257600080fd5b50610b2b6123b7565b6040518082815260200191505060405180910390f35b348015610b4d57600080fd5b50610bb060048036036040811015610b6457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123bd565b6040518082815260200191505060405180910390f35b348015610bd257600080fd5b50610c0160048036036020811015610be957600080fd5b81019080803515159060200190929190505050612444565b005b348015610c0f57600080fd5b50610c18612529565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c5057600080fd5b50610c9360048036036020811015610c6757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061254f565b60405180821515815260200191505060405180910390f35b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d435780601f10610d1857610100808354040283529160200191610d43565b820191906000526020600020905b815481529060010190602001808311610d2657829003601f168201915b5050505050905090565b6000610d61610d5a6125f8565b8484612600565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b610d936125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e53576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fcf3473b85df1594d47b6958f29a32bea0abff9dd68296f7bf33443646793cfd88260405180821515815260200191505060405180910390a25050565b610f06611eef565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f885750600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610ffa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b80600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156110af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f496e73756666696369656e7420636f6e74726163742062616c616e636500000081525060200191505060405180910390fd5b6110b76127f7565b50565b600069d3c21bcecceda1000000905090565b6110d46125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611194576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8047101561120a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611250573d6000803e3d6000fd5b5050565b600061126184848461290f565b6113088461126d6125f8565b61130385600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006112ba6125f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309490919063ffffffff16565b612600565b600190509392505050565b60086020528060005260406000206000915054906101000a900460ff1681565b600e5481565b6000600360009054906101000a900460ff16905090565b6113586125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611418576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b601483111561148f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f546f74616c2066656520746f6f2068696768000000000000000000000000000081525060200191505060405180910390fd5b82600c8190555081600d8190555080600e819055507f9fe6eeb0f0541c644a56c67efeb872dbadd803a60b909d7dde1b35a3fe230b0e836040518082815260200191505060405180910390a1505050565b600b60009054906101000a900460ff1681565b6114fb6125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561165e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616e6e6f7420736574207a65726f20616464726573732061732061646d696e81525060200191505060405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600a80548060200260200160405190810160405280929190818152602001828054801561176357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611719575b5050505050905090565b600b60019054906101000a900460ff166117ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f52657761726420646973747269627574696f6e2069732064697361626c65640081525060200191505060405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806118945750600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611906576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420617574686f72697a656400000000000000000000000000000000000081525060200191505060405180910390fd5b600060046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081116119e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f207265776172647320746f2064697374726962757465000000000000000081525060200191505060405180910390fd5b60005b600a80549050811015611cf6576000600a8281548110611a0157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ce8576000611aef69d3c21bcecceda1000000611ae186600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461311790919063ffffffff16565b61256f90919063ffffffff16565b9050611b658160046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309490919063ffffffff16565b60046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c1c81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461319d90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505b5080806001019150506119e5565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611d4b6125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fd65780601f10611fab57610100808354040283529160200191611fd6565b820191906000526020600020905b815481529060010190602001808311611fb957829003601f168201915b5050505050905090565b600d5481565b611fee6125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612134576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613a3a6025913960400191505060405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5481565b600b60019054906101000a900460ff1681565b60006121a561219e6125f8565b848461290f565b6001905092915050565b6121b76125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612277576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6122da6125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461239a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b60006101000a81548160ff02191690831515021790555050565b600f5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61244c6125f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461250c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b60016101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b60008082116125e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b8183816125ef57fe5b04905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612686576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613aea6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561270c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613a826022913960400191505060405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6001600b60026101000a81548160ff02191690831515021790555060006128676002600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256f90919063ffffffff16565b905060006128bd82600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309490919063ffffffff16565b905060004790506128cd83613225565b60006128e2824761309490919063ffffffff16565b90506128ee838261359b565b505050506000600b60026101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612995576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613ac56025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613a5f6023913960400191505060405180910390fd5b6000612a456064612a37600d548561311790919063ffffffff16565b61256f90919063ffffffff16565b90506000612a716064612a63600e548661311790919063ffffffff16565b61256f90919063ffffffff16565b90506000612a88828461319d90919063ffffffff16565b90506000612a9f828661309490919063ffffffff16565b9050612af385600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461309490919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b8881600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461319d90919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c1d84600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461319d90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cd48360046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461319d90919063ffffffff16565b60046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36000600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148015612f225750600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612f3157612f30876137bb565b5b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612fca57506000600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561308b576001600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50505050505050565b60008282111561310c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b60008083141561312a5760009050613197565b600082840290508284828161313b57fe5b0414613192576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613aa46021913960400191505060405180910390fd5b809150505b92915050565b60008082840190508381101561321b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6060600267ffffffffffffffff8111801561323f57600080fd5b5060405190808252806020026020018201604052801561326e5781602001602082028036833780820191505090505b509050308160008151811061327f57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561332157600080fd5b505afa158015613335573d6000803e3d6000fd5b505050506040513d602081101561334b57600080fd5b81019080805190602001909291905050508160018151811061336957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506133d030601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612600565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318cbafe5836000843061012c42016040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561349857808201518184015260208101905061347d565b505050509050019650505050505050600060405180830381600087803b1580156134c157600080fd5b505af11580156134d5573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156134ff57600080fd5b810190808051604051939291908464010000000082111561351f57600080fd5b8382019150602082018581111561353557600080fd5b825186602082028301116401000000008211171561355257600080fd5b8083526020830192505050908051906020019060200280838360005b8381101561358957808201518184015260208101905061356e565b50505050905001604052505050505050565b6135c830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612600565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e3370030601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561366f57600080fd5b505afa158015613683573d6000803e3d6000fd5b505050506040513d602081101561369957600080fd5b810190808051906020019092919050505085856000806136b7611eef565b61012c42016040518963ffffffff1660e01b8152600401808973ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200198505050505050505050606060405180830381600087803b15801561376557600080fd5b505af1158015613779573d6000803e3d6000fd5b505050506040513d606081101561378f57600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050505050565b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661387a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4163636f756e74206973206e6f74206120686f6c64657200000000000000000081525060200191505060405180910390fd5b6000600a80549050905060005b81811015613a34578273ffffffffffffffffffffffffffffffffffffffff16600a82815481106138b357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613a2757600a600183038154811061390a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a828154811061394257fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a80548061399557fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613a34565b8080600101915050613887565b50505056fe4c697175696469747920706169722063616e6e6f74206265207a65726f206164647265737345524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a264697066735822122019b6f861622cb253a80439455af774367af5bcc716a2e3abdedc0499fa1fd77464736f6c634300060c0033

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

00000000000000000000000095a7e403d7cf20f675ff9273d66e94d35ba49fa3000000000000000000000000ef4149365233cd2a3d250ebc4728d02d2a8f1bb9000000000000000000000000b10887b15bd420f676b2fe10c3ea6fd8b41f3bc8

-----Decoded View---------------
Arg [0] : _router (address): 0x95a7e403d7cF20F675fF9273D66e94d35ba49fA3
Arg [1] : _rewardsWallet (address): 0xEf4149365233cD2a3d250EBC4728D02D2A8F1BB9
Arg [2] : _devWallet (address): 0xB10887B15bd420f676B2Fe10C3eA6fd8B41f3bC8

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000095a7e403d7cf20f675ff9273d66e94d35ba49fa3
Arg [1] : 000000000000000000000000ef4149365233cd2a3d250ebc4728d02d2a8f1bb9
Arg [2] : 000000000000000000000000b10887b15bd420f676b2fe10c3ea6fd8b41f3bc8


Deployed Bytecode Sourcemap

3136:10497:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8915:76;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5807:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3538:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9783:183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11502:259;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5246:100;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11806:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5976:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3650:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4028:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9081:76;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9974:299;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3778:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11994:192;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4188:28;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13541:89;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10281:819;;;;;;;;;;;;;:::i;:::-;;5354:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2902:140;;;;;;;;;;;;;:::i;:::-;;4254:28;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2692:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4223:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8996:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3965:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9204:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3913:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3819:45;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5481:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9633:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9392:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4090:64;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5656:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9505:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4289:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3598:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8915:76;8952:13;8981:5;8974:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8915:76;:::o;5807:161::-;5882:4;5899:39;5908:12;:10;:12::i;:::-;5922:7;5931:6;5899:8;:39::i;:::-;5956:4;5949:11;;5807:161;;;;:::o;3538:53::-;;;;;;;;;;;;;;;;;;;;;;:::o;9783:183::-;2827:12;:10;:12::i;:::-;2817:22;;:6;;;;;;;;;;:22;;;2809:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9896:12:::1;9871:13;:22;9885:7;9871:22;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;9936:7;9924:34;;;9945:12;9924:34;;;;;;;;;;;;;;;;;;;;9783:183:::0;;:::o;11502:259::-;11590:7;:5;:7::i;:::-;11576:21;;:10;:21;;;:44;;;;11601:7;:19;11609:10;11601:19;;;;;;;;;;;;;;;;;;;;;;;;;11576:44;11568:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11686:6;11658:9;:24;11676:4;11658:24;;;;;;;;;;;;;;;;:34;;11650:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11737:16;:14;:16::i;:::-;11502:259;:::o;5246:100::-;5299:7;3391:12;5319:19;;5246:100;:::o;11806:182::-;2827:12;:10;:12::i;:::-;2817:22;;:6;;;;;;;;;;:22;;;2809:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11904:6:::1;11879:21;:31;;11871:62;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;11952:10;11944:28;;:36;11973:6;11944:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11806:182:::0;:::o;5976:269::-;6074:4;6091:36;6101:6;6109:9;6120:6;6091:9;:36::i;:::-;6138:77;6147:6;6155:12;:10;:12::i;:::-;6169:45;6207:6;6169:11;:19;6181:6;6169:19;;;;;;;;;;;;;;;:33;6189:12;:10;:12::i;:::-;6169:33;;;;;;;;;;;;;;;;:37;;:45;;;;:::i;:::-;6138:8;:77::i;:::-;6233:4;6226:11;;5976:269;;;;;:::o;3650:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;4028:29::-;;;;:::o;9081:76::-;9122:5;9143:9;;;;;;;;;;;9136:16;;9081:76;:::o;9974:299::-;2827:12;:10;:12::i;:::-;2817:22;;:6;;;;;;;;;;:22;;;2809:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10103:2:::1;10092:7;:13;;10084:44;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10148:7;10139:6;:16;;;;10181:13;10166:12;:28;;;;10218:11;10205:10;:24;;;;10245:20;10257:7;10245:20;;;;;;;;;;;;;;;;;;9974:299:::0;;;:::o;3778:34::-;;;;;;;;;;;;;:::o;11994:192::-;2827:12;:10;:12::i;:::-;2817:22;;:6;;;;;;;;;;:22;;;2809:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12101:1:::1;12082:21;;:7;:21;;;;12074:66;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;12170:8;12151:7;:16;12159:7;12151:16;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;11994:192:::0;;:::o;4188:28::-;;;;;;;;;;;;;:::o;13541:89::-;13586:16;13618:7;13611:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13541:89;:::o;10281:819::-;10338:25;;;;;;;;;;;10330:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10432:13;;;;;;;;;;;10418:27;;:10;:27;;;:50;;;;10449:7;:19;10457:10;10449:19;;;;;;;;;;;;;;;;;;;;;;;;;10418:50;10410:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10500:22;10525:9;:24;10535:13;;;;;;;;;;;10525:24;;;;;;;;;;;;;;;;10500:49;;10585:1;10568:14;:18;10560:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10633:9;10628:465;10652:7;:14;;;;10648:1;:18;10628:465;;;10688:14;10705:7;10713:1;10705:10;;;;;;;;;;;;;;;;;;;;;;;;;10688:27;;10735:21;:29;10757:6;10735:29;;;;;;;;;;;;;;;;;;;;;;;;;10730:352;;10785:13;10801:55;3391:12;10801:37;10823:14;10801:9;:17;10811:6;10801:17;;;;;;;;;;;;;;;;:21;;:37;;;;:::i;:::-;:41;;:55;;;;:::i;:::-;10785:71;;10902:35;10931:5;10902:9;:24;10912:13;;;;;;;;;;;10902:24;;;;;;;;;;;;;;;;:28;;:35;;;;:::i;:::-;10875:9;:24;10885:13;;;;;;;;;;;10875:24;;;;;;;;;;;;;;;:62;;;;10976:28;10998:5;10976:9;:17;10986:6;10976:17;;;;;;;;;;;;;;;;:21;;:28;;;;:::i;:::-;10956:9;:17;10966:6;10956:17;;;;;;;;;;;;;;;:48;;;;11052:6;11028:38;;11037:13;;;;;;;;;;;11028:38;;;11060:5;11028:38;;;;;;;;;;;;;;;;;;10730:352;;10628:465;10668:3;;;;;;;10628:465;;;;10281:819;:::o;5354:119::-;5420:7;5447:9;:18;5457:7;5447:18;;;;;;;;;;;;;;;;5440:25;;5354:119;;;:::o;2902:140::-;2827:12;:10;:12::i;:::-;2817:22;;:6;;;;;;;;;;:22;;;2809:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3001:1:::1;2964:40;;2985:6;::::0;::::1;;;;;;;;2964:40;;;;;;;;;;;;3032:1;3015:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2902:140::o:0;4254:28::-;;;;;;;;;;;;;:::o;2692:79::-;2730:7;2757:6;;;;;;;;;;;2750:13;;2692:79;:::o;4223:24::-;;;;;;;;;;;;;:::o;8996:80::-;9035:13;9064:7;9057:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8996:80;:::o;3965:31::-;;;;:::o;9204:180::-;2827:12;:10;:12::i;:::-;2817:22;;:6;;;;;;;;;;:22;;;2809:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9300:1:::1;9283:19;;:5;:19;;;;9275:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9371:5;9355:13;;:21;;;;;;;;;;;;;;;;;;9204:180:::0;:::o;3913:26::-;;;;:::o;3819:45::-;;;;;;;;;;;;;:::o;5481:167::-;5559:4;5576:42;5586:12;:10;:12::i;:::-;5600:9;5611:6;5576:9;:42::i;:::-;5636:4;5629:11;;5481:167;;;;:::o;9633:142::-;2827:12;:10;:12::i;:::-;2817:22;;:6;;;;;;;;;;:22;;;2809:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9759:8:::1;9726:21;:30;9748:7;9726:30;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;9633:142:::0;;:::o;9392:105::-;2827:12;:10;:12::i;:::-;2817:22;;:6;;;;;;;;;;:22;;;2809:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9481:8:::1;9464:14;;:25;;;;;;;;;;;;;;;;;;9392:105:::0;:::o;4090:64::-;;;;:::o;5656:143::-;5737:7;5764:11;:18;5776:5;5764:18;;;;;;;;;;;;;;;:27;5783:7;5764:27;;;;;;;;;;;;;;;;5757:34;;5656:143;;;;:::o;9505:120::-;2827:12;:10;:12::i;:::-;2817:22;;:6;;;;;;;;;;:22;;;2809:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9609:8:::1;9581:25;;:36;;;;;;;;;;;;;;;;;;9505:120:::0;:::o;4289:21::-;;;;;;;;;;;;;:::o;3598:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;748:153::-;806:7;838:1;834;:5;826:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;892:1;888;:5;;;;;;881:12;;748:153;;;;:::o;2299:106::-;2352:15;2387:10;2380:17;;2299:106;:::o;8571:338::-;8682:1;8665:19;;:5;:19;;;;8657:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8763:1;8744:21;;:7;:21;;;;8736:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8847:6;8817:11;:18;8829:5;8817:18;;;;;;;;;;;;;;;:27;8836:7;8817:27;;;;;;;;;;;;;;;:36;;;;8885:7;8869:32;;8878:5;8869:32;;;8894:6;8869:32;;;;;;;;;;;;;;;;;;8571:338;;;:::o;11108:386::-;4700:4;4681:16;;:23;;;;;;;;;;;;;;;;;;11166:12:::1;11181:31;11210:1;11181:9;:24;11199:4;11181:24;;;;;;;;;;;;;;;;:28;;:31;;;;:::i;:::-;11166:46;;11223:17;11243:34;11272:4;11243:9;:24;11261:4;11243:24;;;;;;;;;;;;;;;;:28;;:34;;;;:::i;:::-;11223:54;;11288:22;11313:21;11288:46;;11345:22;11362:4;11345:16;:22::i;:::-;11378:18;11399:41;11425:14;11399:21;:25;;:41;;;;:::i;:::-;11378:62;;11451:35;11464:9;11475:10;11451:12;:35::i;:::-;4715:1;;;;4746:5:::0;4727:16;;:24;;;;;;;;;;;;;;;;;;11108:386::o;6729:1834::-;6841:1;6823:20;;:6;:20;;;;6815:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6921:1;6900:23;;:9;:23;;;;6892:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7083:23;7109:33;7138:3;7109:24;7120:12;;7109:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;7083:59;;7200:21;7224:31;7251:3;7224:22;7235:10;;7224:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;7200:55;;7310:16;7329:34;7349:13;7329:15;:19;;:34;;;;:::i;:::-;7310:53;;7457:22;7482:20;7493:8;7482:6;:10;;:20;;;;:::i;:::-;7457:45;;7585:29;7607:6;7585:9;:17;7595:6;7585:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;7565:9;:17;7575:6;7565:17;;;;;;;;;;;;;;;:49;;;;7694:40;7719:14;7694:9;:20;7704:9;7694:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;7671:9;:20;7681:9;7671:20;;;;;;;;;;;;;;;:63;;;;7847:45;7876:15;7847:9;:24;7865:4;7847:24;;;;;;;;;;;;;;;;:28;;:45;;;;:::i;:::-;7820:9;:24;7838:4;7820:24;;;;;;;;;;;;;;;:72;;;;7982:43;8011:13;7982:9;:24;7992:13;;;;;;;;;;;7982:24;;;;;;;;;;;;;;;;:28;;:43;;;;:::i;:::-;7955:9;:24;7965:13;;;;;;;;;;;7955:24;;;;;;;;;;;;;;;:70;;;;8056:9;8039:43;;8048:6;8039:43;;;8067:14;8039:43;;;;;;;;;;;;;;;;;;8119:4;8094:48;;8103:6;8094:48;;;8126:15;8094:48;;;;;;;;;;;;;;;;;;8171:13;;;;;;;;;;;8154:46;;8163:6;8154:46;;;8186:13;8154:46;;;;;;;;;;;;;;;;;;8298:1;8277:9;:17;8287:6;8277:17;;;;;;;;;;;;;;;;:22;:42;;;;;8303:8;:16;8312:6;8303:16;;;;;;;;;;;;;;;;;;;;;;;;;8277:42;8273:88;;;8332:21;8346:6;8332:13;:21::i;:::-;8273:88;8429:8;:19;8438:9;8429:19;;;;;;;;;;;;;;;;;;;;;;;;;8428:20;:48;;;;;8475:1;8452:9;:20;8462:9;8452:20;;;;;;;;;;;;;;;;:24;8428:48;8424:133;;;8511:4;8489:8;:19;8498:9;8489:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;8526:7;8539:9;8526:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8424:133;6729:1834;;;;;;;:::o;354:158::-;412:7;445:1;440;:6;;432:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;503:1;499;:5;492:12;;354:158;;;;:::o;518:224::-;576:7;605:1;600;:6;596:25;;;617:1;610:8;;;;596:25;631:9;647:1;643;:5;631:17;;676:1;671;667;:5;;;;;;:10;659:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;733:1;726:8;;;518:224;;;;;:::o;169:179::-;227:7;247:9;263:1;259;:5;247:17;;288:1;283;:6;;275:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:1;332:8;;;169:179;;;;:::o;12194:682::-;12311:21;12349:1;12335:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12311:40;;12380:4;12362;12367:1;12362:7;;;;;;;;;;;;;:23;;;;;;;;;;;12406:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12396:4;12401:1;12396:7;;;;;;;;;;;;;:23;;;;;;;;;;;12506:53;12523:4;12538:6;;;;;;;;;;;12547:11;12506:8;:53::i;:::-;12704:6;;;;;;;;;;;:28;;;12747:11;12773:1;12789:4;12816;12854:3;12836:15;:21;12704:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12194:682;;:::o;12884:654::-;13036:53;13053:4;13068:6;;;;;;;;;;;13077:11;13036:8;:53::i;:::-;13304:6;;;;;;;;;;;:19;;;13346:4;13366:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13394:11;13420:9;13444:1;13460;13476:7;:5;:7::i;:::-;13516:3;13498:15;:21;13304:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12884:654;;:::o;6319:403::-;6381:8;:17;6390:7;6381:17;;;;;;;;;;;;;;;;;;;;;;;;;6373:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6431:14;6448:7;:14;;;;6431:31;;6472:9;6467:251;6491:6;6487:1;:10;6467:251;;;6528:7;6514:21;;:7;6522:1;6514:10;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;6510:202;;;6621:7;6638:1;6629:6;:10;6621:19;;;;;;;;;;;;;;;;;;;;;;;;;6608:7;6616:1;6608:10;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;6647:7;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6687:5;6667:8;:17;6676:7;6667:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;6699:5;;6510:202;6499:3;;;;;;;6467:251;;;;6319:403;;:::o

Swarm Source

ipfs://19b6f861622cb253a80439455af774367af5bcc716a2e3abdedc0499fa1fd774
[ 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.