ETH Price: $2,676.85 (+0.86%)
Gas: 7 Gwei

Token

Gold mining Members (GMM)
 

Overview

Max Total Supply

1,000,000,000 GMM

Holders

91 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
408,950.357 GMM

Value
$0.00
0xb8d263778daa72559caf22444ed477bde592a8b6
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

GMM ePlatform, a global social gaming hub.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
GoldminingMembers

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-04-03
*/

pragma solidity ^0.4.24;

library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a / b;
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

contract Ownable {
    address public owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor() public {
        owner = msg.sender;
    }
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

}


contract Manager is Ownable {
    
    address[] managers;

    modifier onlyManagers() {
        bool exist = false;
        if(owner == msg.sender) {
            exist = true;
        } else {
            uint index = 0;
            (exist, index) = existManager(msg.sender);
        }
        require(exist);
        _;
    }
    
    function getManagers() public view returns (address[] memory){
        return managers;
    }
    
    function existManager(address _to) private view returns (bool, uint) {
        for (uint i = 0 ; i < managers.length; i++) {
            if (managers[i] == _to) {
                return (true, i);
            }
        }
        return (false, 0);
    }
    function addManager(address _to) onlyOwner public {
        bool exist = false;
        uint index = 0;
        (exist, index) = existManager(_to);
        
        require(!exist);
        
        managers.push(_to);
    }
    function deleteManager(address _to) onlyOwner public {
        bool exist = false;
        uint index = 0;
        (exist, index) = existManager(_to);
        
        require(exist);
   
        uint lastElementIndex = managers.length - 1; 
        managers[index] = managers[lastElementIndex];

        delete managers[managers.length - 1];
        managers.length--;
    }

}

contract Pausable is Manager {
    event Pause();
    event Unpause();

    bool public paused = false;

    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    modifier whenPaused() {
        require(paused);
        _;
    }

    function pause() onlyManagers whenNotPaused public {
        paused = true;
        emit Pause();
    }

    function unpause() onlyManagers whenPaused public {
        paused = false;
        emit Unpause();
    }
}

contract ERC20 {
    function totalSupply() public view returns (uint256);
    function balanceOf(address who) public view returns (uint256);
    function allowance(address owner, address spender) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);
    function transferFrom(address from, address to, uint256 value) public returns (bool);

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

contract Token is ERC20, Pausable {

    struct sUserInfo {
        uint256 balance;
        bool lock;
        mapping(address => uint256) allowed;
    }
    
    using SafeMath for uint256;

    string public name;
    string public symbol;
    uint8 public decimals;
    uint256 public totalSupply;

  

    mapping(address => sUserInfo) user;

    event Mint(uint256 value);
    event Burn(uint256 value);

   
    
    function () public payable {
        revert();
    }
    
    function validTransfer(address _from, address _to, uint256 _value, bool _lockCheck) internal view returns (bool) {
        require(_to != address(this));
        require(_to != address(0));
        require(user[_from].balance >= _value);
        if(_lockCheck) {
            require(user[_from].lock == false);
            require(user[_to].lock == false); 
            require(user[msg.sender].lock == false); 
        }
    }

    function lock(address _owner) public onlyManagers returns (bool) {
        require(user[_owner].lock == false);
        user[_owner].lock = true;
        return true;
    }
    function unlock(address _owner) public onlyManagers returns (bool) {
        require(user[_owner].lock == true);
        user[_owner].lock = false;
       return true;
    }
 
    function burn(uint256 _value) public onlyOwner returns (bool) {
        require(_value <= user[msg.sender].balance);
        user[msg.sender].balance = user[msg.sender].balance.sub(_value);
        totalSupply = totalSupply.sub(_value);
        emit Burn(_value);
        return true;
    }
   
    function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
        require(_value == 0 || user[msg.sender].allowed[_spender] == 0); 
        user[msg.sender].allowed[_spender] = _value; 
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {
        validTransfer(_from, _to, _value, true);
        require(_value <=  user[_from].allowed[msg.sender]);

        user[_from].balance = user[_from].balance.sub(_value);
        user[_to].balance = user[_to].balance.add(_value);

        user[_from].allowed[msg.sender] = user[_from].allowed[msg.sender].sub(_value);
        emit Transfer(_from, _to, _value);
        return true;
    }
    
    function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
        validTransfer(msg.sender, _to, _value, true);

        user[msg.sender].balance = user[msg.sender].balance.sub(_value);
        user[_to].balance = user[_to].balance.add(_value);

        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    
    function totalSupply() public view returns (uint256) {
        return totalSupply;
    }
    function balanceOf(address _owner) public view returns (uint256) {
        return user[_owner].balance;
    }
    function lockState(address _owner) public view returns (bool) {
        return user[_owner].lock;
    }
    function allowance(address _owner, address _spender) public view returns (uint256) {
        return user[_owner].allowed[_spender];
    }
    
}

contract LockBalance is Manager {
    
    enum eLockType {None, Individual, GroupA, GroupB}
    struct sGroupLockDate {
        uint256[] lockTime;
        uint256[] lockPercent;
    }
    struct sLockInfo {
        uint256[] lockType;
        uint256[] lockBalanceStandard;
        uint256[] startTime;
        uint256[] endTime;
    }
    
    using SafeMath for uint256;

    mapping(uint => sGroupLockDate) groupLockDate;
    
    mapping(address => sLockInfo) lockUser;

    event Lock(address indexed from, uint256 value, uint256 endTime);
    
    function setLockUser(address _to, eLockType _lockType, uint256 _value, uint256 _endTime) internal {
        require(_endTime > now); 
        require(_value > 0); 
        lockUser[_to].lockType.push(uint256(_lockType));
        lockUser[_to].lockBalanceStandard.push(_value);
        lockUser[_to].startTime.push(now);
        lockUser[_to].endTime.push(_endTime);

        emit Lock(_to, _value, _endTime);
    }

    function lockBalanceGroup(address _owner, uint _index) internal view returns (uint256) {
        uint256 percent = 0;
        uint256 key = uint256(lockUser[_owner].lockType[_index]);

        uint256 time = 99999999999;
        for(uint256 i = 0 ; i < groupLockDate[key].lockTime.length; i++) {
            if(now < groupLockDate[key].lockTime[i]) {
                if(groupLockDate[key].lockTime[i] < time) {
                    time = groupLockDate[key].lockTime[i];
                    percent = groupLockDate[key].lockPercent[i];    
                }
            }
        }
        
        if(percent == 0){
            return 0;
        } else {
            return lockUser[_owner].lockBalanceStandard[_index].div(100).mul(uint256(percent));
        }
    }

    function lockBalanceIndividual(address _owner, uint _index) internal view returns (uint256) {
        if(now < lockUser[_owner].endTime[_index]) {
            return lockUser[_owner].lockBalanceStandard[_index];
        } else {
            return 0;
        }
    }
        
    function addLockDate(eLockType _lockType, uint256 _second, uint256 _percent) onlyManagers public {
        sGroupLockDate storage lockInfo = groupLockDate[uint256(_lockType)];
        bool isExists = false;
        for(uint256 i = 0; i < lockInfo.lockTime.length; i++) {
            if(lockInfo.lockTime[i] == _second) {
                revert();
                break;
            }
        }
        
        if(isExists) {
           revert();
        } else {
            lockInfo.lockTime.push(_second);
            lockInfo.lockPercent.push(_percent);
        }
    }
    
    function deleteLockDate(eLockType _lockType, uint256 _lockTime) onlyManagers public {
        sGroupLockDate storage lockDate = groupLockDate[uint256(_lockType)];
        
        bool isExists = false;
        uint256 index = 0;
        for(uint256 i = 0; i < lockDate.lockTime.length; i++) {
            if(lockDate.lockTime[i] == _lockTime) {
                isExists = true;
                index = i;
                break;
            }
        }
        
        if(isExists) {
            for(uint256 k = index; k < lockDate.lockTime.length - 1; k++){
                lockDate.lockTime[k] = lockDate.lockTime[k + 1];
                lockDate.lockPercent[k] = lockDate.lockPercent[k + 1];
            }
            delete lockDate.lockTime[lockDate.lockTime.length - 1];
            lockDate.lockTime.length--;
            delete lockDate.lockPercent[lockDate.lockPercent.length - 1];
            lockDate.lockPercent.length--;
        } else {
            revert();
        }
        
    }


    function lockTypeInfoGroup(eLockType _type) public view returns (uint256[], uint256[]) {
        uint256 key = uint256(_type);
        return (groupLockDate[key].lockTime, groupLockDate[key].lockPercent);
    }
    function lockUserInfo(address _owner) public view returns (uint256[], uint256[], uint256[], uint256[], uint256[]) {
        
        uint256[] memory balance = new uint256[](lockUser[_owner].lockType.length);
        for(uint256 i = 0; i < lockUser[_owner].lockType.length; i++){
            if(lockUser[_owner].lockType[i] == uint256(eLockType.Individual)) {
                balance[i] = balance[i].add(lockBalanceIndividual(_owner, i));
            } else if(lockUser[_owner].lockType[i] != uint256(eLockType.None)) {
                balance[i] = balance[i].add(lockBalanceGroup(_owner, i));
            }
        }
        
        return (lockUser[_owner].lockType,
        lockUser[_owner].lockBalanceStandard,
        balance,
        lockUser[_owner].startTime,
        lockUser[_owner].endTime);
    }
    function lockBalanceAll(address _owner) public view returns (uint256) {
        uint256 lockBalance = 0;
        for(uint256 i = 0; i < lockUser[_owner].lockType.length; i++){
            if(lockUser[_owner].lockType[i] == uint256(eLockType.Individual)) {
                lockBalance = lockBalance.add(lockBalanceIndividual(_owner, i));
            } else if(lockUser[_owner].lockType[i] != uint256(eLockType.None)) {
                lockBalance = lockBalance.add(lockBalanceGroup(_owner, i));
            }
        }
        return lockBalance;
    }
    
}

contract GoldminingMembers is Token, LockBalance {

    constructor() public {
        name = "Gold mining Members";
        symbol = "GMM";
        decimals = 18;
        uint256 initialSupply = 1000000000;//1,000,000,000
        totalSupply = initialSupply * 10 ** uint(decimals);
        user[owner].balance = totalSupply;
        emit Transfer(address(0), owner, totalSupply);
    }


    bool public SetLockUserForbidden = false; 
    
    event LockUserStage(); 
 
    function controlSetLockUser(bool _stage) public onlyOwner { 
        SetLockUserForbidden = _stage; 
        emit LockUserStage(); 
    }     
  
    function validTransfer(address _from, address _to, uint256 _value, bool _lockCheck) internal view returns (bool) {
        super.validTransfer(_from, _to, _value, _lockCheck);
        if(_lockCheck) {
            require(_value <= useBalanceOf(_from));
        }
    }

    function setLockUsers(eLockType _type, address[] _to, uint256[] _value, uint256[] _endTime) onlyManagers public {  
        require(!SetLockUserForbidden); 
        require(_to.length > 0);
        require(_to.length == _value.length);
        require(_to.length == _endTime.length);
        require(_type != eLockType.None);
        
        for(uint256 i = 0; i < _to.length; i++){
            require(_value[i] <= useBalanceOf(_to[i]));
            setLockUser(_to[i], _type, _value[i], _endTime[i]);
        }
    }
    
    function useBalanceOf(address _owner) public view returns (uint256) {
        return balanceOf(_owner).sub(lockBalanceAll(_owner));
    }
    
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lockBalanceAll","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_lockType","type":"uint8"},{"name":"_lockTime","type":"uint256"}],"name":"deleteLockDate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_stage","type":"bool"}],"name":"controlSetLockUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"addManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"unlock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SetLockUserForbidden","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"useBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_type","type":"uint8"}],"name":"lockTypeInfoGroup","outputs":[{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lockState","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"deleteManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_type","type":"uint8"},{"name":"_to","type":"address[]"},{"name":"_value","type":"uint256[]"},{"name":"_endTime","type":"uint256[]"}],"name":"setLockUsers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_lockType","type":"uint8"},{"name":"_second","type":"uint256"},{"name":"_percent","type":"uint256"}],"name":"addLockDate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getManagers","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lockUserInfo","outputs":[{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"lock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[],"name":"LockUserStage","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"endTime","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

60806040526000600260006101000a81548160ff0219169083151502179055506000600a60006101000a81548160ff0219169083151502179055503480156200004757600080fd5b506000336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280601381526020017f476f6c64206d696e696e67204d656d626572730000000000000000000000000081525060039080519060200190620000d792919062000261565b506040805190810160405280600381526020017f474d4d0000000000000000000000000000000000000000000000000000000000815250600490805190602001906200012592919062000261565b506012600560006101000a81548160ff021916908360ff160217905550633b9aca009050600560009054906101000a900460ff1660ff16600a0a8102600681905550600654600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a35062000310565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002a457805160ff1916838001178555620002d5565b82800160010185558215620002d5579182015b82811115620002d4578251825591602001919060010190620002b7565b5b509050620002e49190620002e8565b5090565b6200030d91905b8082111562000309576000816000905550600101620002ef565b5090565b90565b61382f80620003206000396000f300608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063015d200f1461018557806306fdde03146101dc5780630789a3131461026c578063095ea7b3146102a657806310cbd9231461030b57806318160ddd1461033a57806323b872dd146103655780632d06177a146103ea5780632f6c493c1461042d578063313ce5671461048857806332f0568a146104b95780633f4ba83a146104e857806342966c68146104ff5780635c975abb1461054457806369132d431461057357806370a08231146105ca5780638456cb59146106215780638da5cb5b146106385780638e2833341461068f57806394dbc70e1461075c57806395d89b41146107b757806396799760146108475780639846d9de1461088a5780639a713d0514610983578063a8d088bb146109c7578063a9059cbb14610a33578063ac1a717514610a98578063dd62ed3e14610c50578063f2fde38b14610cc7578063f435f5a714610d0a575b600080fd5b34801561019157600080fd5b506101c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d65565b6040518082815260200191505060405180910390f35b3480156101e857600080fd5b506101f1610ef4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610231578082015181840152602081019050610216565b50505050905090810190601f16801561025e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027857600080fd5b506102a4600480360381019080803560ff16906020019092919080359060200190929190505050610f92565b005b3480156102b257600080fd5b506102f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111d4565b604051808215151515815260200191505060405180910390f35b34801561031757600080fd5b5061033860048036038101908080351515906020019092919050505061137e565b005b34801561034657600080fd5b5061034f611422565b6040518082815260200191505060405180910390f35b34801561037157600080fd5b506103d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061142c565b604051808215151515815260200191505060405180910390f35b3480156103f657600080fd5b5061042b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117a1565b005b34801561043957600080fd5b5061046e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611890565b604051808215151515815260200191505060405180910390f35b34801561049457600080fd5b5061049d6119e0565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104c557600080fd5b506104ce6119f3565b604051808215151515815260200191505060405180910390f35b3480156104f457600080fd5b506104fd611a06565b005b34801561050b57600080fd5b5061052a60048036038101908080359060200190929190505050611af3565b604051808215151515815260200191505060405180910390f35b34801561055057600080fd5b50610559611c97565b604051808215151515815260200191505060405180910390f35b34801561057f57600080fd5b506105b4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611caa565b6040518082815260200191505060405180910390f35b3480156105d657600080fd5b5061060b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cd6565b6040518082815260200191505060405180910390f35b34801561062d57600080fd5b50610636611d22565b005b34801561064457600080fd5b5061064d611e10565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561069b57600080fd5b506106bd600480360381019080803560ff169060200190929190505050611e35565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156107045780820151818401526020810190506106e9565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561074657808201518184015260208101905061072b565b5050505090500194505050505060405180910390f35b34801561076857600080fd5b5061079d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f22565b604051808215151515815260200191505060405180910390f35b3480156107c357600080fd5b506107cc611f7b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561080c5780820151818401526020810190506107f1565b50505050905090810190601f1680156108395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561085357600080fd5b50610888600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612019565b005b34801561089657600080fd5b50610981600480360381019080803560ff169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612197565b005b34801561098f57600080fd5b506109c5600480360381019080803560ff169060200190929190803590602001909291908035906020019092919050505061234b565b005b3480156109d357600080fd5b506109dc6124b4565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610a1f578082015181840152602081019050610a04565b505050509050019250505060405180910390f35b348015610a3f57600080fd5b50610a7e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612542565b604051808215151515815260200191505060405180910390f35b348015610aa457600080fd5b50610ad9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612713565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019060200280838360005b83811015610b2c578082015181840152602081019050610b11565b5050505090500186810385528a818151815260200191508051906020019060200280838360005b83811015610b6e578082015181840152602081019050610b53565b50505050905001868103845289818151815260200191508051906020019060200280838360005b83811015610bb0578082015181840152602081019050610b95565b50505050905001868103835288818151815260200191508051906020019060200280838360005b83811015610bf2578082015181840152602081019050610bd7565b50505050905001868103825287818151815260200191508051906020019060200280838360005b83811015610c34578082015181840152602081019050610c19565b505050509050019a505050505050505050505060405180910390f35b348015610c5c57600080fd5b50610cb1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bda565b6040518082815260200191505060405180910390f35b348015610cd357600080fd5b50610d08600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c64565b005b348015610d1657600080fd5b50610d4b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612db9565b604051808215151515815260200191505060405180910390f35b6000806000809150600090505b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050811015610eea5760016003811115610dcc57fe5b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515610e1b57fe5b90600052602060002001541415610e4f57610e48610e398583612f09565b83612fd890919063ffffffff16565b9150610edd565b60006003811115610e5c57fe5b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515610eab57fe5b9060005260206000200154141515610edc57610ed9610eca8583612ff6565b83612fd890919063ffffffff16565b91505b5b8080600101915050610d72565b8192505050919050565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f8a5780601f10610f5f57610100808354040283529160200191610f8a565b820191906000526020600020905b815481529060010190602001808311610f6d57829003601f168201915b505050505081565b60008060008060008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610ffe5760019150611014565b6000905061100b33613202565b80925081935050505b81151561102057600080fd5b600860008a600381111561103057fe5b815260200190815260200160002096506000955060009450600093505b86600001805490508410156110985787876000018581548110151561106e57fe5b9060005260206000200154141561108b5760019550839450611098565b838060010194505061104d565b85156111c4578492505b600187600001805490500383101561113d5786600001600184018154811015156110c857fe5b906000526020600020015487600001848154811015156110e457fe5b9060005260206000200181905550866001016001840181548110151561110657fe5b9060005260206000200154876001018481548110151561112257fe5b906000526020600020018190555082806001019350506110a2565b86600001600188600001805490500381548110151561115857fe5b90600052602060002001600090558660000180548091906001900361117d9190613786565b5086600101600188600101805490500381548110151561119957fe5b9060005260206000200160009055866001018054809190600190036111be9190613786565b506111c9565b600080fd5b505050505050505050565b6000600260009054906101000a900460ff161515156111f257600080fd5b600082148061128057506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b151561128b57600080fd5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113d957600080fd5b80600a60006101000a81548160ff0219169083151502179055507f608433a8854c927d8a94bf9852e6d93b72852c3ed14cf6a6e61f00244270a80b60405160405180910390a150565b6000600654905090565b6000600260009054906101000a900460ff1615151561144a57600080fd5b61145784848460016132af565b50600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156114e657600080fd5b61153b82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546132e490919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506115d682600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612fd890919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506116ae82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132e490919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117ff57600080fd5b600091506000905061181083613202565b80925081935050508115151561182557600080fd5b60018390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156118f6576001915061190c565b6000905061190333613202565b80925081935050505b81151561191857600080fd5b60011515600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561197a57600080fd5b6000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908315150217905550600192505050919050565b600560009054906101000a900460ff1681565b600a60009054906101000a900460ff1681565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a6b5760019150611a81565b60009050611a7833613202565b80925081935050505b811515611a8d57600080fd5b600260009054906101000a900460ff161515611aa857600080fd5b6000600260006101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a15050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b5057600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548211151515611ba157600080fd5b611bf682600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546132e490919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550611c51826006546132e490919063ffffffff16565b6006819055507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a160019050919050565b600260009054906101000a900460ff1681565b6000611ccf611cb883610d65565b611cc184611cd6565b6132e490919063ffffffff16565b9050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d875760019150611d9d565b60009050611d9433613202565b80925081935050505b811515611da957600080fd5b600260009054906101000a900460ff16151515611dc557600080fd5b6001600260006101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060806000836003811115611e4657fe5b9050600860008281526020019081526020016000206000016008600083815260200190815260200160002060010181805480602002602001604051908101604052809291908181526020018280548015611ebf57602002820191906000526020600020905b815481526020019060010190808311611eab575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015611f1157602002820191906000526020600020905b815481526020019060010190808311611efd575b505050505090509250925050915091565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120115780601f10611fe657610100808354040283529160200191612011565b820191906000526020600020905b815481529060010190602001808311611ff457829003601f168201915b505050505081565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561207957600080fd5b600092506000915061208a84613202565b809350819450505082151561209e57600080fd5b600180805490500390506001818154811015156120b757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001838154811015156120f157fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018080805490500381548110151561214e57fe5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600180548091906001900361219091906137b2565b5050505050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156121fd5760019150612213565b6000905061220a33613202565b80925081935050505b81151561221f57600080fd5b600a60009054906101000a900460ff1615151561223b57600080fd5b6000865111151561224b57600080fd5b8451865114151561225b57600080fd5b8351865114151561226b57600080fd5b6000600381111561227857fe5b87600381111561228457fe5b1415151561229157600080fd5b600092505b8551831015612342576122bf86848151811015156122b057fe5b90602001906020020151611caa565b85848151811015156122cd57fe5b90602001906020020151111515156122e457600080fd5b61233586848151811015156122f557fe5b9060200190602002015188878681518110151561230e57fe5b90602001906020020151878781518110151561232657fe5b906020019060200201516132fd565b8280600101935050612296565b50505050505050565b60008060008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123b457600191506123ca565b600090506123c133613202565b80925081935050505b8115156123d657600080fd5b600860008960038111156123e657fe5b8152602001908152602001600020945060009350600092505b84600001805490508310156124435786856000018481548110151561242057fe5b9060005260206000200154141561243657600080fd5b82806001019350506123ff565b831561244e57600080fd5b84600001879080600181540180825580915050906001820390600052602060002001600090919290919091505550846001018690806001815401808255809150509060018203906000526020600020016000909192909190915055505050505050505050565b6060600180548060200260200160405190810160405280929190818152602001828054801561253857602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116124ee575b5050505050905090565b6000600260009054906101000a900460ff1615151561256057600080fd5b61256d33848460016132af565b506125c382600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546132e490919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061265e82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612fd890919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6060806060806060806000600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490506040519080825280602002602001820160405280156127925781602001602082028038833980820191505090505b509150600090505b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905081101561297457600160038111156127f457fe5b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561284357fe5b906000526020600020015414156128a8576128876128618983612f09565b838381518110151561286f57fe5b90602001906020020151612fd890919063ffffffff16565b828281518110151561289557fe5b9060200190602002018181525050612967565b600060038111156128b557fe5b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561290457fe5b9060005260206000200154141515612966576129496129238983612ff6565b838381518110151561293157fe5b90602001906020020151612fd890919063ffffffff16565b828281518110151561295757fe5b90602001906020020181815250505b5b808060010191505061279a565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030184805480602002602001604051908101604052809291908181526020018280548015612ac857602002820191906000526020600020905b815481526020019060010190808311612ab4575b5050505050945083805480602002602001604051908101604052809291908181526020018280548015612b1a57602002820191906000526020600020905b815481526020019060010190808311612b06575b5050505050935081805480602002602001604051908101604052809291908181526020018280548015612b6c57602002820191906000526020600020905b815481526020019060010190808311612b58575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015612bbe57602002820191906000526020600020905b815481526020019060010190808311612baa575b5050505050905096509650965096509650505091939590929450565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612cbf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612cfb57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612e1f5760019150612e35565b60009050612e2c33613202565b80925081935050505b811515612e4157600080fd5b60001515600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161515141515612ea357600080fd5b6001600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908315150217905550600192505050919050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030182815481101515612f5a57fe5b9060005260206000200154421015612fcd57600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515612fbb57fe5b90600052602060002001549050612fd2565b600090505b92915050565b6000808284019050838110151515612fec57fe5b8091505092915050565b6000806000806000809350600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018681548110151561305057fe5b9060005260206000200154925064174876e7ff9150600090505b60086000848152602001908152602001600020600001805490508110156131645760086000848152602001908152602001600020600001818154811015156130ae57fe5b9060005260206000200154421015613157578160086000858152602001908152602001600020600001828154811015156130e457fe5b9060005260206000200154101561315657600860008481526020019081526020016000206000018181548110151561311857fe5b90600052602060002001549150600860008481526020019081526020016000206001018181548110151561314857fe5b906000526020600020015493505b5b808060010191505061306a565b600084141561317657600094506131f8565b6131f5846131e76064600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a8154811015156131ce57fe5b906000526020600020015461353190919063ffffffff16565b61354c90919063ffffffff16565b94505b5050505092915050565b60008060008090505b60018054905081101561329e578373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561323e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561329157600181925092506132a9565b808060010191505061320b565b600080809050925092505b50915091565b60006132bd85858585613587565b5081156132dc576132cd85611caa565b83111515156132db57600080fd5b5b949350505050565b60008282111515156132f257fe5b818303905092915050565b428111151561330b57600080fd5b60008211151561331a57600080fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000183600381111561336857fe5b9080600181540180825580915050906001820390600052602060002001600090919290919091505550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101829080600181540180825580915050906001820390600052602060002001600090919290919091505550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201429080600181540180825580915050906001820390600052602060002001600090919290919091505550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190806001815401808255809150509060018203906000526020600020016000909192909190915055508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8383604051808381526020018281526020019250505060405180910390a250505050565b600080828481151561353f57fe5b0490508091505092915050565b60008060008414156135615760009150613580565b828402905082848281151561357257fe5b0414151561357c57fe5b8091505b5092915050565b60003073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156135c457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561360057600080fd5b82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541015151561365157600080fd5b811561377e5760001515600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff1615151415156136b957600080fd5b60001515600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561371b57600080fd5b60001515600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561377d57600080fd5b5b949350505050565b8154818355818111156137ad578183600052602060002091820191016137ac91906137de565b5b505050565b8154818355818111156137d9578183600052602060002091820191016137d891906137de565b5b505050565b61380091905b808211156137fc5760008160009055506001016137e4565b5090565b905600a165627a7a72305820b06ad886bf5cf8884af2f6356c4990ab901d48f49b2d3605b589e78612e91b400029

Deployed Bytecode

0x608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063015d200f1461018557806306fdde03146101dc5780630789a3131461026c578063095ea7b3146102a657806310cbd9231461030b57806318160ddd1461033a57806323b872dd146103655780632d06177a146103ea5780632f6c493c1461042d578063313ce5671461048857806332f0568a146104b95780633f4ba83a146104e857806342966c68146104ff5780635c975abb1461054457806369132d431461057357806370a08231146105ca5780638456cb59146106215780638da5cb5b146106385780638e2833341461068f57806394dbc70e1461075c57806395d89b41146107b757806396799760146108475780639846d9de1461088a5780639a713d0514610983578063a8d088bb146109c7578063a9059cbb14610a33578063ac1a717514610a98578063dd62ed3e14610c50578063f2fde38b14610cc7578063f435f5a714610d0a575b600080fd5b34801561019157600080fd5b506101c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d65565b6040518082815260200191505060405180910390f35b3480156101e857600080fd5b506101f1610ef4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610231578082015181840152602081019050610216565b50505050905090810190601f16801561025e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027857600080fd5b506102a4600480360381019080803560ff16906020019092919080359060200190929190505050610f92565b005b3480156102b257600080fd5b506102f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111d4565b604051808215151515815260200191505060405180910390f35b34801561031757600080fd5b5061033860048036038101908080351515906020019092919050505061137e565b005b34801561034657600080fd5b5061034f611422565b6040518082815260200191505060405180910390f35b34801561037157600080fd5b506103d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061142c565b604051808215151515815260200191505060405180910390f35b3480156103f657600080fd5b5061042b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117a1565b005b34801561043957600080fd5b5061046e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611890565b604051808215151515815260200191505060405180910390f35b34801561049457600080fd5b5061049d6119e0565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104c557600080fd5b506104ce6119f3565b604051808215151515815260200191505060405180910390f35b3480156104f457600080fd5b506104fd611a06565b005b34801561050b57600080fd5b5061052a60048036038101908080359060200190929190505050611af3565b604051808215151515815260200191505060405180910390f35b34801561055057600080fd5b50610559611c97565b604051808215151515815260200191505060405180910390f35b34801561057f57600080fd5b506105b4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611caa565b6040518082815260200191505060405180910390f35b3480156105d657600080fd5b5061060b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cd6565b6040518082815260200191505060405180910390f35b34801561062d57600080fd5b50610636611d22565b005b34801561064457600080fd5b5061064d611e10565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561069b57600080fd5b506106bd600480360381019080803560ff169060200190929190505050611e35565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156107045780820151818401526020810190506106e9565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561074657808201518184015260208101905061072b565b5050505090500194505050505060405180910390f35b34801561076857600080fd5b5061079d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f22565b604051808215151515815260200191505060405180910390f35b3480156107c357600080fd5b506107cc611f7b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561080c5780820151818401526020810190506107f1565b50505050905090810190601f1680156108395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561085357600080fd5b50610888600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612019565b005b34801561089657600080fd5b50610981600480360381019080803560ff169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612197565b005b34801561098f57600080fd5b506109c5600480360381019080803560ff169060200190929190803590602001909291908035906020019092919050505061234b565b005b3480156109d357600080fd5b506109dc6124b4565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610a1f578082015181840152602081019050610a04565b505050509050019250505060405180910390f35b348015610a3f57600080fd5b50610a7e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612542565b604051808215151515815260200191505060405180910390f35b348015610aa457600080fd5b50610ad9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612713565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019060200280838360005b83811015610b2c578082015181840152602081019050610b11565b5050505090500186810385528a818151815260200191508051906020019060200280838360005b83811015610b6e578082015181840152602081019050610b53565b50505050905001868103845289818151815260200191508051906020019060200280838360005b83811015610bb0578082015181840152602081019050610b95565b50505050905001868103835288818151815260200191508051906020019060200280838360005b83811015610bf2578082015181840152602081019050610bd7565b50505050905001868103825287818151815260200191508051906020019060200280838360005b83811015610c34578082015181840152602081019050610c19565b505050509050019a505050505050505050505060405180910390f35b348015610c5c57600080fd5b50610cb1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bda565b6040518082815260200191505060405180910390f35b348015610cd357600080fd5b50610d08600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c64565b005b348015610d1657600080fd5b50610d4b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612db9565b604051808215151515815260200191505060405180910390f35b6000806000809150600090505b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050811015610eea5760016003811115610dcc57fe5b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515610e1b57fe5b90600052602060002001541415610e4f57610e48610e398583612f09565b83612fd890919063ffffffff16565b9150610edd565b60006003811115610e5c57fe5b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515610eab57fe5b9060005260206000200154141515610edc57610ed9610eca8583612ff6565b83612fd890919063ffffffff16565b91505b5b8080600101915050610d72565b8192505050919050565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f8a5780601f10610f5f57610100808354040283529160200191610f8a565b820191906000526020600020905b815481529060010190602001808311610f6d57829003601f168201915b505050505081565b60008060008060008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610ffe5760019150611014565b6000905061100b33613202565b80925081935050505b81151561102057600080fd5b600860008a600381111561103057fe5b815260200190815260200160002096506000955060009450600093505b86600001805490508410156110985787876000018581548110151561106e57fe5b9060005260206000200154141561108b5760019550839450611098565b838060010194505061104d565b85156111c4578492505b600187600001805490500383101561113d5786600001600184018154811015156110c857fe5b906000526020600020015487600001848154811015156110e457fe5b9060005260206000200181905550866001016001840181548110151561110657fe5b9060005260206000200154876001018481548110151561112257fe5b906000526020600020018190555082806001019350506110a2565b86600001600188600001805490500381548110151561115857fe5b90600052602060002001600090558660000180548091906001900361117d9190613786565b5086600101600188600101805490500381548110151561119957fe5b9060005260206000200160009055866001018054809190600190036111be9190613786565b506111c9565b600080fd5b505050505050505050565b6000600260009054906101000a900460ff161515156111f257600080fd5b600082148061128057506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b151561128b57600080fd5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113d957600080fd5b80600a60006101000a81548160ff0219169083151502179055507f608433a8854c927d8a94bf9852e6d93b72852c3ed14cf6a6e61f00244270a80b60405160405180910390a150565b6000600654905090565b6000600260009054906101000a900460ff1615151561144a57600080fd5b61145784848460016132af565b50600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156114e657600080fd5b61153b82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546132e490919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506115d682600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612fd890919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506116ae82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132e490919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117ff57600080fd5b600091506000905061181083613202565b80925081935050508115151561182557600080fd5b60018390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156118f6576001915061190c565b6000905061190333613202565b80925081935050505b81151561191857600080fd5b60011515600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561197a57600080fd5b6000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908315150217905550600192505050919050565b600560009054906101000a900460ff1681565b600a60009054906101000a900460ff1681565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a6b5760019150611a81565b60009050611a7833613202565b80925081935050505b811515611a8d57600080fd5b600260009054906101000a900460ff161515611aa857600080fd5b6000600260006101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a15050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b5057600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548211151515611ba157600080fd5b611bf682600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546132e490919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550611c51826006546132e490919063ffffffff16565b6006819055507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a160019050919050565b600260009054906101000a900460ff1681565b6000611ccf611cb883610d65565b611cc184611cd6565b6132e490919063ffffffff16565b9050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d875760019150611d9d565b60009050611d9433613202565b80925081935050505b811515611da957600080fd5b600260009054906101000a900460ff16151515611dc557600080fd5b6001600260006101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060806000836003811115611e4657fe5b9050600860008281526020019081526020016000206000016008600083815260200190815260200160002060010181805480602002602001604051908101604052809291908181526020018280548015611ebf57602002820191906000526020600020905b815481526020019060010190808311611eab575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015611f1157602002820191906000526020600020905b815481526020019060010190808311611efd575b505050505090509250925050915091565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120115780601f10611fe657610100808354040283529160200191612011565b820191906000526020600020905b815481529060010190602001808311611ff457829003601f168201915b505050505081565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561207957600080fd5b600092506000915061208a84613202565b809350819450505082151561209e57600080fd5b600180805490500390506001818154811015156120b757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001838154811015156120f157fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018080805490500381548110151561214e57fe5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600180548091906001900361219091906137b2565b5050505050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156121fd5760019150612213565b6000905061220a33613202565b80925081935050505b81151561221f57600080fd5b600a60009054906101000a900460ff1615151561223b57600080fd5b6000865111151561224b57600080fd5b8451865114151561225b57600080fd5b8351865114151561226b57600080fd5b6000600381111561227857fe5b87600381111561228457fe5b1415151561229157600080fd5b600092505b8551831015612342576122bf86848151811015156122b057fe5b90602001906020020151611caa565b85848151811015156122cd57fe5b90602001906020020151111515156122e457600080fd5b61233586848151811015156122f557fe5b9060200190602002015188878681518110151561230e57fe5b90602001906020020151878781518110151561232657fe5b906020019060200201516132fd565b8280600101935050612296565b50505050505050565b60008060008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123b457600191506123ca565b600090506123c133613202565b80925081935050505b8115156123d657600080fd5b600860008960038111156123e657fe5b8152602001908152602001600020945060009350600092505b84600001805490508310156124435786856000018481548110151561242057fe5b9060005260206000200154141561243657600080fd5b82806001019350506123ff565b831561244e57600080fd5b84600001879080600181540180825580915050906001820390600052602060002001600090919290919091505550846001018690806001815401808255809150509060018203906000526020600020016000909192909190915055505050505050505050565b6060600180548060200260200160405190810160405280929190818152602001828054801561253857602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116124ee575b5050505050905090565b6000600260009054906101000a900460ff1615151561256057600080fd5b61256d33848460016132af565b506125c382600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546132e490919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061265e82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612fd890919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6060806060806060806000600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490506040519080825280602002602001820160405280156127925781602001602082028038833980820191505090505b509150600090505b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905081101561297457600160038111156127f457fe5b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561284357fe5b906000526020600020015414156128a8576128876128618983612f09565b838381518110151561286f57fe5b90602001906020020151612fd890919063ffffffff16565b828281518110151561289557fe5b9060200190602002018181525050612967565b600060038111156128b557fe5b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561290457fe5b9060005260206000200154141515612966576129496129238983612ff6565b838381518110151561293157fe5b90602001906020020151612fd890919063ffffffff16565b828281518110151561295757fe5b90602001906020020181815250505b5b808060010191505061279a565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030184805480602002602001604051908101604052809291908181526020018280548015612ac857602002820191906000526020600020905b815481526020019060010190808311612ab4575b5050505050945083805480602002602001604051908101604052809291908181526020018280548015612b1a57602002820191906000526020600020905b815481526020019060010190808311612b06575b5050505050935081805480602002602001604051908101604052809291908181526020018280548015612b6c57602002820191906000526020600020905b815481526020019060010190808311612b58575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015612bbe57602002820191906000526020600020905b815481526020019060010190808311612baa575b5050505050905096509650965096509650505091939590929450565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612cbf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612cfb57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612e1f5760019150612e35565b60009050612e2c33613202565b80925081935050505b811515612e4157600080fd5b60001515600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161515141515612ea357600080fd5b6001600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908315150217905550600192505050919050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030182815481101515612f5a57fe5b9060005260206000200154421015612fcd57600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515612fbb57fe5b90600052602060002001549050612fd2565b600090505b92915050565b6000808284019050838110151515612fec57fe5b8091505092915050565b6000806000806000809350600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018681548110151561305057fe5b9060005260206000200154925064174876e7ff9150600090505b60086000848152602001908152602001600020600001805490508110156131645760086000848152602001908152602001600020600001818154811015156130ae57fe5b9060005260206000200154421015613157578160086000858152602001908152602001600020600001828154811015156130e457fe5b9060005260206000200154101561315657600860008481526020019081526020016000206000018181548110151561311857fe5b90600052602060002001549150600860008481526020019081526020016000206001018181548110151561314857fe5b906000526020600020015493505b5b808060010191505061306a565b600084141561317657600094506131f8565b6131f5846131e76064600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a8154811015156131ce57fe5b906000526020600020015461353190919063ffffffff16565b61354c90919063ffffffff16565b94505b5050505092915050565b60008060008090505b60018054905081101561329e578373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561323e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561329157600181925092506132a9565b808060010191505061320b565b600080809050925092505b50915091565b60006132bd85858585613587565b5081156132dc576132cd85611caa565b83111515156132db57600080fd5b5b949350505050565b60008282111515156132f257fe5b818303905092915050565b428111151561330b57600080fd5b60008211151561331a57600080fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000183600381111561336857fe5b9080600181540180825580915050906001820390600052602060002001600090919290919091505550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101829080600181540180825580915050906001820390600052602060002001600090919290919091505550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201429080600181540180825580915050906001820390600052602060002001600090919290919091505550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190806001815401808255809150509060018203906000526020600020016000909192909190915055508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8383604051808381526020018281526020019250505060405180910390a250505050565b600080828481151561353f57fe5b0490508091505092915050565b60008060008414156135615760009150613580565b828402905082848281151561357257fe5b0414151561357c57fe5b8091505b5092915050565b60003073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156135c457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561360057600080fd5b82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541015151561365157600080fd5b811561377e5760001515600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff1615151415156136b957600080fd5b60001515600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561371b57600080fd5b60001515600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561377d57600080fd5b5b949350505050565b8154818355818111156137ad578183600052602060002091820191016137ac91906137de565b5b505050565b8154818355818111156137d9578183600052602060002091820191016137d891906137de565b5b505050565b61380091905b808211156137fc5760008160009055506001016137e4565b5090565b905600a165627a7a72305820b06ad886bf5cf8884af2f6356c4990ab901d48f49b2d3605b589e78612e91b400029

Deployed Bytecode Sourcemap

12332:1618:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4168:8;;;11758:561;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11758:561:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3889:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3889:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3889:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9674:1024;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9674:1024:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5315:301;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5315:301:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12824:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12824:140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6507:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6507:90:0;;;;;;;;;;;;;;;;;;;;;;;5622:504;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5622:504:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1906:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1906:232:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4822:177;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4822:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3941:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3941:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;12738:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12738:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2925:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2925:108:0;;;;;;5008:296;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5008:296:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2620:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2620:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;13802:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13802:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6603:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6603:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2811:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2811:106:0;;;;;;701:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;701:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;10708:213;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10708:213:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10708:213:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10708:213:0;;;;;;;;;;;;;;;;;;;6720:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6720:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3914:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3914:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3914:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2144:387;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2144:387:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13260:530;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13260:530:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9073:589;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9073:589:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1533:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1533:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1533:95:0;;;;;;;;;;;;;;;;;6138:355;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6138:355:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10927:825;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10927:825:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10927:825:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10927:825:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10927:825:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10927:825:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10927:825:0;;;;;;;;;;;;;;;;;;;;;;;;;6831:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6831:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;976:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;976:192:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4640:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4640:176:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11758:561;11819:7;11839:19;11877:9;11861:1;11839:23;;11889:1;11877:13;;11873:410;11896:8;:16;11905:6;11896:16;;;;;;;;;;;;;;;:25;;:32;;;;11892:1;:36;11873:410;;;11992:20;11984:29;;;;;;;;11952:8;:16;11961:6;11952:16;;;;;;;;;;;;;;;:25;;11978:1;11952:28;;;;;;;;;;;;;;;;;;:61;11949:323;;;12048:49;12064:32;12086:6;12094:1;12064:21;:32::i;:::-;12048:11;:15;;:49;;;;:::i;:::-;12034:63;;11949:323;;;12162:14;12154:23;;;;;;;;12122:8;:16;12131:6;12122:16;;;;;;;;;;;;;;;:25;;12148:1;12122:28;;;;;;;;;;;;;;;;;;:55;;12119:153;;;12212:44;12228:27;12245:6;12253:1;12228:16;:27::i;:::-;12212:11;:15;;:44;;;;:::i;:::-;12198:58;;12119:153;11949:323;11930:3;;;;;;;11873:410;;;12300:11;12293:18;;11758:561;;;;;:::o;3889:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9674:1024::-;9769:31;9857:13;9889;9921:9;10189;1282:10;1395;1295:5;1282:18;;1323:10;1314:19;;:5;;;;;;;;;;;:19;;;1311:166;;;1358:4;1350:12;;1311:166;;;1408:1;1395:14;;1441:24;1454:10;1441:12;:24::i;:::-;1424:41;;;;;;;;1311:166;1495:5;1487:14;;;;;;;;9803:13;:33;9825:9;9817:18;;;;;;;;9803:33;;;;;;;;;;;9769:67;;9873:5;9857:21;;9905:1;9889:17;;9933:1;9921:13;;9917:220;9940:8;:17;;:24;;;;9936:1;:28;9917:220;;;10013:9;9989:8;:17;;10007:1;9989:20;;;;;;;;;;;;;;;;;;:33;9986:140;;;10054:4;10043:15;;10085:1;10077:9;;10105:5;;9986:140;9966:3;;;;;;;9917:220;;;10160:8;10157:524;;;10201:5;10189:17;;10185:215;10239:1;10212:8;:17;;:24;;;;:28;10208:1;:32;10185:215;;;10288:8;:17;;10310:1;10306;:5;10288:24;;;;;;;;;;;;;;;;;;10265:8;:17;;10283:1;10265:20;;;;;;;;;;;;;;;;;:47;;;;10357:8;:20;;10382:1;10378;:5;10357:27;;;;;;;;;;;;;;;;;;10331:8;:20;;10352:1;10331:23;;;;;;;;;;;;;;;;;:53;;;;10242:3;;;;;;;10185:215;;;10421:8;:17;;10466:1;10439:8;:17;;:24;;;;:28;10421:47;;;;;;;;;;;;;;;;;10414:54;;;10483:8;:17;;:26;;;;;;;;;;;;:::i;:::-;;10531:8;:20;;10582:1;10552:8;:20;;:27;;;;:31;10531:53;;;;;;;;;;;;;;;;;10524:60;;;10599:8;:20;;:29;;;;;;;;;;;;:::i;:::-;;10157:524;;;10661:8;;;10157:524;9674:1024;;;;;;;;;:::o;5315:301::-;5396:4;2700:6;;;;;;;;;;;2699:7;2691:16;;;;;;;;5431:1;5421:6;:11;:54;;;;5474:1;5436:4;:16;5441:10;5436:16;;;;;;;;;;;;;;;:24;;:34;5461:8;5436:34;;;;;;;;;;;;;;;;:39;5421:54;5413:63;;;;;;;;5525:6;5488:4;:16;5493:10;5488:16;;;;;;;;;;;;;;;:24;;:34;5513:8;5488:34;;;;;;;;;;;;;;;:43;;;;5569:8;5548:38;;5557:10;5548:38;;;5579:6;5548:38;;;;;;;;;;;;;;;;;;5604:4;5597:11;;5315:301;;;;:::o;12824:140::-;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;12917:6;12894:20;;:29;;;;;;;;;;;;;;;;;;12940:15;;;;;;;;;;12824:140;:::o;6507:90::-;6551:7;6578:11;;6571:18;;6507:90;:::o;5622:504::-;5718:4;2700:6;;;;;;;;;;;2699:7;2691:16;;;;;;;;5735:39;5749:5;5756:3;5761:6;5769:4;5735:13;:39::i;:::-;;5804:4;:11;5809:5;5804:11;;;;;;;;;;;;;;;:19;;:31;5824:10;5804:31;;;;;;;;;;;;;;;;5793:6;:42;;5785:51;;;;;;;;5871:31;5895:6;5871:4;:11;5876:5;5871:11;;;;;;;;;;;;;;;:19;;;:23;;:31;;;;:::i;:::-;5849:4;:11;5854:5;5849:11;;;;;;;;;;;;;;;:19;;:53;;;;5933:29;5955:6;5933:4;:9;5938:3;5933:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;5913:4;:9;5918:3;5913:9;;;;;;;;;;;;;;;:17;;:49;;;;6009:43;6045:6;6009:4;:11;6014:5;6009:11;;;;;;;;;;;;;;;:19;;:31;6029:10;6009:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;5975:4;:11;5980:5;5975:11;;;;;;;;;;;;;;;:19;;:31;5995:10;5975:31;;;;;;;;;;;;;;;:77;;;;6084:3;6068:28;;6077:5;6068:28;;;6089:6;6068:28;;;;;;;;;;;;;;;;;;6114:4;6107:11;;5622:504;;;;;:::o;1906:232::-;1967:10;1996;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;1980:5;1967:18;;2009:1;1996:14;;2038:17;2051:3;2038:12;:17::i;:::-;2021:34;;;;;;;;2085:5;2084:6;2076:15;;;;;;;;2112:8;2126:3;2112:18;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2112:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1906:232;;;:::o;4822:177::-;4883:4;1282:10;1395;1295:5;1282:18;;1323:10;1314:19;;:5;;;;;;;;;;;:19;;;1311:166;;;1358:4;1350:12;;1311:166;;;1408:1;1395:14;;1441:24;1454:10;1441:12;:24::i;:::-;1424:41;;;;;;;;1311:166;1495:5;1487:14;;;;;;;;4929:4;4908:25;;:4;:12;4913:6;4908:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;:25;;;4900:34;;;;;;;;4965:5;4945:4;:12;4950:6;4945:12;;;;;;;;;;;;;;;:17;;;:25;;;;;;;;;;;;;;;;;;4987:4;4980:11;;4822:177;;;;;:::o;3941:21::-;;;;;;;;;;;;;:::o;12738:40::-;;;;;;;;;;;;;:::o;2925:108::-;1282:10;1395;1295:5;1282:18;;1323:10;1314:19;;:5;;;;;;;;;;;:19;;;1311:166;;;1358:4;1350:12;;1311:166;;;1408:1;1395:14;;1441:24;1454:10;1441:12;:24::i;:::-;1424:41;;;;;;;;1311:166;1495:5;1487:14;;;;;;;;2776:6;;;;;;;;;;;2768:15;;;;;;;;2995:5;2986:6;;:14;;;;;;;;;;;;;;;;;;3016:9;;;;;;;;;;2925:108;;:::o;5008:296::-;5064:4;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;5099:4;:16;5104:10;5099:16;;;;;;;;;;;;;;;:24;;;5089:6;:34;;5081:43;;;;;;;;5162:36;5191:6;5162:4;:16;5167:10;5162:16;;;;;;;;;;;;;;;:24;;;:28;;:36;;;;:::i;:::-;5135:4;:16;5140:10;5135:16;;;;;;;;;;;;;;;:24;;:63;;;;5223:23;5239:6;5223:11;;:15;;:23;;;;:::i;:::-;5209:11;:37;;;;5262:12;5267:6;5262:12;;;;;;;;;;;;;;;;;;5292:4;5285:11;;5008:296;;;:::o;2620:26::-;;;;;;;;;;;;;:::o;13802:139::-;13861:7;13888:45;13910:22;13925:6;13910:14;:22::i;:::-;13888:17;13898:6;13888:9;:17::i;:::-;:21;;:45;;;;:::i;:::-;13881:52;;13802:139;;;:::o;6603:111::-;6659:7;6686:4;:12;6691:6;6686:12;;;;;;;;;;;;;;;:20;;;6679:27;;6603:111;;;:::o;2811:106::-;1282:10;1395;1295:5;1282:18;;1323:10;1314:19;;:5;;;;;;;;;;;:19;;;1311:166;;;1358:4;1350:12;;1311:166;;;1408:1;1395:14;;1441:24;1454:10;1441:12;:24::i;:::-;1424:41;;;;;;;;1311:166;1495:5;1487:14;;;;;;;;2700:6;;;;;;;;;;;2699:7;2691:16;;;;;;;;2882:4;2873:6;;:13;;;;;;;;;;;;;;;;;;2902:7;;;;;;;;;;2811:106;;:::o;701:20::-;;;;;;;;;;;;;:::o;10708:213::-;10773:9;10784;10806:11;10828:5;10820:14;;;;;;;;10806:28;;10853:13;:18;10867:3;10853:18;;;;;;;;;;;:27;;10882:13;:18;10896:3;10882:18;;;;;;;;;;;:30;;10845:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10708:213;;;;:::o;6720:105::-;6776:4;6800;:12;6805:6;6800:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;6793:24;;6720:105;;;:::o;3914:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2144:387::-;2208:10;2237;2347:21;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;2221:5;2208:18;;2250:1;2237:14;;2279:17;2292:3;2279:12;:17::i;:::-;2262:34;;;;;;;;2325:5;2317:14;;;;;;;;2389:1;2371:8;:15;;;;:19;2347:43;;2420:8;2429:16;2420:26;;;;;;;;;;;;;;;;;;;;;;;;;;;2402:8;2411:5;2402:15;;;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;2466:8;2493:1;2475:8;:15;;;;:19;2466:29;;;;;;;;;;;;;;;;;;2459:36;;;;;;;;;;;2506:8;:17;;;;;;;;;;;;:::i;:::-;;2144:387;;;;:::o;13260:530::-;13614:9;1282:10;1395;1295:5;1282:18;;1323:10;1314:19;;:5;;;;;;;;;;;:19;;;1311:166;;;1358:4;1350:12;;1311:166;;;1408:1;1395:14;;1441:24;1454:10;1441:12;:24::i;:::-;1424:41;;;;;;;;1311:166;1495:5;1487:14;;;;;;;;13394:20;;;;;;;;;;;13393:21;13385:30;;;;;;;;13448:1;13435:3;:10;:14;13427:23;;;;;;;;13483:6;:13;13469:3;:10;:27;13461:36;;;;;;;;13530:8;:15;13516:3;:10;:29;13508:38;;;;;;;;13574:14;13565:23;;;;;;;;:5;:23;;;;;;;;;;13557:32;;;;;;;;13626:1;13614:13;;13610:173;13633:3;:10;13629:1;:14;13610:173;;;13685:20;13698:3;13702:1;13698:6;;;;;;;;;;;;;;;;;;13685:12;:20::i;:::-;13672:6;13679:1;13672:9;;;;;;;;;;;;;;;;;;:33;;13664:42;;;;;;;;13721:50;13733:3;13737:1;13733:6;;;;;;;;;;;;;;;;;;13741:5;13748:6;13755:1;13748:9;;;;;;;;;;;;;;;;;;13759:8;13768:1;13759:11;;;;;;;;;;;;;;;;;;13721;:50::i;:::-;13645:3;;;;;;;13610:173;;;13260:530;;;;;;;:::o;9073:589::-;9181:31;9259:13;9295:9;1282:10;1395;1295:5;1282:18;;1323:10;1314:19;;:5;;;;;;;;;;;:19;;;1311:166;;;1358:4;1350:12;;1311:166;;;1408:1;1395:14;;1441:24;1454:10;1441:12;:24::i;:::-;1424:41;;;;;;;;1311:166;1495:5;1487:14;;;;;;;;9215:13;:33;9237:9;9229:18;;;;;;;;9215:33;;;;;;;;;;;9181:67;;9275:5;9259:21;;9307:1;9295:13;;9291:183;9314:8;:17;;:24;;;;9310:1;:28;9291:183;;;9387:7;9363:8;:17;;9381:1;9363:20;;;;;;;;;;;;;;;;;;:31;9360:103;;;9415:8;;;9360:103;9340:3;;;;;;;9291:183;;;9497:8;9494:161;;;9521:8;;;9494:161;9562:8;:17;;9585:7;9562:31;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9562:31:0;;;;;;;;;;;;;;;;;;;;;;9608:8;:20;;9634:8;9608:35;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9608:35:0;;;;;;;;;;;;;;;;;;;;;;9073:589;;;;;;;;:::o;1533:95::-;1577:9;1612:8;1605:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1533:95;:::o;6138:355::-;6215:4;2700:6;;;;;;;;;;;2699:7;2691:16;;;;;;;;6232:44;6246:10;6258:3;6263:6;6271:4;6232:13;:44::i;:::-;;6316:36;6345:6;6316:4;:16;6321:10;6316:16;;;;;;;;;;;;;;;:24;;;:28;;:36;;;;:::i;:::-;6289:4;:16;6294:10;6289:16;;;;;;;;;;;;;;;:24;;:63;;;;6383:29;6405:6;6383:4;:9;6388:3;6383:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;6363:4;:9;6368:3;6363:9;;;;;;;;;;;;;;;:17;;:49;;;;6451:3;6430:33;;6439:10;6430:33;;;6456:6;6430:33;;;;;;;;;;;;;;;;;;6481:4;6474:11;;6138:355;;;;:::o;10927:825::-;10986:9;10997;11008;11019;11030;11062:24;11151:9;11103:8;:16;11112:6;11103:16;;;;;;;;;;;;;;;:25;;:32;;;;11089:47;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;11089:47:0;;;;11062:74;;11163:1;11151:13;;11147:406;11170:8;:16;11179:6;11170:16;;;;;;;;;;;;;;;:25;;:32;;;;11166:1;:36;11147:406;;;11266:20;11258:29;;;;;;;;11226:8;:16;11235:6;11226:16;;;;;;;;;;;;;;;:25;;11252:1;11226:28;;;;;;;;;;;;;;;;;;:61;11223:319;;;11321:48;11336:32;11358:6;11366:1;11336:21;:32::i;:::-;11321:7;11329:1;11321:10;;;;;;;;;;;;;;;;;;:14;;:48;;;;:::i;:::-;11308:7;11316:1;11308:10;;;;;;;;;;;;;;;;;:61;;;;;11223:319;;;11434:14;11426:23;;;;;;;;11394:8;:16;11403:6;11394:16;;;;;;;;;;;;;;;:25;;11420:1;11394:28;;;;;;;;;;;;;;;;;;:55;;11391:151;;;11483:43;11498:27;11515:6;11523:1;11498:16;:27::i;:::-;11483:7;11491:1;11483:10;;;;;;;;;;;;;;;;;;:14;;:43;;;;:::i;:::-;11470:7;11478:1;11470:10;;;;;;;;;;;;;;;;;:56;;;;;11391:151;11223:319;11204:3;;;;;;;11147:406;;;11581:8;:16;11590:6;11581:16;;;;;;;;;;;;;;;:25;;11617:8;:16;11626:6;11617:16;;;;;;;;;;;;;;;:36;;11664:7;11682:8;:16;11691:6;11682:16;;;;;;;;;;;;;;;:26;;11719:8;:16;11728:6;11719:16;;;;;;;;;;;;;;;:24;;11573:171;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10927:825;;;;;;;;;:::o;6831:139::-;6905:7;6932:4;:12;6937:6;6932:12;;;;;;;;;;;;;;;:20;;:30;6953:8;6932:30;;;;;;;;;;;;;;;;6925:37;;6831:139;;;;:::o;976:192::-;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;1077:1;1057:22;;:8;:22;;;;1049:31;;;;;;;;1124:8;1096:37;;1117:5;;;;;;;;;;;1096:37;;;;;;;;;;;;1152:8;1144:5;;:16;;;;;;;;;;;;;;;;;;976:192;:::o;4640:176::-;4699:4;1282:10;1395;1295:5;1282:18;;1323:10;1314:19;;:5;;;;;;;;;;;:19;;;1311:166;;;1358:4;1350:12;;1311:166;;;1408:1;1395:14;;1441:24;1454:10;1441:12;:24::i;:::-;1424:41;;;;;;;;1311:166;1495:5;1487:14;;;;;;;;4745:5;4724:26;;:4;:12;4729:6;4724:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;:26;;;4716:35;;;;;;;;4782:4;4762;:12;4767:6;4762:12;;;;;;;;;;;;;;;:17;;;:24;;;;;;;;;;;;;;;;;;4804:4;4797:11;;4640:176;;;;;:::o;8785:272::-;8868:7;8897:8;:16;8906:6;8897:16;;;;;;;;;;;;;;;:24;;8922:6;8897:32;;;;;;;;;;;;;;;;;;8891:3;:38;8888:162;;;8953:8;:16;8962:6;8953:16;;;;;;;;;;;;;;;:36;;8990:6;8953:44;;;;;;;;;;;;;;;;;;8946:51;;;;8888:162;9037:1;9030:8;;8785:272;;;;;:::o;523:147::-;581:7;601:9;617:1;613;:5;601:17;;641:1;636;:6;;629:14;;;;;;661:1;654:8;;523:147;;;;;:::o;7992:785::-;8070:7;8090:15;8120:11;8189:12;8230:9;8108:1;8090:19;;8142:8;:16;8151:6;8142:16;;;;;;;;;;;;;;;:25;;8168:6;8142:33;;;;;;;;;;;;;;;;;;8120:56;;8204:11;8189:26;;8242:1;8230:13;;8226:358;8250:13;:18;8264:3;8250:18;;;;;;;;;;;:27;;:34;;;;8246:1;:38;8226:358;;;8315:13;:18;8329:3;8315:18;;;;;;;;;;;:27;;8343:1;8315:30;;;;;;;;;;;;;;;;;;8309:3;:36;8306:267;;;8402:4;8369:13;:18;8383:3;8369:18;;;;;;;;;;;:27;;8397:1;8369:30;;;;;;;;;;;;;;;;;;:37;8366:192;;;8438:13;:18;8452:3;8438:18;;;;;;;;;;;:27;;8466:1;8438:30;;;;;;;;;;;;;;;;;;8431:37;;8501:13;:18;8515:3;8501:18;;;;;;;;;;;:30;;8532:1;8501:33;;;;;;;;;;;;;;;;;;8491:43;;8366:192;8306:267;8286:3;;;;;;;8226:358;;;8618:1;8607:7;:12;8604:166;;;8642:1;8635:8;;;;8604:166;8683:75;8749:7;8683:53;8732:3;8683:8;:16;8692:6;8683:16;;;;;;;;;;;;;;;:36;;8720:6;8683:44;;;;;;;;;;;;;;;;;;:48;;:53;;;;:::i;:::-;:57;;:75;;;;:::i;:::-;8676:82;;7992:785;;;;;;;;;:::o;1640:260::-;1697:4;1703;1725:6;1734:1;1725:10;;1720:145;1742:8;:15;;;;1738:1;:19;1720:145;;;1798:3;1783:18;;:8;1792:1;1783:11;;;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1779:75;;;1830:4;1836:1;1822:16;;;;;;1779:75;1759:3;;;;;;;1720:145;;;1883:5;1890:1;1875:17;;;;;;;1640:260;;;;;:::o;12979:273::-;13086:4;13103:51;13123:5;13130:3;13135:6;13143:10;13103:19;:51::i;:::-;;13168:10;13165:80;;;13213:19;13226:5;13213:12;:19::i;:::-;13203:6;:29;;13195:38;;;;;;;;13165:80;12979:273;;;;;;:::o;394:123::-;452:7;484:1;479;:6;;472:14;;;;;;508:1;504;:5;497:12;;394:123;;;;:::o;7561:423::-;7689:3;7678:8;:14;7670:23;;;;;;;;7722:1;7713:6;:10;7705:19;;;;;;;;7736:8;:13;7745:3;7736:13;;;;;;;;;;;;;;;:22;;7772:9;7764:18;;;;;;;;7736:47;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;7736:47:0;;;;;;;;;;;;;;;;;;;;;;7794:8;:13;7803:3;7794:13;;;;;;;;;;;;;;;:33;;7833:6;7794:46;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;7794:46:0;;;;;;;;;;;;;;;;;;;;;;7851:8;:13;7860:3;7851:13;;;;;;;;;;;;;;;:23;;7880:3;7851:33;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;7851:33:0;;;;;;;;;;;;;;;;;;;;;;7895:8;:13;7904:3;7895:13;;;;;;;;;;;;;;;:21;;7922:8;7895:36;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;7895:36:0;;;;;;;;;;;;;;;;;;;;;;7954:3;7949:27;;;7959:6;7967:8;7949:27;;;;;;;;;;;;;;;;;;;;;;;;7561:423;;;;:::o;266:122::-;324:7;344:9;360:1;356;:5;;;;;;;;344:17;;379:1;372:8;;266:122;;;;;:::o;52:208::-;110:7;187:9;139:1;134;:6;130:47;;;164:1;157:8;;;;130:47;203:1;199;:5;187:17;;231:1;226;222;:5;;;;;;;;:10;215:18;;;;;;251:1;244:8;;52:208;;;;;;:::o;4196:436::-;4303:4;4343;4328:20;;:3;:20;;;;4320:29;;;;;;;;4383:1;4368:17;;:3;:17;;;;4360:26;;;;;;;;4428:6;4405:4;:11;4410:5;4405:11;;;;;;;;;;;;;;;:19;;;:29;;4397:38;;;;;;;;4449:10;4446:179;;;4504:5;4484:25;;:4;:11;4489:5;4484:11;;;;;;;;;;;;;;;:16;;;;;;;;;;;;:25;;;4476:34;;;;;;;;4551:5;4533:23;;:4;:9;4538:3;4533:9;;;;;;;;;;;;;;;:14;;;;;;;;;;;;:23;;;4525:32;;;;;;;;4606:5;4581:30;;:4;:16;4586:10;4581:16;;;;;;;;;;;;;;;:21;;;;;;;;;;;;:30;;;4573:39;;;;;;;;4446:179;4196:436;;;;;;:::o;12332:1618::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://b06ad886bf5cf8884af2f6356c4990ab901d48f49b2d3605b589e78612e91b40
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.