ETH Price: $1,913.77 (+4.76%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer From87067312019-10-09 8:53:412331 days ago1570611221IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000226884.6
Transfer From87066332019-10-09 8:30:532331 days ago1570609853IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000192963
Transfer From87065492019-10-09 8:13:372331 days ago1570608817IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000148163
Transfer From87065432019-10-09 8:12:292331 days ago1570608749IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000197544
Transfer From87065322019-10-09 8:10:492331 days ago1570608649IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000197544
Transfer From87065252019-10-09 8:09:152331 days ago1570608555IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000198534.02
Transfer From87063782019-10-09 7:37:392331 days ago1570606659IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000098642
Transfer From87063702019-10-09 7:36:102331 days ago1570606570IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000128512
Transfer From87063502019-10-09 7:32:302331 days ago1570606350IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000098392
Create New Item86873752019-10-06 8:08:452334 days ago1570349325IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000226831.5
Create New Item86873732019-10-06 8:08:012334 days ago1570349281IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000226831.5
Create New Item86873732019-10-06 8:08:012334 days ago1570349281IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000226831.5
Create New Item86873622019-10-06 8:04:452334 days ago1570349085IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000226831.5
Create New Item86873552019-10-06 8:03:402334 days ago1570349020IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000226831.5
Create New Item86873532019-10-06 8:02:542334 days ago1570348974IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000226831.5
Create New Item86873522019-10-06 8:02:452334 days ago1570348965IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000226831.5
Create New Item86873512019-10-06 8:02:392334 days ago1570348959IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000226831.5
Create New Item86873432019-10-06 8:00:232334 days ago1570348823IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000226831.5
Create New Item86873402019-10-06 8:00:022334 days ago1570348802IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000226831.5
Create New Item86873342019-10-06 7:59:092334 days ago1570348749IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000226831.5
Create New Item86873312019-10-06 7:58:512334 days ago1570348731IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000226831.5
Create New Item86873282019-10-06 7:58:282334 days ago1570348708IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000226831.5
Create New Item86873242019-10-06 7:57:362334 days ago1570348656IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000226831.5
Create New Item86873192019-10-06 7:54:382334 days ago1570348478IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000226831.5
Create New Item86873162019-10-06 7:54:022334 days ago1570348442IN
0x7Dc8ffd9...0f8da927C
0 ETH0.000226831.5
View all transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SpecialSoldiers

Compiler Version
v0.5.11+commit.c082d0b4

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2019-09-27
*/

pragma solidity >=0.5.0 <0.6.0;

//721协议
interface ERC721 {
    event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);
    function balanceOf(address _owner) external view returns (uint256);
    function ownerOf(uint256 _tokenId) external view returns (address);
    function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes calldata data) external;
    function safeTransferFrom(address _from, address _to, uint256 _tokenId) external;
    function transferFrom(address _from, address _to, uint256 _tokenId) external;
    function approve(address _approved, uint256 _tokenId) external;
    function setApprovalForAll(address _operator, bool _approved) external;
    function getApproved(uint256 _tokenId) external view returns (address);
    function isApprovedForAll(address _owner, address _operator) external view returns (bool);
}

//165协议
interface ERC165{
    function supportsInterface(bytes4 interfaceID) external view returns (bool);
}

interface ERC721TokenReceiver {
    function onERC721Received(address _from, uint256 _tokenId, bytes calldata data) external returns(bytes4);
}

contract AccessAdmin{
    bool public isPaused = false;
    address public adminAddr;

    event AdminTransferred(address indexed preAdmin, address indexed newAdmin);

    constructor() public {
        adminAddr = msg.sender;
    }

    modifier onlyAdmin() {
        require(msg.sender == adminAddr);
        _;
    }

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

    modifier whenPaused {
        require(isPaused);
        _;
    }

    function setAdmin(address _newAdmin) external onlyAdmin {
        require(_newAdmin != address(0));
        emit AdminTransferred(adminAddr, _newAdmin);
        adminAddr = _newAdmin;
    }

    function doPause() external onlyAdmin whenNotPaused {
        isPaused = true;
    }

    function doUnpause() external onlyAdmin whenPaused {
        isPaused = false;
    }
}

contract SpecialSoldiers is ERC721,AccessAdmin {
    //物品
    struct Item{
        uint256 itemMainType;
        uint256 itemSubtype;
        uint16 itemLevel;
        uint16 itemQuality;
        uint16 itemPhase; 
        uint64 createTime;
        uint64 updateTime;
        uint16 updateCNT;
        uint256 attr1;
        uint256 attr2;
        uint256 attr3;
        uint256 attr4;
        uint256 attr5;
    }

    //物品数组
    Item[] public itemArray; //item ID is the index in this array
    //每个地址拥有的物品的个数
    mapping (address => uint256) public ownershipTokenCount;
    //物品id到地址的mapping地址
    mapping (uint256 => address) public ItemIDToOwner;
    //临时具有操作物品tansfer权限的地址
    mapping (uint256 => address) public ItemIDToApproved;
    //具有对某个地址下所有物品transfer权限的地址
    mapping (address => mapping (address => bool)) operatorToApprovals;
    //信任的地址,官方地址,或者其他合约地址
    mapping (address => bool) trustAddr;
    //物品加锁
    mapping (uint256 => bool) public itemLocked;

    //用来查询合约支持的协议,和实现的协议方法
    bytes4 constant InterfaceSignature_ERC165 =
        bytes4(keccak256('supportsInterface(bytes4)'));
    bytes4 constant InterfaceSignature_ERC721 =
        bytes4(keccak256('balanceOf(address)')) ^
        bytes4(keccak256('ownerOf(uint256)')) ^
        bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) ^
        bytes4(keccak256('safeTransferFrom(address,address,uint256)')) ^
        bytes4(keccak256('transferFrom(address,address,uint256)')) ^
        bytes4(keccak256('approve(address,uint256)')) ^
        bytes4(keccak256('setApprovalForAll(address,bool)')) ^
        bytes4(keccak256('getApproved(uint256)')) ^
        bytes4(keccak256('isApprovedForAll(address,address)'));

    //定义通知
    event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);
    event ItemUpdate(address  _owner,uint256  _itemID);
    event ItemCreate(address  _owner,uint256  _itemID);
    event ItemUnlock(address _caller,address _owner,uint256  _itemID);

    //构造函数
    constructor() public{
        adminAddr = msg.sender;
    }

    //修饰函数,用来在函数执行前判断一些条件
    modifier isValidToken(uint256 _tokenID) {
        require(_tokenID >= 0 && _tokenID <= itemArray.length);
        require(ItemIDToOwner[_tokenID] != address(0));
        _;
    }

    modifier isItemLock(uint256 _tokenID) {
        require(itemLocked[_tokenID]);
        _;
    }

    modifier isItemUnlock(uint256 _tokenID) {
        require(!itemLocked[_tokenID]);
        _;
    }

    modifier canTransfer(uint256 _tokenId) {
        address owner = ItemIDToOwner[_tokenId];
        require(msg.sender == owner || msg.sender == ItemIDToApproved[_tokenId] || operatorToApprovals[owner][msg.sender]);
        _;
    }

    //用于获取itemArray的长度
    function getitemArrayLength() external view returns(uint256){
        return(itemArray.length);
    }

    //用于链上查询合约支持的协议
    function supportsInterface(bytes4 _interfaceId) external pure  returns(bool) {
        return ((_interfaceId == InterfaceSignature_ERC165) || (_interfaceId == InterfaceSignature_ERC721));
    }

    function setTrustAddr(address _addr,bool _trust) external onlyAdmin{
        require(_addr != address(0));
        trustAddr[_addr] = _trust;
    }

    function getTrustAddr(address _addr) external view onlyAdmin returns(bool){
        return (trustAddr[_addr]);
    }

    function _transfer(address _from, address _to, uint256 _tokenId) internal {
        ownershipTokenCount[_to]++;
        ItemIDToOwner[_tokenId] = _to;

        if (_from != address(0)) {
            ownershipTokenCount[_from]--;
            delete ItemIDToApproved[_tokenId];
        }

        emit Transfer(_from, _to, _tokenId);
    }

    //更新物品的状态
    function updateItem(uint256 _tp,uint256 _subTp,uint16 _level,uint256[5] calldata _attr,uint16 _quality,uint16 _phase,uint256 _tokenId) external whenNotPaused isValidToken(_tokenId) isItemUnlock(_tokenId){
        require(msg.sender==adminAddr || trustAddr[msg.sender]);
        
        itemArray[_tokenId].itemMainType = _tp;
        itemArray[_tokenId].itemSubtype = _subTp;
        itemArray[_tokenId].itemLevel = _level;
        itemArray[_tokenId].itemQuality = _quality;
        itemArray[_tokenId].itemPhase = _phase;
        itemArray[_tokenId].updateTime = uint64(now);
        itemArray[_tokenId].updateCNT += 1;
        itemArray[_tokenId].attr1 = _attr[0];
        itemArray[_tokenId].attr2 = _attr[1];
        itemArray[_tokenId].attr3 = _attr[2];
        itemArray[_tokenId].attr4 = _attr[3];
        itemArray[_tokenId].attr5 = _attr[4];

        address owner = ItemIDToOwner[_tokenId];
        itemLocked[_tokenId] = true;
        emit ItemUpdate(owner,_tokenId);
    }
    
    //创建物品
    function createNewItem(uint256 _tp,uint256 _subTp,address _owner,uint256[5] calldata _attr,uint16 _quality,uint16 _phase) external whenNotPaused {
        require(msg.sender==adminAddr || trustAddr[msg.sender]);
        require(_owner != address(0));
        require(itemArray.length < 4294967296);
        
        uint64 currentTime = uint64(now);
        Item memory _newItem = Item({
            itemMainType: _tp,
            itemSubtype: _subTp,
            itemLevel: 1,
            itemQuality:_quality,
            itemPhase:_phase,
            createTime:currentTime,
            updateTime:currentTime,
            updateCNT:0,
            attr1:_attr[0],
            attr2:_attr[1],
            attr3:_attr[2],
            attr4:_attr[3],
            attr5:_attr[4]
        });
        uint256 newItemID = itemArray.push(_newItem) - 1;
        itemLocked[newItemID] = true;
        
        _transfer(address(0), _owner, newItemID);
        emit ItemCreate(_owner,newItemID);
    }

    //物品解锁,解锁后才能更新状态
    function unLockedItem(uint256 _tokenId) external whenNotPaused isValidToken(_tokenId) isItemLock(_tokenId) {
        require(msg.sender==adminAddr || trustAddr[msg.sender]);
        address owner = ItemIDToOwner[_tokenId];
        itemLocked[_tokenId] = false;
        emit ItemUnlock(msg.sender,owner,_tokenId);
    }

    //某个地址所有物品个数
    function balanceOf(address _owner) external view returns (uint256 count) {
        return ownershipTokenCount[_owner];
    }

    //某个物品所属地址
    function ownerOf(uint256 _tokenId) external view returns (address owner)
    {
        owner = ItemIDToOwner[_tokenId];

        require(owner != address(0));
    }

    function _safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes memory data) internal isValidToken(_tokenId) canTransfer(_tokenId){
        _transfer(_from, _to, _tokenId);

        //only call onERC721Received when _to is a contract address
        uint256 codeSize;
        assembly { codeSize := extcodesize(_to) }
        if (codeSize == 0) {
            return;
        }

        bytes4 retval = ERC721TokenReceiver(_to).onERC721Received(_from, _tokenId, data);
        // bytes4(keccak256("onERC721Received(address,uint256,bytes)")) = 0xf0b9e5ba;
        require(retval == 0xf0b9e5ba);
    }

    //合约之间的物品的transfer,对方合约需要要支持721协议,要做onERC721Received判断
    function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes calldata data) external whenNotPaused{
        _safeTransferFrom(_from, _to, _tokenId, data);
    }

    function safeTransferFrom(address _from, address _to, uint256 _tokenId) external whenNotPaused{
        _safeTransferFrom(_from, _to, _tokenId, "");
    }

    //物品的transfer,到一个用户地址
    function transferFrom(address _from, address _to, uint256 _tokenId) external whenNotPaused isValidToken(_tokenId) canTransfer(_tokenId){
        address owner = ItemIDToOwner[_tokenId];
        require(owner != address(0));
        require(_to != address(0));
        require(_from == owner);
        _transfer(_from, _to, _tokenId);
    }

    function _approve(uint256 _tokenId, address _approved) internal {
        ItemIDToApproved[_tokenId] = _approved;
    }

    //让另一个地址具有临时transfer物品的权限
    function approve(address _approved, uint256 _tokenId) external whenNotPaused{
        address owner = ItemIDToOwner[_tokenId];
        require(owner != address(0));
        require(msg.sender == owner || operatorToApprovals[owner][msg.sender]);

        _approve(_tokenId, _approved);
        emit Approval(msg.sender,  _approved, _tokenId);
    }

    //让另一个地址具有transfer当前地址内所有物品的权限
    function setApprovalForAll(address _operator, bool _approved) external whenNotPaused{
        require(_operator != address(0));
        operatorToApprovals[msg.sender][_operator] = _approved;
        emit ApprovalForAll(msg.sender, _operator, _approved);
    }

    function getApproved(uint256 _tokenId) external view returns (address){
        return ItemIDToApproved[_tokenId];
    }

    function isApprovedForAll(address _owner, address _operator) external view returns (bool){
        return operatorToApprovals[_owner][_operator];
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_approved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getitemArrayLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"doUnpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tp","type":"uint256"},{"internalType":"uint256","name":"_subTp","type":"uint256"},{"internalType":"uint16","name":"_level","type":"uint16"},{"internalType":"uint256[5]","name":"_attr","type":"uint256[5]"},{"internalType":"uint16","name":"_quality","type":"uint16"},{"internalType":"uint16","name":"_phase","type":"uint16"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"updateItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"getTrustAddr","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"itemLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"doPause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newAdmin","type":"address"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ItemIDToApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_trust","type":"bool"}],"name":"setTrustAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"unLockedItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tp","type":"uint256"},{"internalType":"uint256","name":"_subTp","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256[5]","name":"_attr","type":"uint256[5]"},{"internalType":"uint16","name":"_quality","type":"uint16"},{"internalType":"uint16","name":"_phase","type":"uint16"}],"name":"createNewItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ItemIDToOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"itemArray","outputs":[{"internalType":"uint256","name":"itemMainType","type":"uint256"},{"internalType":"uint256","name":"itemSubtype","type":"uint256"},{"internalType":"uint16","name":"itemLevel","type":"uint16"},{"internalType":"uint16","name":"itemQuality","type":"uint16"},{"internalType":"uint16","name":"itemPhase","type":"uint16"},{"internalType":"uint64","name":"createTime","type":"uint64"},{"internalType":"uint64","name":"updateTime","type":"uint64"},{"internalType":"uint16","name":"updateCNT","type":"uint16"},{"internalType":"uint256","name":"attr1","type":"uint256"},{"internalType":"uint256","name":"attr2","type":"uint256"},{"internalType":"uint256","name":"attr3","type":"uint256"},{"internalType":"uint256","name":"attr4","type":"uint256"},{"internalType":"uint256","name":"attr5","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ownershipTokenCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":true,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_operator","type":"address"},{"indexed":false,"internalType":"bool","name":"_approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"_itemID","type":"uint256"}],"name":"ItemUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"_itemID","type":"uint256"}],"name":"ItemCreate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_caller","type":"address"},{"indexed":false,"internalType":"address","name":"_owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"_itemID","type":"uint256"}],"name":"ItemUnlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"preAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminTransferred","type":"event"}]

60806040526000805460ff1916905534801561001a57600080fd5b50600080546101003302610100600160a81b03199182168117909116179055611a75806100486000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de5780639c1bd4ad11610097578063b5d44e1b11610071578063b5d44e1b146104d4578063b88d4fde1461056e578063cec21acb146105fe578063e985e9c5146106245761018e565b80639c1bd4ad14610481578063a22cb4651461049e578063b187bd26146104cc5761018e565b806370a082311461039f57806381830593146103c557806381c08bce146103cd5780638638aa3f146103ea57806391a50aa414610418578063956436a4146104355761018e565b806331865e771161014b57806342842e0e1161012557806342842e0e1461031e5780636352211e1461035457806367d0661d14610371578063704b6c02146103795761018e565b806331865e771461028d57806331bfdcf7146102db5780633e9a02e4146103015761018e565b806301ffc9a714610193578063081812fc146101ce578063095ea7b314610207578063121db5871461023557806323b872dd1461024f57806330efb8d314610285575b600080fd5b6101ba600480360360208110156101a957600080fd5b50356001600160e01b031916610652565b604080519115158252519081900360200190f35b6101eb600480360360208110156101e457600080fd5b50356107f5565b604080516001600160a01b039092168252519081900360200190f35b6102336004803603604081101561021d57600080fd5b506001600160a01b038135169060200135610810565b005b61023d6108cc565b60408051918252519081900360200190f35b6102336004803603606081101561026557600080fd5b506001600160a01b038135811691602081013590911690604001356108d2565b6102336109ef565b61023360048036036101608110156102a457600080fd5b5080359060208101359061ffff60408201358116916060810191610100820135811691610120810135909116906101400135610a26565b6101ba600480360360208110156102f157600080fd5b50356001600160a01b0316610d76565b6101ba6004803603602081101561031757600080fd5b5035610db2565b6102336004803603606081101561033457600080fd5b506001600160a01b03813581169160208101359091169060400135610dc7565b6101eb6004803603602081101561036a57600080fd5b5035610df7565b610233610e19565b6102336004803603602081101561038f57600080fd5b50356001600160a01b0316610e54565b61023d600480360360208110156103b557600080fd5b50356001600160a01b0316610ee9565b6101eb610f04565b6101eb600480360360208110156103e357600080fd5b5035610f18565b6102336004803603604081101561040057600080fd5b506001600160a01b0381351690602001351515610f33565b6102336004803603602081101561042e57600080fd5b5035610f8d565b610233600480360361014081101561044c57600080fd5b508035906020810135906001600160a01b0360408201351690606081019061ffff610100820135811691610120013516611093565b6101eb6004803603602081101561049757600080fd5b503561146b565b610233600480360360408110156104b457600080fd5b506001600160a01b0381351690602001351515611486565b6101ba611517565b6104f1600480360360208110156104ea57600080fd5b5035611520565b604080519d8e5260208e019c909c5261ffff9a8b168d8d0152988a1660608d015296891660808c015267ffffffffffffffff95861660a08c01529390941660c08a0152951660e088015261010087019490945261012086015261014085019290925261016084019190915261018083015251908190036101a00190f35b6102336004803603608081101561058457600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156105bf57600080fd5b8201836020820111156105d157600080fd5b803590602001918460018302840111640100000000831117156105f357600080fd5b5090925090506115b5565b61023d6004803603602081101561061457600080fd5b50356001600160a01b031661160e565b6101ba6004803603604081101561063a57600080fd5b506001600160a01b0381358116916020013516611620565b604080517f737570706f727473496e74657266616365286279746573342900000000000000815290519081900360190190206000906001600160e01b0319838116911614806107ed5750604051806021611a2082396040805191829003602101822073676574417070726f7665642875696e743235362960601b835281519283900360140183207f736574417070726f76616c466f72416c6c28616464726573732c626f6f6c29008452825193849003601f0184207f617070726f766528616464726573732c75696e7432353629000000000000000085529251938490036018018420919450928060256119a3823960405190819003602501812091508060296119c88239604051908190036029018120915080602f6119f18239602f019050604051809103902060405180806f6f776e65724f662875696e743235362960801b8152506010019050604051809103902060405180807162616c616e63654f6628616464726573732960701b8152506012019050604051809103902018181818181818186001600160e01b031916826001600160e01b031916145b90505b919050565b6000908152600460205260409020546001600160a01b031690565b60005460ff161561082057600080fd5b6000818152600360205260409020546001600160a01b03168061084257600080fd5b336001600160a01b038216148061087c57506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b61088557600080fd5b61088f828461164e565b60405182906001600160a01b0385169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590600090a4505050565b60015490565b60005460ff16156108e257600080fd5b806001548111156108f257600080fd5b6000818152600360205260409020546001600160a01b031661091357600080fd5b60008281526003602052604090205482906001600160a01b03163381148061095157506000828152600460205260409020546001600160a01b031633145b8061097f57506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b61098857600080fd5b6000848152600360205260409020546001600160a01b0316806109aa57600080fd5b6001600160a01b0386166109bd57600080fd5b806001600160a01b0316876001600160a01b0316146109db57600080fd5b6109e687878761167c565b50505050505050565b60005461010090046001600160a01b03163314610a0b57600080fd5b60005460ff16610a1a57600080fd5b6000805460ff19169055565b60005460ff1615610a3657600080fd5b80600154811115610a4657600080fd5b6000818152600360205260409020546001600160a01b0316610a6757600080fd5b600082815260076020526040902054829060ff1615610a8557600080fd5b60005461010090046001600160a01b0316331480610ab257503360009081526006602052604090205460ff165b610abb57600080fd5b8860018481548110610ac957fe5b9060005260206000209060080201600001819055508760018481548110610aec57fe5b9060005260206000209060080201600101819055508660018481548110610b0f57fe5b906000526020600020906008020160020160006101000a81548161ffff021916908361ffff1602179055508460018481548110610b4857fe5b906000526020600020906008020160020160026101000a81548161ffff021916908361ffff1602179055508360018481548110610b8157fe5b906000526020600020906008020160020160046101000a81548161ffff021916908361ffff1602179055504260018481548110610bba57fe5b9060005260206000209060080201600201600e6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506001808481548110610bff57fe5b600091825260208220600260089092020101805461ffff600160b01b80830482169095011690930261ffff60b01b19909316929092179091558690602002013560018481548110610c4c57fe5b6000918252602090912060036008909202010155856001602002013560018481548110610c7557fe5b6000918252602090912060046008909202010155856002602002013560018481548110610c9e57fe5b6000918252602090912060056008909202010155856003602002013560018481548110610cc757fe5b6000918252602090912060066008909202010155856004602002013560018481548110610cf057fe5b6000918252602080832060076008909302018201939093558582526003835260408083205491845291829020805460ff1916600117905581516001600160a01b0390911680825292810186905281517fbc61053f4f88dc484aeb10cf34cfae7e1d37a421160be89548c887bdc8d024e4929181900390910190a150505050505050505050565b6000805461010090046001600160a01b03163314610d9357600080fd5b506001600160a01b031660009081526006602052604090205460ff1690565b60076020526000908152604090205460ff1681565b60005460ff1615610dd757600080fd5b610df283838360405180602001604052806000815250611743565b505050565b6000818152600360205260409020546001600160a01b0316806107f057600080fd5b60005461010090046001600160a01b03163314610e3557600080fd5b60005460ff1615610e4557600080fd5b6000805460ff19166001179055565b60005461010090046001600160a01b03163314610e7057600080fd5b6001600160a01b038116610e8357600080fd5b600080546040516001600160a01b038085169361010090930416917ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec691a3600080546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b031660009081526002602052604090205490565b60005461010090046001600160a01b031681565b6004602052600090815260409020546001600160a01b031681565b60005461010090046001600160a01b03163314610f4f57600080fd5b6001600160a01b038216610f6257600080fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b60005460ff1615610f9d57600080fd5b80600154811115610fad57600080fd5b6000818152600360205260409020546001600160a01b0316610fce57600080fd5b600082815260076020526040902054829060ff16610feb57600080fd5b60005461010090046001600160a01b031633148061101857503360009081526006602052604090205460ff165b61102157600080fd5b6000838152600360209081526040808320546007835292819020805460ff1916905580513381526001600160a01b039093169183018290528281018690525190917f25122f847b56690fad5866b787b9ed8c196464dc4751a87f191216572ee9997c919081900360600190a150505050565b60005460ff16156110a357600080fd5b60005461010090046001600160a01b03163314806110d057503360009081526006602052604090205460ff165b6110d957600080fd5b6001600160a01b0384166110ec57600080fd5b600154640100000000116110ff57600080fd5b42611108611916565b604051806101a00160405280898152602001888152602001600161ffff1681526020018561ffff1681526020018461ffff1681526020018367ffffffffffffffff1681526020018367ffffffffffffffff168152602001600061ffff1681526020018660006005811061117757fe5b602002013581526020018660016005811061118e57fe5b60200201358152602001866002600581106111a557fe5b60200201358152602001866003600581106111bc57fe5b60200201358152602001866004600581106111d357fe5b60209081029190910135909152600180548082018255600082815284517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf66008840290810191909155858501517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf78201556040808701517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf88301805460608a015160808b015160a08c015160c08d015160e08e015161ffff1990951661ffff9788161763ffff0000191662010000948816949094029390931765ffff00000000191664010000000092871692909202919091176dffffffffffffffff0000000000001916660100000000000067ffffffffffffffff928316021767ffffffffffffffff60701b1916600160701b91909216021761ffff60b01b1916600160b01b93909116929092029190911790556101008701517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf98301556101208701517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8301556101408701517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb8301556101608701517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfc8301556101808701517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfd909201919091558282526007909452928320805460ff191690921790915591925061141c90888361167c565b604080516001600160a01b03891681526020810183905281517f9aa2d998ac901406ec63005ab0e9cba288f4125ec3560bea4e268e4ae0adba3b929181900390910190a1505050505050505050565b6003602052600090815260409020546001600160a01b031681565b60005460ff161561149657600080fd5b6001600160a01b0382166114a957600080fd5b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b60005460ff1681565b6001818154811061152d57fe5b600091825260209091206008909102018054600182015460028301546003840154600485015460058601546006870154600790970154959750939561ffff80851696620100008604821696640100000000870483169667ffffffffffffffff66010000000000008204811697600160701b830490911696600160b01b9092049094169490928d565b60005460ff16156115c557600080fd5b61160785858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061174392505050565b5050505050565b60026020526000908152604090205481565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60009182526004602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6001600160a01b038083166000818152600260209081526040808320805460010190558583526003909152902080546001600160a01b03191690911790558316156116fd576001600160a01b038316600090815260026020908152604080832080546000190190558383526004909152902080546001600160a01b03191690555b80826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b8160015481111561175357600080fd5b6000818152600360205260409020546001600160a01b031661177457600080fd5b60008381526003602052604090205483906001600160a01b0316338114806117b257506000828152600460205260409020546001600160a01b031633145b806117e057506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6117e957600080fd5b6117f487878761167c565b853b8061180157506109e6565b60405163785cf2dd60e11b81526001600160a01b038981166004830190815260248301899052606060448401908152885160648501528851600094938c169363f0b9e5ba938e938d938d936084019060208501908083838d5b8381101561187257818101518382015260200161185a565b50505050905090810190601f16801561189f5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156118c057600080fd5b505af11580156118d4573d6000803e3d6000fd5b505050506040513d60208110156118ea57600080fd5b5051905063785cf2dd60e11b6001600160e01b031982161461190b57600080fd5b505050505050505050565b604051806101a001604052806000815260200160008152602001600061ffff168152602001600061ffff168152602001600061ffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600061ffff1681526020016000815260200160008152602001600081526020016000815260200160008152509056fe7472616e7366657246726f6d28616464726573732c616464726573732c75696e7432353629736166655472616e7366657246726f6d28616464726573732c616464726573732c75696e7432353629736166655472616e7366657246726f6d28616464726573732c616464726573732c75696e743235362c6279746573296973417070726f766564466f72416c6c28616464726573732c6164647265737329a265627a7a7231582015c0410300272ef04cfac5f5463ef477d435075b99f2a9f53f6a4dda7af340ae64736f6c634300050b0032

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de5780639c1bd4ad11610097578063b5d44e1b11610071578063b5d44e1b146104d4578063b88d4fde1461056e578063cec21acb146105fe578063e985e9c5146106245761018e565b80639c1bd4ad14610481578063a22cb4651461049e578063b187bd26146104cc5761018e565b806370a082311461039f57806381830593146103c557806381c08bce146103cd5780638638aa3f146103ea57806391a50aa414610418578063956436a4146104355761018e565b806331865e771161014b57806342842e0e1161012557806342842e0e1461031e5780636352211e1461035457806367d0661d14610371578063704b6c02146103795761018e565b806331865e771461028d57806331bfdcf7146102db5780633e9a02e4146103015761018e565b806301ffc9a714610193578063081812fc146101ce578063095ea7b314610207578063121db5871461023557806323b872dd1461024f57806330efb8d314610285575b600080fd5b6101ba600480360360208110156101a957600080fd5b50356001600160e01b031916610652565b604080519115158252519081900360200190f35b6101eb600480360360208110156101e457600080fd5b50356107f5565b604080516001600160a01b039092168252519081900360200190f35b6102336004803603604081101561021d57600080fd5b506001600160a01b038135169060200135610810565b005b61023d6108cc565b60408051918252519081900360200190f35b6102336004803603606081101561026557600080fd5b506001600160a01b038135811691602081013590911690604001356108d2565b6102336109ef565b61023360048036036101608110156102a457600080fd5b5080359060208101359061ffff60408201358116916060810191610100820135811691610120810135909116906101400135610a26565b6101ba600480360360208110156102f157600080fd5b50356001600160a01b0316610d76565b6101ba6004803603602081101561031757600080fd5b5035610db2565b6102336004803603606081101561033457600080fd5b506001600160a01b03813581169160208101359091169060400135610dc7565b6101eb6004803603602081101561036a57600080fd5b5035610df7565b610233610e19565b6102336004803603602081101561038f57600080fd5b50356001600160a01b0316610e54565b61023d600480360360208110156103b557600080fd5b50356001600160a01b0316610ee9565b6101eb610f04565b6101eb600480360360208110156103e357600080fd5b5035610f18565b6102336004803603604081101561040057600080fd5b506001600160a01b0381351690602001351515610f33565b6102336004803603602081101561042e57600080fd5b5035610f8d565b610233600480360361014081101561044c57600080fd5b508035906020810135906001600160a01b0360408201351690606081019061ffff610100820135811691610120013516611093565b6101eb6004803603602081101561049757600080fd5b503561146b565b610233600480360360408110156104b457600080fd5b506001600160a01b0381351690602001351515611486565b6101ba611517565b6104f1600480360360208110156104ea57600080fd5b5035611520565b604080519d8e5260208e019c909c5261ffff9a8b168d8d0152988a1660608d015296891660808c015267ffffffffffffffff95861660a08c01529390941660c08a0152951660e088015261010087019490945261012086015261014085019290925261016084019190915261018083015251908190036101a00190f35b6102336004803603608081101561058457600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156105bf57600080fd5b8201836020820111156105d157600080fd5b803590602001918460018302840111640100000000831117156105f357600080fd5b5090925090506115b5565b61023d6004803603602081101561061457600080fd5b50356001600160a01b031661160e565b6101ba6004803603604081101561063a57600080fd5b506001600160a01b0381358116916020013516611620565b604080517f737570706f727473496e74657266616365286279746573342900000000000000815290519081900360190190206000906001600160e01b0319838116911614806107ed5750604051806021611a2082396040805191829003602101822073676574417070726f7665642875696e743235362960601b835281519283900360140183207f736574417070726f76616c466f72416c6c28616464726573732c626f6f6c29008452825193849003601f0184207f617070726f766528616464726573732c75696e7432353629000000000000000085529251938490036018018420919450928060256119a3823960405190819003602501812091508060296119c88239604051908190036029018120915080602f6119f18239602f019050604051809103902060405180806f6f776e65724f662875696e743235362960801b8152506010019050604051809103902060405180807162616c616e63654f6628616464726573732960701b8152506012019050604051809103902018181818181818186001600160e01b031916826001600160e01b031916145b90505b919050565b6000908152600460205260409020546001600160a01b031690565b60005460ff161561082057600080fd5b6000818152600360205260409020546001600160a01b03168061084257600080fd5b336001600160a01b038216148061087c57506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b61088557600080fd5b61088f828461164e565b60405182906001600160a01b0385169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590600090a4505050565b60015490565b60005460ff16156108e257600080fd5b806001548111156108f257600080fd5b6000818152600360205260409020546001600160a01b031661091357600080fd5b60008281526003602052604090205482906001600160a01b03163381148061095157506000828152600460205260409020546001600160a01b031633145b8061097f57506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b61098857600080fd5b6000848152600360205260409020546001600160a01b0316806109aa57600080fd5b6001600160a01b0386166109bd57600080fd5b806001600160a01b0316876001600160a01b0316146109db57600080fd5b6109e687878761167c565b50505050505050565b60005461010090046001600160a01b03163314610a0b57600080fd5b60005460ff16610a1a57600080fd5b6000805460ff19169055565b60005460ff1615610a3657600080fd5b80600154811115610a4657600080fd5b6000818152600360205260409020546001600160a01b0316610a6757600080fd5b600082815260076020526040902054829060ff1615610a8557600080fd5b60005461010090046001600160a01b0316331480610ab257503360009081526006602052604090205460ff165b610abb57600080fd5b8860018481548110610ac957fe5b9060005260206000209060080201600001819055508760018481548110610aec57fe5b9060005260206000209060080201600101819055508660018481548110610b0f57fe5b906000526020600020906008020160020160006101000a81548161ffff021916908361ffff1602179055508460018481548110610b4857fe5b906000526020600020906008020160020160026101000a81548161ffff021916908361ffff1602179055508360018481548110610b8157fe5b906000526020600020906008020160020160046101000a81548161ffff021916908361ffff1602179055504260018481548110610bba57fe5b9060005260206000209060080201600201600e6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506001808481548110610bff57fe5b600091825260208220600260089092020101805461ffff600160b01b80830482169095011690930261ffff60b01b19909316929092179091558690602002013560018481548110610c4c57fe5b6000918252602090912060036008909202010155856001602002013560018481548110610c7557fe5b6000918252602090912060046008909202010155856002602002013560018481548110610c9e57fe5b6000918252602090912060056008909202010155856003602002013560018481548110610cc757fe5b6000918252602090912060066008909202010155856004602002013560018481548110610cf057fe5b6000918252602080832060076008909302018201939093558582526003835260408083205491845291829020805460ff1916600117905581516001600160a01b0390911680825292810186905281517fbc61053f4f88dc484aeb10cf34cfae7e1d37a421160be89548c887bdc8d024e4929181900390910190a150505050505050505050565b6000805461010090046001600160a01b03163314610d9357600080fd5b506001600160a01b031660009081526006602052604090205460ff1690565b60076020526000908152604090205460ff1681565b60005460ff1615610dd757600080fd5b610df283838360405180602001604052806000815250611743565b505050565b6000818152600360205260409020546001600160a01b0316806107f057600080fd5b60005461010090046001600160a01b03163314610e3557600080fd5b60005460ff1615610e4557600080fd5b6000805460ff19166001179055565b60005461010090046001600160a01b03163314610e7057600080fd5b6001600160a01b038116610e8357600080fd5b600080546040516001600160a01b038085169361010090930416917ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec691a3600080546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b031660009081526002602052604090205490565b60005461010090046001600160a01b031681565b6004602052600090815260409020546001600160a01b031681565b60005461010090046001600160a01b03163314610f4f57600080fd5b6001600160a01b038216610f6257600080fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b60005460ff1615610f9d57600080fd5b80600154811115610fad57600080fd5b6000818152600360205260409020546001600160a01b0316610fce57600080fd5b600082815260076020526040902054829060ff16610feb57600080fd5b60005461010090046001600160a01b031633148061101857503360009081526006602052604090205460ff165b61102157600080fd5b6000838152600360209081526040808320546007835292819020805460ff1916905580513381526001600160a01b039093169183018290528281018690525190917f25122f847b56690fad5866b787b9ed8c196464dc4751a87f191216572ee9997c919081900360600190a150505050565b60005460ff16156110a357600080fd5b60005461010090046001600160a01b03163314806110d057503360009081526006602052604090205460ff165b6110d957600080fd5b6001600160a01b0384166110ec57600080fd5b600154640100000000116110ff57600080fd5b42611108611916565b604051806101a00160405280898152602001888152602001600161ffff1681526020018561ffff1681526020018461ffff1681526020018367ffffffffffffffff1681526020018367ffffffffffffffff168152602001600061ffff1681526020018660006005811061117757fe5b602002013581526020018660016005811061118e57fe5b60200201358152602001866002600581106111a557fe5b60200201358152602001866003600581106111bc57fe5b60200201358152602001866004600581106111d357fe5b60209081029190910135909152600180548082018255600082815284517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf66008840290810191909155858501517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf78201556040808701517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf88301805460608a015160808b015160a08c015160c08d015160e08e015161ffff1990951661ffff9788161763ffff0000191662010000948816949094029390931765ffff00000000191664010000000092871692909202919091176dffffffffffffffff0000000000001916660100000000000067ffffffffffffffff928316021767ffffffffffffffff60701b1916600160701b91909216021761ffff60b01b1916600160b01b93909116929092029190911790556101008701517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf98301556101208701517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8301556101408701517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb8301556101608701517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfc8301556101808701517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfd909201919091558282526007909452928320805460ff191690921790915591925061141c90888361167c565b604080516001600160a01b03891681526020810183905281517f9aa2d998ac901406ec63005ab0e9cba288f4125ec3560bea4e268e4ae0adba3b929181900390910190a1505050505050505050565b6003602052600090815260409020546001600160a01b031681565b60005460ff161561149657600080fd5b6001600160a01b0382166114a957600080fd5b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b60005460ff1681565b6001818154811061152d57fe5b600091825260209091206008909102018054600182015460028301546003840154600485015460058601546006870154600790970154959750939561ffff80851696620100008604821696640100000000870483169667ffffffffffffffff66010000000000008204811697600160701b830490911696600160b01b9092049094169490928d565b60005460ff16156115c557600080fd5b61160785858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061174392505050565b5050505050565b60026020526000908152604090205481565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60009182526004602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6001600160a01b038083166000818152600260209081526040808320805460010190558583526003909152902080546001600160a01b03191690911790558316156116fd576001600160a01b038316600090815260026020908152604080832080546000190190558383526004909152902080546001600160a01b03191690555b80826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b8160015481111561175357600080fd5b6000818152600360205260409020546001600160a01b031661177457600080fd5b60008381526003602052604090205483906001600160a01b0316338114806117b257506000828152600460205260409020546001600160a01b031633145b806117e057506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6117e957600080fd5b6117f487878761167c565b853b8061180157506109e6565b60405163785cf2dd60e11b81526001600160a01b038981166004830190815260248301899052606060448401908152885160648501528851600094938c169363f0b9e5ba938e938d938d936084019060208501908083838d5b8381101561187257818101518382015260200161185a565b50505050905090810190601f16801561189f5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156118c057600080fd5b505af11580156118d4573d6000803e3d6000fd5b505050506040513d60208110156118ea57600080fd5b5051905063785cf2dd60e11b6001600160e01b031982161461190b57600080fd5b505050505050505050565b604051806101a001604052806000815260200160008152602001600061ffff168152602001600061ffff168152602001600061ffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600061ffff1681526020016000815260200160008152602001600081526020016000815260200160008152509056fe7472616e7366657246726f6d28616464726573732c616464726573732c75696e7432353629736166655472616e7366657246726f6d28616464726573732c616464726573732c75696e7432353629736166655472616e7366657246726f6d28616464726573732c616464726573732c75696e743235362c6279746573296973417070726f766564466f72416c6c28616464726573732c6164647265737329a265627a7a7231582015c0410300272ef04cfac5f5463ef477d435075b99f2a9f53f6a4dda7af340ae64736f6c634300050b0032

Deployed Bytecode Sourcemap

2253:9805:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2253:9805:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5686:195;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5686:195:0;-1:-1:-1;;;;;;5686:195:0;;:::i;:::-;;;;;;;;;;;;;;;;;;11772:122;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11772:122:0;;:::i;:::-;;;;-1:-1:-1;;;;;11772:122:0;;;;;;;;;;;;;;11062:354;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11062:354:0;;;;;;;;:::i;:::-;;5528:103;;;:::i;:::-;;;;;;;;;;;;;;;;10519:345;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10519:345:0;;;;;;;;;;;;;;;;;:::i;2160:86::-;;;:::i;6557:1005::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;6557:1005:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6047:118::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6047:118:0;-1:-1:-1;;;;;6047:118:0;;:::i;3362:43::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3362:43:0;;:::i;10308:156::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10308:156:0;;;;;;;;;;;;;;;;;:::i;9204:169::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9204:169:0;;:::i;2066:86::-;;;:::i;1865:193::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1865:193:0;-1:-1:-1;;;;;1865:193:0;;:::i;9038:126::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9038:126:0;-1:-1:-1;;;;;9038:126:0;;:::i;1429:24::-;;;:::i;3040:52::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3040:52:0;;:::i;5889:150::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5889:150:0;;;;;;;;;;:::i;8669:323::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8669:323:0;;:::i;7594:1019::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7594:1019:0;;;;;;;;-1:-1:-1;;;;;7594:1019:0;;;;;;;;;;;;;;;;;;;;;;;:::i;2930:49::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2930:49:0;;:::i;11500:264::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11500:264:0;;;;;;;;;;:::i;1394:28::-;;;:::i;2716:23::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2716:23:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10121:179;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;10121:179:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;10121:179:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;10121:179:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;10121:179:0;;-1:-1:-1;10121:179:0;-1:-1:-1;10121:179:0;:::i;2827:55::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2827:55:0;-1:-1:-1;;;;;2827:55:0;;:::i;11902:153::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11902:153:0;;;;;;;;;;:::i;5686:195::-;3540:38;;;;;;;;;;;;;;;;5757:4;;-1:-1:-1;;;;;;5783:41:0;;;;;;;5782:90;;-1:-1:-1;4144:46:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4091:33:0;;;;;;;;;;;;4027:44;;;;;;;;;;;;;3970:37;;;;;;;;;;;;;4144:46;;-1:-1:-1;4091:33:0;3970:37;3900:50;;3970:37;3900:50;;;;;;;;;;;;-1:-1:-1;3900:50:0;3826:54;;3900:50;3826:54;;;;;;;;;;;;-1:-1:-1;3826:54:0;3746:60;;3826:54;3746:60;;;;;;;;;;;;3697:29;;;;-1:-1:-1;;;3697:29:0;;;;;;;;;;;;;;3646:31;;;;-1:-1:-1;;;3646:31:0;;;;;;;;;;;;;;3639:88;:168;:242;:312;:369;:433;:486;:552;-1:-1:-1;;;;;5830:41:0;;:12;-1:-1:-1;;;;;5830:41:0;;;5782:90;5774:99;;5686:195;;;;:::o;11772:122::-;11834:7;11860:26;;;:16;:26;;;;;;-1:-1:-1;;;;;11860:26:0;;11772:122::o;11062:354::-;1752:8;;;;1751:9;1743:18;;;;;;11149:13;11165:23;;;:13;:23;;;;;;-1:-1:-1;;;;;11165:23:0;11207:19;11199:28;;;;;;11246:10;-1:-1:-1;;;;;11246:19:0;;;;:61;;-1:-1:-1;;;;;;11269:26:0;;;;;;:19;:26;;;;;;;;11296:10;11269:38;;;;;;;;;;11246:61;11238:70;;;;;;11321:29;11330:8;11340:9;11321:8;:29::i;:::-;11366:42;;11399:8;;-1:-1:-1;;;;;11366:42:0;;;11375:10;;11366:42;;;;;1772:1;11062:354;;:::o;5528:103::-;5606:9;:16;5528:103;:::o;10519:345::-;1752:8;;;;1751:9;1743:18;;;;;;10623:8;4931:9;:16;4919:28;;;4894:54;;;;;;5002:1;4967:23;;;:13;:23;;;;;;-1:-1:-1;;;;;4967:23:0;4959:46;;;;;;5298:13;5314:23;;;:13;:23;;;;;;10645:8;;-1:-1:-1;;;;;5314:23:0;5356:10;:19;;;:63;;-1:-1:-1;5393:26:0;;;;:16;:26;;;;;;-1:-1:-1;;;;;5393:26:0;5379:10;:40;5356:63;:105;;;-1:-1:-1;;;;;;5423:26:0;;;;;;:19;:26;;;;;;;;5450:10;5423:38;;;;;;;;;;5356:105;5348:114;;;;;;10665:13;10681:23;;;:13;:23;;;;;;-1:-1:-1;;;;;10681:23:0;10723:19;10715:28;;;;;;-1:-1:-1;;;;;10762:17:0;;10754:26;;;;;;10808:5;-1:-1:-1;;;;;10799:14:0;:5;-1:-1:-1;;;;;10799:14:0;;10791:23;;;;;;10825:31;10835:5;10842:3;10847:8;10825:9;:31::i;:::-;5473:1;5016;;1772;10519:345;;;:::o;2160:86::-;1669:9;;;;;-1:-1:-1;;;;;1669:9:0;1655:10;:23;1647:32;;;;;;1828:8;;;;1820:17;;;;;;2233:5;2222:16;;-1:-1:-1;;2222:16:0;;;2160:86::o;6557:1005::-;1752:8;;;;1751:9;1743:18;;;;;;6728:8;4931:9;:16;4919:28;;;4894:54;;;;;;5002:1;4967:23;;;:13;:23;;;;;;-1:-1:-1;;;;;4967:23:0;4959:46;;;;;;5199:20;;;;:10;:20;;;;;;6751:8;;5199:20;;5198:21;5190:30;;;;;;6791:9;;;;;-1:-1:-1;;;;;6791:9:0;6779:10;:21;;:46;;-1:-1:-1;6814:10:0;6804:21;;;;:9;:21;;;;;;;;6779:46;6771:55;;;;;;6882:3;6847:9;6857:8;6847:19;;;;;;;;;;;;;;;;;;:32;;:38;;;;6930:6;6896:9;6906:8;6896:19;;;;;;;;;;;;;;;;;;:31;;:40;;;;6979:6;6947:9;6957:8;6947:19;;;;;;;;;;;;;;;;;;:29;;;:38;;;;;;;;;;;;;;;;;;7030:8;6996:9;7006:8;6996:19;;;;;;;;;;;;;;;;;;:31;;;:42;;;;;;;;;;;;;;;;;;7081:6;7049:9;7059:8;7049:19;;;;;;;;;;;;;;;;;;:29;;;:38;;;;;;;;;;;;;;;;;;7138:3;7098:9;7108:8;7098:19;;;;;;;;;;;;;;;;;;:30;;;:44;;;;;;;;;;;;;;;;;;7186:1;7153:9;7163:8;7153:19;;;;;;;;;;;;;;;:29;:19;;;;;:29;:34;;;-1:-1:-1;;;7153:34:0;;;;;;;;;;;;-1:-1:-1;;;;7153:34:0;;;;;;;;;;7226:5;;:8;;;;7198:9;7208:8;7198:19;;;;;;;;;;;;;;;;:25;:19;;;;;:25;:36;7273:5;7279:1;7273:8;;;;7245:9;7255:8;7245:19;;;;;;;;;;;;;;;;:25;:19;;;;;:25;:36;7320:5;7326:1;7320:8;;;;7292:9;7302:8;7292:19;;;;;;;;;;;;;;;;:25;:19;;;;;:25;:36;7367:5;7373:1;7367:8;;;;7339:9;7349:8;7339:19;;;;;;;;;;;;;;;;:25;:19;;;;;:25;:36;7414:5;7420:1;7414:8;;;;7386:9;7396:8;7386:19;;;;;;;;;;;;;;;;:25;:19;;;;;:25;;:36;;;;7451:23;;;:13;:23;;;;;;;7485:20;;;;;;;:27;;-1:-1:-1;;7485:27:0;7451:23;7485:27;;;7528:26;;-1:-1:-1;;;;;7451:23:0;;;7528:26;;;;;;;;;;;;;;;;;;;;;;5231:1;5016;1772;6557:1005;;;;;;;:::o;6047:118::-;6116:4;1669:9;;;;;-1:-1:-1;;;;;1669:9:0;1655:10;:23;1647:32;;;;;;-1:-1:-1;;;;;;6140:16:0;;;;;:9;:16;;;;;;;;;6047:118::o;3362:43::-;;;;;;;;;;;;;;;:::o;10308:156::-;1752:8;;;;1751:9;1743:18;;;;;;10413:43;10431:5;10438:3;10443:8;10413:43;;;;;;;;;;;;:17;:43::i;:::-;10308:156;;;:::o;9204:169::-;9262:13;9301:23;;;:13;:23;;;;;;-1:-1:-1;;;;;9301:23:0;9345:19;9337:28;;;;;2066:86;1669:9;;;;;-1:-1:-1;;;;;1669:9:0;1655:10;:23;1647:32;;;;;;1752:8;;;;1751:9;1743:18;;;;;;2129:8;:15;;-1:-1:-1;;2129:15:0;2140:4;2129:15;;;2066:86::o;1865:193::-;1669:9;;;;;-1:-1:-1;;;;;1669:9:0;1655:10;:23;1647:32;;;;;;-1:-1:-1;;;;;1940:23:0;;1932:32;;;;;;1997:9;;;1980:38;;-1:-1:-1;;;;;1980:38:0;;;;1997:9;;;;;;1980:38;;;2029:9;:21;;-1:-1:-1;;;;;2029:21:0;;;;;-1:-1:-1;;;;;;2029:21:0;;;;;;;;;1865:193::o;9038:126::-;-1:-1:-1;;;;;9129:27:0;9096:13;9129:27;;;:19;:27;;;;;;;9038:126::o;1429:24::-;;;;;;-1:-1:-1;;;;;1429:24:0;;:::o;3040:52::-;;;;;;;;;;;;-1:-1:-1;;;;;3040:52:0;;:::o;5889:150::-;1669:9;;;;;-1:-1:-1;;;;;1669:9:0;1655:10;:23;1647:32;;;;;;-1:-1:-1;;;;;5975:19:0;;5967:28;;;;;;-1:-1:-1;;;;;6006:16:0;;;;;;;;:9;:16;;;;;:25;;-1:-1:-1;;6006:25:0;;;;;;;;;;5889:150::o;8669:323::-;1752:8;;;;1751:9;1743:18;;;;;;8745:8;4931:9;:16;4919:28;;;4894:54;;;;;;5002:1;4967:23;;;:13;:23;;;;;;-1:-1:-1;;;;;4967:23:0;4959:46;;;;;;5090:20;;;;:10;:20;;;;;;8766:8;;5090:20;;5082:29;;;;;;8807:9;;;;;-1:-1:-1;;;;;8807:9:0;8795:10;:21;;:46;;-1:-1:-1;8830:10:0;8820:21;;;;:9;:21;;;;;;;;8795:46;8787:55;;;;;;8853:13;8869:23;;;:13;:23;;;;;;;;;8903:10;:20;;;;;;:28;;-1:-1:-1;;8903:28:0;;;8947:37;;8958:10;8947:37;;-1:-1:-1;;;;;8869:23:0;;;8947:37;;;;;;;;;;;;;8869:23;;8947:37;;;;;;;;;;5122:1;5016;1772;8669:323;:::o;7594:1019::-;1752:8;;;;1751:9;1743:18;;;;;;7770:9;;;;;-1:-1:-1;;;;;7770:9:0;7758:10;:21;;:46;;-1:-1:-1;7793:10:0;7783:21;;;;:9;:21;;;;;;;;7758:46;7750:55;;;;;;-1:-1:-1;;;;;7824:20:0;;7816:29;;;;;;7864:9;:16;7883:10;-1:-1:-1;7856:38:0;;;;;;7943:3;7958:20;;:::i;:::-;7981:421;;;;;;;;8015:3;7981:421;;;;8046:6;7981:421;;;;8078:1;7981:421;;;;;;8106:8;7981:421;;;;;;8139:6;7981:421;;;;;;8171:11;7981:421;;;;;;8208:11;7981:421;;;;;;8244:1;7981:421;;;;;;8266:5;8272:1;8266:8;;;;;;;;;;;7981:421;;;;8295:5;8301:1;8295:8;;;;;;;;;;;7981:421;;;;8324:5;8330:1;8324:8;;;;;;;;;;;7981:421;;;;8353:5;8359:1;8353:8;;;;;;;;;;;7981:421;;;;8382:5;8388:1;8382:8;;;;;;;;;;;;;;;;7981:421;;;8460:1;27:10:-1;;23:18;;;45:23;;-1:-1;8433:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8433:24:0;;;;;;;;-1:-1:-1;;8433:24:0;;;;;;;;;;;;;-1:-1:-1;;8433:24:0;;;;;;;;;;;;;-1:-1:-1;;8433:24:0;;;;;;;;-1:-1:-1;;;;8433:24:0;-1:-1:-1;;;8433:24:0;;;;;;-1:-1:-1;;;;8433:24:0;-1:-1:-1;;;8433:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8472:21;;;8433:24;8472:21;;;;;;:28;;-1:-1:-1;;8472:28:0;;;;;;;8433:24;;-1:-1:-1;8521:40:0;;8543:6;27:10:-1;8521:9:0;:40::i;:::-;8577:28;;;-1:-1:-1;;;;;8577:28:0;;;;;;;;;;;;;;;;;;;;;;;1772:1;;;7594:1019;;;;;;:::o;2930:49::-;;;;;;;;;;;;-1:-1:-1;;;;;2930:49:0;;:::o;11500:264::-;1752:8;;;;1751:9;1743:18;;;;;;-1:-1:-1;;;;;11603:23:0;;11595:32;;;;;;11658:10;11638:31;;;;:19;:31;;;;;;;;-1:-1:-1;;;;;11638:42:0;;;;;;;;;;;;:54;;-1:-1:-1;;11638:54:0;;;;;;;;;;11708:48;;;;;;;11638:42;;11658:10;11708:48;;;;;;;;;;;11500:264;;:::o;1394:28::-;;;;;;:::o;2716:23::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2716:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2716:23:0;;;;;;-1:-1:-1;;;2716:23:0;;;;;;;;;;:::o;10121:179::-;1752:8;;;;1751:9;1743:18;;;;;;10247:45;10265:5;10272:3;10277:8;10287:4;;10247:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;10247:17:0;;-1:-1:-1;;;10247:45:0:i;:::-;10121:179;;;;;:::o;2827:55::-;;;;;;;;;;;;;:::o;11902:153::-;-1:-1:-1;;;;;12009:27:0;;;11986:4;12009:27;;;:19;:27;;;;;;;;:38;;;;;;;;;;;;;;;11902:153::o;10872:121::-;10947:26;;;;:16;:26;;;;;;:38;;-1:-1:-1;;;;;;10947:38:0;-1:-1:-1;;;;;10947:38:0;;;;;;;;;10872:121::o;6173:347::-;-1:-1:-1;;;;;6258:24:0;;;;;;;:19;:24;;;;;;;;:26;;;;;;6295:23;;;:13;:23;;;;;:29;;-1:-1:-1;;;;;;6295:29:0;;;;;;6341:19;;;6337:128;;-1:-1:-1;;;;;6377:26:0;;;;;;:19;:26;;;;;;;;:28;;-1:-1:-1;;6377:28:0;;;6427:26;;;:16;:26;;;;;6420:33;;-1:-1:-1;;;;;;6420:33:0;;;6337:128;6503:8;6498:3;-1:-1:-1;;;;;6482:30:0;6491:5;-1:-1:-1;;;;;6482:30:0;;;;;;;;;;;6173:347;;;:::o;9381:626::-;9495:8;4931:9;:16;4919:28;;;4894:54;;;;;;5002:1;4967:23;;;:13;:23;;;;;;-1:-1:-1;;;;;4967:23:0;4959:46;;;;;;5298:13;5314:23;;;:13;:23;;;;;;9517:8;;-1:-1:-1;;;;;5314:23:0;5356:10;:19;;;:63;;-1:-1:-1;5393:26:0;;;;:16;:26;;;;;;-1:-1:-1;;;;;5393:26:0;5379:10;:40;5356:63;:105;;;-1:-1:-1;;;;;;5423:26:0;;;;;;:19;:26;;;;;;;;5450:10;5423:38;;;;;;;;;;5356:105;5348:114;;;;;;9537:31;9547:5;9554:3;9559:8;9537:9;:31::i;:::-;9700:16;;9732:13;9728:52;;9762:7;;;9728:52;9808:64;;-1:-1:-1;;;9808:64:0;;-1:-1:-1;;;;;9808:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9792:13;;9808:41;;;;;;9850:5;;9857:8;;9867:4;;9808:64;;;;;;;;;;9792:13;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9808:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9808:64:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9808:64:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9808:64:0;;-1:-1:-1;;;;;;;;;;9978:20:0;;;9970:29;;;;;;5473:1;;5016;;9381:626;;;;;:::o;2253:9805::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://15c0410300272ef04cfac5f5463ef477d435075b99f2a9f53f6a4dda7af340ae

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

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