ETH Price: $3,416.25 (-5.10%)
Gas: 27 Gwei

Contract

0xABC1c404424BDF24C19A5cC5EF8F47781D18Eb3E
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Set Monster Clas...98471622020-04-10 22:15:501438 days ago1586556950IN
Etheremon: Data
0 ETH0.000079772.3
Set Monster Clas...98471622020-04-10 22:15:501438 days ago1586556950IN
Etheremon: Data
0 ETH0.000035711.0300001
Set Monster Clas...98471622020-04-10 22:15:501438 days ago1586556950IN
Etheremon: Data
0 ETH0.000035191.01478731
Set Monster Clas...98471622020-04-10 22:15:501438 days ago1586556950IN
Etheremon: Data
0 ETH0.000034681
Set Monster Clas...98471622020-04-10 22:15:501438 days ago1586556950IN
Etheremon: Data
0 ETH0.000068991.98988838
Set Monster Clas...98471622020-04-10 22:15:501438 days ago1586556950IN
Etheremon: Data
0 ETH0.000041621.2
Set Monster Clas...98471622020-04-10 22:15:501438 days ago1586556950IN
Etheremon: Data
0 ETH0.000034671
Set Monster Clas...98443322020-04-10 11:48:291438 days ago1586519309IN
Etheremon: Data
0 ETH0.000041621.2
Set Monster Clas...98443322020-04-10 11:48:291438 days ago1586519309IN
Etheremon: Data
0 ETH0.000052021.5
Set Monster Clas...98443322020-04-10 11:48:291438 days ago1586519309IN
Etheremon: Data
0 ETH0.000041621.2
Set Monster Clas...98443322020-04-10 11:48:291438 days ago1586519309IN
Etheremon: Data
0 ETH0.000038131.1
Set Monster Clas...98421652020-04-10 3:35:301438 days ago1586489730IN
Etheremon: Data
0 ETH0.000052021.5
Set Monster Clas...98418932020-04-10 2:33:141438 days ago1586485994IN
Etheremon: Data
0 ETH0.000034681
Set Monster Clas...98412752020-04-10 0:29:451439 days ago1586478585IN
Etheremon: Data
0 ETH0.000053151.53249097
Change Owner95629752020-02-27 2:32:111481 days ago1582770731IN
Etheremon: Data
0 ETH0.0002915610
Add Moderator89240862019-11-13 3:10:391587 days ago1573614639IN
Etheremon: Data
0 ETH0.001226520
Add Moderator79600582019-06-15 0:47:501739 days ago1560559670IN
Etheremon: Data
0 ETH0.0024804141
Add Moderator71019372019-01-21 4:00:271883 days ago1548043227IN
Etheremon: Data
0 ETH0.000477368
Add Moderator65805152018-10-25 11:13:381971 days ago1540466018IN
Etheremon: Data
0 ETH0.0007649713
Add Moderator62686882018-09-04 5:53:592022 days ago1536040439IN
Etheremon: Data
0 ETH0.000232064
Remove Moderator62680542018-09-04 3:23:052022 days ago1536031385IN
Etheremon: Data
0 ETH0.000159944
Add Moderator62649412018-09-03 14:52:052023 days ago1535986325IN
Etheremon: Data
0 ETH0.000232064
Update Index Of ...62632232018-09-03 7:52:142023 days ago1535961134IN
Etheremon: Data
0 ETH0.000203287
Update Index Of ...62632192018-09-03 7:50:502023 days ago1535961050IN
Etheremon: Data
0 ETH0.000203287
Update Index Of ...62630172018-09-03 7:02:072023 days ago1535958127IN
Etheremon: Data
0 ETH0.000203287
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:
EtheremonData

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-12-17
*/

pragma solidity ^0.4.16;

// copyright [email protected]

contract SafeMath {

    /* function assert(bool assertion) internal { */
    /*   if (!assertion) { */
    /*     throw; */
    /*   } */
    /* }      // assert no longer needed once solidity is on 0.4.10 */

    function safeAdd(uint256 x, uint256 y) pure internal returns(uint256) {
      uint256 z = x + y;
      assert((z >= x) && (z >= y));
      return z;
    }

    function safeSubtract(uint256 x, uint256 y) pure internal returns(uint256) {
      assert(x >= y);
      uint256 z = x - y;
      return z;
    }

    function safeMult(uint256 x, uint256 y) pure internal returns(uint256) {
      uint256 z = x * y;
      assert((x == 0)||(z/x == y));
      return z;
    }

}

contract BasicAccessControl {
    address public owner;
    address[] public moderators;

    function BasicAccessControl() public {
        owner = msg.sender;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    modifier onlyModerators() {
        if (msg.sender != owner) {
            bool found = false;
            for (uint index = 0; index < moderators.length; index++) {
                if (moderators[index] == msg.sender) {
                    found = true;
                    break;
                }
            }
            require(found);
        }
        _;
    }

    function ChangeOwner(address _newOwner) onlyOwner public {
        if (_newOwner != address(0)) {
            owner = _newOwner;
        }
    }

    function Kill() onlyOwner public {
        selfdestruct(owner);
    }

    function AddModerator(address _newModerator) onlyOwner public {
        if (_newModerator != address(0)) {
            for (uint index = 0; index < moderators.length; index++) {
                if (moderators[index] == _newModerator) {
                    return;
                }
            }
            moderators.push(_newModerator);
        }
    }
    
    function RemoveModerator(address _oldModerator) onlyOwner public {
        uint foundIndex = 0;
        for (; foundIndex < moderators.length; foundIndex++) {
            if (moderators[foundIndex] == _oldModerator) {
                break;
            }
        }
        if (foundIndex < moderators.length) {
            moderators[foundIndex] = moderators[moderators.length-1];
            delete moderators[moderators.length-1];
            moderators.length--;
        }
    }
}


contract EtheremonEnum {

    enum ResultCode {
        SUCCESS,
        ERROR_CLASS_NOT_FOUND,
        ERROR_LOW_BALANCE,
        ERROR_SEND_FAIL,
        ERROR_NOT_TRAINER,
        ERROR_NOT_ENOUGH_MONEY,
        ERROR_INVALID_AMOUNT
    }
    
    enum ArrayType {
        CLASS_TYPE,
        STAT_STEP,
        STAT_START,
        STAT_BASE,
        OBJ_SKILL
    }
}

contract EtheremonDataBase is EtheremonEnum, BasicAccessControl, SafeMath {
    
    uint64 public totalMonster;
    uint32 public totalClass;
    
    // write
    function addElementToArrayType(ArrayType _type, uint64 _id, uint8 _value) onlyModerators public returns(uint);
    function updateIndexOfArrayType(ArrayType _type, uint64 _id, uint _index, uint8 _value) onlyModerators public returns(uint);
    function setMonsterClass(uint32 _classId, uint256 _price, uint256 _returnPrice, bool _catchable) onlyModerators public returns(uint32);
    function addMonsterObj(uint32 _classId, address _trainer, string _name) onlyModerators public returns(uint64);
    function setMonsterObj(uint64 _objId, string _name, uint32 _exp, uint32 _createIndex, uint32 _lastClaimIndex) onlyModerators public;
    function increaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public;
    function decreaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public;
    function removeMonsterIdMapping(address _trainer, uint64 _monsterId) onlyModerators public;
    function addMonsterIdMapping(address _trainer, uint64 _monsterId) onlyModerators public;
    function clearMonsterReturnBalance(uint64 _monsterId) onlyModerators public returns(uint256 amount);
    function collectAllReturnBalance(address _trainer) onlyModerators public returns(uint256 amount);
    function transferMonster(address _from, address _to, uint64 _monsterId) onlyModerators public returns(ResultCode);
    function addExtraBalance(address _trainer, uint256 _amount) onlyModerators public returns(uint256);
    function deductExtraBalance(address _trainer, uint256 _amount) onlyModerators public returns(uint256);
    function setExtraBalance(address _trainer, uint256 _amount) onlyModerators public;
    
    // read
    function getSizeArrayType(ArrayType _type, uint64 _id) constant public returns(uint);
    function getElementInArrayType(ArrayType _type, uint64 _id, uint _index) constant public returns(uint8);
    function getMonsterClass(uint32 _classId) constant public returns(uint32 classId, uint256 price, uint256 returnPrice, uint32 total, bool catchable);
    function getMonsterObj(uint64 _objId) constant public returns(uint64 objId, uint32 classId, address trainer, uint32 exp, uint32 createIndex, uint32 lastClaimIndex, uint createTime);
    function getMonsterName(uint64 _objId) constant public returns(string name);
    function getExtraBalance(address _trainer) constant public returns(uint256);
    function getMonsterDexSize(address _trainer) constant public returns(uint);
    function getMonsterObjId(address _trainer, uint index) constant public returns(uint64);
    function getExpectedBalance(address _trainer) constant public returns(uint256);
    function getMonsterReturn(uint64 _objId) constant public returns(uint256 current, uint256 total);
}

contract EtheremonData is EtheremonDataBase {

    struct MonsterClass {
        uint32 classId;
        uint8[] types;
        uint8[] statSteps;
        uint8[] statStarts;
        uint256 price;
        uint256 returnPrice;
        uint32 total;
        bool catchable;
    }
    
    struct MonsterObj {
        uint64 monsterId;
        uint32 classId;
        address trainer;
        string name;
        uint32 exp;
        uint8[] statBases;
        uint8[] skills;
        uint32 createIndex;
        uint32 lastClaimIndex;
        uint createTime;
    }

    mapping(uint32 => MonsterClass) public monsterClass;
    mapping(uint64 => MonsterObj) public monsterWorld;
    mapping(address => uint64[]) public trainerDex;
    mapping(address => uint256) public trainerExtraBalance;
    
    
    // write access
    function withdrawEther(address _sendTo, uint _amount) onlyOwner public returns(ResultCode) {
        if (_amount > this.balance) {
            return ResultCode.ERROR_INVALID_AMOUNT;
        }
        
        _sendTo.transfer(_amount);
        return ResultCode.SUCCESS;
    }
    
    function addElementToArrayType(ArrayType _type, uint64 _id, uint8 _value) onlyModerators public returns(uint) {
        uint8[] storage array = monsterWorld[_id].statBases;
        if (_type == ArrayType.CLASS_TYPE) {
            array = monsterClass[uint32(_id)].types;
        } else if (_type == ArrayType.STAT_STEP) {
            array = monsterClass[uint32(_id)].statSteps;
        } else if (_type == ArrayType.STAT_START) {
            array = monsterClass[uint32(_id)].statStarts;
        } else if (_type == ArrayType.OBJ_SKILL) {
            array = monsterWorld[_id].skills;
        }
        array.push(_value);
        return array.length;
    }
    
    function updateIndexOfArrayType(ArrayType _type, uint64 _id, uint _index, uint8 _value) onlyModerators public returns(uint) {
        uint8[] storage array = monsterWorld[_id].statBases;
        if (_type == ArrayType.CLASS_TYPE) {
            array = monsterClass[uint32(_id)].types;
        } else if (_type == ArrayType.STAT_STEP) {
            array = monsterClass[uint32(_id)].statSteps;
        } else if (_type == ArrayType.STAT_START) {
            array = monsterClass[uint32(_id)].statStarts;
        } else if (_type == ArrayType.OBJ_SKILL) {
            array = monsterWorld[_id].skills;
        }
        if (_index < array.length) {
            if (_value == 255) {
                // consider as delete
                for(uint i = _index; i < array.length - 1; i++) {
                    array[i] = array[i+1];
                }
                delete array[array.length-1];
                array.length--;
            } else {
                array[_index] = _value;
            }
        }
    }
    
    function setMonsterClass(uint32 _classId, uint256 _price, uint256 _returnPrice, bool _catchable) onlyModerators public returns(uint32) {
        MonsterClass storage class = monsterClass[_classId];
        if (class.classId == 0) {
            totalClass += 1;
        }
        class.classId = _classId;
        class.price = _price;
        class.returnPrice = _returnPrice;
        class.catchable = _catchable;
        return totalClass;
    }
    
    function addMonsterObj(uint32 _classId, address _trainer, string _name) onlyModerators public returns(uint64) {
        MonsterClass storage class = monsterClass[_classId];
        if (class.classId == 0)
            return 0;
                
        // construct new monster
        totalMonster += 1;
        class.total += 1;

        MonsterObj storage obj = monsterWorld[totalMonster];
        obj.monsterId = totalMonster;
        obj.classId = _classId;
        obj.trainer = _trainer;
        obj.name = _name;
        obj.exp = 1;
        obj.createIndex = class.total;
        obj.lastClaimIndex = class.total;
        obj.createTime = now;

        // add to monsterdex
        addMonsterIdMapping(_trainer, obj.monsterId);
        return obj.monsterId;
    }
    
    function setMonsterObj(uint64 _objId, string _name, uint32 _exp, uint32 _createIndex, uint32 _lastClaimIndex) onlyModerators public {
        MonsterObj storage obj = monsterWorld[_objId];
        if (obj.monsterId == _objId) {
            obj.name = _name;
            obj.exp = _exp;
            obj.createIndex = _createIndex;
            obj.lastClaimIndex = _lastClaimIndex;
        }
    }

    function increaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public {
        MonsterObj storage obj = monsterWorld[_objId];
        if (obj.monsterId == _objId) {
            obj.exp = uint32(safeAdd(obj.exp, amount));
        }
    }

    function decreaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public {
        MonsterObj storage obj = monsterWorld[_objId];
        if (obj.monsterId == _objId) {
            obj.exp = uint32(safeSubtract(obj.exp, amount));
        }
    }

    function removeMonsterIdMapping(address _trainer, uint64 _monsterId) onlyModerators public {
        uint foundIndex = 0;
        uint64[] storage objIdList = trainerDex[_trainer];
        for (; foundIndex < objIdList.length; foundIndex++) {
            if (objIdList[foundIndex] == _monsterId) {
                break;
            }
        }
        if (foundIndex < objIdList.length) {
            objIdList[foundIndex] = objIdList[objIdList.length-1];
            delete objIdList[objIdList.length-1];
            objIdList.length--;
            MonsterObj storage monster = monsterWorld[_monsterId];
            monster.trainer = 0;
        }
    }
    
    function addMonsterIdMapping(address _trainer, uint64 _monsterId) onlyModerators public {
        if (_trainer != address(0) && _monsterId > 0) {
            uint64[] storage objIdList = trainerDex[_trainer];
            for (uint i = 0; i < objIdList.length; i++) {
                if (objIdList[i] == _monsterId) {
                    return;
                }
            }
            objIdList.push(_monsterId);
            MonsterObj storage monster = monsterWorld[_monsterId];
            monster.trainer = _trainer;
        }
    }
    
    function clearMonsterReturnBalance(uint64 _monsterId) onlyModerators public returns(uint256) {
        MonsterObj storage monster = monsterWorld[_monsterId];
        MonsterClass storage class = monsterClass[monster.classId];
        if (monster.monsterId == 0 || class.classId == 0)
            return 0;
        uint256 amount = 0;
        uint32 gap = uint32(safeSubtract(class.total, monster.lastClaimIndex));
        if (gap > 0) {
            monster.lastClaimIndex = class.total;
            amount = safeMult(gap, class.returnPrice);
            trainerExtraBalance[monster.trainer] = safeAdd(trainerExtraBalance[monster.trainer], amount);
        }
        return amount;
    }
    
    function collectAllReturnBalance(address _trainer) onlyModerators public returns(uint256 amount) {
        uint64[] storage objIdList = trainerDex[_trainer];
        for (uint i = 0; i < objIdList.length; i++) {
            clearMonsterReturnBalance(objIdList[i]);
        }
        return trainerExtraBalance[_trainer];
    }
    
    function transferMonster(address _from, address _to, uint64 _monsterId) onlyModerators public returns(ResultCode) {
        MonsterObj storage monster = monsterWorld[_monsterId];
        if (monster.trainer != _from) {
            return ResultCode.ERROR_NOT_TRAINER;
        }
        
        clearMonsterReturnBalance(_monsterId);
        
        removeMonsterIdMapping(_from, _monsterId);
        addMonsterIdMapping(_to, _monsterId);
        return ResultCode.SUCCESS;
    }
    
    function addExtraBalance(address _trainer, uint256 _amount) onlyModerators public returns(uint256) {
        trainerExtraBalance[_trainer] = safeAdd(trainerExtraBalance[_trainer], _amount);
        return trainerExtraBalance[_trainer];
    }
    
    function deductExtraBalance(address _trainer, uint256 _amount) onlyModerators public returns(uint256) {
        trainerExtraBalance[_trainer] = safeSubtract(trainerExtraBalance[_trainer], _amount);
        return trainerExtraBalance[_trainer];
    }
    
    function setExtraBalance(address _trainer, uint256 _amount) onlyModerators public {
        trainerExtraBalance[_trainer] = _amount;
    }
    
    
    // public
    function () payable public {
        addExtraBalance(msg.sender, msg.value);
    }

    // read access
    function getSizeArrayType(ArrayType _type, uint64 _id) constant public returns(uint) {
        uint8[] storage array = monsterWorld[_id].statBases;
        if (_type == ArrayType.CLASS_TYPE) {
            array = monsterClass[uint32(_id)].types;
        } else if (_type == ArrayType.STAT_STEP) {
            array = monsterClass[uint32(_id)].statSteps;
        } else if (_type == ArrayType.STAT_START) {
            array = monsterClass[uint32(_id)].statStarts;
        } else if (_type == ArrayType.OBJ_SKILL) {
            array = monsterWorld[_id].skills;
        }
        return array.length;
    }
    
    function getElementInArrayType(ArrayType _type, uint64 _id, uint _index) constant public returns(uint8) {
        uint8[] storage array = monsterWorld[_id].statBases;
        if (_type == ArrayType.CLASS_TYPE) {
            array = monsterClass[uint32(_id)].types;
        } else if (_type == ArrayType.STAT_STEP) {
            array = monsterClass[uint32(_id)].statSteps;
        } else if (_type == ArrayType.STAT_START) {
            array = monsterClass[uint32(_id)].statStarts;
        } else if (_type == ArrayType.OBJ_SKILL) {
            array = monsterWorld[_id].skills;
        }
        if (_index >= array.length)
            return 0;
        return array[_index];
    }
    
    
    function getMonsterClass(uint32 _classId) constant public returns(uint32 classId, uint256 price, uint256 returnPrice, uint32 total, bool catchable) {
        MonsterClass storage class = monsterClass[_classId];
        classId = class.classId;
        price = class.price;
        returnPrice = class.returnPrice;
        total = class.total;
        catchable = class.catchable;
    }
    
    function getMonsterObj(uint64 _objId) constant public returns(uint64 objId, uint32 classId, address trainer, uint32 exp, uint32 createIndex, uint32 lastClaimIndex, uint createTime) {
        MonsterObj storage monster = monsterWorld[_objId];
        objId = monster.monsterId;
        classId = monster.classId;
        trainer = monster.trainer;
        exp = monster.exp;
        createIndex = monster.createIndex;
        lastClaimIndex = monster.lastClaimIndex;
        createTime = monster.createTime;
    }
    
    function getMonsterName(uint64 _objId) constant public returns(string name) {
        return monsterWorld[_objId].name;
    }

    function getExtraBalance(address _trainer) constant public returns(uint256) {
        return trainerExtraBalance[_trainer];
    }
    
    function getMonsterDexSize(address _trainer) constant public returns(uint) {
        return trainerDex[_trainer].length;
    }
    
    function getMonsterObjId(address _trainer, uint index) constant public returns(uint64) {
        if (index >= trainerDex[_trainer].length)
            return 0;
        return trainerDex[_trainer][index];
    }
    
    function getExpectedBalance(address _trainer) constant public returns(uint256) {
        uint64[] storage objIdList = trainerDex[_trainer];
        uint256 monsterBalance = 0;
        for (uint i = 0; i < objIdList.length; i++) {
            MonsterObj memory monster = monsterWorld[objIdList[i]];
            MonsterClass storage class = monsterClass[monster.classId];
            uint32 gap = uint32(safeSubtract(class.total, monster.lastClaimIndex));
            monsterBalance += safeMult(gap, class.returnPrice);
        }
        return monsterBalance;
    }
    
    function getMonsterReturn(uint64 _objId) constant public returns(uint256 current, uint256 total) {
        MonsterObj memory monster = monsterWorld[_objId];
        MonsterClass storage class = monsterClass[monster.classId];
        uint32 totalGap = uint32(safeSubtract(class.total, monster.createIndex));
        uint32 currentGap = uint32(safeSubtract(class.total, monster.lastClaimIndex));
        return (safeMult(currentGap, class.returnPrice), safeMult(totalGap, class.returnPrice));
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"monsterClass","outputs":[{"name":"classId","type":"uint32"},{"name":"price","type":"uint256"},{"name":"returnPrice","type":"uint256"},{"name":"total","type":"uint32"},{"name":"catchable","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getMonsterObj","outputs":[{"name":"objId","type":"uint64"},{"name":"classId","type":"uint32"},{"name":"trainer","type":"address"},{"name":"exp","type":"uint32"},{"name":"createIndex","type":"uint32"},{"name":"lastClaimIndex","type":"uint32"},{"name":"createTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getMonsterName","outputs":[{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_type","type":"uint8"},{"name":"_id","type":"uint64"},{"name":"_value","type":"uint8"}],"name":"addElementToArrayType","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"},{"name":"amount","type":"uint32"}],"name":"decreaseMonsterExp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_type","type":"uint8"},{"name":"_id","type":"uint64"},{"name":"_index","type":"uint256"},{"name":"_value","type":"uint8"}],"name":"updateIndexOfArrayType","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"},{"name":"_name","type":"string"},{"name":"_exp","type":"uint32"},{"name":"_createIndex","type":"uint32"},{"name":"_lastClaimIndex","type":"uint32"}],"name":"setMonsterObj","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"trainerDex","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_type","type":"uint8"},{"name":"_id","type":"uint64"}],"name":"getSizeArrayType","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_trainer","type":"address"}],"name":"getMonsterDexSize","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_trainer","type":"address"},{"name":"_amount","type":"uint256"}],"name":"deductExtraBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_sendTo","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawEther","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"},{"name":"amount","type":"uint32"}],"name":"increaseMonsterExp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_trainer","type":"address"},{"name":"_monsterId","type":"uint64"}],"name":"removeMonsterIdMapping","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_type","type":"uint8"},{"name":"_id","type":"uint64"},{"name":"_index","type":"uint256"}],"name":"getElementInArrayType","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_trainer","type":"address"}],"name":"collectAllReturnBalance","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newModerator","type":"address"}],"name":"AddModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_trainer","type":"address"},{"name":"index","type":"uint256"}],"name":"getMonsterObjId","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalMonster","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint64"}],"name":"monsterWorld","outputs":[{"name":"monsterId","type":"uint64"},{"name":"classId","type":"uint32"},{"name":"trainer","type":"address"},{"name":"name","type":"string"},{"name":"exp","type":"uint32"},{"name":"createIndex","type":"uint32"},{"name":"lastClaimIndex","type":"uint32"},{"name":"createTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_monsterId","type":"uint64"}],"name":"transferMonster","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalClass","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_trainer","type":"address"},{"name":"_amount","type":"uint256"}],"name":"addExtraBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_trainer","type":"address"},{"name":"_monsterId","type":"uint64"}],"name":"addMonsterIdMapping","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_classId","type":"uint32"}],"name":"getMonsterClass","outputs":[{"name":"classId","type":"uint32"},{"name":"price","type":"uint256"},{"name":"returnPrice","type":"uint256"},{"name":"total","type":"uint32"},{"name":"catchable","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_monsterId","type":"uint64"}],"name":"clearMonsterReturnBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_trainer","type":"address"},{"name":"_amount","type":"uint256"}],"name":"setExtraBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_oldModerator","type":"address"}],"name":"RemoveModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"moderators","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"Kill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_trainer","type":"address"}],"name":"getExtraBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_classId","type":"uint32"},{"name":"_price","type":"uint256"},{"name":"_returnPrice","type":"uint256"},{"name":"_catchable","type":"bool"}],"name":"setMonsterClass","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_trainer","type":"address"}],"name":"getExpectedBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"trainerExtraBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"ChangeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getMonsterReturn","outputs":[{"name":"current","type":"uint256"},{"name":"total","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_classId","type":"uint32"},{"name":"_trainer","type":"address"},{"name":"_name","type":"string"}],"name":"addMonsterObj","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"}]

6060604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614ce7806100536000396000f3006060604052600436106101d8576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303966a32146101e5578063072024601461025a5780630d25b6f21461033557806326bda739146103db57806331afa55f14610434578063321d2a4f1461047057806332666a31146104d257806340423f601461056f57806341b0eb53146105d957806347c17bac146106265780634ca92e0814610673578063522f6815146106c95780635643a7111461072d57806360c6ccb21461076957806362b21ad7146107b557806369666811146108115780636c81fd6d1461085e57806375fe2e33146108975780637a09defe146109015780637fc670291461093e578063809d9a9414610aa257806384ba745e14610b2f57806389b2050b14610b645780638da5cb5b14610bba5780639248019e14610c0f5780639d29cac414610c5b578063b0c6d7df14610cd0578063b55cdbf914610d11578063b85d627514610d53578063bd842a1114610d8c578063be26733c14610def578063c782fc6014610e04578063c8ff80a114610e51578063c953783814610eb7578063d2e0cbd114610f04578063f285329214610f51578063f4029e9214610f8a578063fc4d20f514610fd2575b6101e23334611085565b50005b34156101f057600080fd5b61020c600480803563ffffffff1690602001909190505061125d565b604051808663ffffffff1663ffffffff1681526020018581526020018481526020018363ffffffff1663ffffffff168152602001821515151581526020019550505050505060405180910390f35b341561026557600080fd5b610285600480803567ffffffffffffffff169060200190919050506112c0565b604051808867ffffffffffffffff1667ffffffffffffffff1681526020018763ffffffff1663ffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018363ffffffff1663ffffffff16815260200182815260200197505050505050505060405180910390f35b341561034057600080fd5b610360600480803567ffffffffffffffff169060200190919050506113a6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103a0578082015181840152602081019050610385565b50505050905090810190601f1680156103cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103e657600080fd5b61041e600480803560ff1690602001909190803567ffffffffffffffff1690602001909190803560ff16906020019091905050611478565b6040518082815260200191505060405180910390f35b341561043f57600080fd5b61046e600480803567ffffffffffffffff1690602001909190803563ffffffff16906020019091905050611721565b005b341561047b57600080fd5b6104bc600480803560ff1690602001909190803567ffffffffffffffff1690602001909190803590602001909190803560ff169060200190919050506118d4565b6040518082815260200191505060405180910390f35b34156104dd57600080fd5b61056d600480803567ffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803563ffffffff1690602001909190803563ffffffff1690602001909190803563ffffffff16906020019091905050611c64565b005b341561057a57600080fd5b6105af600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611e50565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b34156105e457600080fd5b610610600480803560ff1690602001909190803567ffffffffffffffff16906020019091905050611e9c565b6040518082815260200191505060405180910390f35b341561063157600080fd5b61065d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611fff565b6040518082815260200191505060405180910390f35b341561067e57600080fd5b6106b3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061204b565b6040518082815260200191505060405180910390f35b34156106d457600080fd5b610709600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612223565b6040518082600681111561071957fe5b60ff16815260200191505060405180910390f35b341561073857600080fd5b610767600480803567ffffffffffffffff1690602001909190803563ffffffff169060200190919050506122f3565b005b341561077457600080fd5b6107b3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803567ffffffffffffffff169060200190919050506124a6565b005b34156107c057600080fd5b6107f5600480803560ff1690602001909190803567ffffffffffffffff169060200190919080359060200190919050506127c3565b604051808260ff1660ff16815260200191505060405180910390f35b341561081c57600080fd5b610848600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612967565b6040518082815260200191505060405180910390f35b341561086957600080fd5b610895600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612b57565b005b34156108a257600080fd5b6108d7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612ce5565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561090c57600080fd5b610914612dba565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561094957600080fd5b610969600480803567ffffffffffffffff16906020019091905050612dd4565b604051808967ffffffffffffffff1667ffffffffffffffff1681526020018863ffffffff1663ffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff168152602001838152602001828103825287818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610a8c5780601f10610a6157610100808354040283529160200191610a8c565b820191906000526020600020905b815481529060010190602001808311610a6f57829003601f168201915b5050995050505050505050505060405180910390f35b3415610aad57600080fd5b610b0b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803567ffffffffffffffff16906020019091905050612e8f565b60405180826006811115610b1b57fe5b60ff16815260200191505060405180910390f35b3415610b3a57600080fd5b610b4261304a565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3415610b6f57600080fd5b610ba4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611085565b6040518082815260200191505060405180910390f35b3415610bc557600080fd5b610bcd613060565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610c1a57600080fd5b610c59600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803567ffffffffffffffff16906020019091905050613085565b005b3415610c6657600080fd5b610c82600480803563ffffffff16906020019091905050613358565b604051808663ffffffff1663ffffffff1681526020018581526020018481526020018363ffffffff1663ffffffff168152602001821515151581526020019550505050505060405180910390f35b3415610cdb57600080fd5b610cfb600480803567ffffffffffffffff169060200190919050506133dc565b6040518082815260200191505060405180910390f35b3415610d1c57600080fd5b610d51600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061371f565b005b3415610d5e57600080fd5b610d8a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613869565b005b3415610d9757600080fd5b610dad6004808035906020019091905050613a5c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610dfa57600080fd5b610e02613a9b565b005b3415610e0f57600080fd5b610e3b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613b30565b6040518082815260200191505060405180910390f35b3415610e5c57600080fd5b610e95600480803563ffffffff169060200190919080359060200190919080359060200190919080351515906020019091905050613b79565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3415610ec257600080fd5b610eee600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613d69565b6040518082815260200191505060405180910390f35b3415610f0f57600080fd5b610f3b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061418e565b6040518082815260200191505060405180910390f35b3415610f5c57600080fd5b610f88600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506141a6565b005b3415610f9557600080fd5b610fb5600480803567ffffffffffffffff1690602001909190505061427b565b604051808381526020018281526020019250505060405180910390f35b3415610fdd57600080fd5b61105b600480803563ffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050614644565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111875760009150600090505b60018054905081101561117a573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561111c57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561116d576001915061117a565b80806001019150506110e9565b81151561118657600080fd5b5b6111d0600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856149f5565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250505092915050565b60036020528060005260406000206000915090508060000160009054906101000a900463ffffffff16908060040154908060050154908060060160009054906101000a900463ffffffff16908060060160049054906101000a900460ff16905085565b600080600080600080600080600460008a67ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002090508060000160009054906101000a900467ffffffffffffffff1697508060000160089054906101000a900463ffffffff16965080600001600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1695508060020160009054906101000a900463ffffffff1694508060050160009054906101000a900463ffffffff1693508060050160049054906101000a900463ffffffff1692508060060154915050919395979092949650565b6113ae614a70565b600460008367ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561146c5780601f106114415761010080835404028352916020019161146c565b820191906000526020600020905b81548152906001019060200180831161144f57829003601f168201915b50505050509050919050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157b5760009150600090505b60018054905081101561156e573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561151057fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611561576001915061156e565b80806001019150506114dd565b81151561157a57600080fd5b5b600460008767ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206003019250600060048111156115b457fe5b8760048111156115c057fe5b14156115ef57600360008763ffffffff1663ffffffff16815260200190815260200160002060010192506116cd565b600160048111156115fc57fe5b87600481111561160857fe5b141561163757600360008763ffffffff1663ffffffff16815260200190815260200160002060020192506116cc565b6002600481111561164457fe5b87600481111561165057fe5b141561167f57600360008763ffffffff1663ffffffff16815260200190815260200160002060030192506116cb565b60048081111561168b57fe5b87600481111561169757fe5b14156116ca57600460008767ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060040192505b5b5b5b8280548060010182816116e09190614a84565b916000526020600020906020918282040191900687909190916101000a81548160ff021916908360ff16021790555050828054905093505050509392505050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118235760009150600090505b600180549050811015611816573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156117b857fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156118095760019150611816565b8080600101915050611785565b81151561182257600080fd5b5b600460008667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002092508467ffffffffffffffff168360000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1614156118cd576118aa8360020160009054906101000a900463ffffffff1663ffffffff168563ffffffff16614a1f565b8360020160006101000a81548163ffffffff021916908363ffffffff1602179055505b5050505050565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119d95760009150600090505b6001805490508110156119cc573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561196e57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156119bf57600191506119cc565b808060010191505061193b565b8115156119d857600080fd5b5b600460008967ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020600301935060006004811115611a1257fe5b896004811115611a1e57fe5b1415611a4d57600360008963ffffffff1663ffffffff1681526020019081526020016000206001019350611b2b565b60016004811115611a5a57fe5b896004811115611a6657fe5b1415611a9557600360008963ffffffff1663ffffffff1681526020019081526020016000206002019350611b2a565b60026004811115611aa257fe5b896004811115611aae57fe5b1415611add57600360008963ffffffff1663ffffffff1681526020019081526020016000206003019350611b29565b600480811115611ae957fe5b896004811115611af557fe5b1415611b2857600460008967ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060040193505b5b5b5b8380549050871015611c585760ff8660ff161415611c1d578692505b6001848054905003831015611bcc578360018401815481101515611b6757fe5b90600052602060002090602091828204019190069054906101000a900460ff168484815481101515611b9557fe5b90600052602060002090602091828204019190066101000a81548160ff021916908360ff1602179055508280600101935050611b47565b836001858054905003815481101515611be157fe5b90600052602060002090602091828204019190066101000a81549060ff021916905583805480919060019003611c179190614a84565b50611c57565b858488815481101515611c2c57fe5b90600052602060002090602091828204019190066101000a81548160ff021916908360ff1602179055505b5b50505050949350505050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d665760009150600090505b600180549050811015611d59573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611cfb57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d4c5760019150611d59565b8080600101915050611cc8565b811515611d6557600080fd5b5b600460008967ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002092508767ffffffffffffffff168360000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff161415611e465786836001019080519060200190611ddb929190614abe565b50858360020160006101000a81548163ffffffff021916908363ffffffff160217905550848360050160006101000a81548163ffffffff021916908363ffffffff160217905550838360050160046101000a81548163ffffffff021916908363ffffffff1602179055505b5050505050505050565b600560205281600052604060002081815481101515611e6b57fe5b9060005260206000209060049182820401919006600802915091509054906101000a900467ffffffffffffffff1681565b600080600460008467ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020600301905060006004811115611ed857fe5b846004811115611ee457fe5b1415611f1357600360008463ffffffff1663ffffffff1681526020019081526020016000206001019050611ff1565b60016004811115611f2057fe5b846004811115611f2c57fe5b1415611f5b57600360008463ffffffff1663ffffffff1681526020019081526020016000206002019050611ff0565b60026004811115611f6857fe5b846004811115611f7457fe5b1415611fa357600360008463ffffffff1663ffffffff1681526020019081526020016000206003019050611fef565b600480811115611faf57fe5b846004811115611fbb57fe5b1415611fee57600460008467ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060040190505b5b5b5b808054905091505092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561214d5760009150600090505b600180549050811015612140573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156120e257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156121335760019150612140565b80806001019150506120af565b81151561214c57600080fd5b5b612196600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485614a1f565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561228057600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318211156122a857600690506122ed565b8273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015156122e857600080fd5b600090505b92915050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123f55760009150600090505b6001805490508110156123e8573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561238a57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123db57600191506123e8565b8080600101915050612357565b8115156123f457600080fd5b5b600460008667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002092508467ffffffffffffffff168360000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16141561249f5761247c8360020160009054906101000a900463ffffffff1663ffffffff168563ffffffff166149f5565b8360020160006101000a81548163ffffffff021916908363ffffffff1602179055505b5050505050565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125ab5760009150600090505b60018054905081101561259e573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561254057fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612591576001915061259e565b808060010191505061250d565b8115156125aa57600080fd5b5b60009450600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002093505b8380549050851015612662578567ffffffffffffffff16848681548110151561261657fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1667ffffffffffffffff16141561265557612662565b84806001019550506125f1565b83805490508510156127ba5783600185805490500381548110151561268357fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1684868154811015156126bb57fe5b90600052602060002090600491828204019190066008026101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083600185805490500381548110151561270b57fe5b90600052602060002090600491828204019190066008026101000a81549067ffffffffffffffff02191690558380548091906001900361274b9190614b3e565b50600460008767ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000209250600083600001600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50505050505050565b600080600460008567ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206003019050600060048111156127ff57fe5b85600481111561280b57fe5b141561283a57600360008563ffffffff1663ffffffff1681526020019081526020016000206001019050612918565b6001600481111561284757fe5b85600481111561285357fe5b141561288257600360008563ffffffff1663ffffffff1681526020019081526020016000206002019050612917565b6002600481111561288f57fe5b85600481111561289b57fe5b14156128ca57600360008563ffffffff1663ffffffff1681526020019081526020016000206003019050612916565b6004808111156128d657fe5b8560048111156128e257fe5b141561291557600460008567ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060040190505b5b5b5b80805490508310151561292e576000915061295f565b808381548110151561293c57fe5b90600052602060002090602091828204019190069054906101000a900460ff1691505b509392505050565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612a6c5760009150600090505b600180549050811015612a5f573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515612a0157fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612a525760019150612a5f565b80806001019150506129ce565b811515612a6b57600080fd5b5b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209350600092505b8380549050831015612b0c57612afe8484815481101515612acf57fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff166133dc565b508280600101935050612ab2565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054945050505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bb457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515612ce057600090505b600180549050811015612c7c578173ffffffffffffffffffffffffffffffffffffffff16600182815481101515612c2257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612c6f57612ce1565b8080600101915050612bef565b60018054806001018281612c909190614b78565b9160005260206000209001600084909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905082101515612d3b5760009050612db4565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612d8757fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1690505b92915050565b600260009054906101000a900467ffffffffffffffff1681565b60046020528060005260406000206000915090508060000160009054906101000a900467ffffffffffffffff16908060000160089054906101000a900463ffffffff169080600001600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101908060020160009054906101000a900463ffffffff16908060050160009054906101000a900463ffffffff16908060050160049054906101000a900463ffffffff16908060060154905088565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f925760009150600090505b600180549050811015612f85573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515612f2757fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612f785760019150612f85565b8080600101915050612ef4565b811515612f9157600080fd5b5b600460008667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002092508673ffffffffffffffffffffffffffffffffffffffff1683600001600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561301d5760049350613040565b613026856133dc565b5061303187866124a6565b61303b8686613085565b600093505b5050509392505050565b600260089054906101000a900463ffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561318a5760009150600090505b60018054905081101561317d573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561311f57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613170576001915061317d565b80806001019150506130ec565b81151561318957600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141580156131d1575060008667ffffffffffffffff16115b1561334e57600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209450600093505b848054905084101561328d578567ffffffffffffffff16858581548110151561324157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1667ffffffffffffffff1614156132805761334f565b838060010194505061321c565b8480548060010182816132a09190614b3e565b916000526020600020906004918282040191900660080288909190916101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050600460008767ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002092508683600001600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b50505050505050565b600080600080600080600360008863ffffffff1663ffffffff16815260200190815260200160002090508060000160009054906101000a900463ffffffff16955080600401549450806005015493508060060160009054906101000a900463ffffffff1692508060060160049054906101000a900460ff1691505091939590929450565b60008060008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156134e45760009150600090505b6001805490508110156134d7573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561347957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156134ca57600191506134d7565b8080600101915050613446565b8115156134e357600080fd5b5b600460008967ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000209550600360008760000160089054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001908152602001600020945060008660000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16148061358d575060008560000160009054906101000a900463ffffffff1663ffffffff16145b1561359b5760009650613714565b600093506135dd8560060160009054906101000a900463ffffffff1663ffffffff168760050160049054906101000a900463ffffffff1663ffffffff16614a1f565b925060008363ffffffff161115613710578460060160009054906101000a900463ffffffff168660050160046101000a81548163ffffffff021916908363ffffffff1602179055506136398363ffffffff168660050154614a3d565b93506136a86006600088600001600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856149f5565b6006600088600001600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8396505b505050505050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561381f5760009150600090505b600180549050811015613812573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156137b457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156138055760019150613812565b8080600101915050613781565b81151561381e57600080fd5b5b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156138c657600080fd5b600090505b600180549050811015613958578173ffffffffffffffffffffffffffffffffffffffff166001828154811015156138fe57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561394b57613958565b80806001019150506138cb565b600180549050811015613a585760018080805490500381548110151561397a57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001828154811015156139b557fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600180808054905003815481101515613a1357fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001805480919060019003613a569190614ba4565b505b5050565b600181815481101515613a6b57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613af657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613c7c5760009150600090505b600180549050811015613c6f573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515613c1157fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613c625760019150613c6f565b8080600101915050613bde565b811515613c7b57600080fd5b5b600360008963ffffffff1663ffffffff168152602001908152602001600020925060008360000160009054906101000a900463ffffffff1663ffffffff161415613cf8576001600260088282829054906101000a900463ffffffff160192506101000a81548163ffffffff021916908363ffffffff1602179055505b878360000160006101000a81548163ffffffff021916908363ffffffff160217905550868360040181905550858360050181905550848360060160046101000a81548160ff021916908315150217905550600260089054906101000a900463ffffffff169350505050949350505050565b600080600080613d77614bd0565b600080600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020955060009450600093505b858054905084101561418057600460008786815481101515613de257fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002061014060405190810160405290816000820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016000820160089054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200160008201600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613f825780601f10613f5757610100808354040283529160200191613f82565b820191906000526020600020905b815481529060010190602001808311613f6557829003601f168201915b505050505081526020016002820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016003820180548060200260200160405190810160405280929190818152602001828054801561402657602002820191906000526020600020906000905b82829054906101000a900460ff1660ff1681526020019060010190602082600001049283019260010382029150808411613fef5790505b50505050508152602001600482018054806020026020016040519081016040528092919081815260200182805480156140a457602002820191906000526020600020906000905b82829054906101000a900460ff1660ff168152602001906001019060208260000104928301926001038202915080841161406d5790505b505050505081526020016005820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016005820160049054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600682015481525050925060036000846020015163ffffffff1663ffffffff16815260200190815260200160002091506141598260060160009054906101000a900463ffffffff1663ffffffff1684610100015163ffffffff16614a1f565b905061416f8163ffffffff168360050154614a3d565b850194508380600101945050613dc4565b849650505050505050919050565b60066020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561420157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561427857806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b600080614286614bd0565b6000806000600460008867ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002061014060405190810160405290816000820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016000820160089054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200160008201600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156144065780601f106143db57610100808354040283529160200191614406565b820191906000526020600020905b8154815290600101906020018083116143e957829003601f168201915b505050505081526020016002820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600382018054806020026020016040519081016040528092919081815260200182805480156144aa57602002820191906000526020600020906000905b82829054906101000a900460ff1660ff16815260200190600101906020826000010492830192600103820291508084116144735790505b505050505081526020016004820180548060200260200160405190810160405280929190818152602001828054801561452857602002820191906000526020600020906000905b82829054906101000a900460ff1660ff16815260200190600101906020826000010492830192600103820291508084116144f15790505b505050505081526020016005820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016005820160049054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600682015481525050935060036000856020015163ffffffff1663ffffffff16815260200190815260200160002092506145dc8360060160009054906101000a900463ffffffff1663ffffffff168560e0015163ffffffff16614a1f565b915061460d8360060160009054906101000a900463ffffffff1663ffffffff1685610100015163ffffffff16614a1f565b90506146238163ffffffff168460050154614a3d565b6146378363ffffffff168560050154614a3d565b9550955050505050915091565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156147495760009150600090505b60018054905081101561473c573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156146de57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561472f576001915061473c565b80806001019150506146ab565b81151561474857600080fd5b5b600360008963ffffffff1663ffffffff168152602001908152602001600020935060008460000160009054906101000a900463ffffffff1663ffffffff16141561479657600094506149ea565b6001600260008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060018460060160008282829054906101000a900463ffffffff160192506101000a81548163ffffffff021916908363ffffffff16021790555060046000600260009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000209250600260009054906101000a900467ffffffffffffffff168360000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550878360000160086101000a81548163ffffffff021916908363ffffffff1602179055508683600001600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085836001019080519060200190614910929190614abe565b5060018360020160006101000a81548163ffffffff021916908363ffffffff1602179055508360060160009054906101000a900463ffffffff168360050160006101000a81548163ffffffff021916908363ffffffff1602179055508360060160009054906101000a900463ffffffff168360050160046101000a81548163ffffffff021916908363ffffffff1602179055504283600601819055506149ce878460000160009054906101000a900467ffffffffffffffff16613085565b8260000160009054906101000a900467ffffffffffffffff1694505b505050509392505050565b6000808284019050838110158015614a0d5750828110155b1515614a1557fe5b8091505092915050565b600080828410151515614a2e57fe5b82840390508091505092915050565b60008082840290506000841480614a5e5750828482811515614a5b57fe5b04145b1515614a6657fe5b8091505092915050565b602060405190810160405280600081525090565b815481835581811511614ab957601f016020900481601f01602090048360005260206000209182019101614ab89190614c6e565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614aff57805160ff1916838001178555614b2d565b82800160010185558215614b2d579182015b82811115614b2c578251825591602001919060010190614b11565b5b509050614b3a9190614c6e565b5090565b815481835581811511614b73576003016004900481600301600490048360005260206000209182019101614b729190614c6e565b5b505050565b815481835581811511614b9f57818360005260206000209182019101614b9e9190614c6e565b5b505050565b815481835581811511614bcb57818360005260206000209182019101614bca9190614c6e565b5b505050565b61014060405190810160405280600067ffffffffffffffff168152602001600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001614c20614c93565b8152602001600063ffffffff168152602001614c3a614ca7565b8152602001614c47614ca7565b8152602001600063ffffffff168152602001600063ffffffff168152602001600081525090565b614c9091905b80821115614c8c576000816000905550600101614c74565b5090565b90565b602060405190810160405280600081525090565b6020604051908101604052806000815250905600a165627a7a723058201f8e0895bca8f86f9bb1ac4822f4233fe140ed10d17eddb398c6d1bbf8235dac0029

Deployed Bytecode

0x6060604052600436106101d8576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303966a32146101e5578063072024601461025a5780630d25b6f21461033557806326bda739146103db57806331afa55f14610434578063321d2a4f1461047057806332666a31146104d257806340423f601461056f57806341b0eb53146105d957806347c17bac146106265780634ca92e0814610673578063522f6815146106c95780635643a7111461072d57806360c6ccb21461076957806362b21ad7146107b557806369666811146108115780636c81fd6d1461085e57806375fe2e33146108975780637a09defe146109015780637fc670291461093e578063809d9a9414610aa257806384ba745e14610b2f57806389b2050b14610b645780638da5cb5b14610bba5780639248019e14610c0f5780639d29cac414610c5b578063b0c6d7df14610cd0578063b55cdbf914610d11578063b85d627514610d53578063bd842a1114610d8c578063be26733c14610def578063c782fc6014610e04578063c8ff80a114610e51578063c953783814610eb7578063d2e0cbd114610f04578063f285329214610f51578063f4029e9214610f8a578063fc4d20f514610fd2575b6101e23334611085565b50005b34156101f057600080fd5b61020c600480803563ffffffff1690602001909190505061125d565b604051808663ffffffff1663ffffffff1681526020018581526020018481526020018363ffffffff1663ffffffff168152602001821515151581526020019550505050505060405180910390f35b341561026557600080fd5b610285600480803567ffffffffffffffff169060200190919050506112c0565b604051808867ffffffffffffffff1667ffffffffffffffff1681526020018763ffffffff1663ffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018363ffffffff1663ffffffff16815260200182815260200197505050505050505060405180910390f35b341561034057600080fd5b610360600480803567ffffffffffffffff169060200190919050506113a6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103a0578082015181840152602081019050610385565b50505050905090810190601f1680156103cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103e657600080fd5b61041e600480803560ff1690602001909190803567ffffffffffffffff1690602001909190803560ff16906020019091905050611478565b6040518082815260200191505060405180910390f35b341561043f57600080fd5b61046e600480803567ffffffffffffffff1690602001909190803563ffffffff16906020019091905050611721565b005b341561047b57600080fd5b6104bc600480803560ff1690602001909190803567ffffffffffffffff1690602001909190803590602001909190803560ff169060200190919050506118d4565b6040518082815260200191505060405180910390f35b34156104dd57600080fd5b61056d600480803567ffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803563ffffffff1690602001909190803563ffffffff1690602001909190803563ffffffff16906020019091905050611c64565b005b341561057a57600080fd5b6105af600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611e50565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b34156105e457600080fd5b610610600480803560ff1690602001909190803567ffffffffffffffff16906020019091905050611e9c565b6040518082815260200191505060405180910390f35b341561063157600080fd5b61065d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611fff565b6040518082815260200191505060405180910390f35b341561067e57600080fd5b6106b3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061204b565b6040518082815260200191505060405180910390f35b34156106d457600080fd5b610709600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612223565b6040518082600681111561071957fe5b60ff16815260200191505060405180910390f35b341561073857600080fd5b610767600480803567ffffffffffffffff1690602001909190803563ffffffff169060200190919050506122f3565b005b341561077457600080fd5b6107b3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803567ffffffffffffffff169060200190919050506124a6565b005b34156107c057600080fd5b6107f5600480803560ff1690602001909190803567ffffffffffffffff169060200190919080359060200190919050506127c3565b604051808260ff1660ff16815260200191505060405180910390f35b341561081c57600080fd5b610848600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612967565b6040518082815260200191505060405180910390f35b341561086957600080fd5b610895600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612b57565b005b34156108a257600080fd5b6108d7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612ce5565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561090c57600080fd5b610914612dba565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561094957600080fd5b610969600480803567ffffffffffffffff16906020019091905050612dd4565b604051808967ffffffffffffffff1667ffffffffffffffff1681526020018863ffffffff1663ffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff168152602001838152602001828103825287818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610a8c5780601f10610a6157610100808354040283529160200191610a8c565b820191906000526020600020905b815481529060010190602001808311610a6f57829003601f168201915b5050995050505050505050505060405180910390f35b3415610aad57600080fd5b610b0b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803567ffffffffffffffff16906020019091905050612e8f565b60405180826006811115610b1b57fe5b60ff16815260200191505060405180910390f35b3415610b3a57600080fd5b610b4261304a565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3415610b6f57600080fd5b610ba4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611085565b6040518082815260200191505060405180910390f35b3415610bc557600080fd5b610bcd613060565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610c1a57600080fd5b610c59600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803567ffffffffffffffff16906020019091905050613085565b005b3415610c6657600080fd5b610c82600480803563ffffffff16906020019091905050613358565b604051808663ffffffff1663ffffffff1681526020018581526020018481526020018363ffffffff1663ffffffff168152602001821515151581526020019550505050505060405180910390f35b3415610cdb57600080fd5b610cfb600480803567ffffffffffffffff169060200190919050506133dc565b6040518082815260200191505060405180910390f35b3415610d1c57600080fd5b610d51600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061371f565b005b3415610d5e57600080fd5b610d8a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613869565b005b3415610d9757600080fd5b610dad6004808035906020019091905050613a5c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610dfa57600080fd5b610e02613a9b565b005b3415610e0f57600080fd5b610e3b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613b30565b6040518082815260200191505060405180910390f35b3415610e5c57600080fd5b610e95600480803563ffffffff169060200190919080359060200190919080359060200190919080351515906020019091905050613b79565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3415610ec257600080fd5b610eee600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613d69565b6040518082815260200191505060405180910390f35b3415610f0f57600080fd5b610f3b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061418e565b6040518082815260200191505060405180910390f35b3415610f5c57600080fd5b610f88600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506141a6565b005b3415610f9557600080fd5b610fb5600480803567ffffffffffffffff1690602001909190505061427b565b604051808381526020018281526020019250505060405180910390f35b3415610fdd57600080fd5b61105b600480803563ffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050614644565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111875760009150600090505b60018054905081101561117a573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561111c57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561116d576001915061117a565b80806001019150506110e9565b81151561118657600080fd5b5b6111d0600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856149f5565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250505092915050565b60036020528060005260406000206000915090508060000160009054906101000a900463ffffffff16908060040154908060050154908060060160009054906101000a900463ffffffff16908060060160049054906101000a900460ff16905085565b600080600080600080600080600460008a67ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002090508060000160009054906101000a900467ffffffffffffffff1697508060000160089054906101000a900463ffffffff16965080600001600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1695508060020160009054906101000a900463ffffffff1694508060050160009054906101000a900463ffffffff1693508060050160049054906101000a900463ffffffff1692508060060154915050919395979092949650565b6113ae614a70565b600460008367ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561146c5780601f106114415761010080835404028352916020019161146c565b820191906000526020600020905b81548152906001019060200180831161144f57829003601f168201915b50505050509050919050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157b5760009150600090505b60018054905081101561156e573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561151057fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611561576001915061156e565b80806001019150506114dd565b81151561157a57600080fd5b5b600460008767ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206003019250600060048111156115b457fe5b8760048111156115c057fe5b14156115ef57600360008763ffffffff1663ffffffff16815260200190815260200160002060010192506116cd565b600160048111156115fc57fe5b87600481111561160857fe5b141561163757600360008763ffffffff1663ffffffff16815260200190815260200160002060020192506116cc565b6002600481111561164457fe5b87600481111561165057fe5b141561167f57600360008763ffffffff1663ffffffff16815260200190815260200160002060030192506116cb565b60048081111561168b57fe5b87600481111561169757fe5b14156116ca57600460008767ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060040192505b5b5b5b8280548060010182816116e09190614a84565b916000526020600020906020918282040191900687909190916101000a81548160ff021916908360ff16021790555050828054905093505050509392505050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118235760009150600090505b600180549050811015611816573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156117b857fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156118095760019150611816565b8080600101915050611785565b81151561182257600080fd5b5b600460008667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002092508467ffffffffffffffff168360000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1614156118cd576118aa8360020160009054906101000a900463ffffffff1663ffffffff168563ffffffff16614a1f565b8360020160006101000a81548163ffffffff021916908363ffffffff1602179055505b5050505050565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119d95760009150600090505b6001805490508110156119cc573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561196e57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156119bf57600191506119cc565b808060010191505061193b565b8115156119d857600080fd5b5b600460008967ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020600301935060006004811115611a1257fe5b896004811115611a1e57fe5b1415611a4d57600360008963ffffffff1663ffffffff1681526020019081526020016000206001019350611b2b565b60016004811115611a5a57fe5b896004811115611a6657fe5b1415611a9557600360008963ffffffff1663ffffffff1681526020019081526020016000206002019350611b2a565b60026004811115611aa257fe5b896004811115611aae57fe5b1415611add57600360008963ffffffff1663ffffffff1681526020019081526020016000206003019350611b29565b600480811115611ae957fe5b896004811115611af557fe5b1415611b2857600460008967ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060040193505b5b5b5b8380549050871015611c585760ff8660ff161415611c1d578692505b6001848054905003831015611bcc578360018401815481101515611b6757fe5b90600052602060002090602091828204019190069054906101000a900460ff168484815481101515611b9557fe5b90600052602060002090602091828204019190066101000a81548160ff021916908360ff1602179055508280600101935050611b47565b836001858054905003815481101515611be157fe5b90600052602060002090602091828204019190066101000a81549060ff021916905583805480919060019003611c179190614a84565b50611c57565b858488815481101515611c2c57fe5b90600052602060002090602091828204019190066101000a81548160ff021916908360ff1602179055505b5b50505050949350505050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d665760009150600090505b600180549050811015611d59573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611cfb57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d4c5760019150611d59565b8080600101915050611cc8565b811515611d6557600080fd5b5b600460008967ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002092508767ffffffffffffffff168360000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff161415611e465786836001019080519060200190611ddb929190614abe565b50858360020160006101000a81548163ffffffff021916908363ffffffff160217905550848360050160006101000a81548163ffffffff021916908363ffffffff160217905550838360050160046101000a81548163ffffffff021916908363ffffffff1602179055505b5050505050505050565b600560205281600052604060002081815481101515611e6b57fe5b9060005260206000209060049182820401919006600802915091509054906101000a900467ffffffffffffffff1681565b600080600460008467ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020600301905060006004811115611ed857fe5b846004811115611ee457fe5b1415611f1357600360008463ffffffff1663ffffffff1681526020019081526020016000206001019050611ff1565b60016004811115611f2057fe5b846004811115611f2c57fe5b1415611f5b57600360008463ffffffff1663ffffffff1681526020019081526020016000206002019050611ff0565b60026004811115611f6857fe5b846004811115611f7457fe5b1415611fa357600360008463ffffffff1663ffffffff1681526020019081526020016000206003019050611fef565b600480811115611faf57fe5b846004811115611fbb57fe5b1415611fee57600460008467ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060040190505b5b5b5b808054905091505092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561214d5760009150600090505b600180549050811015612140573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156120e257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156121335760019150612140565b80806001019150506120af565b81151561214c57600080fd5b5b612196600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485614a1f565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561228057600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318211156122a857600690506122ed565b8273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015156122e857600080fd5b600090505b92915050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123f55760009150600090505b6001805490508110156123e8573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561238a57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123db57600191506123e8565b8080600101915050612357565b8115156123f457600080fd5b5b600460008667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002092508467ffffffffffffffff168360000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16141561249f5761247c8360020160009054906101000a900463ffffffff1663ffffffff168563ffffffff166149f5565b8360020160006101000a81548163ffffffff021916908363ffffffff1602179055505b5050505050565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125ab5760009150600090505b60018054905081101561259e573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561254057fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612591576001915061259e565b808060010191505061250d565b8115156125aa57600080fd5b5b60009450600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002093505b8380549050851015612662578567ffffffffffffffff16848681548110151561261657fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1667ffffffffffffffff16141561265557612662565b84806001019550506125f1565b83805490508510156127ba5783600185805490500381548110151561268357fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1684868154811015156126bb57fe5b90600052602060002090600491828204019190066008026101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083600185805490500381548110151561270b57fe5b90600052602060002090600491828204019190066008026101000a81549067ffffffffffffffff02191690558380548091906001900361274b9190614b3e565b50600460008767ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000209250600083600001600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50505050505050565b600080600460008567ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206003019050600060048111156127ff57fe5b85600481111561280b57fe5b141561283a57600360008563ffffffff1663ffffffff1681526020019081526020016000206001019050612918565b6001600481111561284757fe5b85600481111561285357fe5b141561288257600360008563ffffffff1663ffffffff1681526020019081526020016000206002019050612917565b6002600481111561288f57fe5b85600481111561289b57fe5b14156128ca57600360008563ffffffff1663ffffffff1681526020019081526020016000206003019050612916565b6004808111156128d657fe5b8560048111156128e257fe5b141561291557600460008567ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060040190505b5b5b5b80805490508310151561292e576000915061295f565b808381548110151561293c57fe5b90600052602060002090602091828204019190069054906101000a900460ff1691505b509392505050565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612a6c5760009150600090505b600180549050811015612a5f573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515612a0157fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612a525760019150612a5f565b80806001019150506129ce565b811515612a6b57600080fd5b5b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209350600092505b8380549050831015612b0c57612afe8484815481101515612acf57fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff166133dc565b508280600101935050612ab2565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054945050505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bb457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515612ce057600090505b600180549050811015612c7c578173ffffffffffffffffffffffffffffffffffffffff16600182815481101515612c2257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612c6f57612ce1565b8080600101915050612bef565b60018054806001018281612c909190614b78565b9160005260206000209001600084909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905082101515612d3b5760009050612db4565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612d8757fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1690505b92915050565b600260009054906101000a900467ffffffffffffffff1681565b60046020528060005260406000206000915090508060000160009054906101000a900467ffffffffffffffff16908060000160089054906101000a900463ffffffff169080600001600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101908060020160009054906101000a900463ffffffff16908060050160009054906101000a900463ffffffff16908060050160049054906101000a900463ffffffff16908060060154905088565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f925760009150600090505b600180549050811015612f85573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515612f2757fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612f785760019150612f85565b8080600101915050612ef4565b811515612f9157600080fd5b5b600460008667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002092508673ffffffffffffffffffffffffffffffffffffffff1683600001600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561301d5760049350613040565b613026856133dc565b5061303187866124a6565b61303b8686613085565b600093505b5050509392505050565b600260089054906101000a900463ffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561318a5760009150600090505b60018054905081101561317d573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561311f57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613170576001915061317d565b80806001019150506130ec565b81151561318957600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141580156131d1575060008667ffffffffffffffff16115b1561334e57600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209450600093505b848054905084101561328d578567ffffffffffffffff16858581548110151561324157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1667ffffffffffffffff1614156132805761334f565b838060010194505061321c565b8480548060010182816132a09190614b3e565b916000526020600020906004918282040191900660080288909190916101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050600460008767ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002092508683600001600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b50505050505050565b600080600080600080600360008863ffffffff1663ffffffff16815260200190815260200160002090508060000160009054906101000a900463ffffffff16955080600401549450806005015493508060060160009054906101000a900463ffffffff1692508060060160049054906101000a900460ff1691505091939590929450565b60008060008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156134e45760009150600090505b6001805490508110156134d7573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561347957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156134ca57600191506134d7565b8080600101915050613446565b8115156134e357600080fd5b5b600460008967ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000209550600360008760000160089054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001908152602001600020945060008660000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16148061358d575060008560000160009054906101000a900463ffffffff1663ffffffff16145b1561359b5760009650613714565b600093506135dd8560060160009054906101000a900463ffffffff1663ffffffff168760050160049054906101000a900463ffffffff1663ffffffff16614a1f565b925060008363ffffffff161115613710578460060160009054906101000a900463ffffffff168660050160046101000a81548163ffffffff021916908363ffffffff1602179055506136398363ffffffff168660050154614a3d565b93506136a86006600088600001600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856149f5565b6006600088600001600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8396505b505050505050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561381f5760009150600090505b600180549050811015613812573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156137b457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156138055760019150613812565b8080600101915050613781565b81151561381e57600080fd5b5b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156138c657600080fd5b600090505b600180549050811015613958578173ffffffffffffffffffffffffffffffffffffffff166001828154811015156138fe57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561394b57613958565b80806001019150506138cb565b600180549050811015613a585760018080805490500381548110151561397a57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001828154811015156139b557fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600180808054905003815481101515613a1357fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001805480919060019003613a569190614ba4565b505b5050565b600181815481101515613a6b57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613af657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613c7c5760009150600090505b600180549050811015613c6f573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515613c1157fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613c625760019150613c6f565b8080600101915050613bde565b811515613c7b57600080fd5b5b600360008963ffffffff1663ffffffff168152602001908152602001600020925060008360000160009054906101000a900463ffffffff1663ffffffff161415613cf8576001600260088282829054906101000a900463ffffffff160192506101000a81548163ffffffff021916908363ffffffff1602179055505b878360000160006101000a81548163ffffffff021916908363ffffffff160217905550868360040181905550858360050181905550848360060160046101000a81548160ff021916908315150217905550600260089054906101000a900463ffffffff169350505050949350505050565b600080600080613d77614bd0565b600080600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020955060009450600093505b858054905084101561418057600460008786815481101515613de257fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002061014060405190810160405290816000820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016000820160089054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200160008201600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613f825780601f10613f5757610100808354040283529160200191613f82565b820191906000526020600020905b815481529060010190602001808311613f6557829003601f168201915b505050505081526020016002820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016003820180548060200260200160405190810160405280929190818152602001828054801561402657602002820191906000526020600020906000905b82829054906101000a900460ff1660ff1681526020019060010190602082600001049283019260010382029150808411613fef5790505b50505050508152602001600482018054806020026020016040519081016040528092919081815260200182805480156140a457602002820191906000526020600020906000905b82829054906101000a900460ff1660ff168152602001906001019060208260000104928301926001038202915080841161406d5790505b505050505081526020016005820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016005820160049054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600682015481525050925060036000846020015163ffffffff1663ffffffff16815260200190815260200160002091506141598260060160009054906101000a900463ffffffff1663ffffffff1684610100015163ffffffff16614a1f565b905061416f8163ffffffff168360050154614a3d565b850194508380600101945050613dc4565b849650505050505050919050565b60066020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561420157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561427857806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b600080614286614bd0565b6000806000600460008867ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002061014060405190810160405290816000820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016000820160089054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200160008201600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156144065780601f106143db57610100808354040283529160200191614406565b820191906000526020600020905b8154815290600101906020018083116143e957829003601f168201915b505050505081526020016002820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600382018054806020026020016040519081016040528092919081815260200182805480156144aa57602002820191906000526020600020906000905b82829054906101000a900460ff1660ff16815260200190600101906020826000010492830192600103820291508084116144735790505b505050505081526020016004820180548060200260200160405190810160405280929190818152602001828054801561452857602002820191906000526020600020906000905b82829054906101000a900460ff1660ff16815260200190600101906020826000010492830192600103820291508084116144f15790505b505050505081526020016005820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016005820160049054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600682015481525050935060036000856020015163ffffffff1663ffffffff16815260200190815260200160002092506145dc8360060160009054906101000a900463ffffffff1663ffffffff168560e0015163ffffffff16614a1f565b915061460d8360060160009054906101000a900463ffffffff1663ffffffff1685610100015163ffffffff16614a1f565b90506146238163ffffffff168460050154614a3d565b6146378363ffffffff168560050154614a3d565b9550955050505050915091565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156147495760009150600090505b60018054905081101561473c573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156146de57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561472f576001915061473c565b80806001019150506146ab565b81151561474857600080fd5b5b600360008963ffffffff1663ffffffff168152602001908152602001600020935060008460000160009054906101000a900463ffffffff1663ffffffff16141561479657600094506149ea565b6001600260008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060018460060160008282829054906101000a900463ffffffff160192506101000a81548163ffffffff021916908363ffffffff16021790555060046000600260009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000209250600260009054906101000a900467ffffffffffffffff168360000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550878360000160086101000a81548163ffffffff021916908363ffffffff1602179055508683600001600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085836001019080519060200190614910929190614abe565b5060018360020160006101000a81548163ffffffff021916908363ffffffff1602179055508360060160009054906101000a900463ffffffff168360050160006101000a81548163ffffffff021916908363ffffffff1602179055508360060160009054906101000a900463ffffffff168360050160046101000a81548163ffffffff021916908363ffffffff1602179055504283600601819055506149ce878460000160009054906101000a900467ffffffffffffffff16613085565b8260000160009054906101000a900467ffffffffffffffff1694505b505050509392505050565b6000808284019050838110158015614a0d5750828110155b1515614a1557fe5b8091505092915050565b600080828410151515614a2e57fe5b82840390508091505092915050565b60008082840290506000841480614a5e5750828482811515614a5b57fe5b04145b1515614a6657fe5b8091505092915050565b602060405190810160405280600081525090565b815481835581811511614ab957601f016020900481601f01602090048360005260206000209182019101614ab89190614c6e565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614aff57805160ff1916838001178555614b2d565b82800160010185558215614b2d579182015b82811115614b2c578251825591602001919060010190614b11565b5b509050614b3a9190614c6e565b5090565b815481835581811511614b73576003016004900481600301600490048360005260206000209182019101614b729190614c6e565b5b505050565b815481835581811511614b9f57818360005260206000209182019101614b9e9190614c6e565b5b505050565b815481835581811511614bcb57818360005260206000209182019101614bca9190614c6e565b5b505050565b61014060405190810160405280600067ffffffffffffffff168152602001600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001614c20614c93565b8152602001600063ffffffff168152602001614c3a614ca7565b8152602001614c47614ca7565b8152602001600063ffffffff168152602001600063ffffffff168152602001600081525090565b614c9091905b80821115614c8c576000816000905550600101614c74565b5090565b90565b602060405190810160405280600081525090565b6020604051908101604052806000815250905600a165627a7a723058201f8e0895bca8f86f9bb1ac4822f4233fe140ed10d17eddb398c6d1bbf8235dac0029

Swarm Source

bzzr://1f8e0895bca8f86f9bb1ac4822f4233fe140ed10d17eddb398c6d1bbf8235dac

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

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.