ETH Price: $3,321.10 (-4.06%)

Token

ROOTx (ROOTx)
 

Overview

Max Total Supply

18,923,118.999999999998096426 ROOTx

Holders

1,246

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
cabbagemaker.eth
Balance
1,203.2 ROOTx

Value
$0.00
0xD69B09e53aE62CeadB92383a13Db9eB383BBA954
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

ROOT token is the utility token for the BearX Labs ecosystem - one of the fastest growing companies in the NFT space. Owners get daily rewards, access to exclusive NFTs and weekly challenges. Powered by a public team and a community of over 250,000

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ROOTx

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-16
*/

/**
 *Submitted for verification at Etherscan.io on 2021-11-16
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.6.0;


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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}


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 allowance(address owner, address spender) external view returns (uint256);

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

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

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

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


interface INFT {
    function balanceOf(address owner) external view returns (uint256 balance);
    function ownerOf(uint256 tokenId) external view returns (address owner);
    function walletOfOwner(address _owner) external view returns(uint256[] memory);
}


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) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    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) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}


library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}


contract ERC20 is Context, IERC20 {
    using SafeMath for uint256;
    using Address for address;
    
    mapping (address => uint256) private _balances;
    mapping(address => bool) public feeExcludedAddress;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (uint256 => uint256) lastReward;

    uint256 private _totalSupply;
    
    // Daily Rewards Distributions Start from
    uint256 private rewardStartDate;
    bool public dailyReward = true;
    uint256 public rewardAmount = 10 ether;
    // ends in a month;
    

    string private _name;
    string private _symbol;
    uint private _decimals = 18;
    uint private _lockTime;
    address public _Owner;
    address public _previousOwner;
    address public _fundAddress;
    address public liquidityPair;
    uint public teamFee = 300; //0.2% divisor 100
    uint public burnFee = 300; //0.2% divisor 100
    bool public sellLimiter; //by default false
    uint public sellLimit = 50000 * 10 ** 18; //sell limit if sellLimiter is true
    
    INFT public NFTContract;
    
    uint256 public _maxTxAmount = 5000000 * 10**18;
    
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event claimedDailyReward(uint256 tokenID, address claimer, uint256 timestamp);

    constructor (string memory _nm, string memory _sym, INFT _NFTContract) public {
        _name = _nm;
        _symbol = _sym;
        _Owner = msg.sender;
        rewardStartDate = block.timestamp - 1 days;
        NFTContract = _NFTContract;
        feeExcludedAddress[msg.sender] = true;
        _fundAddress = address(0x43a3f032E34467e8f692244461CA1b422f9af230);
    }
    
    modifier onlyOwner{
        require(msg.sender == _Owner, 'Only Owner Can Call This Function');
        _;
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    
    function calculateTeamBurn(uint256 _amount) internal view returns (uint256) {
        return _amount.mul(teamFee+burnFee).div(
            10**4
        );
    }
    
    function calculateTeamFee(uint256 _amount) internal view returns (uint256) {
        return _amount.mul(teamFee).div(
            10**4
        );
    }
    
    function setTeamFee(uint Tfee) public onlyOwner{
        require(Tfee < 1500," Fee can't exceed to 15%");
        teamFee = Tfee;
    }
    
    function setBurnFee(uint Tfee) public onlyOwner{
        require(Tfee < 1500," Fee can't exceed to 15%");
        burnFee = Tfee;
    }
    
    function toggleSellLimit() external onlyOwner() {
        sellLimiter = !sellLimiter;
    }
    
    function stopReward() external onlyOwner() {
        require(dailyReward, "Daily Reward Already Stopped");
        dailyReward = false;
    }
    
    function startReward() public onlyOwner{
        require(!dailyReward, "Daily Reward Already Running");
        dailyReward = true;
        rewardStartDate = block.timestamp;
    }
    
    function changeRewardAmount(uint256 _amount) public onlyOwner{
        rewardAmount = _amount;
    }
    
    function setLiquidityPairAddress(address liquidityPairAddress) public onlyOwner{
        liquidityPair = liquidityPairAddress;
    }
    
    function changeSellLimit(uint256 _sellLimit) public onlyOwner{
        sellLimit = _sellLimit;
    }
    
    function changeMaxtx(uint256 _maxtx) public onlyOwner{
        _maxTxAmount = _maxtx;
    }
    
    function changeFundAddress(address Taddress) public onlyOwner{
        _fundAddress = Taddress;
    }
    
    function addExcludedAddress(address excludedA) public onlyOwner{
        feeExcludedAddress[excludedA] = true;
    }
    
    function removeExcludedAddress(address excludedA) public onlyOwner{
        feeExcludedAddress[excludedA] = false;
    }
    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_Owner, newOwner);
        _Owner = newOwner;
    }

    function geUnlockTime() public view returns (uint256) {
        return _lockTime;
    }

    //Locks the contract for owner for the amount of time provided
    function lock(uint256 time) public virtual onlyOwner {
        _previousOwner = _Owner;
        _Owner = address(0);
        _lockTime = block.timestamp + time;
        emit OwnershipTransferred(_Owner, address(0));
    }
    
    //Unlocks the contract for owner when _lockTime is exceeds
    function unlock() public virtual {
        require(_previousOwner == msg.sender, "You don't have permission to unlock");
        require(block.timestamp > _lockTime , "Contract is locked until 7 days");
        emit OwnershipTransferred(_Owner, _previousOwner);
        _Owner = _previousOwner;
    }
    
    function multiTransfer(address[] memory receivers, uint256[] memory amounts) public {
        require(receivers.length != 0, 'Cannot Proccess Null Transaction');
        require(receivers.length == amounts.length, 'Address and Amount array length must be same');
        for (uint256 i = 0; i < receivers.length; i++) {
            transfer(receivers[i], amounts[i]);
        }
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        if(feeExcludedAddress[recipient] || feeExcludedAddress[_msgSender()]){
            _transferExcluded(_msgSender(), recipient, amount);
        }else{
            _transfer(_msgSender(), recipient, amount);    
        }
        return true;
    }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        if(feeExcludedAddress[recipient] || feeExcludedAddress[sender]){
            _transferExcluded(sender, recipient, amount);
        }else{
            _transfer(sender, recipient, amount);
        }
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function _transferExcluded(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if(sender != _Owner && recipient != _Owner)
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            
        if(recipient == liquidityPair && balanceOf(liquidityPair) > 0 && sellLimiter){
            require(amount < sellLimit, 'Cannot sell more than sellLimit');
        }

        // if(holder[recipient] == false){
        //     holder[recipient] = true;
        //     holders.push(recipient);
        // }
        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }
    
    function _transfer( address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if(sender != _Owner && recipient != _Owner)
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");

        if(recipient == liquidityPair && balanceOf(liquidityPair) > 0 && sellLimiter){
            require(amount < sellLimit, 'Cannot sell more than sellLimit');
        }
        
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        uint256 tokenToTransfer = amount.sub(calculateTeamBurn(amount));
        _balances[recipient] += tokenToTransfer;
        _balances[_fundAddress] += calculateTeamFee(amount);
        
        
        emit Transfer(sender, recipient, tokenToTransfer);
        
       
     
    }
    
    uint256 public total1;
    uint256 public a1;
    address[] public amount123;

   
    
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }
    
    function addSupply(uint256 amount) public onlyOwner{
        _mint(msg.sender, amount);
    }
    
    function checkDailyReward(uint256 tokenID) public view returns (uint256){
        uint256 lastdate = (lastReward[tokenID] > rewardStartDate) ? lastReward[tokenID] : rewardStartDate;
        uint256 rewardDays = (block.timestamp - lastdate).div(1 days);
        return rewardDays.mul(rewardAmount);
    }
    
    function claimDailyReward(uint256 tokenID) public {
        require(dailyReward," Daily Rewards Are Stopped ");
        require(NFTContract.ownerOf(tokenID) == msg.sender, "You aren't own this NFT token");
        require(checkDailyReward(tokenID) > 0, "There is no claimable reward");
        _mint(msg.sender, checkDailyReward(tokenID));
        lastReward[tokenID] = block.timestamp;
        emit claimedDailyReward(tokenID, msg.sender, block.timestamp);
    }
    
    function bulkClaimRewards(uint256[] memory tokenIDs) public {
        require(dailyReward," Daily Rewards Are Stopped ");
        uint256 total;
        for (uint256 i = 0; i < tokenIDs.length; i++) {
            require(NFTContract.ownerOf(tokenIDs[i]) == msg.sender, "You aren't own this NFT token");
            total += checkDailyReward(tokenIDs[i]);
            if(checkDailyReward(tokenIDs[i]) > 0){
                lastReward[tokenIDs[i]] = block.timestamp;
            }
        }
        require(total > 0, "There is no claimable reward");
        _mint(msg.sender, total);
    }

    function _burn(uint256 amount) public virtual {
        require(_balances[msg.sender] >= amount,'insufficient balance!');

        _beforeTokenTransfer(msg.sender, address(0x000000000000000000000000000000000000dEaD), amount);

        _balances[msg.sender] = _balances[msg.sender].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(msg.sender, address(0x000000000000000000000000000000000000dEaD), amount);
    }

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

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

    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
    
    function NFTBalance(address __address) public view returns(uint256) {
        return NFTContract.balanceOf(__address);
    }

    function NFTOwner(uint256 __id) public view returns(address ) {
        return NFTContract.ownerOf(__id);
    }

    function NFTWallet(address __address) public view returns(uint256[] memory) {
        return NFTContract.walletOfOwner(__address);
    }
    
    struct challenge{
        uint256 id;
        string des;
        uint256 roots;
        uint256 nfts;
        bool status;
    }   
    
    uint256 public challengeCount = 0;
    mapping (uint => challenge) public Challenges;
    mapping(uint => mapping(address => bool)) public entry;
    
    function startChallnge(string  memory _des, uint256 _roots, uint256 _nfts) public onlyOwner{
        Challenges[challengeCount+1] = challenge(challengeCount+1, _des, _roots, _nfts, true);
        challengeCount++;
    }
    
    function enterChallenge(uint256 _id) public {
        require(_id == Challenges[_id].id && _id != 0, "Invalid ID");
        require(Challenges[_id].status == true, "Challenge ended");
        require(entry[_id][msg.sender] != true, "You are already inrolled in this challenge");
        require(Challenges[_id].nfts <= NFTContract.balanceOf(msg.sender), "You own less amount of BearX than reequired");
        require(Challenges[_id].roots <= balanceOf(msg.sender), "You own less amount of ROOT than required");
        _burn(Challenges[_id].roots);
        entry[_id][msg.sender] = true;
    }
    
    function toggleChallengeStatus(uint256 _id) public onlyOwner {
        require(_id == Challenges[_id].id && _id != 0, "Invalid ID");
        Challenges[_id].status = !Challenges[_id].status;
    }    
    
    
    function u_contract(address _contarct) public onlyOwner {
        require(_contarct != address(0), "Invalid address");
        NFTContract = INFT(_contarct);
    }    
    
    
}


contract ROOTx is ERC20 {
    constructor(INFT NFTContract) public ERC20("ROOTx", "ROOTx", NFTContract) {
        _mint(msg.sender, 6500 ether); // 
        // holder[msg.sender] = true;
        // holders.push(msg.sender);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract INFT","name":"NFTContract","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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenID","type":"uint256"},{"indexed":false,"internalType":"address","name":"claimer","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"claimedDailyReward","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"Challenges","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"des","type":"string"},{"internalType":"uint256","name":"roots","type":"uint256"},{"internalType":"uint256","name":"nfts","type":"uint256"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"__address","type":"address"}],"name":"NFTBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NFTContract","outputs":[{"internalType":"contract INFT","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"__id","type":"uint256"}],"name":"NFTOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"__address","type":"address"}],"name":"NFTWallet","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_fundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_previousOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"a1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"excludedA","type":"address"}],"name":"addExcludedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"amount123","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIDs","type":"uint256[]"}],"name":"bulkClaimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"challengeCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"Taddress","type":"address"}],"name":"changeFundAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxtx","type":"uint256"}],"name":"changeMaxtx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"changeRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellLimit","type":"uint256"}],"name":"changeSellLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"checkDailyReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"claimDailyReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dailyReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"enterChallenge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"entry","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feeExcludedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"excludedA","type":"address"}],"name":"removeExcludedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLimiter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"Tfee","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"liquidityPairAddress","type":"address"}],"name":"setLiquidityPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Tfee","type":"uint256"}],"name":"setTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_des","type":"string"},{"internalType":"uint256","name":"_roots","type":"uint256"},{"internalType":"uint256","name":"_nfts","type":"uint256"}],"name":"startChallnge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"toggleChallengeStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleSellLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"total1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contarct","type":"address"}],"name":"u_contract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526001600660006101000a81548160ff021916908315150217905550678ac7230489e800006007556012600a5561012c60105561012c601155690a968163f0a57b4000006013556a0422ca8b0a00a42500000060155560006019553480156200006b57600080fd5b5060405162005e8c38038062005e8c833981810160405260208110156200009157600080fd5b81019080805190602001909291905050506040518060400160405280600581526020017f524f4f54780000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f524f4f5478000000000000000000000000000000000000000000000000000000815250828260089080519060200190620001279291906200050d565b508160099080519060200190620001409291906200050d565b5033600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062015180420360058190555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507343a3f032e34467e8f692244461ca1b422f9af230600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200029a336901605d9ee98627100000620002a160201b60201c565b50620005b3565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b62000359600083836200047f60201b60201c565b62000375816004546200048460201b620043d91790919060201c565b600481905550620003d3816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200048460201b620043d91790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b60008082840190508381101562000503576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200055057805160ff191683800117855562000581565b8280016001018555821562000581579182015b828111156200058057825182559160200191906001019062000563565b5b50905062000590919062000594565b5090565b5b80821115620005af57600081600090555060010162000595565b5090565b6158c980620005c36000396000f3fe608060405234801561001057600080fd5b50600436106103985760003560e01c8063808a5457116101e9578063b93833c31161010f578063dd62ed3e116100ad578063f7b2a7be1161007c578063f7b2a7be1461137e578063f9271fd31461139c578063fc50eef3146113e0578063fce589d8146113ea57610398565b8063dd62ed3e146111cf578063e6ec64ec14611247578063ec323bf114611275578063f2fde38b1461133a57610398565b8063d51fe9cb116100e9578063d51fe9cb146110f7578063d7c94efd1461114f578063dcc234551461116d578063dd467064146111a157610398565b8063b93833c314611089578063bab62f38146110b7578063c964ad45146110d757610398565b8063a2f0572511610187578063a86a226f11610156578063a86a226f14610f0b578063a9059cbb14610fc3578063a9b54bcd14611027578063b6c523241461106b57610398565b8063a2f0572514610e3b578063a457c2d714610e59578063a646c35d14610ebd578063a69df4b514610f0157610398565b806383a28894116101c357806383a2889414610cce57806395d89b4114610d325780639aa980f814610db55780639b1f9e7414610e0d57610398565b8063808a545714610c5c57806380dc067214610c905780638230af5a14610c9a57610398565b806340753a76116102ce578063687b5f5e1161026c578063700504e81161023b578063700504e814610bbe57806370a0823114610bdc578063746c8ae114610c345780637d1db4a514610c3e57610398565b8063687b5f5e14610a1f5780636e63cd9614610aee5780636f4e2c4714610b225780636feecb6814610b6657610398565b80634bf2c7c9116102a85780634bf2c7c9146109615780634f91e48c1461098f5780634f922a9e146109ad5780635e67fe14146109f157610398565b806340753a761461086c578063417b44151461089a578063428e78231461093357610398565b80631e89d5451161033b57806328f97b871161031557806328f97b8714610774578063313ce567146107b657806331c2273b146107d4578063395093511461080857610398565b80631e89d5451461057657806323b872dd146106c257806325c1a6951461074657610398565b80630eda7275116103775780630eda7275146104de578063119552a11461050c57806318160ddd1461052a578063186128381461054857610398565b8062f83cdf1461039d57806306fdde03146103f7578063095ea7b31461047a575b600080fd5b6103df600480360360208110156103b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611408565b60405180821515815260200191505060405180910390f35b6103ff611428565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561043f578082015181840152602081019050610424565b50505050905090810190601f16801561046c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104c66004803603604081101561049057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114ca565b60405180821515815260200191505060405180910390f35b61050a600480360360208110156104f457600080fd5b81019080803590602001909291905050506114e8565b005b610514611598565b6040518082815260200191505060405180910390f35b61053261159e565b6040518082815260200191505060405180910390f35b6105746004803603602081101561055e57600080fd5b81019080803590602001909291905050506115a8565b005b6106c06004803603604081101561058c57600080fd5b81019080803590602001906401000000008111156105a957600080fd5b8201836020820111156105bb57600080fd5b803590602001918460208302840111640100000000831117156105dd57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561063d57600080fd5b82018360208201111561064f57600080fd5b8035906020019184602083028401116401000000008311171561067157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061173b565b005b61072e600480360360608110156106d857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061185c565b60405180821515815260200191505060405180910390f35b6107726004803603602081101561075c57600080fd5b81019080803590602001909291905050506119ec565b005b6107a06004803603602081101561078a57600080fd5b8101908080359060200190929190505050611e10565b6040518082815260200191505060405180910390f35b6107be611e88565b6040518082815260200191505060405180910390f35b6107dc611e92565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108546004803603604081101561081e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611eb8565b60405180821515815260200191505060405180910390f35b6108986004803603602081101561088257600080fd5b8101908080359060200190929190505050611f6b565b005b6108dc600480360360208110156108b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061201e565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561091f578082015181840152602081019050610904565b505050509050019250505060405180910390f35b61095f6004803603602081101561094957600080fd5b8101908080359060200190929190505050612185565b005b61098d6004803603602081101561097757600080fd5b8101908080359060200190929190505050612235565b005b61099761235c565b6040518082815260200191505060405180910390f35b6109ef600480360360208110156109c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612362565b005b610a1d60048036036020811015610a0757600080fd5b810190808035906020019092919050505061244c565b005b610aec60048036036060811015610a3557600080fd5b8101908080359060200190640100000000811115610a5257600080fd5b820183602082011115610a6457600080fd5b80359060200191846001830284011164010000000083111715610a8657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190505050612724565b005b610af6612886565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b6460048036036020811015610b3857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128ac565b005b610ba860048036036020811015610b7c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a39565b6040518082815260200191505060405180910390f35b610bc6612b06565b6040518082815260200191505060405180910390f35b610c1e60048036036020811015610bf257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b0c565b6040518082815260200191505060405180910390f35b610c3c612b54565b005b610c46612ca1565b6040518082815260200191505060405180910390f35b610c64612ca7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c98612ccd565b005b610ca2612e12565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610d1a60048036036040811015610ce457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e38565b60405180821515815260200191505060405180910390f35b610d3a612e67565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d7a578082015181840152602081019050610d5f565b50505050905090810190601f168015610da75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610de160048036036020811015610dcb57600080fd5b8101908080359060200190929190505050612f09565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610e3960048036036020811015610e2357600080fd5b8101908080359060200190929190505050612f45565b005b610e43613138565b6040518082815260200191505060405180910390f35b610ea560048036036040811015610e6f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061313e565b60405180821515815260200191505060405180910390f35b610eff60048036036020811015610ed357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061320b565b005b610f0961330c565b005b610fc160048036036020811015610f2157600080fd5b8101908080359060200190640100000000811115610f3e57600080fd5b820183602082011115610f5057600080fd5b80359060200191846020830284011164010000000083111715610f7257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061352c565b005b61100f60048036036040811015610fd957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613822565b60405180821515815260200191505060405180910390f35b6110696004803603602081101561103d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613905565b005b611073613a05565b6040518082815260200191505060405180910390f35b6110b56004803603602081101561109f57600080fd5b8101908080359060200190929190505050613a0f565b005b6110bf613abf565b60405180821515815260200191505060405180910390f35b6110df613ad2565b60405180821515815260200191505060405180910390f35b6111236004803603602081101561110d57600080fd5b8101908080359060200190929190505050613ae5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611157613b9c565b6040518082815260200191505060405180910390f35b611175613ba2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6111cd600480360360208110156111b757600080fd5b8101908080359060200190929190505050613bc8565b005b611231600480360360408110156111e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d9c565b6040518082815260200191505060405180910390f35b6112736004803603602081101561125d57600080fd5b8101908080359060200190929190505050613e23565b005b6112a16004803603602081101561128b57600080fd5b8101908080359060200190929190505050613f4a565b60405180868152602001806020018581526020018481526020018315158152602001828103825286818151815260200191508051906020019080838360005b838110156112fb5780820151818401526020810190506112e0565b50505050905090810190601f1680156113285780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b61137c6004803603602081101561135057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614025565b005b611386614211565b6040518082815260200191505060405180910390f35b6113de600480360360208110156113b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614217565b005b6113e8614301565b005b6113f26143d3565b6040518082815260200191505060405180910390f35b60016020528060005260406000206000915054906101000a900460ff1681565b606060088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114c05780601f10611495576101008083540402835291602001916114c0565b820191906000526020600020905b8154815290600101906020018083116114a357829003601f168201915b5050505050905090565b60006114de6114d7614461565b8484614469565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b8060138190555050565b60175481565b6000600454905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461164e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b601a60008281526020019081526020016000206000015481148015611674575060008114155b6116e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f496e76616c69642049440000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601a600082815260200190815260200160002060040160009054906101000a900460ff1615601a600083815260200190815260200160002060040160006101000a81548160ff02191690831515021790555050565b6000825114156117b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616e6e6f742050726f6363657373204e756c6c205472616e73616374696f6e81525060200191505060405180910390fd5b805182511461180d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806156a1602c913960400191505060405180910390fd5b60005b82518110156118575761184983828151811061182857fe5b602002602001015183838151811061183c57fe5b6020026020010151613822565b508080600101915050611810565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118ff5750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119145761190f848484614660565b611920565b61191f848484614b3f565b5b6119e18461192c614461565b6119dc8560405180606001604052806028815260200161578f60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611992614461565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546150a29092919063ffffffff16565b614469565b600190509392505050565b601a60008281526020019081526020016000206000015481148015611a12575060008114155b611a84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f496e76616c69642049440000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60011515601a600083815260200190815260200160002060040160009054906101000a900460ff16151514611b21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4368616c6c656e676520656e646564000000000000000000000000000000000081525060200191505060405180910390fd5b60011515601b600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611bdc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806156f3602a913960400191505060405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611c6557600080fd5b505afa158015611c79573d6000803e3d6000fd5b505050506040513d6020811015611c8f57600080fd5b8101908080519060200190929190505050601a6000838152602001908152602001600020600301541115611d0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615800602b913960400191505060405180910390fd5b611d1733612b0c565b601a6000838152602001908152602001600020600201541115611d85576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806157456029913960400191505060405180910390fd5b611da4601a600083815260200190815260200160002060020154612f45565b6001601b600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600080600554600360008581526020019081526020016000205411611e3757600554611e4c565b60036000848152602001908152602001600020545b90506000611e686201518083420361516290919063ffffffff16565b9050611e7f600754826151ac90919063ffffffff16565b92505050919050565b6000600a54905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611f61611ec5614461565b84611f5c8560026000611ed6614461565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546143d990919063ffffffff16565b614469565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b61201b3382615232565b50565b6060601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663438b6300836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060006040518083038186803b1580156120a957600080fd5b505afa1580156120bd573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156120e757600080fd5b810190808051604051939291908464010000000082111561210757600080fd5b8382019150602082018581111561211d57600080fd5b825186602082028301116401000000008211171561213a57600080fd5b8083526020830192505050908051906020019060200280838360005b83811015612171578082015181840152602081019050612156565b505050509050016040525050509050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461222b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b8060158190555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b6105dc8110612352576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f204665652063616e27742065786365656420746f20313525000000000000000081525060200191505060405180910390fd5b8060118190555050565b60135481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612408576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900460ff166124ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f204461696c792052657761726473204172652053746f7070656420000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561255857600080fd5b505afa15801561256c573d6000803e3d6000fd5b505050506040513d602081101561258257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161461261c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f596f75206172656e2774206f776e2074686973204e465420746f6b656e00000081525060200191505060405180910390fd5b600061262782611e10565b1161269a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5468657265206973206e6f20636c61696d61626c65207265776172640000000081525060200191505060405180910390fd5b6126ac336126a783611e10565b615232565b4260036000838152602001908152602001600020819055507f77c822939fccc95dc88c14c72b87df80b99db967c009bf8eaaf6f96b2c33cf9c813342604051808481526020018373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a150565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b6040518060a00160405280600160195401815260200184815260200183815260200182815260200160011515815250601a60006001601954018152602001908152602001600020600082015181600001556020820151816001019080519060200190612837929190615576565b50604082015181600201556060820151816003015560808201518160040160006101000a81548160ff021916908315150217905550905050601960008154809291906001019190505550505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156129f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612ac457600080fd5b505afa158015612ad8573d6000803e3d6000fd5b505050506040513d6020811015612aee57600080fd5b81019080805190602001909291905050509050919050565b60165481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612bfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b600660009054906101000a900460ff1615612c7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c792052657761726420416c72656164792052756e6e696e670000000081525060200191505060405180910390fd5b6001600660006101000a81548160ff02191690831515021790555042600581905550565b60155481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612d73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b600660009054906101000a900460ff16612df5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c792052657761726420416c72656164792053746f707065640000000081525060200191505060405180910390fd5b6000600660006101000a81548160ff021916908315150217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612eff5780601f10612ed457610100808354040283529160200191612eff565b820191906000526020600020905b815481529060010190602001808311612ee257829003601f168201915b5050505050905090565b60188181548110612f1657fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612ff9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f696e73756666696369656e742062616c616e636521000000000000000000000081525060200191505060405180910390fd5b6130063361dead836153f9565b61307181604051806060016040528060228152602001615637602291396000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546150a29092919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130c8816004546153fe90919063ffffffff16565b60048190555061dead73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b60195481565b600061320161314b614461565b846131fc8560405180606001604052806025815260200161586f6025913960026000613175614461565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546150a29092919063ffffffff16565b614469565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146132b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146133b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061582b6023913960400191505060405180910390fd5b600b544211613429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f6e7472616374206973206c6f636b656420756e74696c203720646179730081525060200191505060405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600660009054906101000a900460ff166135ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f204461696c792052657761726473204172652053746f7070656420000000000081525060200191505060405180910390fd5b600080600090505b825181101561379d573373ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e85848151811061362057fe5b60200260200101516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561365c57600080fd5b505afa158015613670573d6000803e3d6000fd5b505050506040513d602081101561368657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614613720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f596f75206172656e2774206f776e2074686973204e465420746f6b656e00000081525060200191505060405180910390fd5b61373c83828151811061372f57fe5b6020026020010151611e10565b82019150600061375e84838151811061375157fe5b6020026020010151611e10565b111561379057426003600085848151811061377557fe5b60200260200101518152602001908152602001600020819055505b80806001019150506135b6565b5060008111613814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5468657265206973206e6f20636c61696d61626c65207265776172640000000081525060200191505060405180910390fd5b61381e3382615232565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806138cc575060016000613883614461565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156138e8576138e36138dc614461565b8484614660565b6138fb565b6138fa6138f3614461565b8484614b3f565b5b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146139ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600b54905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613ab5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b8060078190555050565b601260009054906101000a900460ff1681565b600660009054906101000a900460ff1681565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613b5a57600080fd5b505afa158015613b6e573d6000803e3d6000fd5b505050506040513d6020811015613b8457600080fd5b81019080805190602001909291905050509050919050565b60105481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613c6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804201600b81905550600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613ec9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b6105dc8110613f40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f204665652063616e27742065786365656420746f20313525000000000000000081525060200191505060405180910390fd5b8060108190555050565b601a602052806000526040600020600091509050806000015490806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613ffc5780601f10613fd157610100808354040283529160200191613ffc565b820191906000526020600020905b815481529060010190602001808311613fdf57829003601f168201915b5050505050908060020154908060030154908060040160009054906101000a900460ff16905085565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146140cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415614151576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806156596026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146142bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146143a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b601260009054906101000a900460ff1615601260006101000a81548160ff021916908315150217905550565b60115481565b600080828401905083811015614457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156144ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806157dc6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061567f6022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156146e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806157b76025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561476c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806156146023913960400191505060405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156148185750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561487957601554811115614878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061571d6028913960400191505060405180910390fd5b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015614900575060006148fe600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612b0c565b115b80156149185750601260009054906101000a900460ff165b15614995576013548110614994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f43616e6e6f742073656c6c206d6f7265207468616e2073656c6c4c696d69740081525060200191505060405180910390fd5b5b614a00816040518060600160405280602681526020016156cd602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546150a29092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614a93816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546143d990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415614bc5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806157b76025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614c4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806156146023913960400191505060405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015614cf75750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15614d5857601554811115614d57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061571d6028913960400191505060405180910390fd5b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015614ddf57506000614ddd600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612b0c565b115b8015614df75750601260009054906101000a900460ff165b15614e74576013548110614e73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f43616e6e6f742073656c6c206d6f7265207468616e2073656c6c4c696d69740081525060200191505060405180910390fd5b5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015614f10576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806156cd6026913960400191505060405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000614f72614f6384615448565b846153fe90919063ffffffff16565b9050806000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550614fc98361547e565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050505050565b600083831115829061514f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156151145780820151818401526020810190506150f9565b50505050905090810190601f1680156151415780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60006151a483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506154b0565b905092915050565b6000808314156151bf576000905061522c565b60008284029050828482816151d057fe5b0414615227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061576e6021913960400191505060405180910390fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156152d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6152e1600083836153f9565b6152f6816004546143d990919063ffffffff16565b60048190555061534d816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546143d990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b600061544083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506150a2565b905092915050565b600061547761271061546960115460105401856151ac90919063ffffffff16565b61516290919063ffffffff16565b9050919050565b60006154a961271061549b601054856151ac90919063ffffffff16565b61516290919063ffffffff16565b9050919050565b6000808311829061555c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015615521578082015181840152602081019050615506565b50505050905090810190601f16801561554e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161556857fe5b049050809150509392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106155b757805160ff19168380011785556155e5565b828001600101855582156155e5579182015b828111156155e45782518255916020019190600101906155c9565b5b5090506155f291906155f6565b5090565b5b8082111561560f5760008160009055506001016155f7565b509056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573734164647265737320616e6420416d6f756e74206172726179206c656e677468206d7573742062652073616d6545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365596f752061726520616c726561647920696e726f6c6c656420696e2074686973206368616c6c656e67655472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e596f75206f776e206c65737320616d6f756e74206f6620524f4f54207468616e207265717569726564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373596f75206f776e206c65737320616d6f756e74206f66204265617258207468616e20726565717569726564596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636b4f6e6c79204f776e65722043616e2043616c6c20546869732046756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ddee0a431e984e75c8f2a731c9365d4efd6166a2d54cdd95656bc49312921c9164736f6c634300060c0033000000000000000000000000e22e1e620dffb03065cd77db0162249c0c91bf01

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106103985760003560e01c8063808a5457116101e9578063b93833c31161010f578063dd62ed3e116100ad578063f7b2a7be1161007c578063f7b2a7be1461137e578063f9271fd31461139c578063fc50eef3146113e0578063fce589d8146113ea57610398565b8063dd62ed3e146111cf578063e6ec64ec14611247578063ec323bf114611275578063f2fde38b1461133a57610398565b8063d51fe9cb116100e9578063d51fe9cb146110f7578063d7c94efd1461114f578063dcc234551461116d578063dd467064146111a157610398565b8063b93833c314611089578063bab62f38146110b7578063c964ad45146110d757610398565b8063a2f0572511610187578063a86a226f11610156578063a86a226f14610f0b578063a9059cbb14610fc3578063a9b54bcd14611027578063b6c523241461106b57610398565b8063a2f0572514610e3b578063a457c2d714610e59578063a646c35d14610ebd578063a69df4b514610f0157610398565b806383a28894116101c357806383a2889414610cce57806395d89b4114610d325780639aa980f814610db55780639b1f9e7414610e0d57610398565b8063808a545714610c5c57806380dc067214610c905780638230af5a14610c9a57610398565b806340753a76116102ce578063687b5f5e1161026c578063700504e81161023b578063700504e814610bbe57806370a0823114610bdc578063746c8ae114610c345780637d1db4a514610c3e57610398565b8063687b5f5e14610a1f5780636e63cd9614610aee5780636f4e2c4714610b225780636feecb6814610b6657610398565b80634bf2c7c9116102a85780634bf2c7c9146109615780634f91e48c1461098f5780634f922a9e146109ad5780635e67fe14146109f157610398565b806340753a761461086c578063417b44151461089a578063428e78231461093357610398565b80631e89d5451161033b57806328f97b871161031557806328f97b8714610774578063313ce567146107b657806331c2273b146107d4578063395093511461080857610398565b80631e89d5451461057657806323b872dd146106c257806325c1a6951461074657610398565b80630eda7275116103775780630eda7275146104de578063119552a11461050c57806318160ddd1461052a578063186128381461054857610398565b8062f83cdf1461039d57806306fdde03146103f7578063095ea7b31461047a575b600080fd5b6103df600480360360208110156103b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611408565b60405180821515815260200191505060405180910390f35b6103ff611428565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561043f578082015181840152602081019050610424565b50505050905090810190601f16801561046c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104c66004803603604081101561049057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114ca565b60405180821515815260200191505060405180910390f35b61050a600480360360208110156104f457600080fd5b81019080803590602001909291905050506114e8565b005b610514611598565b6040518082815260200191505060405180910390f35b61053261159e565b6040518082815260200191505060405180910390f35b6105746004803603602081101561055e57600080fd5b81019080803590602001909291905050506115a8565b005b6106c06004803603604081101561058c57600080fd5b81019080803590602001906401000000008111156105a957600080fd5b8201836020820111156105bb57600080fd5b803590602001918460208302840111640100000000831117156105dd57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561063d57600080fd5b82018360208201111561064f57600080fd5b8035906020019184602083028401116401000000008311171561067157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061173b565b005b61072e600480360360608110156106d857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061185c565b60405180821515815260200191505060405180910390f35b6107726004803603602081101561075c57600080fd5b81019080803590602001909291905050506119ec565b005b6107a06004803603602081101561078a57600080fd5b8101908080359060200190929190505050611e10565b6040518082815260200191505060405180910390f35b6107be611e88565b6040518082815260200191505060405180910390f35b6107dc611e92565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108546004803603604081101561081e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611eb8565b60405180821515815260200191505060405180910390f35b6108986004803603602081101561088257600080fd5b8101908080359060200190929190505050611f6b565b005b6108dc600480360360208110156108b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061201e565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561091f578082015181840152602081019050610904565b505050509050019250505060405180910390f35b61095f6004803603602081101561094957600080fd5b8101908080359060200190929190505050612185565b005b61098d6004803603602081101561097757600080fd5b8101908080359060200190929190505050612235565b005b61099761235c565b6040518082815260200191505060405180910390f35b6109ef600480360360208110156109c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612362565b005b610a1d60048036036020811015610a0757600080fd5b810190808035906020019092919050505061244c565b005b610aec60048036036060811015610a3557600080fd5b8101908080359060200190640100000000811115610a5257600080fd5b820183602082011115610a6457600080fd5b80359060200191846001830284011164010000000083111715610a8657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190505050612724565b005b610af6612886565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b6460048036036020811015610b3857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128ac565b005b610ba860048036036020811015610b7c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a39565b6040518082815260200191505060405180910390f35b610bc6612b06565b6040518082815260200191505060405180910390f35b610c1e60048036036020811015610bf257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b0c565b6040518082815260200191505060405180910390f35b610c3c612b54565b005b610c46612ca1565b6040518082815260200191505060405180910390f35b610c64612ca7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c98612ccd565b005b610ca2612e12565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610d1a60048036036040811015610ce457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e38565b60405180821515815260200191505060405180910390f35b610d3a612e67565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d7a578082015181840152602081019050610d5f565b50505050905090810190601f168015610da75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610de160048036036020811015610dcb57600080fd5b8101908080359060200190929190505050612f09565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610e3960048036036020811015610e2357600080fd5b8101908080359060200190929190505050612f45565b005b610e43613138565b6040518082815260200191505060405180910390f35b610ea560048036036040811015610e6f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061313e565b60405180821515815260200191505060405180910390f35b610eff60048036036020811015610ed357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061320b565b005b610f0961330c565b005b610fc160048036036020811015610f2157600080fd5b8101908080359060200190640100000000811115610f3e57600080fd5b820183602082011115610f5057600080fd5b80359060200191846020830284011164010000000083111715610f7257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061352c565b005b61100f60048036036040811015610fd957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613822565b60405180821515815260200191505060405180910390f35b6110696004803603602081101561103d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613905565b005b611073613a05565b6040518082815260200191505060405180910390f35b6110b56004803603602081101561109f57600080fd5b8101908080359060200190929190505050613a0f565b005b6110bf613abf565b60405180821515815260200191505060405180910390f35b6110df613ad2565b60405180821515815260200191505060405180910390f35b6111236004803603602081101561110d57600080fd5b8101908080359060200190929190505050613ae5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611157613b9c565b6040518082815260200191505060405180910390f35b611175613ba2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6111cd600480360360208110156111b757600080fd5b8101908080359060200190929190505050613bc8565b005b611231600480360360408110156111e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d9c565b6040518082815260200191505060405180910390f35b6112736004803603602081101561125d57600080fd5b8101908080359060200190929190505050613e23565b005b6112a16004803603602081101561128b57600080fd5b8101908080359060200190929190505050613f4a565b60405180868152602001806020018581526020018481526020018315158152602001828103825286818151815260200191508051906020019080838360005b838110156112fb5780820151818401526020810190506112e0565b50505050905090810190601f1680156113285780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b61137c6004803603602081101561135057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614025565b005b611386614211565b6040518082815260200191505060405180910390f35b6113de600480360360208110156113b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614217565b005b6113e8614301565b005b6113f26143d3565b6040518082815260200191505060405180910390f35b60016020528060005260406000206000915054906101000a900460ff1681565b606060088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114c05780601f10611495576101008083540402835291602001916114c0565b820191906000526020600020905b8154815290600101906020018083116114a357829003601f168201915b5050505050905090565b60006114de6114d7614461565b8484614469565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b8060138190555050565b60175481565b6000600454905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461164e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b601a60008281526020019081526020016000206000015481148015611674575060008114155b6116e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f496e76616c69642049440000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601a600082815260200190815260200160002060040160009054906101000a900460ff1615601a600083815260200190815260200160002060040160006101000a81548160ff02191690831515021790555050565b6000825114156117b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616e6e6f742050726f6363657373204e756c6c205472616e73616374696f6e81525060200191505060405180910390fd5b805182511461180d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806156a1602c913960400191505060405180910390fd5b60005b82518110156118575761184983828151811061182857fe5b602002602001015183838151811061183c57fe5b6020026020010151613822565b508080600101915050611810565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118ff5750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119145761190f848484614660565b611920565b61191f848484614b3f565b5b6119e18461192c614461565b6119dc8560405180606001604052806028815260200161578f60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611992614461565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546150a29092919063ffffffff16565b614469565b600190509392505050565b601a60008281526020019081526020016000206000015481148015611a12575060008114155b611a84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f496e76616c69642049440000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60011515601a600083815260200190815260200160002060040160009054906101000a900460ff16151514611b21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4368616c6c656e676520656e646564000000000000000000000000000000000081525060200191505060405180910390fd5b60011515601b600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611bdc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806156f3602a913960400191505060405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611c6557600080fd5b505afa158015611c79573d6000803e3d6000fd5b505050506040513d6020811015611c8f57600080fd5b8101908080519060200190929190505050601a6000838152602001908152602001600020600301541115611d0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615800602b913960400191505060405180910390fd5b611d1733612b0c565b601a6000838152602001908152602001600020600201541115611d85576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806157456029913960400191505060405180910390fd5b611da4601a600083815260200190815260200160002060020154612f45565b6001601b600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600080600554600360008581526020019081526020016000205411611e3757600554611e4c565b60036000848152602001908152602001600020545b90506000611e686201518083420361516290919063ffffffff16565b9050611e7f600754826151ac90919063ffffffff16565b92505050919050565b6000600a54905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611f61611ec5614461565b84611f5c8560026000611ed6614461565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546143d990919063ffffffff16565b614469565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b61201b3382615232565b50565b6060601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663438b6300836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060006040518083038186803b1580156120a957600080fd5b505afa1580156120bd573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156120e757600080fd5b810190808051604051939291908464010000000082111561210757600080fd5b8382019150602082018581111561211d57600080fd5b825186602082028301116401000000008211171561213a57600080fd5b8083526020830192505050908051906020019060200280838360005b83811015612171578082015181840152602081019050612156565b505050509050016040525050509050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461222b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b8060158190555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b6105dc8110612352576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f204665652063616e27742065786365656420746f20313525000000000000000081525060200191505060405180910390fd5b8060118190555050565b60135481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612408576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900460ff166124ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f204461696c792052657761726473204172652053746f7070656420000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561255857600080fd5b505afa15801561256c573d6000803e3d6000fd5b505050506040513d602081101561258257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161461261c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f596f75206172656e2774206f776e2074686973204e465420746f6b656e00000081525060200191505060405180910390fd5b600061262782611e10565b1161269a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5468657265206973206e6f20636c61696d61626c65207265776172640000000081525060200191505060405180910390fd5b6126ac336126a783611e10565b615232565b4260036000838152602001908152602001600020819055507f77c822939fccc95dc88c14c72b87df80b99db967c009bf8eaaf6f96b2c33cf9c813342604051808481526020018373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a150565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b6040518060a00160405280600160195401815260200184815260200183815260200182815260200160011515815250601a60006001601954018152602001908152602001600020600082015181600001556020820151816001019080519060200190612837929190615576565b50604082015181600201556060820151816003015560808201518160040160006101000a81548160ff021916908315150217905550905050601960008154809291906001019190505550505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156129f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612ac457600080fd5b505afa158015612ad8573d6000803e3d6000fd5b505050506040513d6020811015612aee57600080fd5b81019080805190602001909291905050509050919050565b60165481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612bfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b600660009054906101000a900460ff1615612c7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c792052657761726420416c72656164792052756e6e696e670000000081525060200191505060405180910390fd5b6001600660006101000a81548160ff02191690831515021790555042600581905550565b60155481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612d73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b600660009054906101000a900460ff16612df5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c792052657761726420416c72656164792053746f707065640000000081525060200191505060405180910390fd5b6000600660006101000a81548160ff021916908315150217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612eff5780601f10612ed457610100808354040283529160200191612eff565b820191906000526020600020905b815481529060010190602001808311612ee257829003601f168201915b5050505050905090565b60188181548110612f1657fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612ff9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f696e73756666696369656e742062616c616e636521000000000000000000000081525060200191505060405180910390fd5b6130063361dead836153f9565b61307181604051806060016040528060228152602001615637602291396000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546150a29092919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130c8816004546153fe90919063ffffffff16565b60048190555061dead73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b60195481565b600061320161314b614461565b846131fc8560405180606001604052806025815260200161586f6025913960026000613175614461565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546150a29092919063ffffffff16565b614469565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146132b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146133b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061582b6023913960400191505060405180910390fd5b600b544211613429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f6e7472616374206973206c6f636b656420756e74696c203720646179730081525060200191505060405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600660009054906101000a900460ff166135ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f204461696c792052657761726473204172652053746f7070656420000000000081525060200191505060405180910390fd5b600080600090505b825181101561379d573373ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e85848151811061362057fe5b60200260200101516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561365c57600080fd5b505afa158015613670573d6000803e3d6000fd5b505050506040513d602081101561368657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614613720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f596f75206172656e2774206f776e2074686973204e465420746f6b656e00000081525060200191505060405180910390fd5b61373c83828151811061372f57fe5b6020026020010151611e10565b82019150600061375e84838151811061375157fe5b6020026020010151611e10565b111561379057426003600085848151811061377557fe5b60200260200101518152602001908152602001600020819055505b80806001019150506135b6565b5060008111613814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5468657265206973206e6f20636c61696d61626c65207265776172640000000081525060200191505060405180910390fd5b61381e3382615232565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806138cc575060016000613883614461565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156138e8576138e36138dc614461565b8484614660565b6138fb565b6138fa6138f3614461565b8484614b3f565b5b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146139ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600b54905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613ab5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b8060078190555050565b601260009054906101000a900460ff1681565b600660009054906101000a900460ff1681565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613b5a57600080fd5b505afa158015613b6e573d6000803e3d6000fd5b505050506040513d6020811015613b8457600080fd5b81019080805190602001909291905050509050919050565b60105481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613c6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804201600b81905550600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613ec9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b6105dc8110613f40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f204665652063616e27742065786365656420746f20313525000000000000000081525060200191505060405180910390fd5b8060108190555050565b601a602052806000526040600020600091509050806000015490806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613ffc5780601f10613fd157610100808354040283529160200191613ffc565b820191906000526020600020905b815481529060010190602001808311613fdf57829003601f168201915b5050505050908060020154908060030154908060040160009054906101000a900460ff16905085565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146140cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415614151576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806156596026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146142bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146143a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061584e6021913960400191505060405180910390fd5b601260009054906101000a900460ff1615601260006101000a81548160ff021916908315150217905550565b60115481565b600080828401905083811015614457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156144ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806157dc6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061567f6022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156146e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806157b76025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561476c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806156146023913960400191505060405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156148185750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561487957601554811115614878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061571d6028913960400191505060405180910390fd5b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015614900575060006148fe600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612b0c565b115b80156149185750601260009054906101000a900460ff165b15614995576013548110614994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f43616e6e6f742073656c6c206d6f7265207468616e2073656c6c4c696d69740081525060200191505060405180910390fd5b5b614a00816040518060600160405280602681526020016156cd602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546150a29092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614a93816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546143d990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415614bc5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806157b76025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614c4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806156146023913960400191505060405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015614cf75750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15614d5857601554811115614d57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061571d6028913960400191505060405180910390fd5b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015614ddf57506000614ddd600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612b0c565b115b8015614df75750601260009054906101000a900460ff165b15614e74576013548110614e73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f43616e6e6f742073656c6c206d6f7265207468616e2073656c6c4c696d69740081525060200191505060405180910390fd5b5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015614f10576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806156cd6026913960400191505060405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000614f72614f6384615448565b846153fe90919063ffffffff16565b9050806000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550614fc98361547e565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050505050565b600083831115829061514f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156151145780820151818401526020810190506150f9565b50505050905090810190601f1680156151415780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60006151a483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506154b0565b905092915050565b6000808314156151bf576000905061522c565b60008284029050828482816151d057fe5b0414615227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061576e6021913960400191505060405180910390fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156152d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6152e1600083836153f9565b6152f6816004546143d990919063ffffffff16565b60048190555061534d816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546143d990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b600061544083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506150a2565b905092915050565b600061547761271061546960115460105401856151ac90919063ffffffff16565b61516290919063ffffffff16565b9050919050565b60006154a961271061549b601054856151ac90919063ffffffff16565b61516290919063ffffffff16565b9050919050565b6000808311829061555c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015615521578082015181840152602081019050615506565b50505050905090810190601f16801561554e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161556857fe5b049050809150509392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106155b757805160ff19168380011785556155e5565b828001600101855582156155e5579182015b828111156155e45782518255916020019190600101906155c9565b5b5090506155f291906155f6565b5090565b5b8082111561560f5760008160009055506001016155f7565b509056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573734164647265737320616e6420416d6f756e74206172726179206c656e677468206d7573742062652073616d6545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365596f752061726520616c726561647920696e726f6c6c656420696e2074686973206368616c6c656e67655472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e596f75206f776e206c65737320616d6f756e74206f6620524f4f54207468616e207265717569726564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373596f75206f776e206c65737320616d6f756e74206f66204265617258207468616e20726565717569726564596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636b4f6e6c79204f776e65722043616e2043616c6c20546869732046756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ddee0a431e984e75c8f2a731c9365d4efd6166a2d54cdd95656bc49312921c9164736f6c634300060c0033

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

000000000000000000000000e22e1e620dffb03065cd77db0162249c0c91bf01

-----Decoded View---------------
Arg [0] : NFTContract (address): 0xE22e1e620dffb03065CD77dB0162249c0c91bf01

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000e22e1e620dffb03065cd77db0162249c0c91bf01


Deployed Bytecode Sourcemap

20197:237:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5807:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7505:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11935:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9382:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15193:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7781:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19785:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11016:389;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12112:485;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19171:602;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15760:307;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7691:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6721:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12605:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15653:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18478:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9496:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8515:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6632:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9236:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16079:470;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18937:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6376:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20006:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18223:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15165:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7889:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8926:184;;;:::i;:::-;;6757:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6446:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8770:144;;;:::i;:::-;;6412:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18870:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7596:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15217:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17169:490;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18778:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12831:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9846:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10699:305;;;:::i;:::-;;16561:600;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11413:355;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9716:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10232:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9122:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6583:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6114:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18357:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6481:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6348:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10397:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11776:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8365:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18818:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9980:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6151:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9601:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8665:93;;;:::i;:::-;;6532:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5807:50;;;;;;;;;;;;;;;;;;;;;;:::o;7505:83::-;7542:13;7575:5;7568:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7505:83;:::o;11935:169::-;12018:4;12035:39;12044:12;:10;:12::i;:::-;12058:7;12067:6;12035:8;:39::i;:::-;12092:4;12085:11;;11935:169;;;;:::o;9382:102::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9466:10:::1;9454:9;:22;;;;9382:102:::0;:::o;15193:17::-;;;;:::o;7781:100::-;7834:7;7861:12;;7854:19;;7781:100;:::o;19785:199::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19872:10:::1;:15;19883:3;19872:15;;;;;;;;;;;:18;;;19865:3;:25;:37;;;;;19901:1;19894:3;:8;;19865:37;19857:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;19954:10;:15;19965:3;19954:15;;;;;;;;;;;:22;;;;;;;;;;;;19953:23;19928:10;:15;19939:3;19928:15;;;;;;;;;;;:22;;;:48;;;;;;;;;;;;;;;;;;19785:199:::0;:::o;11016:389::-;11139:1;11119:9;:16;:21;;11111:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11216:7;:14;11196:9;:16;:34;11188:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11295:9;11290:108;11314:9;:16;11310:1;:20;11290:108;;;11352:34;11361:9;11371:1;11361:12;;;;;;;;;;;;;;11375:7;11383:1;11375:10;;;;;;;;;;;;;;11352:8;:34::i;:::-;;11332:3;;;;;;;11290:108;;;;11016:389;;:::o;12112:485::-;12218:4;12238:18;:29;12257:9;12238:29;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;12271:18;:26;12290:6;12271:26;;;;;;;;;;;;;;;;;;;;;;;;;12238:59;12235:201;;;12313:44;12331:6;12339:9;12350:6;12313:17;:44::i;:::-;12235:201;;;12388:36;12398:6;12406:9;12417:6;12388:9;:36::i;:::-;12235:201;12446:121;12455:6;12463:12;:10;:12::i;:::-;12477:89;12515:6;12477:89;;;;;;;;;;;;;;;;;:11;:19;12489:6;12477:19;;;;;;;;;;;;;;;:33;12497:12;:10;:12::i;:::-;12477:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;12446:8;:121::i;:::-;12585:4;12578:11;;12112:485;;;;;:::o;19171:602::-;19241:10;:15;19252:3;19241:15;;;;;;;;;;;:18;;;19234:3;:25;:37;;;;;19270:1;19263:3;:8;;19234:37;19226:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19331:4;19305:30;;:10;:15;19316:3;19305:15;;;;;;;;;;;:22;;;;;;;;;;;;:30;;;19297:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19400:4;19374:30;;:5;:10;19380:3;19374:10;;;;;;;;;;;:22;19385:10;19374:22;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;;19366:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19494:11;;;;;;;;;;;:21;;;19516:10;19494:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19470:10;:15;19481:3;19470:15;;;;;;;;;;;:20;;;:57;;19462:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19619:21;19629:10;19619:9;:21::i;:::-;19594:10;:15;19605:3;19594:15;;;;;;;;;;;:21;;;:46;;19586:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19697:28;19703:10;:15;19714:3;19703:15;;;;;;;;;;;:21;;;19697:5;:28::i;:::-;19761:4;19736:5;:10;19742:3;19736:10;;;;;;;;;;;:22;19747:10;19736:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;19171:602;:::o;15760:307::-;15824:7;15843:16;15885:15;;15863:10;:19;15874:7;15863:19;;;;;;;;;;;;:37;15862:79;;15926:15;;15862:79;;;15904:10;:19;15915:7;15904:19;;;;;;;;;;;;15862:79;15843:98;;15952:18;15973:40;16006:6;15992:8;15974:15;:26;15973:32;;:40;;;;:::i;:::-;15952:61;;16031:28;16046:12;;16031:10;:14;;:28;;;;:::i;:::-;16024:35;;;;15760:307;;;:::o;7691:82::-;7732:4;7756:9;;7749:16;;7691:82;:::o;6721:23::-;;;;;;;;;;;;;:::o;12605:218::-;12693:4;12710:83;12719:12;:10;:12::i;:::-;12733:7;12742:50;12781:10;12742:11;:25;12754:12;:10;:12::i;:::-;12742:25;;;;;;;;;;;;;;;:34;12768:7;12742:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;12710:8;:83::i;:::-;12811:4;12804:11;;12605:218;;;;:::o;15653:95::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15715:25:::1;15721:10;15733:6;15715:5;:25::i;:::-;15653:95:::0;:::o;18478:138::-;18536:16;18572:11;;;;;;;;;;;:25;;;18598:9;18572:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18565:43;;18478:138;;;:::o;9496:93::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9575:6:::1;9560:12;:21;;;;9496:93:::0;:::o;8515:138::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8588:4:::1;8581;:11;8573:47;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8641:4;8631:7;:14;;;;8515:138:::0;:::o;6632:40::-;;;;:::o;9236:134::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9342:20:::1;9326:13;;:36;;;;;;;;;;;;;;;;;;9236:134:::0;:::o;16079:470::-;16148:11;;;;;;;;;;;16140:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16241:10;16209:42;;:11;;;;;;;;;;;:19;;;16229:7;16209:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;16201:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16332:1;16304:25;16321:7;16304:16;:25::i;:::-;:29;16296:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16377:44;16383:10;16395:25;16412:7;16395:16;:25::i;:::-;16377:5;:44::i;:::-;16454:15;16432:10;:19;16443:7;16432:19;;;;;;;;;;;:37;;;;16485:56;16504:7;16513:10;16525:15;16485:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16079:470;:::o;18937:222::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19070:54:::1;;;;;;;;19095:1;19080:14;;:16;19070:54;;;;19098:4;19070:54;;;;19104:6;19070:54;;;;19112:5;19070:54;;;;19119:4;19070:54;;;;::::0;19039:10:::1;:28;19065:1;19050:14;;:16;19039:28;;;;;;;;;;;:85;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19135:14;;:16;;;;;;;;;;;;;18937:222:::0;;;:::o;6376:29::-;;;;;;;;;;;;;:::o;20006:166::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20102:1:::1;20081:23;;:9;:23;;;;20073:51;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20154:9;20135:11;;:29;;;;;;;;;;;;;;;;;;20006:166:::0;:::o;18223:126::-;18282:7;18309:11;;;;;;;;;;;:21;;;18331:9;18309:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18302:39;;18223:126;;;:::o;15165:21::-;;;;:::o;7889:119::-;7955:7;7982:9;:18;7992:7;7982:18;;;;;;;;;;;;;;;;7975:25;;7889:119;;;:::o;8926:184::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8985:11:::1;;;;;;;;;;;8984:12;8976:53;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;9054:4;9040:11;;:18;;;;;;;;;;;;;;;;;;9087:15;9069;:33;;;;8926:184::o:0;6757:46::-;;;;:::o;6446:28::-;;;;;;;;;;;;;:::o;8770:144::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8832:11:::1;;;;;;;;;;;8824:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8901:5;8887:11;;:19;;;;;;;;;;;;;;;;;;8770:144::o:0;6412:27::-;;;;;;;;;;;;;:::o;18870:54::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7596:87::-;7635:13;7668:7;7661:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7596:87;:::o;15217:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17169:490::-;17259:6;17234:9;:21;17244:10;17234:21;;;;;;;;;;;;;;;;:31;;17226:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17303:93;17324:10;17344:42;17389:6;17303:20;:93::i;:::-;17433:71;17459:6;17433:71;;;;;;;;;;;;;;;;;:9;:21;17443:10;17433:21;;;;;;;;;;;;;;;;:25;;:71;;;;;:::i;:::-;17409:9;:21;17419:10;17409:21;;;;;;;;;;;;;;;:95;;;;17530:24;17547:6;17530:12;;:16;;:24;;;;:::i;:::-;17515:12;:39;;;;17599:42;17570:81;;17579:10;17570:81;;;17644:6;17570:81;;;;;;;;;;;;;;;;;;17169:490;:::o;18778:33::-;;;;:::o;12831:269::-;12924:4;12941:129;12950:12;:10;:12::i;:::-;12964:7;12973:96;13012:15;12973:96;;;;;;;;;;;;;;;;;:11;:25;12985:12;:10;:12::i;:::-;12973:25;;;;;;;;;;;;;;;:34;12999:7;12973:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;12941:8;:129::i;:::-;13088:4;13081:11;;12831:269;;;;:::o;9846:122::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9955:5:::1;9923:18;:29;9942:9;9923:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;9846:122:::0;:::o;10699:305::-;10769:10;10751:28;;:14;;;;;;;;;;;:28;;;10743:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10856:9;;10838:15;:27;10830:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10947:14;;;;;;;;;;;10918:44;;10939:6;;;;;;;;;;;10918:44;;;;;;;;;;;;10982:14;;;;;;;;;;;10973:6;;:23;;;;;;;;;;;;;;;;;;10699:305::o;16561:600::-;16640:11;;;;;;;;;;;16632:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16693:13;16722:9;16734:1;16722:13;;16717:341;16741:8;:15;16737:1;:19;16717:341;;;16822:10;16786:46;;:11;;;;;;;;;;;:19;;;16806:8;16815:1;16806:11;;;;;;;;;;;;;;16786:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;16778:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16890:29;16907:8;16916:1;16907:11;;;;;;;;;;;;;;16890:16;:29::i;:::-;16881:38;;;;16969:1;16937:29;16954:8;16963:1;16954:11;;;;;;;;;;;;;;16937:16;:29::i;:::-;:33;16934:113;;;17016:15;16990:10;:23;17001:8;17010:1;17001:11;;;;;;;;;;;;;;16990:23;;;;;;;;;;;:41;;;;16934:113;16758:3;;;;;;;16717:341;;;;17084:1;17076:5;:9;17068:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17129:24;17135:10;17147:5;17129;:24::i;:::-;16561:600;;:::o;11413:355::-;11499:4;11519:18;:29;11538:9;11519:29;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;11552:18;:32;11571:12;:10;:12::i;:::-;11552:32;;;;;;;;;;;;;;;;;;;;;;;;;11519:65;11516:223;;;11600:50;11618:12;:10;:12::i;:::-;11632:9;11643:6;11600:17;:50::i;:::-;11516:223;;;11681:42;11691:12;:10;:12::i;:::-;11705:9;11716:6;11681:9;:42::i;:::-;11516:223;11756:4;11749:11;;11413:355;;;;:::o;9716:118::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9822:4:::1;9790:18:::0;:29:::1;9809:9;9790:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;9716:118:::0;:::o;10232:89::-;10277:7;10304:9;;10297:16;;10232:89;:::o;9122:102::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9209:7:::1;9194:12;:22;;;;9122:102:::0;:::o;6583:23::-;;;;;;;;;;;;;:::o;6114:30::-;;;;;;;;;;;;;:::o;18357:113::-;18409:7;18437:11;;;;;;;;;;;:19;;;18457:4;18437:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18430:32;;18357:113;;;:::o;6481:25::-;;;;:::o;6348:21::-;;;;;;;;;;;;;:::o;10397:226::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10478:6:::1;;;;;;;;;;;10461:14;;:23;;;;;;;;;;;;;;;;;;10512:1;10495:6;;:19;;;;;;;;;;;;;;;;;;10555:4;10537:15;:22;10525:9;:34;;;;10612:1;10575:40;;10596:6;;;;;;;;;;;10575:40;;;;;;;;;;;;10397:226:::0;:::o;11776:151::-;11865:7;11892:11;:18;11904:5;11892:18;;;;;;;;;;;;;;;:27;11911:7;11892:27;;;;;;;;;;;;;;;;11885:34;;11776:151;;;;:::o;8365:138::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8438:4:::1;8431;:11;8423:47;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8491:4;8481:7;:14;;;;8365:138:::0;:::o;18818:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9980:244::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10089:1:::1;10069:22;;:8;:22;;;;10061:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10179:8;10150:38;;10171:6;;;;;;;;;;;10150:38;;;;;;;;;;;;10208:8;10199:6;;:17;;;;;;;;;;;;;;;;;;9980:244:::0;:::o;6151:38::-;;;;:::o;9601:103::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9688:8:::1;9673:12;;:23;;;;;;;;;;;;;;;;;;9601:103:::0;:::o;8665:93::-;7433:6;;;;;;;;;;;7419:20;;:10;:20;;;7411:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8739:11:::1;;;;;;;;;;;8738:12;8724:11;;:26;;;;;;;;;;;;;;;;;;8665:93::o:0;6532:25::-;;;;:::o;1514:181::-;1572:7;1592:9;1608:1;1604;:5;1592:17;;1633:1;1628;:6;;1620:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1686:1;1679:8;;;1514:181;;;;:::o;173:106::-;226:15;261:10;254:17;;173:106;:::o;17667:346::-;17786:1;17769:19;;:5;:19;;;;17761:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17867:1;17848:21;;:7;:21;;;;17840:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17951:6;17921:11;:18;17933:5;17921:18;;;;;;;;;;;;;;;:27;17940:7;17921:27;;;;;;;;;;;;;;;:36;;;;17989:7;17973:32;;17982:5;17973:32;;;17998:6;17973:32;;;;;;;;;;;;;;;;;;17667:346;;;:::o;13108:961::-;13240:1;13222:20;;:6;:20;;;;13214:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13324:1;13303:23;;:9;:23;;;;13295:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13390:6;;;;;;;;;;;13380:16;;:6;:16;;;;:39;;;;;13413:6;;;;;;;;;;;13400:19;;:9;:19;;;;13380:39;13377:132;;;13452:12;;13442:6;:22;;13434:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13377:132;13550:13;;;;;;;;;;;13537:26;;:9;:26;;;:58;;;;;13594:1;13567:24;13577:13;;;;;;;;;;;13567:9;:24::i;:::-;:28;13537:58;:73;;;;;13599:11;;;;;;;;;;;13537:73;13534:166;;;13643:9;;13634:6;:18;13626:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13534:166;13873:71;13895:6;13873:71;;;;;;;;;;;;;;;;;:9;:17;13883:6;13873:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;13853:9;:17;13863:6;13853:17;;;;;;;;;;;;;;;:91;;;;13978:32;14003:6;13978:9;:20;13988:9;13978:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;13955:9;:20;13965:9;13955:20;;;;;;;;;;;;;;;:55;;;;14043:9;14026:35;;14035:6;14026:35;;;14054:6;14026:35;;;;;;;;;;;;;;;;;;13108:961;;;:::o;14081:1072::-;14206:1;14188:20;;:6;:20;;;;14180:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14290:1;14269:23;;:9;:23;;;;14261:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14356:6;;;;;;;;;;;14346:16;;:6;:16;;;;:39;;;;;14379:6;;;;;;;;;;;14366:19;;:9;:19;;;;14346:39;14343:132;;;14418:12;;14408:6;:22;;14400:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14343:132;14504:13;;;;;;;;;;;14491:26;;:9;:26;;;:58;;;;;14548:1;14521:24;14531:13;;;;;;;;;;;14521:9;:24::i;:::-;:28;14491:58;:73;;;;;14553:11;;;;;;;;;;;14491:73;14488:166;;;14597:9;;14588:6;:18;14580:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14488:166;14674:21;14698:9;:17;14708:6;14698:17;;;;;;;;;;;;;;;;14674:41;;14751:6;14734:13;:23;;14726:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14847:6;14831:13;:22;14811:9;:17;14821:6;14811:17;;;;;;;;;;;;;;;:42;;;;14864:23;14890:37;14901:25;14919:6;14901:17;:25::i;:::-;14890:6;:10;;:37;;;;:::i;:::-;14864:63;;14962:15;14938:9;:20;14948:9;14938:20;;;;;;;;;;;;;;;;:39;;;;;;;;;;;15015:24;15032:6;15015:16;:24::i;:::-;14988:9;:23;14998:12;;;;;;;;;;;14988:23;;;;;;;;;;;;;;;;:51;;;;;;;;;;;15092:9;15075:44;;15084:6;15075:44;;;15103:15;15075:44;;;;;;;;;;;;;;;;;;14081:1072;;;;;:::o;1847:192::-;1933:7;1966:1;1961;:6;;1969:12;1953:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1993:9;2009:1;2005;:5;1993:17;;2030:1;2023:8;;;1847:192;;;;;:::o;2305:132::-;2363:7;2390:39;2394:1;2397;2390:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2383:46;;2305:132;;;;:::o;2047:250::-;2105:7;2134:1;2129;:6;2125:47;;;2159:1;2152:8;;;;2125:47;2184:9;2200:1;2196;:5;2184:17;;2229:1;2224;2220;:5;;;;;;:10;2212:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2288:1;2281:8;;;2047:250;;;;;:::o;15263:378::-;15366:1;15347:21;;:7;:21;;;;15339:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15417:49;15446:1;15450:7;15459:6;15417:20;:49::i;:::-;15494:24;15511:6;15494:12;;:16;;:24;;;;:::i;:::-;15479:12;:39;;;;15550:30;15573:6;15550:9;:18;15560:7;15550:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;15529:9;:18;15539:7;15529:18;;;;;;;;;;;;;;;:51;;;;15617:7;15596:37;;15613:1;15596:37;;;15626:6;15596:37;;;;;;;;;;;;;;;;;;15263:378;;:::o;18119:92::-;;;;:::o;1703:136::-;1761:7;1788:43;1792:1;1795;1788:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1781:50;;1703:136;;;;:::o;8020:165::-;8087:7;8114:63;8161:5;8114:28;8134:7;;8126;;:15;8114:7;:11;;:28;;;;:::i;:::-;:32;;:63;;;;:::i;:::-;8107:70;;8020:165;;;:::o;8197:156::-;8263:7;8290:55;8329:5;8290:20;8302:7;;8290;:11;;:20;;;;:::i;:::-;:24;;:55;;;;:::i;:::-;8283:62;;8197:156;;;:::o;2445:278::-;2531:7;2563:1;2559;:5;2566:12;2551:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2590:9;2606:1;2602;:5;;;;;;2590:17;;2714:1;2707:8;;;2445:278;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://ddee0a431e984e75c8f2a731c9365d4efd6166a2d54cdd95656bc49312921c91
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.