ETH Price: $2,264.08 (+5.56%)

Colexion (CLXN)
 

Overview

TokenID

19

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Colexion

Compiler Version
v0.5.0+commit.1d4f565a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-07-09
*/

/**
 *Submitted for verification at Etherscan.io on 2021-07-03
*/

pragma solidity ^0.5.0;
interface IERC165 {
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

pragma solidity ^0.5.0;
contract IERC721 is IERC165 {
    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) public view returns (uint256 balance);

    function ownerOf(uint256 tokenId) public view returns (address owner);

    function safeTransferFrom(address from, address to, uint256 tokenId) public;
    function transferFrom(address from, address to, uint256 tokenId) public;
    function approve(address to, uint256 tokenId) public;
    function getApproved(uint256 tokenId) public view returns (address operator);

    function setApprovalForAll(address operator, bool _approved) public;
    function isApprovedForAll(address owner, address operator) public view returns (bool);


    function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public;
}


pragma solidity ^0.5.0;
contract IERC721Receiver {
    function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data)
    public returns (bytes4);
}


pragma solidity ^0.5.0;
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }


    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }


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


pragma solidity ^0.5.0;
library Address {

    function isContract(address account) internal view returns (bool) {

        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }
}


pragma solidity ^0.5.0;
library Counters {
    using SafeMath for uint256;

    struct Counter {
        uint256 _value; // default: 0
    }

    function current(Counter storage counter) internal view returns (uint256) {
        return counter._value;
    }

    function increment(Counter storage counter) internal {
        counter._value += 1;
    }

    function decrement(Counter storage counter) internal {
        counter._value = counter._value.sub(1);
    }
}

pragma solidity ^0.5.0;
contract ERC165 is IERC165 {
    bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;
    mapping(bytes4 => bool) private _supportedInterfaces;

    constructor () internal {
    }

    function supportsInterface(bytes4 interfaceId) external view returns (bool) {
        return _supportedInterfaces[interfaceId];
    }

    function _registerInterface(bytes4 interfaceId) internal {
        require(interfaceId != 0xffffffff, "ERC165: invalid interface id");
        _supportedInterfaces[interfaceId] = true;
    }
}

pragma solidity ^0.5.0;
contract ERC721 is ERC165, IERC721 {
    using SafeMath for uint256;
    using Address for address;
    using Counters for Counters.Counter;

    bytes4 private constant _ERC721_RECEIVED = 0x150b7a02;

    mapping (uint256 => address) private _tokenOwner;
    mapping (uint256 => address) private _tokenApprovals;
    mapping (address => Counters.Counter) private _ownedTokensCount;
    mapping (address => mapping (address => bool)) private _operatorApprovals;

    bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;

    constructor () public {
    }

    function balanceOf(address owner) public view returns (uint256) {
        require(owner != address(0), "ERC721: balance query for the zero address");
        return _ownedTokensCount[owner].current();
    }

    function ownerOf(uint256 tokenId) public view returns (address) {
        address owner = _tokenOwner[tokenId];
        require(owner != address(0), "ERC721: owner query for nonexistent token");
        return owner;
    }

    function approve(address to, uint256 tokenId) public {
        address owner = ownerOf(tokenId);
        require(to != owner, "ERC721: approval to current owner");

        require(msg.sender == owner || isApprovedForAll(owner, msg.sender),
            "ERC721: approve caller is not owner nor approved for all"
        );

        _tokenApprovals[tokenId] = to;
        emit Approval(owner, to, tokenId);
    }

    function getApproved(uint256 tokenId) public view returns (address) {
        require(_exists(tokenId), "ERC721: approved query for nonexistent token");

        return _tokenApprovals[tokenId];
    }

    function setApprovalForAll(address to, bool approved) public {
        require(to != msg.sender, "ERC721: approve to caller");
        _operatorApprovals[msg.sender][to] = approved;
        emit ApprovalForAll(msg.sender, to, approved);
    }

    function isApprovedForAll(address owner, address operator) public view returns (bool) {
        return _operatorApprovals[owner][operator];
    }

    function transferFrom(address from, address to, uint256 tokenId) public {
        //solhint-disable-next-line max-line-length
        require(_isApprovedOrOwner(from, tokenId), "ERC721: transfer caller is not owner nor approved");

        _transferFrom(from, to, tokenId);
    }

    function safeTransferFrom(address from, address to, uint256 tokenId) public {
        safeTransferFrom(from, to, tokenId, "");
    }

    function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public {
        transferFrom(from, to, tokenId);
        require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer");
    }

    function _exists(uint256 tokenId) internal view returns (bool) {
        address owner = _tokenOwner[tokenId];
        return owner != address(0);
    }

    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {
        require(_exists(tokenId), "ERC721: operator query for nonexistent token");
        address owner = ownerOf(tokenId);
        return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));
    }

    function _mint(address to, uint256 tokenId) internal {
        require(to != address(0), "ERC721: mint to the zero address");
        require(!_exists(tokenId), "ERC721: token already minted");

        _tokenOwner[tokenId] = to;
        _ownedTokensCount[to].increment();

        emit Transfer(address(0), to, tokenId);
    }

    function _burn(address owner, uint256 tokenId) internal {
        require(ownerOf(tokenId) == owner, "ERC721: burn of token that is not own");

        _clearApproval(tokenId);

        _ownedTokensCount[owner].decrement();
        _tokenOwner[tokenId] = address(0);

        emit Transfer(owner, address(0), tokenId);
    }

    function _burn(uint256 tokenId) internal { _burn(ownerOf(tokenId), tokenId); }
    function _transferFrom(address from, address to, uint256 tokenId) internal {
        require(ownerOf(tokenId) == from, "ERC721: transfer of token that is not own");
        require(to != address(0), "ERC721: transfer to the zero address");

        _clearApproval(tokenId);

        _ownedTokensCount[from].decrement();
        _ownedTokensCount[to].increment();

        _tokenOwner[tokenId] = to;

        emit Transfer(from, to, tokenId);
    }

    function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data) internal returns (bool) {
        if (!to.isContract()) {
            return true;
        }

        bytes4 retval = IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data);
        return (retval == _ERC721_RECEIVED);
    }

    function _clearApproval(uint256 tokenId) private {
        if (_tokenApprovals[tokenId] != address(0)) {
            _tokenApprovals[tokenId] = address(0);
        }
    }
}


pragma solidity ^0.5.0;
contract IERC721Enumerable is IERC721 {
    function totalSupply() public view returns (uint256);
    function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256 tokenId);

    function tokenByIndex(uint256 index) public view returns (uint256);
}

pragma solidity ^0.5.0;
contract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {

    mapping(address => uint256[]) private _ownedTokens;
    mapping(uint256 => uint256) private _ownedTokensIndex;
    
    uint256[] private _allTokens;

    mapping(uint256 => uint256) private _allTokensIndex;


    bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63;

    constructor () public {
        // register the supported interface to conform to ERC721Enumerable via ERC165
        _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);
    }

    function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {
        require(index < balanceOf(owner), "ERC721Enumerable: owner index out of bounds");
        return _ownedTokens[owner][index];
    }

    function totalSupply() public view returns (uint256) {
        return _allTokens.length;
    }
    function tokenByIndex(uint256 index) public view returns (uint256) {
        require(index < totalSupply(), "ERC721Enumerable: global index out of bounds");
        return _allTokens[index];
    }
    function _transferFrom(address from, address to, uint256 tokenId) internal {
        super._transferFrom(from, to, tokenId);

        _removeTokenFromOwnerEnumeration(from, tokenId);

        _addTokenToOwnerEnumeration(to, tokenId);
    }

    function _mint(address to, uint256 tokenId) internal {
        super._mint(to, tokenId);

        _addTokenToOwnerEnumeration(to, tokenId);

        _addTokenToAllTokensEnumeration(tokenId);
    }

    function _burn(address owner, uint256 tokenId) internal {
        super._burn(owner, tokenId);

        _removeTokenFromOwnerEnumeration(owner, tokenId);
        // Since tokenId will be deleted, we can clear its slot in _ownedTokensIndex to trigger a gas refund
        _ownedTokensIndex[tokenId] = 0;

        _removeTokenFromAllTokensEnumeration(tokenId);
    }

    function _tokensOfOwner(address owner) internal view returns (uint256[] storage) {
        return _ownedTokens[owner];
    }

    function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {
        _ownedTokensIndex[tokenId] = _ownedTokens[to].length;
        _ownedTokens[to].push(tokenId);
    }

    function _addTokenToAllTokensEnumeration(uint256 tokenId) private {
        _allTokensIndex[tokenId] = _allTokens.length;
        _allTokens.push(tokenId);
    }

    function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {
        // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and
        // then delete the last slot (swap and pop).

        uint256 lastTokenIndex = _ownedTokens[from].length.sub(1);
        uint256 tokenIndex = _ownedTokensIndex[tokenId];

        // When the token to delete is the last token, the swap operation is unnecessary
        if (tokenIndex != lastTokenIndex) {
            uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];

            _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token
            _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index
        }

        // This also deletes the contents at the last position of the array
        _ownedTokens[from].length--;

        // Note that _ownedTokensIndex[tokenId] hasn't been cleared: it still points to the old slot (now occupied by
        // lastTokenId, or just over the end of the array if the token was the last one).
    }

    function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {
        // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and
        // then delete the last slot (swap and pop).

        uint256 lastTokenIndex = _allTokens.length.sub(1);
        uint256 tokenIndex = _allTokensIndex[tokenId];

        // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so
        // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding
        // an 'if' statement (like in _removeTokenFromOwnerEnumeration)
        uint256 lastTokenId = _allTokens[lastTokenIndex];

        _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token
        _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index

        // This also deletes the contents at the last position of the array
        _allTokens.length--;
        _allTokensIndex[tokenId] = 0;
    }
}


pragma solidity ^0.5.0;
contract IERC721Metadata is IERC721 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function tokenURI(uint256 tokenId) external view returns (string memory);
}

pragma solidity ^0.5.0;
contract ERC721Metadata is ERC165, ERC721, IERC721Metadata {
    // Token name
    string private _name;

    // Token symbol
    string private _symbol;

    // Optional mapping for token URIs
    mapping(uint256 => string) private _tokenURIs;
    bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f;

    constructor (string memory name, string memory symbol) public {
        _name = name;
        _symbol = symbol;

        // register the supported interfaces to conform to ERC721 via ERC165
        _registerInterface(_INTERFACE_ID_ERC721_METADATA);
    }

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

    function symbol() external view returns (string memory) {
        return _symbol;
    }
    
    function tokenURI(uint256 tokenId) external view returns (string memory) {
        require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token");
        return _tokenURIs[tokenId];
    }

    function _setTokenURI(uint256 tokenId, string memory uri) internal {
        require(_exists(tokenId), "ERC721Metadata: URI set of nonexistent token");
        _tokenURIs[tokenId] = uri;
    }

    function _burn(address owner, uint256 tokenId) internal {
        super._burn(owner, tokenId);

        // Clear metadata (if any)
        if (bytes(_tokenURIs[tokenId]).length != 0) {
            delete _tokenURIs[tokenId];
        }
    }
}


pragma solidity ^0.5.0;
contract ERC721Full is ERC721, ERC721Enumerable, ERC721Metadata {
    constructor (string memory name, string memory symbol) public ERC721Metadata(name, symbol) {
        // solhint-disable-previous-line no-empty-blocks
    }
}

pragma solidity >=0.4.0 <0.8.2;
contract Colexion is ERC721Full { 
    using Counters for Counters.Counter;
    Counters.Counter private _tokenIds;
    address payable public manager; 
    mapping(string => bool) _nftExists;
    mapping(uint => address)  public creator;
    mapping(uint => uint) public T_cost;
    
    
    constructor() ERC721Full("Colexion", "CLXN") public { manager = address(0x7812ca983E0be569FEc1863Baaec388479577B17); }
      
    function mint(string memory url, uint cost) public {
        require(!_nftExists[url], "AlreadyExist.");
        _tokenIds.increment();
        uint256 newId = _tokenIds.current();
        _mint(msg.sender, newId);
        _setTokenURI(newId, url);

        _nftExists[url] = true;
        creator[newId] = msg.sender;
        T_cost[newId] = cost;
        
        approve(address(this), newId);
    }
     
// ipfs/QmaauyTdka44jYkjKhrA8i5kbZD3skGmVLhG8yLmbffM5d
// 2 * 1000000000000000000
    function purchaseToken(uint64 t_id, uint m, uint r, uint o) public payable {
        t_transfer(ownerOf(t_id), msg.sender, t_id, T_cost[t_id], m,r,o);
    }
     
    function t_transfer(address owner, address to, uint64 t_id, uint cost, uint m, uint r, uint o)internal{
        address payable OwnToken = address (uint168(owner));
        address payable cre = address (uint168(creator[t_id]));
        // manager.transfer(m);                // transfer 7% to token manager.
        // (nft[t_id].creator).transfer(r);  // transfer 10% to token creator.
        // (OwnToken).transfer(o);             // transfer 83% to token owner.

        manager.transfer( ( ( cost/ 100) * m ) );   // transfer 7% to token manager.
        (cre).transfer( ( (cost / 100) * r ) );   // transfer 10% to token creator.
        (OwnToken).transfer( ( (cost / 100) * o ) );   // transfer 83% to token owner.
        transferFrom(owner, to, t_id);
        T_cost[t_id] = cost;
    }
     

     function updateTokenPrice(uint t_id, uint _price) public only_owner(t_id) returns(string memory){
        T_cost[t_id] = _price;
        return "PriceUpdated";
    }
    mapping (uint => bool) public T_In_Auction;
    mapping (uint => Auction_data) public T_Auction;
    mapping(uint => mapping(address => uint)) public bids;
    mapping(uint => address[]) public token_bidders;    
    address[] bidder_list;

    struct Auction_data{
        uint T_id;
        uint256 h_Bid; 
        address h_Bidder;
        bool status;
        address[] bidders;
        uint256 maximunBid;
    }

    function create_Auction ( uint T_id, uint _maxBid) only_owner(T_id) public {
        address[] memory emptyAddressList;
        Auction_data memory data1750 = Auction_data(T_id, 0, address(0), true, emptyAddressList, _maxBid);
        T_Auction[T_id] = data1750; 
        T_In_Auction[T_id] = true; 
        token_bidders[T_id].length = 0;
        approve(address(this), T_id);
    }

    function bid(uint64 T_id) public payable in_auction(T_id) only_bidders(T_id) { 
        if(bids[T_id][msg.sender] + msg.value >= T_Auction[T_id].maximunBid){
            // bid hits maximum amount
            T_Auction[T_id].status = false;
            T_Auction[T_id].h_Bidder = msg.sender;
            T_Auction[T_id].h_Bid = bids[T_id][msg.sender] + msg.value;
            bids[T_id][msg.sender] = 0;
            T_In_Auction[T_id] = false; 
            t_transfer(ownerOf(T_id), msg.sender, T_id, T_Auction[T_id].h_Bid, 7,10,83);
        } else {
            // bid not hits maximum amount
            bids[T_id][msg.sender] = bids[T_id][msg.sender] + msg.value;
            bidder_list = token_bidders[T_id];
            bidder_list.push(msg.sender);
            token_bidders[T_id] = bidder_list;
            T_Auction[T_id].h_Bidder = T_Auction[T_id].h_Bid > bids[T_id][msg.sender]  ? T_Auction[T_id].h_Bidder : msg.sender;
            T_Auction[T_id].h_Bid =  T_Auction[T_id].h_Bid > bids[T_id][msg.sender] ? T_Auction[T_id].h_Bid : bids[T_id][msg.sender];
            T_Auction[T_id].bidders.push(msg.sender);
        }
    } 

    function checkWithdraw(uint T_id) public returns(string memory){
        if(bids[T_id][msg.sender] > 0){
            withdraw(T_id);
        } else {
            return "Zero balance";
        }
    }
    
    function withdraw(uint T_id) public payable only_bidders(T_id) auction_ended(T_id) not_auction_winner(T_id) returns (string memory){
        // uint amount = bids[T_id][msg.sender];
        msg.sender.transfer(bids[T_id][msg.sender]);
        bids[T_id][msg.sender] = 0; 
        return "Amount withdraw";
    }  
    
    function end_auction(uint64 T_id) public payable only_owner(T_id) returns (string memory) { 
        require(T_In_Auction[T_id] == true, "TokenInAuction");
        T_Auction[T_id].status = false;
        T_In_Auction[T_id] = false;
        if(T_Auction[T_id].h_Bidder == address(0)){ return ("Auction Ended");}
        // uint auction_win_bid = T_Auction[T_id].h_Bid;
        address auction_winner = T_Auction[T_id].h_Bidder;
        t_transfer(ownerOf(T_id), auction_winner, T_id, T_Auction[T_id].h_Bid, 7,10,83);
        T_Auction[T_id].h_Bidder = address(0);
        T_Auction[T_id].h_Bid = 0;
        return ("Auction Ended");
    }
    

     
    modifier in_auction(uint T_id){ 
        require( T_In_Auction[T_id] == true, "tokenNotInAuction");
        _;
    } 


    modifier auction_ended(uint T_id){ 
        require( T_Auction[T_id].status == false, "AuctionIsGoing");
        _;
    } 
   
    modifier only_owner(uint T_id){ 
        require(msg.sender == ownerOf(T_id), "OnlyOwner");
        _;
    } 
   
    modifier only_bidders(uint T_id){ 
        require(msg.sender != ownerOf(T_id), "OnlyBidderAction");
        _;
    } 
    
    modifier not_auction_winner(uint T_id){ 
        require(msg.sender != T_Auction[T_id].h_Bidder, "AuctionWinner");
        _;
    } 
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[{"name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"url","type":"string"},{"name":"cost","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"T_id","type":"uint256"}],"name":"withdraw","outputs":[{"name":"","type":"string"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"bids","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"T_cost","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"manager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"creator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"t_id","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"updateTokenPrice","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"t_id","type":"uint64"},{"name":"m","type":"uint256"},{"name":"r","type":"uint256"},{"name":"o","type":"uint256"}],"name":"purchaseToken","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"T_id","type":"uint256"}],"name":"checkWithdraw","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"T_id","type":"uint256"},{"name":"_maxBid","type":"uint256"}],"name":"create_Auction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"T_id","type":"uint64"}],"name":"end_auction","outputs":[{"name":"","type":"string"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"T_In_Auction","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokenId","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"T_id","type":"uint64"}],"name":"bid","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"T_Auction","outputs":[{"name":"T_id","type":"uint256"},{"name":"h_Bid","type":"uint256"},{"name":"h_Bidder","type":"address"},{"name":"status","type":"bool"},{"name":"maximunBid","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"token_bidders","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":true,"name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"operator","type":"address"},{"indexed":false,"name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"}]

60806040523480156200001157600080fd5b506040805190810160405280600881526020017f436f6c6578696f6e0000000000000000000000000000000000000000000000008152506040805190810160405280600481526020017f434c584e000000000000000000000000000000000000000000000000000000008152508181620000bd63780e9d637c0100000000000000000000000000000000000000000000000000000000026200018b640100000000026401000000009004565b8160099080519060200190620000d5929190620002b2565b5080600a9080519060200190620000ee929190620002b2565b506200012c635b5e139f7c0100000000000000000000000000000000000000000000000000000000026200018b640100000000026401000000009004565b50505050737812ca983e0be569fec1863baaec388479577b17600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000361565b63ffffffff7c010000000000000000000000000000000000000000000000000000000002817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415151562000246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002f557805160ff191683800117855562000326565b8280016001018555821562000326579182015b828111156200032557825182559160200191906001019062000308565b5b50905062000335919062000339565b5090565b6200035e91905b808211156200035a57600081600090555060010162000340565b5090565b90565b61486d80620003716000396000f3fe60806040526004361061018b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a714610190578063056b01ce1461020257806306fdde03146102d4578063081812fc14610364578063095ea7b3146103df57806318160ddd1461043a57806323b872dd146104655780632e1a7d4d146104e05780632f745c59146105875780633f1ffcec146105f657806342842e0e146106655780634491ff9a146106e0578063481c6a751461072f5780634f6ccce714610786578063510b5158146107d55780636352211e1461085057806370a08231146108cb578063897925f51461093057806395d89b41146109ee57806395e2dcc414610a7e5780639a9f3e3514610ad45780639af4298a14610b885780639b5a587b14610bcd578063a22cb46514610c7e578063b662f67114610cdb578063b88d4fde14610d2e578063c261d45614610e40578063c87b56dd14610e78578063d095005914610f2c578063e985e9c514610fc7578063f49d66c014611050575b600080fd5b34801561019c57600080fd5b506101e8600480360360208110156101b357600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506110d5565b604051808215151515815260200191505060405180910390f35b34801561020e57600080fd5b506102d26004803603604081101561022557600080fd5b810190808035906020019064010000000081111561024257600080fd5b82018360208201111561025457600080fd5b8035906020019184600183028401116401000000008311171561027657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919050505061113c565b005b3480156102e057600080fd5b506102e9611353565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561032957808201518184015260208101905061030e565b50505050905090810190601f1680156103565780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561037057600080fd5b5061039d6004803603602081101561038757600080fd5b81019080803590602001909291905050506113f5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103eb57600080fd5b506104386004803603604081101561040257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114d5565b005b34801561044657600080fd5b5061044f611738565b6040518082815260200191505060405180910390f35b34801561047157600080fd5b506104de6004803603606081101561048857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611745565b005b61050c600480360360208110156104f657600080fd5b81019080803590602001909291905050506117f9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054c578082015181840152602081019050610531565b50505050905090810190601f1680156105795780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059357600080fd5b506105e0600480360360408110156105aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b50565b6040518082815260200191505060405180910390f35b34801561060257600080fd5b5061064f6004803603604081101561061957600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c56565b6040518082815260200191505060405180910390f35b34801561067157600080fd5b506106de6004803603606081101561068857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c7b565b005b3480156106ec57600080fd5b506107196004803603602081101561070357600080fd5b8101908080359060200190929190505050611c9c565b6040518082815260200191505060405180910390f35b34801561073b57600080fd5b50610744611cb4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561079257600080fd5b506107bf600480360360208110156107a957600080fd5b8101908080359060200190929190505050611cda565b6040518082815260200191505060405180910390f35b3480156107e157600080fd5b5061080e600480360360208110156107f857600080fd5b8101908080359060200190929190505050611da1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561085c57600080fd5b506108896004803603602081101561087357600080fd5b8101908080359060200190929190505050611dd4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108d757600080fd5b5061091a600480360360208110156108ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ee1565b6040518082815260200191505060405180910390f35b34801561093c57600080fd5b506109736004803603604081101561095357600080fd5b810190808035906020019092919080359060200190929190505050611ffb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109b3578082015181840152602081019050610998565b50505050905090810190601f1680156109e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109fa57600080fd5b50610a03612100565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a43578082015181840152602081019050610a28565b50505050905090810190601f168015610a705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610ad260048036036080811015610a9457600080fd5b81019080803567ffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291905050506121a2565b005b348015610ae057600080fd5b50610b0d60048036036020811015610af757600080fd5b81019080803590602001909291905050506121e6565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b4d578082015181840152602081019050610b32565b50505050905090810190601f168015610b7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b9457600080fd5b50610bcb60048036036040811015610bab57600080fd5b810190808035906020019092919080359060200190929190505050612293565b005b610c0360048036036020811015610be357600080fd5b81019080803567ffffffffffffffff1690602001909291905050506124ab565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c43578082015181840152602081019050610c28565b50505050905090810190601f168015610c705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c8a57600080fd5b50610cd960048036036040811015610ca157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612879565b005b348015610ce757600080fd5b50610d1460048036036020811015610cfe57600080fd5b8101908080359060200190929190505050612a1e565b604051808215151515815260200191505060405180910390f35b348015610d3a57600080fd5b50610e3e60048036036080811015610d5157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610db857600080fd5b820183602082011115610dca57600080fd5b80359060200191846001830284011164010000000083111715610dec57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612a3e565b005b610e7660048036036020811015610e5657600080fd5b81019080803567ffffffffffffffff169060200190929190505050612af5565b005b348015610e8457600080fd5b50610eb160048036036020811015610e9b57600080fd5b8101908080359060200190929190505050613325565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ef1578082015181840152602081019050610ed6565b50505050905090810190601f168015610f1e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610f3857600080fd5b50610f6560048036036020811015610f4f57600080fd5b810190808035906020019092919050505061347d565b604051808681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001831515151581526020018281526020019550505050505060405180910390f35b348015610fd357600080fd5b5061103660048036036040811015610fea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506134e0565b604051808215151515815260200191505060405180910390f35b34801561105c57600080fd5b506110936004803603604081101561107357600080fd5b810190808035906020019092919080359060200190929190505050613574565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b600e826040518082805190602001908083835b602083101515611174578051825260208201915060208101905060208303925061114f565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff1615151561122a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f416c726561647945786973742e0000000000000000000000000000000000000081525060200191505060405180910390fd5b611234600c6135c1565b6000611240600c6135d7565b905061124c33826135e5565b6112568184613606565b6001600e846040518082805190602001908083835b602083101515611290578051825260208201915060208101905060208303925061126b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690831515021790555033600f600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601060008381526020019081526020016000208190555061134e30826114d5565b505050565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113eb5780601f106113c0576101008083540402835291602001916113eb565b820191906000526020600020905b8154815290600101906020018083116113ce57829003601f168201915b5050505050905090565b6000611400826136d5565b151561149a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a20617070726f76656420717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006114e082611dd4565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6581526020017f720000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115ec57506115eb81336134e0565b5b1515611686576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7781526020017f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000081525060400191505060405180910390fd5b826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000600780549050905090565b61174f8382613747565b15156117e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f81526020017f776e6572206e6f7220617070726f76656400000000000000000000000000000081525060400191505060405180910390fd5b6117f4838383613880565b505050565b60608161180581611dd4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515156118a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f6e6c79426964646572416374696f6e0000000000000000000000000000000081525060200191505060405180910390fd5b82600015156012600083815260200190815260200160002060020160149054906101000a900460ff161515141515611948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f41756374696f6e4973476f696e6700000000000000000000000000000000000081525060200191505060405180910390fd5b836012600082815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515611a23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f41756374696f6e57696e6e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc6013600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549081150290604051600060405180830381858888f19350505050158015611ab9573d6000803e3d6000fd5b5060006013600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506040805190810160405280600f81526020017f416d6f756e7420776974686472617700000000000000000000000000000000008152509350505050919050565b6000611b5b83611ee1565b82101515611bf7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f455243373231456e756d657261626c653a206f776e657220696e646578206f7581526020017f74206f6620626f756e647300000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611c4357fe5b9060005260206000200154905092915050565b6013602052816000526040600020602052806000526040600020600091509150505481565b611c978383836020604051908101604052806000815250612a3e565b505050565b60106020528060005260406000206000915090505481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611ce4611738565b82101515611d80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f81526020017f7574206f6620626f756e6473000000000000000000000000000000000000000081525060400191505060405180910390fd5b600782815481101515611d8f57fe5b90600052602060002001549050919050565b600f6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611ed8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a206f776e657220717565727920666f72206e6f6e657869737481526020017f656e7420746f6b656e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611fad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4552433732313a2062616c616e636520717565727920666f7220746865207a6581526020017f726f20616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611ff4600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206135d7565b9050919050565b60608261200781611dd4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4f6e6c794f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8260106000868152602001908152602001600020819055506040805190810160405280600c81526020017f507269636555706461746564000000000000000000000000000000000000000081525091505092915050565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121985780601f1061216d57610100808354040283529160200191612198565b820191906000526020600020905b81548152906001019060200180831161217b57829003601f168201915b5050505050905090565b6121e06121b88567ffffffffffffffff16611dd4565b3386601060008967ffffffffffffffff168152602001908152602001600020548787876138a4565b50505050565b606060006013600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156122505761224a826117f9565b5061228d565b6040805190810160405280600c81526020017f5a65726f2062616c616e63650000000000000000000000000000000000000000815250905061228e565b5b919050565b8161229d81611dd4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561233f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4f6e6c794f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60606123496145d6565b60c06040519081016040528086815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016001151581526020018381526020018581525090508060126000878152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160146101000a81548160ff021916908315150217905550608082015181600301908051906020019061243f929190614625565b5060a0820151816004015590505060016011600087815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601460008781526020019081526020016000208161249991906146af565b506124a430866114d5565b5050505050565b60608167ffffffffffffffff166124c181611dd4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612563576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4f6e6c794f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60011515601160008567ffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515612609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f546f6b656e496e41756374696f6e00000000000000000000000000000000000081525060200191505060405180910390fd5b6000601260008567ffffffffffffffff16815260200190815260200160002060020160146101000a81548160ff0219169083151502179055506000601160008567ffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16601260008567ffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561272a576040805190810160405280600d81526020017f41756374696f6e20456e646564000000000000000000000000000000000000008152509150612873565b6000601260008567ffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506127b36127858567ffffffffffffffff16611dd4565b8286601260008967ffffffffffffffff168152602001908152602001600020600101546007600a60536138a4565b6000601260008667ffffffffffffffff16815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601260008667ffffffffffffffff168152602001908152602001600020600101819055506040805190810160405280600d81526020017f41756374696f6e20456e646564000000000000000000000000000000000000008152509250505b50919050565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561291d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b60116020528060005260406000206000915054906101000a900460ff1681565b612a49848484611745565b612a5584848484613a7a565b1515612aef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4552433732313a207472616e7366657220746f206e6f6e20455243373231526581526020017f63656976657220696d706c656d656e746572000000000000000000000000000081525060400191505060405180910390fd5b50505050565b8067ffffffffffffffff16600115156011600083815260200190815260200160002060009054906101000a900460ff161515141515612b9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f746f6b656e4e6f74496e41756374696f6e00000000000000000000000000000081525060200191505060405180910390fd5b8167ffffffffffffffff16612bb081611dd4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515612c53576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f6e6c79426964646572416374696f6e0000000000000000000000000000000081525060200191505060405180910390fd5b601260008467ffffffffffffffff1681526020019081526020016000206004015434601360008667ffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101515612ed0576000601260008567ffffffffffffffff16815260200190815260200160002060020160146101000a81548160ff02191690831515021790555033601260008567ffffffffffffffff16815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034601360008567ffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401601260008567ffffffffffffffff168152602001908152602001600020600101819055506000601360008567ffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601160008567ffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612ecb612e9d8467ffffffffffffffff16611dd4565b3385601260008867ffffffffffffffff168152602001908152602001600020600101546007600a60536138a4565b613320565b34601360008567ffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401601360008567ffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601460008467ffffffffffffffff1681526020019081526020016000206015908054612fb89291906146db565b5060153390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506015601460008567ffffffffffffffff16815260200190815260200160002090805461304c9291906146db565b50601360008467ffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601260008567ffffffffffffffff16815260200190815260200160002060010154116130d45733613116565b601260008467ffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b601260008567ffffffffffffffff16815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360008467ffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601260008567ffffffffffffffff168152602001908152602001600020600101541161325557601360008467ffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613277565b601260008467ffffffffffffffff168152602001908152602001600020600101545b601260008567ffffffffffffffff16815260200190815260200160002060010181905550601260008467ffffffffffffffff1681526020019081526020016000206003013390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b505050565b6060613330826136d5565b15156133ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f4552433732314d657461646174613a2055524920717565727920666f72206e6f81526020017f6e6578697374656e7420746f6b656e000000000000000000000000000000000081525060400191505060405180910390fd5b600b60008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156134715780601f1061344657610100808354040283529160200191613471565b820191906000526020600020905b81548152906001019060200180831161345457829003601f168201915b50505050509050919050565b60126020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16908060040154905085565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60146020528160005260406000208181548110151561358f57fe5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001816000016000828254019250508190555050565b600081600001549050919050565b6135ef8282613c9d565b6135f98282613eb9565b61360281613f80565b5050565b61360f826136d5565b15156136a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732314d657461646174613a2055524920736574206f66206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600b600084815260200190815260200160002090805190602001906136d092919061472d565b505050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b6000613752826136d5565b15156137ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b60006137f783611dd4565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061386657508373ffffffffffffffffffffffffffffffffffffffff1661384e846113f5565b73ffffffffffffffffffffffffffffffffffffffff16145b80613877575061387681856134e0565b5b91505092915050565b61388b838383613fcc565b61389583826142b1565b61389f8282613eb9565b505050565b60008773ffffffffffffffffffffffffffffffffffffffff1690506000600f60008867ffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff169050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8660648981151561396057fe5b04029081150290604051600060405180830381858888f1935050505015801561398d573d6000803e3d6000fd5b508073ffffffffffffffffffffffffffffffffffffffff166108fc856064898115156139b557fe5b04029081150290604051600060405180830381858888f193505050501580156139e2573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff166108fc84606489811515613a0a57fe5b04029081150290604051600060405180830381858888f19350505050158015613a37573d6000803e3d6000fd5b50613a4d89898967ffffffffffffffff16611745565b85601060008967ffffffffffffffff16815260200190815260200160002081905550505050505050505050565b6000613a9b8473ffffffffffffffffffffffffffffffffffffffff16614455565b1515613aaa5760019050613c95565b60008473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613ba1578082015181840152602081019050613b86565b50505050905090810190601f168015613bce5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015613bf057600080fd5b505af1158015613c04573d6000803e3d6000fd5b505050506040513d6020811015613c1a57600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613d42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b613d4b816136d5565b151515613dc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613e59600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206135c1565b808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506006600083815260200190815260200160002081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b6007805490506008600083815260200190815260200160002081905550600781908060018154018082558091505090600182039060005260206000200160009091929091909150555050565b8273ffffffffffffffffffffffffffffffffffffffff16613fec82611dd4565b73ffffffffffffffffffffffffffffffffffffffff1614151561409d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a207472616e73666572206f6620746f6b656e2074686174206981526020017f73206e6f74206f776e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515614168576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433732313a207472616e7366657220746f20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61417181614468565b6141b8600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020614528565b6141ff600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206135c1565b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006143096001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061454b90919063ffffffff16565b905060006006600084815260200190815260200160002054905081811415156143fc576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561437a57fe5b9060005260206000200154905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156143d457fe5b9060005260206000200181905550816006600083815260200190815260200160002081905550505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548091906001900361444e91906147ad565b5050505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156145255760006002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6145406001826000015461454b90919063ffffffff16565b816000018190555050565b60008282111515156145c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b60c0604051908101604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160608152602001600081525090565b82805482825590600052602060002090810192821561469e579160200282015b8281111561469d5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190614645565b5b5090506146ab91906147d9565b5090565b8154818355818111156146d6578183600052602060002091820191016146d5919061481c565b5b505050565b82805482825590600052602060002090810192821561471c5760005260206000209182015b8281111561471b578254825591600101919060010190614700565b5b50905061472991906147d9565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061476e57805160ff191683800117855561479c565b8280016001018555821561479c579182015b8281111561479b578251825591602001919060010190614780565b5b5090506147a9919061481c565b5090565b8154818355818111156147d4578183600052602060002091820191016147d3919061481c565b5b505050565b61481991905b8082111561481557600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016147df565b5090565b90565b61483e91905b8082111561483a576000816000905550600101614822565b5090565b9056fea165627a7a723058207ba878924f07c53953c0aa20ae8d1859686bc3567fbcffc307334971b018f1f00029

Deployed Bytecode

0x60806040526004361061018b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a714610190578063056b01ce1461020257806306fdde03146102d4578063081812fc14610364578063095ea7b3146103df57806318160ddd1461043a57806323b872dd146104655780632e1a7d4d146104e05780632f745c59146105875780633f1ffcec146105f657806342842e0e146106655780634491ff9a146106e0578063481c6a751461072f5780634f6ccce714610786578063510b5158146107d55780636352211e1461085057806370a08231146108cb578063897925f51461093057806395d89b41146109ee57806395e2dcc414610a7e5780639a9f3e3514610ad45780639af4298a14610b885780639b5a587b14610bcd578063a22cb46514610c7e578063b662f67114610cdb578063b88d4fde14610d2e578063c261d45614610e40578063c87b56dd14610e78578063d095005914610f2c578063e985e9c514610fc7578063f49d66c014611050575b600080fd5b34801561019c57600080fd5b506101e8600480360360208110156101b357600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506110d5565b604051808215151515815260200191505060405180910390f35b34801561020e57600080fd5b506102d26004803603604081101561022557600080fd5b810190808035906020019064010000000081111561024257600080fd5b82018360208201111561025457600080fd5b8035906020019184600183028401116401000000008311171561027657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919050505061113c565b005b3480156102e057600080fd5b506102e9611353565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561032957808201518184015260208101905061030e565b50505050905090810190601f1680156103565780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561037057600080fd5b5061039d6004803603602081101561038757600080fd5b81019080803590602001909291905050506113f5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103eb57600080fd5b506104386004803603604081101561040257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114d5565b005b34801561044657600080fd5b5061044f611738565b6040518082815260200191505060405180910390f35b34801561047157600080fd5b506104de6004803603606081101561048857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611745565b005b61050c600480360360208110156104f657600080fd5b81019080803590602001909291905050506117f9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054c578082015181840152602081019050610531565b50505050905090810190601f1680156105795780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561059357600080fd5b506105e0600480360360408110156105aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b50565b6040518082815260200191505060405180910390f35b34801561060257600080fd5b5061064f6004803603604081101561061957600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c56565b6040518082815260200191505060405180910390f35b34801561067157600080fd5b506106de6004803603606081101561068857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c7b565b005b3480156106ec57600080fd5b506107196004803603602081101561070357600080fd5b8101908080359060200190929190505050611c9c565b6040518082815260200191505060405180910390f35b34801561073b57600080fd5b50610744611cb4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561079257600080fd5b506107bf600480360360208110156107a957600080fd5b8101908080359060200190929190505050611cda565b6040518082815260200191505060405180910390f35b3480156107e157600080fd5b5061080e600480360360208110156107f857600080fd5b8101908080359060200190929190505050611da1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561085c57600080fd5b506108896004803603602081101561087357600080fd5b8101908080359060200190929190505050611dd4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108d757600080fd5b5061091a600480360360208110156108ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ee1565b6040518082815260200191505060405180910390f35b34801561093c57600080fd5b506109736004803603604081101561095357600080fd5b810190808035906020019092919080359060200190929190505050611ffb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109b3578082015181840152602081019050610998565b50505050905090810190601f1680156109e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109fa57600080fd5b50610a03612100565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a43578082015181840152602081019050610a28565b50505050905090810190601f168015610a705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610ad260048036036080811015610a9457600080fd5b81019080803567ffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291905050506121a2565b005b348015610ae057600080fd5b50610b0d60048036036020811015610af757600080fd5b81019080803590602001909291905050506121e6565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b4d578082015181840152602081019050610b32565b50505050905090810190601f168015610b7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b9457600080fd5b50610bcb60048036036040811015610bab57600080fd5b810190808035906020019092919080359060200190929190505050612293565b005b610c0360048036036020811015610be357600080fd5b81019080803567ffffffffffffffff1690602001909291905050506124ab565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c43578082015181840152602081019050610c28565b50505050905090810190601f168015610c705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c8a57600080fd5b50610cd960048036036040811015610ca157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612879565b005b348015610ce757600080fd5b50610d1460048036036020811015610cfe57600080fd5b8101908080359060200190929190505050612a1e565b604051808215151515815260200191505060405180910390f35b348015610d3a57600080fd5b50610e3e60048036036080811015610d5157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610db857600080fd5b820183602082011115610dca57600080fd5b80359060200191846001830284011164010000000083111715610dec57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612a3e565b005b610e7660048036036020811015610e5657600080fd5b81019080803567ffffffffffffffff169060200190929190505050612af5565b005b348015610e8457600080fd5b50610eb160048036036020811015610e9b57600080fd5b8101908080359060200190929190505050613325565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ef1578082015181840152602081019050610ed6565b50505050905090810190601f168015610f1e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610f3857600080fd5b50610f6560048036036020811015610f4f57600080fd5b810190808035906020019092919050505061347d565b604051808681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001831515151581526020018281526020019550505050505060405180910390f35b348015610fd357600080fd5b5061103660048036036040811015610fea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506134e0565b604051808215151515815260200191505060405180910390f35b34801561105c57600080fd5b506110936004803603604081101561107357600080fd5b810190808035906020019092919080359060200190929190505050613574565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b600e826040518082805190602001908083835b602083101515611174578051825260208201915060208101905060208303925061114f565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff1615151561122a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f416c726561647945786973742e0000000000000000000000000000000000000081525060200191505060405180910390fd5b611234600c6135c1565b6000611240600c6135d7565b905061124c33826135e5565b6112568184613606565b6001600e846040518082805190602001908083835b602083101515611290578051825260208201915060208101905060208303925061126b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690831515021790555033600f600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601060008381526020019081526020016000208190555061134e30826114d5565b505050565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113eb5780601f106113c0576101008083540402835291602001916113eb565b820191906000526020600020905b8154815290600101906020018083116113ce57829003601f168201915b5050505050905090565b6000611400826136d5565b151561149a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a20617070726f76656420717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006114e082611dd4565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6581526020017f720000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115ec57506115eb81336134e0565b5b1515611686576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7781526020017f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000081525060400191505060405180910390fd5b826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000600780549050905090565b61174f8382613747565b15156117e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f81526020017f776e6572206e6f7220617070726f76656400000000000000000000000000000081525060400191505060405180910390fd5b6117f4838383613880565b505050565b60608161180581611dd4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515156118a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f6e6c79426964646572416374696f6e0000000000000000000000000000000081525060200191505060405180910390fd5b82600015156012600083815260200190815260200160002060020160149054906101000a900460ff161515141515611948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f41756374696f6e4973476f696e6700000000000000000000000000000000000081525060200191505060405180910390fd5b836012600082815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515611a23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f41756374696f6e57696e6e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc6013600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549081150290604051600060405180830381858888f19350505050158015611ab9573d6000803e3d6000fd5b5060006013600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506040805190810160405280600f81526020017f416d6f756e7420776974686472617700000000000000000000000000000000008152509350505050919050565b6000611b5b83611ee1565b82101515611bf7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f455243373231456e756d657261626c653a206f776e657220696e646578206f7581526020017f74206f6620626f756e647300000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611c4357fe5b9060005260206000200154905092915050565b6013602052816000526040600020602052806000526040600020600091509150505481565b611c978383836020604051908101604052806000815250612a3e565b505050565b60106020528060005260406000206000915090505481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611ce4611738565b82101515611d80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f81526020017f7574206f6620626f756e6473000000000000000000000000000000000000000081525060400191505060405180910390fd5b600782815481101515611d8f57fe5b90600052602060002001549050919050565b600f6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611ed8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a206f776e657220717565727920666f72206e6f6e657869737481526020017f656e7420746f6b656e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611fad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4552433732313a2062616c616e636520717565727920666f7220746865207a6581526020017f726f20616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611ff4600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206135d7565b9050919050565b60608261200781611dd4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4f6e6c794f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8260106000868152602001908152602001600020819055506040805190810160405280600c81526020017f507269636555706461746564000000000000000000000000000000000000000081525091505092915050565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121985780601f1061216d57610100808354040283529160200191612198565b820191906000526020600020905b81548152906001019060200180831161217b57829003601f168201915b5050505050905090565b6121e06121b88567ffffffffffffffff16611dd4565b3386601060008967ffffffffffffffff168152602001908152602001600020548787876138a4565b50505050565b606060006013600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156122505761224a826117f9565b5061228d565b6040805190810160405280600c81526020017f5a65726f2062616c616e63650000000000000000000000000000000000000000815250905061228e565b5b919050565b8161229d81611dd4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561233f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4f6e6c794f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60606123496145d6565b60c06040519081016040528086815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016001151581526020018381526020018581525090508060126000878152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160146101000a81548160ff021916908315150217905550608082015181600301908051906020019061243f929190614625565b5060a0820151816004015590505060016011600087815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601460008781526020019081526020016000208161249991906146af565b506124a430866114d5565b5050505050565b60608167ffffffffffffffff166124c181611dd4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612563576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4f6e6c794f776e6572000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60011515601160008567ffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515612609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f546f6b656e496e41756374696f6e00000000000000000000000000000000000081525060200191505060405180910390fd5b6000601260008567ffffffffffffffff16815260200190815260200160002060020160146101000a81548160ff0219169083151502179055506000601160008567ffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16601260008567ffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561272a576040805190810160405280600d81526020017f41756374696f6e20456e646564000000000000000000000000000000000000008152509150612873565b6000601260008567ffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506127b36127858567ffffffffffffffff16611dd4565b8286601260008967ffffffffffffffff168152602001908152602001600020600101546007600a60536138a4565b6000601260008667ffffffffffffffff16815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601260008667ffffffffffffffff168152602001908152602001600020600101819055506040805190810160405280600d81526020017f41756374696f6e20456e646564000000000000000000000000000000000000008152509250505b50919050565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561291d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b60116020528060005260406000206000915054906101000a900460ff1681565b612a49848484611745565b612a5584848484613a7a565b1515612aef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4552433732313a207472616e7366657220746f206e6f6e20455243373231526581526020017f63656976657220696d706c656d656e746572000000000000000000000000000081525060400191505060405180910390fd5b50505050565b8067ffffffffffffffff16600115156011600083815260200190815260200160002060009054906101000a900460ff161515141515612b9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f746f6b656e4e6f74496e41756374696f6e00000000000000000000000000000081525060200191505060405180910390fd5b8167ffffffffffffffff16612bb081611dd4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515612c53576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f6e6c79426964646572416374696f6e0000000000000000000000000000000081525060200191505060405180910390fd5b601260008467ffffffffffffffff1681526020019081526020016000206004015434601360008667ffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101515612ed0576000601260008567ffffffffffffffff16815260200190815260200160002060020160146101000a81548160ff02191690831515021790555033601260008567ffffffffffffffff16815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034601360008567ffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401601260008567ffffffffffffffff168152602001908152602001600020600101819055506000601360008567ffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601160008567ffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612ecb612e9d8467ffffffffffffffff16611dd4565b3385601260008867ffffffffffffffff168152602001908152602001600020600101546007600a60536138a4565b613320565b34601360008567ffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401601360008567ffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601460008467ffffffffffffffff1681526020019081526020016000206015908054612fb89291906146db565b5060153390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506015601460008567ffffffffffffffff16815260200190815260200160002090805461304c9291906146db565b50601360008467ffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601260008567ffffffffffffffff16815260200190815260200160002060010154116130d45733613116565b601260008467ffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b601260008567ffffffffffffffff16815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360008467ffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601260008567ffffffffffffffff168152602001908152602001600020600101541161325557601360008467ffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613277565b601260008467ffffffffffffffff168152602001908152602001600020600101545b601260008567ffffffffffffffff16815260200190815260200160002060010181905550601260008467ffffffffffffffff1681526020019081526020016000206003013390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b505050565b6060613330826136d5565b15156133ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f4552433732314d657461646174613a2055524920717565727920666f72206e6f81526020017f6e6578697374656e7420746f6b656e000000000000000000000000000000000081525060400191505060405180910390fd5b600b60008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156134715780601f1061344657610100808354040283529160200191613471565b820191906000526020600020905b81548152906001019060200180831161345457829003601f168201915b50505050509050919050565b60126020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16908060040154905085565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60146020528160005260406000208181548110151561358f57fe5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001816000016000828254019250508190555050565b600081600001549050919050565b6135ef8282613c9d565b6135f98282613eb9565b61360281613f80565b5050565b61360f826136d5565b15156136a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732314d657461646174613a2055524920736574206f66206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600b600084815260200190815260200160002090805190602001906136d092919061472d565b505050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b6000613752826136d5565b15156137ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b60006137f783611dd4565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061386657508373ffffffffffffffffffffffffffffffffffffffff1661384e846113f5565b73ffffffffffffffffffffffffffffffffffffffff16145b80613877575061387681856134e0565b5b91505092915050565b61388b838383613fcc565b61389583826142b1565b61389f8282613eb9565b505050565b60008773ffffffffffffffffffffffffffffffffffffffff1690506000600f60008867ffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff169050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8660648981151561396057fe5b04029081150290604051600060405180830381858888f1935050505015801561398d573d6000803e3d6000fd5b508073ffffffffffffffffffffffffffffffffffffffff166108fc856064898115156139b557fe5b04029081150290604051600060405180830381858888f193505050501580156139e2573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff166108fc84606489811515613a0a57fe5b04029081150290604051600060405180830381858888f19350505050158015613a37573d6000803e3d6000fd5b50613a4d89898967ffffffffffffffff16611745565b85601060008967ffffffffffffffff16815260200190815260200160002081905550505050505050505050565b6000613a9b8473ffffffffffffffffffffffffffffffffffffffff16614455565b1515613aaa5760019050613c95565b60008473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613ba1578082015181840152602081019050613b86565b50505050905090810190601f168015613bce5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015613bf057600080fd5b505af1158015613c04573d6000803e3d6000fd5b505050506040513d6020811015613c1a57600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613d42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b613d4b816136d5565b151515613dc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613e59600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206135c1565b808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506006600083815260200190815260200160002081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b6007805490506008600083815260200190815260200160002081905550600781908060018154018082558091505090600182039060005260206000200160009091929091909150555050565b8273ffffffffffffffffffffffffffffffffffffffff16613fec82611dd4565b73ffffffffffffffffffffffffffffffffffffffff1614151561409d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a207472616e73666572206f6620746f6b656e2074686174206981526020017f73206e6f74206f776e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515614168576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433732313a207472616e7366657220746f20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61417181614468565b6141b8600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020614528565b6141ff600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206135c1565b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006143096001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061454b90919063ffffffff16565b905060006006600084815260200190815260200160002054905081811415156143fc576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561437a57fe5b9060005260206000200154905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156143d457fe5b9060005260206000200181905550816006600083815260200190815260200160002081905550505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548091906001900361444e91906147ad565b5050505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156145255760006002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6145406001826000015461454b90919063ffffffff16565b816000018190555050565b60008282111515156145c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b60c0604051908101604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160608152602001600081525090565b82805482825590600052602060002090810192821561469e579160200282015b8281111561469d5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190614645565b5b5090506146ab91906147d9565b5090565b8154818355818111156146d6578183600052602060002091820191016146d5919061481c565b5b505050565b82805482825590600052602060002090810192821561471c5760005260206000209182015b8281111561471b578254825591600101919060010190614700565b5b50905061472991906147d9565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061476e57805160ff191683800117855561479c565b8280016001018555821561479c579182015b8281111561479b578251825591602001919060010190614780565b5b5090506147a9919061481c565b5090565b8154818355818111156147d4578183600052602060002091820191016147d3919061481c565b5b505050565b61481991905b8082111561481557600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016147df565b5090565b90565b61483e91905b8082111561483a576000816000905550600101614822565b5090565b9056fea165627a7a723058207ba878924f07c53953c0aa20ae8d1859686bc3567fbcffc307334971b018f1f00029

Deployed Bytecode Sourcemap

16126:5990:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3608:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3608:135:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3608:135:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16561:414;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16561:414:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16561:414:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;16561:414:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;16561:414: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;16561:414:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;16561:414:0;;;;;;;;;;;;;;;;;;;;;;;;;;;14967:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14967:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;14967:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5439:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5439:204:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5439:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5010:421;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5010:421:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5010:421:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10174:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10174:96:0;;;;;;;;;;;;;;;;;;;;;;;6060:284;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6060:284:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6060:284:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20457:316;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20457:316:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;20457:316:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9934:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9934:232:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9934:232:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18345:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18345:53:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18345:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6352:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6352:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6352:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16375:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16375:35:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16375:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16249:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16249:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;10276:199;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10276:199:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10276:199:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16328:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16328:40:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16328:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4776:226;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4776:226:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4776:226:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4559:209;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4559:209:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4559:209:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18068:168;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18068:168:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18068:168:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;18068:168:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15060:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15060:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;15060:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17072:158;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;17072:158:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20239:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20239:206:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20239:206:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;20239:206:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18679:390;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18679:390:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18679:390:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20787:648;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20787:648:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;20787:648:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5651:246;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5651:246:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5651:246:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18242:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18242:42:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18242:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6494:268;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6494:268:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;6494:268:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6494:268:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6494:268: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;6494:268:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6494:268:0;;;;;;;;;;;;;;;;;;19077:1153;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19077:1153:0;;;;;;;;;;;;;;;;;;;;;;15161:205;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15161:205:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15161:205:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;15161:205:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18291:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18291:47:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18291:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5905:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5905:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5905:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18405:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18405:47:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18405:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3608:135;3678:4;3702:20;:33;3723:11;3702:33;;;;;;;;;;;;;;;;;;;;;;;;;;;3695:40;;3608:135;;;:::o;16561:414::-;16632:10;16643:3;16632:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;16632:15:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16631:16;16623:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16676:21;:9;:19;:21::i;:::-;16708:13;16724:19;:9;:17;:19::i;:::-;16708:35;;16754:24;16760:10;16772:5;16754;:24::i;:::-;16789;16802:5;16809:3;16789:12;:24::i;:::-;16844:4;16826:10;16837:3;16826:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;16826:15:0;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;16876:10;16859:7;:14;16867:5;16859:14;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;16913:4;16897:6;:13;16904:5;16897:13;;;;;;;;;;;:20;;;;16938:29;16954:4;16961:5;16938:7;:29::i;:::-;16561:414;;;:::o;14967:85::-;15006:13;15039:5;15032:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14967:85;:::o;5439:204::-;5498:7;5526:16;5534:7;5526;:16::i;:::-;5518:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5611:15;:24;5627:7;5611:24;;;;;;;;;;;;;;;;;;;;;5604:31;;5439:204;;;:::o;5010:421::-;5074:13;5090:16;5098:7;5090;:16::i;:::-;5074:32;;5131:5;5125:11;;:2;:11;;;;5117:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5209:5;5195:19;;:10;:19;;;:58;;;;5218:35;5235:5;5242:10;5218:16;:35::i;:::-;5195:58;5187:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5377:2;5350:15;:24;5366:7;5350:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;5415:7;5411:2;5395:28;;5404:5;5395:28;;;;;;;;;;;;5010:421;;;:::o;10174:96::-;10218:7;10245:10;:17;;;;10238:24;;10174:96;:::o;6060:284::-;6204:33;6223:4;6229:7;6204:18;:33::i;:::-;6196:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6304:32;6318:4;6324:2;6328:7;6304:13;:32::i;:::-;6060:284;;;:::o;20457:316::-;20574:13;20514:4;21911:13;21919:4;21911:7;:13::i;:::-;21897:27;;:10;:27;;;;21889:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20534:4;21666:5;21640:31;;:9;:15;21650:4;21640:15;;;;;;;;;;;:22;;;;;;;;;;;;:31;;;21631:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20559:4;22050:9;:15;22060:4;22050:15;;;;;;;;;;;:24;;;;;;;;;;;;22036:38;;:10;:38;;;;22028:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20649:10;:19;;:43;20669:4;:10;20674:4;20669:10;;;;;;;;;;;:22;20680:10;20669:22;;;;;;;;;;;;;;;;20649:43;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20649:43:0;20728:1;20703:4;:10;20708:4;20703:10;;;;;;;;;;;:22;20714:10;20703:22;;;;;;;;;;;;;;;:26;;;;20741:24;;;;;;;;;;;;;;;;;;;;21701:1;21956;20457:316;;;;:::o;9934:232::-;10014:7;10050:16;10060:5;10050:9;:16::i;:::-;10042:5;:24;10034:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10132:12;:19;10145:5;10132:19;;;;;;;;;;;;;;;10152:5;10132:26;;;;;;;;;;;;;;;;;;10125:33;;9934:232;;;;:::o;18345:53::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6352:134::-;6439:39;6456:4;6462:2;6466:7;6439:39;;;;;;;;;;;;;:16;:39::i;:::-;6352:134;;;:::o;16375:35::-;;;;;;;;;;;;;;;;;:::o;16249:30::-;;;;;;;;;;;;;:::o;10276:199::-;10334:7;10370:13;:11;:13::i;:::-;10362:5;:21;10354:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10450:10;10461:5;10450:17;;;;;;;;;;;;;;;;;;10443:24;;10276:199;;;:::o;16328:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;4776:226::-;4831:7;4851:13;4867:11;:20;4879:7;4867:20;;;;;;;;;;;;;;;;;;;;;4851:36;;4923:1;4906:19;;:5;:19;;;;4898:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4989:5;4982:12;;;4776:226;;;:::o;4559:209::-;4614:7;4659:1;4642:19;;:5;:19;;;;4634:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4726:34;:17;:24;4744:5;4726:24;;;;;;;;;;;;;;;:32;:34::i;:::-;4719:41;;4559:209;;;:::o;18068:168::-;18150:13;18136:4;21786:13;21794:4;21786:7;:13::i;:::-;21772:27;;:10;:27;;;21764:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18190:6;18175;:12;18182:4;18175:12;;;;;;;;;;;:21;;;;18207;;;;;;;;;;;;;;;;;;;;18068:168;;;;;:::o;15060:89::-;15101:13;15134:7;15127:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15060:89;:::o;17072:158::-;17158:64;17169:13;17177:4;17169:13;;:7;:13::i;:::-;17184:10;17196:4;17202:6;:12;17209:4;17202:12;;;;;;;;;;;;;;17216:1;17218;17220;17158:10;:64::i;:::-;17072:158;;;;:::o;20239:206::-;20288:13;20341:1;20316:4;:10;20321:4;20316:10;;;;;;;;;;;:22;20327:10;20316:22;;;;;;;;;;;;;;;;:26;20313:125;;;20358:14;20367:4;20358:8;:14::i;:::-;;20313:125;;;20405:21;;;;;;;;;;;;;;;;;;;;;;20313:125;20239:206;;;;:::o;18679:390::-;18741:4;21786:13;21794:4;21786:7;:13::i;:::-;21772:27;;:10;:27;;;21764:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18765:33;18809:28;;:::i;:::-;18840:66;;;;;;;;;18853:4;18840:66;;;;18859:1;18840:66;;;;18870:1;18840:66;;;;;;18874:4;18840:66;;;;;;18880:16;18840:66;;;;18898:7;18840:66;;;18809:97;;18935:8;18917:9;:15;18927:4;18917:15;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18976:4;18955:12;:18;18968:4;18955:18;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;19021:1;18992:13;:19;19006:4;18992:19;;;;;;;;;;;:30;;;;;:::i;:::-;;19033:28;19049:4;19056;19033:7;:28::i;:::-;21824:1;;18679:390;;;:::o;20787:648::-;20862:13;20847:4;21722:111;;21786:13;21794:4;21786:7;:13::i;:::-;21772:27;;:10;:27;;;21764:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20919:4;20897:26;;:12;:18;20910:4;20897:18;;;;;;;;;;;;;;;;;;;;;;;:26;;;20889:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20978:5;20953:9;:15;20963:4;20953:15;;;;;;;;;;;;;:22;;;:30;;;;;;;;;;;;;;;;;;21015:5;20994:12;:18;21007:4;20994:18;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;21070:1;21034:38;;:9;:15;21044:4;21034:15;;;;;;;;;;;;;:24;;;;;;;;;;;;:38;;;21031:70;;;21075:24;;;;;;;;;;;;;;;;;;;;;;21031:70;21169:22;21194:9;:15;21204:4;21194:15;;;;;;;;;;;;;:24;;;;;;;;;;;;21169:49;;21229:79;21240:13;21248:4;21240:13;;:7;:13::i;:::-;21255:14;21271:4;21277:9;:15;21287:4;21277:15;;;;;;;;;;;;;:21;;;21300:1;21302:2;21305;21229:10;:79::i;:::-;21354:1;21319:9;:15;21329:4;21319:15;;;;;;;;;;;;;:24;;;:37;;;;;;;;;;;;;;;;;;21391:1;21367:9;:15;21377:4;21367:15;;;;;;;;;;;;;:21;;:25;;;;21403:24;;;;;;;;;;;;;;;;;;;;;21824:1;20787:648;;;;:::o;5651:246::-;5737:10;5731:16;;:2;:16;;;;5723:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5825:8;5788:18;:30;5807:10;5788:30;;;;;;;;;;;;;;;:34;5819:2;5788:34;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;5876:2;5849:40;;5864:10;5849:40;;;5880:8;5849:40;;;;;;;;;;;;;;;;;;;;;;5651:246;;:::o;18242:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;6494:268::-;6601:31;6614:4;6620:2;6624:7;6601:12;:31::i;:::-;6651:48;6674:4;6680:2;6684:7;6693:5;6651:22;:48::i;:::-;6643:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6494:268;;;;:::o;19077:1153::-;19129:4;21456:119;;21529:4;21507:26;;:12;:18;21520:4;21507:18;;;;;;;;;;;;;;;;;;;;;:26;;;21498:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19148:4;21845:120;;21911:13;21919:4;21911:7;:13::i;:::-;21897:27;;:10;:27;;;;21889:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19207:9;:15;19217:4;19207:15;;;;;;;;;;;;;:26;;;19194:9;19169:4;:10;19174:4;19169:10;;;;;;;;;;;;;:22;19180:10;19169:22;;;;;;;;;;;;;;;;:34;:64;;19166:1057;;;19314:5;19289:9;:15;19299:4;19289:15;;;;;;;;;;;;;:22;;;:30;;;;;;;;;;;;;;;;;;19361:10;19334:9;:15;19344:4;19334:15;;;;;;;;;;;;;:24;;;:37;;;;;;;;;;;;;;;;;;19435:9;19410:4;:10;19415:4;19410:10;;;;;;;;;;;;;:22;19421:10;19410:22;;;;;;;;;;;;;;;;:34;19386:9;:15;19396:4;19386:15;;;;;;;;;;;;;:21;;:58;;;;19484:1;19459:4;:10;19464:4;19459:10;;;;;;;;;;;;;:22;19470:10;19459:22;;;;;;;;;;;;;;;:26;;;;19521:5;19500:12;:18;19513:4;19500:18;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;19542:75;19553:13;19561:4;19553:13;;:7;:13::i;:::-;19568:10;19580:4;19586:9;:15;19596:4;19586:15;;;;;;;;;;;;;:21;;;19609:1;19611:2;19614;19542:10;:75::i;:::-;19166:1057;;;19744:9;19719:4;:10;19724:4;19719:10;;;;;;;;;;;;;:22;19730:10;19719:22;;;;;;;;;;;;;;;;:34;19694:4;:10;19699:4;19694:10;;;;;;;;;;;;;:22;19705:10;19694:22;;;;;;;;;;;;;;;:59;;;;19782:13;:19;19796:4;19782:19;;;;;;;;;;;;;19768:11;:33;;;;;;;;:::i;:::-;;19816:11;19833:10;19816:28;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;19816:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19881:11;19859:13;:19;19873:4;19859:19;;;;;;;;;;;;;:33;;;;;;;;:::i;:::-;;19958:4;:10;19963:4;19958:10;;;;;;;;;;;;;:22;19969:10;19958:22;;;;;;;;;;;;;;;;19934:9;:15;19944:4;19934:15;;;;;;;;;;;;;:21;;;:46;:87;;20011:10;19934:87;;;19984:9;:15;19994:4;19984:15;;;;;;;;;;;;;:24;;;;;;;;;;;;19934:87;19907:9;:15;19917:4;19907:15;;;;;;;;;;;;;:24;;;:114;;;;;;;;;;;;;;;;;;20085:4;:10;20090:4;20085:10;;;;;;;;;;;;;:22;20096:10;20085:22;;;;;;;;;;;;;;;;20061:9;:15;20071:4;20061:15;;;;;;;;;;;;;:21;;;:46;:95;;20134:4;:10;20139:4;20134:10;;;;;;;;;;;;;:22;20145:10;20134:22;;;;;;;;;;;;;;;;20061:95;;;20110:9;:15;20120:4;20110:15;;;;;;;;;;;;;:21;;;20061:95;20036:9;:15;20046:4;20036:15;;;;;;;;;;;;;:21;;:120;;;;20171:9;:15;20181:4;20171:15;;;;;;;;;;;;;:23;;20200:10;20171:40;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;20171:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19166:1057;21566:1;19077:1153;;:::o;15161:205::-;15219:13;15253:16;15261:7;15253;:16::i;:::-;15245:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15339:10;:19;15350:7;15339:19;;;;;;;;;;;15332:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15161:205;;;:::o;18291:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5905:147::-;5985:4;6009:18;:25;6028:5;6009:25;;;;;;;;;;;;;;;:35;6035:8;6009:35;;;;;;;;;;;;;;;;;;;;;;;;;6002:42;;5905:147;;;;:::o;18405:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3168:91::-;3250:1;3232:7;:14;;;:19;;;;;;;;;;;3168:91;:::o;3046:114::-;3111:7;3138;:14;;;3131:21;;3046:114;;;:::o;10734:202::-;10798:24;10810:2;10814:7;10798:11;:24::i;:::-;10835:40;10863:2;10867:7;10835:27;:40::i;:::-;10888;10920:7;10888:31;:40::i;:::-;10734:202;;:::o;15374:195::-;15460:16;15468:7;15460;:16::i;:::-;15452:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15558:3;15536:10;:19;15547:7;15536:19;;;;;;;;;;;:25;;;;;;;;;;;;:::i;:::-;;15374:195;;:::o;6770:155::-;6827:4;6844:13;6860:11;:20;6872:7;6860:20;;;;;;;;;;;;;;;;;;;;;6844:36;;6915:1;6898:19;;:5;:19;;;;6891:26;;;6770:155;;;:::o;6933:333::-;7018:4;7043:16;7051:7;7043;:16::i;:::-;7035:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7119:13;7135:16;7143:7;7135;:16::i;:::-;7119:32;;7181:5;7170:16;;:7;:16;;;:51;;;;7214:7;7190:31;;:20;7202:7;7190:11;:20::i;:::-;:31;;;7170:51;:87;;;;7225:32;7242:5;7249:7;7225:16;:32::i;:::-;7170:87;7162:96;;;6933:333;;;;:::o;10481:245::-;10567:38;10587:4;10593:2;10597:7;10567:19;:38::i;:::-;10618:47;10651:4;10657:7;10618:32;:47::i;:::-;10678:40;10706:2;10710:7;10678:27;:40::i;:::-;10481:245;;;:::o;17243:809::-;17356:24;17400:5;17392:14;;17356:51;;17418:19;17457:7;:13;17465:4;17457:13;;;;;;;;;;;;;;;;;;;;;;;17449:22;;17418:54;;17726:7;;;;;;;;;;;:16;;:40;17761:1;17754:3;17748:4;:9;;;;;;;;17746:16;17726:40;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17726:40:0;17813:3;17812:14;;:38;17845:1;17838:3;17831:4;:10;;;;;;;;17830:16;17812:38;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17812:38:0;17898:8;17897:19;;:43;17935:1;17928:3;17921:4;:10;;;;;;;;17920:16;17897:43;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17897:43:0;17985:29;17998:5;18005:2;18009:4;17985:29;;:12;:29::i;:::-;18040:4;18025:6;:12;18032:4;18025:12;;;;;;;;;;;;;:19;;;;17243:809;;;;;;;;;:::o;8509:342::-;8622:4;8644:15;:2;:13;;;:15::i;:::-;8643:16;8639:60;;;8683:4;8676:11;;;;8639:60;8711:13;8743:2;8727:36;;;8764:10;8776:4;8782:7;8791:5;8727:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8727:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8727:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8727:70:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8727:70:0;;;;;;;;;;;;;;;;8711:86;;4170:10;8826:16;;8816:26;;;:6;:26;;;;8808:35;;;8509:342;;;;;;;:::o;7274:335::-;7360:1;7346:16;;:2;:16;;;;7338:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7419:16;7427:7;7419;:16::i;:::-;7418:17;7410:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7504:2;7481:11;:20;7493:7;7481:20;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;7517:33;:17;:21;7535:2;7517:21;;;;;;;;;;;;;;;:31;:33::i;:::-;7593:7;7589:2;7568:33;;7585:1;7568:33;;;;;;;;;;;;7274:335;;:::o;11458:186::-;11572:12;:16;11585:2;11572:16;;;;;;;;;;;;;;;:23;;;;11543:17;:26;11561:7;11543:26;;;;;;;;;;;:52;;;;11606:12;:16;11619:2;11606:16;;;;;;;;;;;;;;;11628:7;11606:30;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;11606:30:0;;;;;;;;;;;;;;;;;;;;;;11458:186;;:::o;11652:164::-;11756:10;:17;;;;11729:15;:24;11745:7;11729:24;;;;;;;;;;;:44;;;;11784:10;11800:7;11784:24;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;11784:24:0;;;;;;;;;;;;;;;;;;;;;;11652:164;:::o;8042:459::-;8156:4;8136:24;;:16;8144:7;8136;:16::i;:::-;:24;;;8128:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8239:1;8225:16;;:2;:16;;;;8217:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8295:23;8310:7;8295:14;:23::i;:::-;8331:35;:17;:23;8349:4;8331:23;;;;;;;;;;;;;;;:33;:35::i;:::-;8377:33;:17;:21;8395:2;8377:21;;;;;;;;;;;;;;;:31;:33::i;:::-;8446:2;8423:11;:20;8435:7;8423:20;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;8485:7;8481:2;8466:27;;8475:4;8466:27;;;;;;;;;;;;8042:459;;;:::o;11824:1148::-;12090:22;12115:32;12145:1;12115:12;:18;12128:4;12115:18;;;;;;;;;;;;;;;:25;;;;:29;;:32;;;;:::i;:::-;12090:57;;12158:18;12179:17;:26;12197:7;12179:26;;;;;;;;;;;;12158:47;;12326:14;12312:10;:28;;12308:328;;;12357:19;12379:12;:18;12392:4;12379:18;;;;;;;;;;;;;;;12398:14;12379:34;;;;;;;;;;;;;;;;;;12357:56;;12463:11;12430:12;:18;12443:4;12430:18;;;;;;;;;;;;;;;12449:10;12430:30;;;;;;;;;;;;;;;;;:44;;;;12580:10;12547:17;:30;12565:11;12547:30;;;;;;;;;;;:43;;;;12308:328;;12725:12;:18;12738:4;12725:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;:::i;:::-;;11824:1148;;;;:::o;2707:176::-;2767:4;2786:12;2840:7;2828:20;2820:28;;2874:1;2867:4;:8;2860:15;;;2707:176;;;:::o;8859:175::-;8959:1;8923:38;;:15;:24;8939:7;8923:24;;;;;;;;;;;;;;;;;;;;;:38;;;;8919:108;;;9013:1;8978:15;:24;8994:7;8978:24;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;8919:108;8859:175;:::o;3267:110::-;3348:21;3367:1;3348:7;:14;;;:18;;:21;;;;:::i;:::-;3331:7;:14;;:38;;;;3267:110;:::o;1703:182::-;1761:7;1794:1;1789;:6;;1781:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1841:9;1857:1;1853;:5;1841:17;;1876:1;1869:8;;;1703:182;;;;:::o;16126:5990::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://7ba878924f07c53953c0aa20ae8d1859686bc3567fbcffc307334971b018f1f0
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

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