ETH Price: $3,100.21 (+2.47%)
Gas: 3 Gwei

Contract

0x33bB55835499B4013686E39de293Ee4d832BBCa4
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Transfer124759152021-05-21 5:47:101093 days ago1621576030IN
0x33bB5583...d832BBCa4
0 ETH0.0049215848
Transfer123267912021-04-28 4:34:261116 days ago1619584466IN
0x33bB5583...d832BBCa4
0 ETH0.0026843845
Transfer121453182021-03-31 5:40:571144 days ago1617169257IN
0x33bB5583...d832BBCa4
0 ETH0.00722018117
Transfer120614232021-03-18 8:00:001156 days ago1616054400IN
0x33bB5583...d832BBCa4
0 ETH0.01020256133
Transfer117245332021-01-25 11:19:321208 days ago1611573572IN
0x33bB5583...d832BBCa4
0 ETH0.004909564
Transfer116532232021-01-14 12:27:471219 days ago1610627267IN
0x33bB5583...d832BBCa4
0 ETH0.0027923567
Transfer116255242021-01-10 6:43:141224 days ago1610260994IN
0x33bB5583...d832BBCa4
0 ETH0.0027775345
Transfer113646882020-12-01 5:08:431264 days ago1606799323IN
0x33bB5583...d832BBCa4
0 ETH0.0027769945
Transfer113535762020-11-29 12:07:241265 days ago1606651644IN
0x33bB5583...d832BBCa4
0 ETH0.0009873716
Transfer113523082020-11-29 7:36:001265 days ago1606635360IN
0x33bB5583...d832BBCa4
0 ETH0.0009873716
Transfer113514482020-11-29 4:30:061266 days ago1606624206IN
0x33bB5583...d832BBCa4
0 ETH0.0026535743
Transfer113000092020-11-21 7:05:491273 days ago1605942349IN
0x33bB5583...d832BBCa4
0 ETH0.0019751332
Transfer111750842020-11-02 2:58:261293 days ago1604285906IN
0x33bB5583...d832BBCa4
0 ETH0.0008010330
Transfer111746392020-11-02 1:14:351293 days ago1604279675IN
0x33bB5583...d832BBCa4
0 ETH0.0032218642
Transfer111691402020-11-01 4:54:171294 days ago1604206457IN
0x33bB5583...d832BBCa4
0 ETH0.000963517
Transfer110645232020-10-16 3:41:091310 days ago1602819669IN
0x33bB5583...d832BBCa4
0 ETH0.0055026660
Transfer110519962020-10-14 5:48:321312 days ago1602654512IN
0x33bB5583...d832BBCa4
0 ETH0.0047598684
Transfer110395242020-10-12 7:51:251313 days ago1602489085IN
0x33bB5583...d832BBCa4
0 ETH0.0042498775
Transfer110340042020-10-11 11:37:021314 days ago1602416222IN
0x33bB5583...d832BBCa4
0 ETH0.0020981734
Transfer110157382020-10-08 15:33:031317 days ago1602171183IN
0x33bB5583...d832BBCa4
0 ETH0.0071352393
Transfer109557042020-09-29 6:09:391327 days ago1601359779IN
0x33bB5583...d832BBCa4
0 ETH0.0240895249
Transfer109556052020-09-29 5:47:021327 days ago1601358422IN
0x33bB5583...d832BBCa4
0 ETH0.0112781689
Transfer109105532020-09-22 5:56:131334 days ago1600754173IN
0x33bB5583...d832BBCa4
0 ETH0.0066940273
Transfer109056942020-09-21 12:14:501334 days ago1600690490IN
0x33bB5583...d832BBCa4
0 ETH0.018300
Transfer109056662020-09-21 12:10:131334 days ago1600690213IN
0x33bB5583...d832BBCa4
0 ETH0.01788298.00000123
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EvolutionnetwideCoin

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-04-22
*/

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 Pausable is Ownable {
    event Pause();
    event Unpause();

    bool public paused = false;

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

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

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

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

contract ERC20 {
    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;
    uint256 public decimals;
    uint256 public totalSupply;

    bool public restoreFinished = false;

    mapping(address => sUserInfo) user;

    event Mint(uint256 value);
    event Burn(uint256 value);
    event RestoreFinished();
    
    modifier canRestore() {
        require(!restoreFinished);
        _;
    }
    
    function () external payable {
        revert();
    }
    
    function validTransfer(address _from, address _to, uint256 _value, bool _lockCheck) internal {
        require(_to != address(this));
        require(_to != address(0));
        require(user[_from].balance >= _value);
        if(_lockCheck) {
            require(user[_from].lock == false);
        }
    }

    function lock(address _owner) public onlyOwner returns (bool) {
        require(user[_owner].lock == false);
        user[_owner].lock = true;
        return true;
    }
    function unlock(address _owner) public onlyOwner returns (bool) {
        require(user[_owner].lock == true);
        user[_owner].lock = false;
       return true;
    }
 
    function burn(address _to, uint256 _value) public onlyOwner returns (bool) {
        require(_value <= user[_to].balance);
        user[_to].balance = user[_to].balance.sub(_value);
        totalSupply = totalSupply.sub(_value);
        emit Burn(_value);
        return true;
    }
   
    function distribute(address _to, uint256 _value) public onlyOwner returns (bool) {
        validTransfer(msg.sender, _to, _value, false);
       
        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 approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
        require(_value > 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 transferRestore(address _from, address _to, uint256 _value) public onlyOwner canRestore returns (bool) {
        validTransfer(_from, _to, _value, false);
       
        user[_from].balance = user[_from].balance.sub(_value);
        user[_to].balance = user[_to].balance.add(_value);
       
        emit Transfer(_from, _to, _value);
        return true;
    }
    
    function finishRestore() public onlyOwner returns (bool) {
        restoreFinished = true;
        emit RestoreFinished();
        return true;
    }
    
    
    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 Ownable {
    
    enum eLockType {None, Individual, GroupA, GroupB, GroupC, GroupD, GroupE, GroupF, GroupG, GroupH, GroupI, GroupJ}
    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 {
        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].mul(uint256(percent)).div(100);
        }
    }

    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 clearLockUser(address _owner, uint _index) onlyOwner public {
        require(lockUser[_owner].endTime.length >_index);
        lockUser[_owner].endTime[_index] = 0;
    }
        
    function addLockDate(eLockType _lockType, uint256 _second, uint256 _percent) onlyOwner public {
        require(_percent > 0 && _percent <= 100);
        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) onlyOwner 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[] memory , uint256[] memory ) {
        uint256 key = uint256(_type);
        return (groupLockDate[key].lockTime, groupLockDate[key].lockPercent);
    }
    function lockUserInfo(address _owner) public view returns (uint256[] memory , uint256[] memory , uint256[] memory , uint256[] memory , uint256[] memory ) {
        
        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 EvolutionnetwideCoin is Token, LockBalance {

    constructor() public {
        name = "Evolution netwide";
        symbol = "ENC";
        decimals = 18;
        uint256 initialSupply = 8520000000;
        totalSupply = initialSupply * 10 ** uint(decimals);
        user[owner].balance = totalSupply;
        emit Transfer(address(0), owner, totalSupply);
    }

    function validTransfer(address _from, address _to, uint256 _value, bool _lockCheck) internal {
        super.validTransfer(_from, _to, _value, _lockCheck);
        if(_lockCheck) {
            require(_value <= useBalanceOf(_from));
        }
    }

    function setLockUsers(eLockType _type, address[] memory _to, uint256[] memory _value, uint256[] memory  _endTime) onlyOwner public {  
        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":"restoreFinished","outputs":[{"name":"","type":"bool"}],"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":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":"_owner","type":"address"}],"name":"unlock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferRestore","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":false,"inputs":[],"name":"finishRestore","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"_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":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_index","type":"uint256"}],"name":"clearLockUser","outputs":[],"payable":false,"stateMutability":"nonpayable","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"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"distribute","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":[{"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":"RestoreFinished","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"}]

608060405260008060146101000a81548160ff0219169083151502179055506000600560006101000a81548160ff0219169083151502179055503480156200004657600080fd5b506000336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280601181526020017f45766f6c7574696f6e206e65747769646500000000000000000000000000000081525060019080519060200190620000d69291906200023d565b506040805190810160405280600381526020017f454e43000000000000000000000000000000000000000000000000000000000081525060029080519060200190620001249291906200023d565b5060126003819055506401fbd4e2009050600354600a0a8102600481905550600454600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040518082815260200191505060405180910390a350620002ec565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028057805160ff1916838001178555620002b1565b82800160010185558215620002b1579182015b82811115620002b057825182559160200191906001019062000293565b5b509050620002c09190620002c4565b5090565b620002e991905b80821115620002e5576000816000905550600101620002cb565b5090565b90565b61374680620002fc6000396000f300608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063015d200f1461018557806305c7400a146101dc57806306fdde031461020b5780630789a3131461029b578063095ea7b3146102d557806318160ddd1461033a57806323b872dd146103655780632f6c493c146103ea578063313ce567146104455780633f4ba83a146104705780634149953d146104875780635c975abb1461050c57806369132d431461053b57806370a08231146105925780638456cb59146105e95780638da5cb5b146106005780638e2833341461065757806390e99b091461072457806394dbc70e1461075357806395d89b41146107ae5780639846d9de1461083e5780639a713d05146109375780639dc29fac1461097b578063a26a1bc9146109e0578063a9059cbb14610a2d578063ac1a717514610a92578063dd62ed3e14610c4a578063f2fde38b14610cc1578063f435f5a714610d04578063fb93210814610d5f575b600080fd5b34801561019157600080fd5b506101c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dc4565b6040518082815260200191505060405180910390f35b3480156101e857600080fd5b506101f1610f53565b604051808215151515815260200191505060405180910390f35b34801561021757600080fd5b50610220610f66565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610260578082015181840152602081019050610245565b50505050905090810190601f16801561028d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102a757600080fd5b506102d3600480360381019080803560ff16906020019092919080359060200190929190505050611004565b005b3480156102e157600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611219565b604051808215151515815260200191505060405180910390f35b34801561034657600080fd5b5061034f611338565b6040518082815260200191505060405180910390f35b34801561037157600080fd5b506103d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061133e565b604051808215151515815260200191505060405180910390f35b3480156103f657600080fd5b5061042b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116b1565b604051808215151515815260200191505060405180910390f35b34801561045157600080fd5b5061045a6117d4565b6040518082815260200191505060405180910390f35b34801561047c57600080fd5b506104856117da565b005b34801561049357600080fd5b506104f2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611898565b604051808215151515815260200191505060405180910390f35b34801561051857600080fd5b50610521611ac4565b604051808215151515815260200191505060405180910390f35b34801561054757600080fd5b5061057c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ad7565b6040518082815260200191505060405180910390f35b34801561059e57600080fd5b506105d3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b03565b6040518082815260200191505060405180910390f35b3480156105f557600080fd5b506105fe611b4f565b005b34801561060c57600080fd5b50610615611c0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561066357600080fd5b50610685600480360381019080803560ff169060200190929190505050611c34565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106cc5780820151818401526020810190506106b1565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561070e5780820151818401526020810190506106f3565b5050505090500194505050505060405180910390f35b34801561073057600080fd5b50610739611d21565b604051808215151515815260200191505060405180910390f35b34801561075f57600080fd5b50610794600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dcc565b604051808215151515815260200191505060405180910390f35b3480156107ba57600080fd5b506107c3611e25565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108035780820151818401526020810190506107e8565b50505050905090810190601f1680156108305780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084a57600080fd5b50610935600480360381019080803560ff169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611ec3565b005b34801561094357600080fd5b50610979600480360381019080803560ff169060200190929190803590602001909291908035906020019092919050505061202e565b005b34801561098757600080fd5b506109c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612186565b604051808215151515815260200191505060405180910390f35b3480156109ec57600080fd5b50610a2b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061232b565b005b348015610a3957600080fd5b50610a78600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061243c565b604051808215151515815260200191505060405180910390f35b348015610a9e57600080fd5b50610ad3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061260b565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019060200280838360005b83811015610b26578082015181840152602081019050610b0b565b5050505090500186810385528a818151815260200191508051906020019060200280838360005b83811015610b68578082015181840152602081019050610b4d565b50505050905001868103845289818151815260200191508051906020019060200280838360005b83811015610baa578082015181840152602081019050610b8f565b50505050905001868103835288818151815260200191508051906020019060200280838360005b83811015610bec578082015181840152602081019050610bd1565b50505050905001868103825287818151815260200191508051906020019060200280838360005b83811015610c2e578082015181840152602081019050610c13565b505050509050019a505050505050505050505060405180910390f35b348015610c5657600080fd5b50610cab600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ad2565b6040518082815260200191505060405180910390f35b348015610ccd57600080fd5b50610d02600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b5c565b005b348015610d1057600080fd5b50610d45600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cb1565b604051808215151515815260200191505060405180910390f35b348015610d6b57600080fd5b50610daa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612dd4565b604051808215151515815260200191505060405180910390f35b6000806000809150600090505b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050811015610f49576001600b811115610e2b57fe5b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515610e7a57fe5b90600052602060002001541415610eae57610ea7610e988583612fe3565b836130b290919063ffffffff16565b9150610f3c565b6000600b811115610ebb57fe5b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515610f0a57fe5b9060005260206000200154141515610f3b57610f38610f2985836130d0565b836130b290919063ffffffff16565b91505b5b8080600101915050610dd1565b8192505050919050565b600560009054906101000a900460ff1681565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ffc5780601f10610fd157610100808354040283529160200191610ffc565b820191906000526020600020905b815481529060010190602001808311610fdf57829003601f168201915b505050505081565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561106757600080fd5b6007600088600b81111561107757fe5b815260200190815260200160002094506000935060009250600091505b84600001805490508210156110df578585600001838154811015156110b557fe5b906000526020600020015414156110d257600193508192506110df565b8180600101925050611094565b831561120b578290505b600185600001805490500381101561118457846000016001820181548110151561110f57fe5b9060005260206000200154856000018281548110151561112b57fe5b9060005260206000200181905550846001016001820181548110151561114d57fe5b9060005260206000200154856001018281548110151561116957fe5b906000526020600020018190555080806001019150506110e9565b84600001600186600001805490500381548110151561119f57fe5b9060005260206000200160009055846000018054809190600190036111c491906136c9565b508460010160018660010180549050038154811015156111e057fe5b90600052602060002001600090558460010180548091906001900361120591906136c9565b50611210565b600080fd5b50505050505050565b60008060149054906101000a900460ff1615151561123657600080fd5b60008211151561124557600080fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60045481565b60008060149054906101000a900460ff1615151561135b57600080fd5b61136884848460016132dc565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156113f657600080fd5b61144b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506114e682600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546130b290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506115be82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461330c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561170e57600080fd5b60011515600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561177057600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555060019050919050565b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561183557600080fd5b600060149054906101000a900460ff16151561185057600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118f557600080fd5b600560009054906101000a900460ff1615151561191157600080fd5b61191e84848460006132dc565b61197382600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550611a0e82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546130b290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600060149054906101000a900460ff1681565b6000611afc611ae583610dc4565b611aee84611b03565b61330c90919063ffffffff16565b9050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611baa57600080fd5b600060149054906101000a900460ff16151515611bc657600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606080600083600b811115611c4557fe5b9050600760008281526020019081526020016000206000016007600083815260200190815260200160002060010181805480602002602001604051908101604052809291908181526020018280548015611cbe57602002820191906000526020600020905b815481526020019060010190808311611caa575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015611d1057602002820191906000526020600020905b815481526020019060010190808311611cfc575b505050505090509250925050915091565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d7e57600080fd5b6001600560006101000a81548160ff0219169083151502179055507f7187cbcbda53f626dba64b95bb4562770cbe3f2026eebce9d93b79a169f8460c60405160405180910390a16001905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ebb5780601f10611e9057610100808354040283529160200191611ebb565b820191906000526020600020905b815481529060010190602001808311611e9e57829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f2057600080fd5b60008451111515611f3057600080fd5b82518451141515611f4057600080fd5b81518451141515611f5057600080fd5b6000600b811115611f5d57fe5b85600b811115611f6957fe5b14151515611f7657600080fd5b600090505b835181101561202757611fa48482815181101515611f9557fe5b90602001906020020151611ad7565b8382815181101515611fb257fe5b9060200190602002015111151515611fc957600080fd5b61201a8482815181101515611fda57fe5b90602001906020020151868584815181101515611ff357fe5b90602001906020020151858581518110151561200b57fe5b90602001906020020151613325565b8080600101915050611f7b565b5050505050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561208e57600080fd5b60008411801561209f575060648411155b15156120aa57600080fd5b6007600087600b8111156120ba57fe5b8152602001908152602001600020925060009150600090505b8260000180549050811015612117578483600001828154811015156120f457fe5b9060005260206000200154141561210a57600080fd5b80806001019150506120d3565b811561212257600080fd5b8260000185908060018154018082558091505090600182039060005260206000200160009091929091909150555082600101849080600181540180825580915050906001820390600052602060002001600090919290919091505550505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121e357600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154821115151561223457600080fd5b61228982600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506122e48260045461330c90919063ffffffff16565b6004819055507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a16001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561238657600080fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301805490501115156123d957600080fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018281548110151561242a57fe5b90600052602060002001819055505050565b60008060149054906101000a900460ff1615151561245957600080fd5b61246633848460016132dc565b6124bb82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061255682600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546130b290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6060806060806060806000600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905060405190808252806020026020018201604052801561268a5781602001602082028038833980820191505090505b509150600090505b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905081101561286c576001600b8111156126ec57fe5b600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561273b57fe5b906000526020600020015414156127a05761277f6127598983612fe3565b838381518110151561276757fe5b906020019060200201516130b290919063ffffffff16565b828281518110151561278d57fe5b906020019060200201818152505061285f565b6000600b8111156127ad57fe5b600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001828154811015156127fc57fe5b906000526020600020015414151561285e5761284161281b89836130d0565b838381518110151561282957fe5b906020019060200201516130b290919063ffffffff16565b828281518110151561284f57fe5b90602001906020020181815250505b5b8080600101915050612692565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301848054806020026020016040519081016040528092919081815260200182805480156129c057602002820191906000526020600020905b8154815260200190600101908083116129ac575b5050505050945083805480602002602001604051908101604052809291908181526020018280548015612a1257602002820191906000526020600020905b8154815260200190600101908083116129fe575b5050505050935081805480602002602001604051908101604052809291908181526020018280548015612a6457602002820191906000526020600020905b815481526020019060010190808311612a50575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015612ab657602002820191906000526020600020905b815481526020019060010190808311612aa2575b5050505050905096509650965096509650505091939590929450565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bb757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612bf357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d0e57600080fd5b60001515600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161515141515612d7057600080fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555060019050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e3157600080fd5b612e3e33848460006132dc565b612e9382600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550612f2e82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546130b290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018281548110151561303457fe5b90600052602060002001544210156130a757600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018281548110151561309557fe5b906000526020600020015490506130ac565b600090505b92915050565b60008082840190508381101515156130c657fe5b8091505092915050565b6000806000806000809350600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018681548110151561312a57fe5b9060005260206000200154925064174876e7ff9150600090505b600760008481526020019081526020016000206000018054905081101561323e57600760008481526020019081526020016000206000018181548110151561318857fe5b9060005260206000200154421015613231578160076000858152602001908152602001600020600001828154811015156131be57fe5b906000526020600020015410156132305760076000848152602001908152602001600020600001818154811015156131f257fe5b90600052602060002001549150600760008481526020019081526020016000206001018181548110151561322257fe5b906000526020600020015493505b5b8080600101915050613144565b600084141561325057600094506132d2565b6132cf60646132c186600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a8154811015156132a857fe5b906000526020600020015461353c90919063ffffffff16565b61357790919063ffffffff16565b94505b5050505092915050565b6132e884848484613592565b8015613306576132f784611ad7565b821115151561330557600080fd5b5b50505050565b600082821115151561331a57fe5b818303905092915050565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000183600b81111561337357fe5b9080600181540180825580915050906001820390600052602060002001600090919290919091505550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101829080600181540180825580915050906001820390600052602060002001600090919290919091505550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201429080600181540180825580915050906001820390600052602060002001600090919290919091505550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190806001815401808255809150509060018203906000526020600020016000909192909190915055508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8383604051808381526020018281526020019250505060405180910390a250505050565b60008060008414156135515760009150613570565b828402905082848281151561356257fe5b0414151561356c57fe5b8091505b5092915050565b600080828481151561358557fe5b0490508091505092915050565b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156135cd57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561360957600080fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541015151561365a57600080fd5b80156136c35760001515600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff1615151415156136c257600080fd5b5b50505050565b8154818355818111156136f0578183600052602060002091820191016136ef91906136f5565b5b505050565b61371791905b808211156137135760008160009055506001016136fb565b5090565b905600a165627a7a72305820b8ad299ac093891632dea307ab9330d78ea5fc7c8071294ad023f5355f9735b40029

Deployed Bytecode

0x608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063015d200f1461018557806305c7400a146101dc57806306fdde031461020b5780630789a3131461029b578063095ea7b3146102d557806318160ddd1461033a57806323b872dd146103655780632f6c493c146103ea578063313ce567146104455780633f4ba83a146104705780634149953d146104875780635c975abb1461050c57806369132d431461053b57806370a08231146105925780638456cb59146105e95780638da5cb5b146106005780638e2833341461065757806390e99b091461072457806394dbc70e1461075357806395d89b41146107ae5780639846d9de1461083e5780639a713d05146109375780639dc29fac1461097b578063a26a1bc9146109e0578063a9059cbb14610a2d578063ac1a717514610a92578063dd62ed3e14610c4a578063f2fde38b14610cc1578063f435f5a714610d04578063fb93210814610d5f575b600080fd5b34801561019157600080fd5b506101c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dc4565b6040518082815260200191505060405180910390f35b3480156101e857600080fd5b506101f1610f53565b604051808215151515815260200191505060405180910390f35b34801561021757600080fd5b50610220610f66565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610260578082015181840152602081019050610245565b50505050905090810190601f16801561028d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102a757600080fd5b506102d3600480360381019080803560ff16906020019092919080359060200190929190505050611004565b005b3480156102e157600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611219565b604051808215151515815260200191505060405180910390f35b34801561034657600080fd5b5061034f611338565b6040518082815260200191505060405180910390f35b34801561037157600080fd5b506103d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061133e565b604051808215151515815260200191505060405180910390f35b3480156103f657600080fd5b5061042b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116b1565b604051808215151515815260200191505060405180910390f35b34801561045157600080fd5b5061045a6117d4565b6040518082815260200191505060405180910390f35b34801561047c57600080fd5b506104856117da565b005b34801561049357600080fd5b506104f2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611898565b604051808215151515815260200191505060405180910390f35b34801561051857600080fd5b50610521611ac4565b604051808215151515815260200191505060405180910390f35b34801561054757600080fd5b5061057c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ad7565b6040518082815260200191505060405180910390f35b34801561059e57600080fd5b506105d3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b03565b6040518082815260200191505060405180910390f35b3480156105f557600080fd5b506105fe611b4f565b005b34801561060c57600080fd5b50610615611c0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561066357600080fd5b50610685600480360381019080803560ff169060200190929190505050611c34565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106cc5780820151818401526020810190506106b1565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561070e5780820151818401526020810190506106f3565b5050505090500194505050505060405180910390f35b34801561073057600080fd5b50610739611d21565b604051808215151515815260200191505060405180910390f35b34801561075f57600080fd5b50610794600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dcc565b604051808215151515815260200191505060405180910390f35b3480156107ba57600080fd5b506107c3611e25565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108035780820151818401526020810190506107e8565b50505050905090810190601f1680156108305780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084a57600080fd5b50610935600480360381019080803560ff169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611ec3565b005b34801561094357600080fd5b50610979600480360381019080803560ff169060200190929190803590602001909291908035906020019092919050505061202e565b005b34801561098757600080fd5b506109c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612186565b604051808215151515815260200191505060405180910390f35b3480156109ec57600080fd5b50610a2b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061232b565b005b348015610a3957600080fd5b50610a78600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061243c565b604051808215151515815260200191505060405180910390f35b348015610a9e57600080fd5b50610ad3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061260b565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019060200280838360005b83811015610b26578082015181840152602081019050610b0b565b5050505090500186810385528a818151815260200191508051906020019060200280838360005b83811015610b68578082015181840152602081019050610b4d565b50505050905001868103845289818151815260200191508051906020019060200280838360005b83811015610baa578082015181840152602081019050610b8f565b50505050905001868103835288818151815260200191508051906020019060200280838360005b83811015610bec578082015181840152602081019050610bd1565b50505050905001868103825287818151815260200191508051906020019060200280838360005b83811015610c2e578082015181840152602081019050610c13565b505050509050019a505050505050505050505060405180910390f35b348015610c5657600080fd5b50610cab600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ad2565b6040518082815260200191505060405180910390f35b348015610ccd57600080fd5b50610d02600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b5c565b005b348015610d1057600080fd5b50610d45600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cb1565b604051808215151515815260200191505060405180910390f35b348015610d6b57600080fd5b50610daa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612dd4565b604051808215151515815260200191505060405180910390f35b6000806000809150600090505b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050811015610f49576001600b811115610e2b57fe5b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515610e7a57fe5b90600052602060002001541415610eae57610ea7610e988583612fe3565b836130b290919063ffffffff16565b9150610f3c565b6000600b811115610ebb57fe5b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515610f0a57fe5b9060005260206000200154141515610f3b57610f38610f2985836130d0565b836130b290919063ffffffff16565b91505b5b8080600101915050610dd1565b8192505050919050565b600560009054906101000a900460ff1681565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ffc5780601f10610fd157610100808354040283529160200191610ffc565b820191906000526020600020905b815481529060010190602001808311610fdf57829003601f168201915b505050505081565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561106757600080fd5b6007600088600b81111561107757fe5b815260200190815260200160002094506000935060009250600091505b84600001805490508210156110df578585600001838154811015156110b557fe5b906000526020600020015414156110d257600193508192506110df565b8180600101925050611094565b831561120b578290505b600185600001805490500381101561118457846000016001820181548110151561110f57fe5b9060005260206000200154856000018281548110151561112b57fe5b9060005260206000200181905550846001016001820181548110151561114d57fe5b9060005260206000200154856001018281548110151561116957fe5b906000526020600020018190555080806001019150506110e9565b84600001600186600001805490500381548110151561119f57fe5b9060005260206000200160009055846000018054809190600190036111c491906136c9565b508460010160018660010180549050038154811015156111e057fe5b90600052602060002001600090558460010180548091906001900361120591906136c9565b50611210565b600080fd5b50505050505050565b60008060149054906101000a900460ff1615151561123657600080fd5b60008211151561124557600080fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60045481565b60008060149054906101000a900460ff1615151561135b57600080fd5b61136884848460016132dc565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156113f657600080fd5b61144b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506114e682600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546130b290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506115be82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461330c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561170e57600080fd5b60011515600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561177057600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555060019050919050565b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561183557600080fd5b600060149054906101000a900460ff16151561185057600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118f557600080fd5b600560009054906101000a900460ff1615151561191157600080fd5b61191e84848460006132dc565b61197382600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550611a0e82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546130b290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600060149054906101000a900460ff1681565b6000611afc611ae583610dc4565b611aee84611b03565b61330c90919063ffffffff16565b9050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611baa57600080fd5b600060149054906101000a900460ff16151515611bc657600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606080600083600b811115611c4557fe5b9050600760008281526020019081526020016000206000016007600083815260200190815260200160002060010181805480602002602001604051908101604052809291908181526020018280548015611cbe57602002820191906000526020600020905b815481526020019060010190808311611caa575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015611d1057602002820191906000526020600020905b815481526020019060010190808311611cfc575b505050505090509250925050915091565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d7e57600080fd5b6001600560006101000a81548160ff0219169083151502179055507f7187cbcbda53f626dba64b95bb4562770cbe3f2026eebce9d93b79a169f8460c60405160405180910390a16001905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ebb5780601f10611e9057610100808354040283529160200191611ebb565b820191906000526020600020905b815481529060010190602001808311611e9e57829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f2057600080fd5b60008451111515611f3057600080fd5b82518451141515611f4057600080fd5b81518451141515611f5057600080fd5b6000600b811115611f5d57fe5b85600b811115611f6957fe5b14151515611f7657600080fd5b600090505b835181101561202757611fa48482815181101515611f9557fe5b90602001906020020151611ad7565b8382815181101515611fb257fe5b9060200190602002015111151515611fc957600080fd5b61201a8482815181101515611fda57fe5b90602001906020020151868584815181101515611ff357fe5b90602001906020020151858581518110151561200b57fe5b90602001906020020151613325565b8080600101915050611f7b565b5050505050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561208e57600080fd5b60008411801561209f575060648411155b15156120aa57600080fd5b6007600087600b8111156120ba57fe5b8152602001908152602001600020925060009150600090505b8260000180549050811015612117578483600001828154811015156120f457fe5b9060005260206000200154141561210a57600080fd5b80806001019150506120d3565b811561212257600080fd5b8260000185908060018154018082558091505090600182039060005260206000200160009091929091909150555082600101849080600181540180825580915050906001820390600052602060002001600090919290919091505550505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121e357600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154821115151561223457600080fd5b61228982600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506122e48260045461330c90919063ffffffff16565b6004819055507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a16001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561238657600080fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301805490501115156123d957600080fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018281548110151561242a57fe5b90600052602060002001819055505050565b60008060149054906101000a900460ff1615151561245957600080fd5b61246633848460016132dc565b6124bb82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061255682600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546130b290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6060806060806060806000600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905060405190808252806020026020018201604052801561268a5781602001602082028038833980820191505090505b509150600090505b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905081101561286c576001600b8111156126ec57fe5b600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561273b57fe5b906000526020600020015414156127a05761277f6127598983612fe3565b838381518110151561276757fe5b906020019060200201516130b290919063ffffffff16565b828281518110151561278d57fe5b906020019060200201818152505061285f565b6000600b8111156127ad57fe5b600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001828154811015156127fc57fe5b906000526020600020015414151561285e5761284161281b89836130d0565b838381518110151561282957fe5b906020019060200201516130b290919063ffffffff16565b828281518110151561284f57fe5b90602001906020020181815250505b5b8080600101915050612692565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301848054806020026020016040519081016040528092919081815260200182805480156129c057602002820191906000526020600020905b8154815260200190600101908083116129ac575b5050505050945083805480602002602001604051908101604052809291908181526020018280548015612a1257602002820191906000526020600020905b8154815260200190600101908083116129fe575b5050505050935081805480602002602001604051908101604052809291908181526020018280548015612a6457602002820191906000526020600020905b815481526020019060010190808311612a50575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015612ab657602002820191906000526020600020905b815481526020019060010190808311612aa2575b5050505050905096509650965096509650505091939590929450565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bb757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612bf357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d0e57600080fd5b60001515600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161515141515612d7057600080fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555060019050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e3157600080fd5b612e3e33848460006132dc565b612e9382600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550612f2e82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546130b290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018281548110151561303457fe5b90600052602060002001544210156130a757600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018281548110151561309557fe5b906000526020600020015490506130ac565b600090505b92915050565b60008082840190508381101515156130c657fe5b8091505092915050565b6000806000806000809350600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018681548110151561312a57fe5b9060005260206000200154925064174876e7ff9150600090505b600760008481526020019081526020016000206000018054905081101561323e57600760008481526020019081526020016000206000018181548110151561318857fe5b9060005260206000200154421015613231578160076000858152602001908152602001600020600001828154811015156131be57fe5b906000526020600020015410156132305760076000848152602001908152602001600020600001818154811015156131f257fe5b90600052602060002001549150600760008481526020019081526020016000206001018181548110151561322257fe5b906000526020600020015493505b5b8080600101915050613144565b600084141561325057600094506132d2565b6132cf60646132c186600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a8154811015156132a857fe5b906000526020600020015461353c90919063ffffffff16565b61357790919063ffffffff16565b94505b5050505092915050565b6132e884848484613592565b8015613306576132f784611ad7565b821115151561330557600080fd5b5b50505050565b600082821115151561331a57fe5b818303905092915050565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000183600b81111561337357fe5b9080600181540180825580915050906001820390600052602060002001600090919290919091505550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101829080600181540180825580915050906001820390600052602060002001600090919290919091505550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201429080600181540180825580915050906001820390600052602060002001600090919290919091505550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190806001815401808255809150509060018203906000526020600020016000909192909190915055508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8383604051808381526020018281526020019250505060405180910390a250505050565b60008060008414156135515760009150613570565b828402905082848281151561356257fe5b0414151561356c57fe5b8091505b5092915050565b600080828481151561358557fe5b0490508091505092915050565b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156135cd57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561360957600080fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541015151561365a57600080fd5b80156136c35760001515600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff1615151415156136c257600080fd5b5b50505050565b8154818355818111156136f0578183600052602060002091820191016136ef91906136f5565b5b505050565b61371791905b808211156137135760008160009055506001016136fb565b5090565b905600a165627a7a72305820b8ad299ac093891632dea307ab9330d78ea5fc7c8071294ad023f5355f9735b40029

Swarm Source

bzzr://b8ad299ac093891632dea307ab9330d78ea5fc7c8071294ad023f5355f9735b4

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.