ETH Price: $3,291.02 (-1.75%)

Token

Third Floor Mutual SAI (3FMS)
 

Overview

Max Total Supply

163,100.326263536973972177 3FMS

Holders

25

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 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:
MakerDAOInsurance

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

pragma solidity ^0.5.16;

contract MakerDAOInsurance {
    using SafeMath for *;

    //*********
    // STRUCTS
    //*********
    struct Player {
        uint256 id;     // agent id
        bytes32 name;   // agent name
        uint256 gen;    // general vault
        uint256 ref;    // referral vault
        bool isAgent;   // referral activated
        uint256 eth;    // eth player has paid
        uint256 shares;   // shares
        uint256 units;  // uints of insurance
        uint256 plyrLastSeen; // last day player played
        uint256 mask;   // player mask
        uint256 level;
        uint256 accumulatedRef;
    }


    //***************
    // EXTERNAL DATA
    //***************

    TOP SAI_TOP = TOP(0x9b0ccf7C8994E19F39b2B4CF708e0A7DF65fA8a3);
    TUB SAI_TUB = TUB(0x448a5065aeBB8E423F0896E6c5D525C040f59af3);
    Underwriter underwriter = Underwriter(0xE58cDe3CbEeCC8d9306f482729084B909Afa2357);
    Agency agency = Agency(0x7Bc360ebD65eFa503FF189A0F81f61f85D310Ec3);
    
    address payable constant private developer = address(0x1e20B7d24d429b0DE705d3FF8B88Ec651d28A935);
    address payable constant private hakka = address(0xD0533664013a82c31584B7FFDB215139f38Ad77A);
    uint256 public end;
    bool public ended;


    //******************
    // GLOBAL VARIABLES
    //******************
    mapping(address => mapping(uint256 => uint256)) public unitToExpirePlayer;
    mapping(uint256 => uint256) public unitToExpire; // unit of insurance due at day x

    uint256 public issuedInsurance; // all issued insurance
    uint256 public ethOfShare;        // virtual eth of bought shares
    uint256 public shares;            // totalSupply of share
    uint256 public pool;             // eth gonna pay to beneficiary
    uint256 public today;           // today's date
    uint256 public _now;            // current time
    uint256 public mask;            // global mask
    uint256 public agents;          // number of agent

    // player data
    mapping(address => Player) public player; // player data
    mapping(uint256 => address) public agentxID_; // return agent address by id
    mapping(bytes32 => address) public agentxName_; // return agent address by name

    // constant parameters
    uint256 constant maxInsurePeriod = 100;
    uint256 constant maxLevel = 10;

    // rate of buying x day insurance
    uint256[101] public rate =
    [0,
    1000000000000000000,
    1990000000000000000,
    2970100000000000000,
    3940399000000000000,
    4900995010000000000,
    5851985059900000000,
    6793465209301000000,
    7725530557207990000,
    8648275251635910100,
    9561792499119550999,
    10466174574128355489,
    11361512828387071934,
    12247897700103201215,
    13125418723102169203,
    13994164535871147511,
    14854222890512436036,
    15705680661607311676,
    16548623854991238559,
    17383137616441326173,
    18209306240276912911,
    19027213177874143782,
    19836941046095402344,
    20638571635634448321,
    21432185919278103838,
    22217864060085322800,
    22995685419484469572,
    23765728565289624876,
    24528071279636728627,
    25282790566840361341,
    26029962661171957728,
    26769663034560238151,
    27501966404214635769,
    28226946740172489411,
    28944677272770764517,
    29655230500043056872,
    30358678195042626303,
    31055091413092200040,
    31744540498961278040,
    32427095093971665260,
    33102824143031948607,
    33771795901601629121,
    34434077942585612830,
    35089737163159756702,
    35738839791528159135,
    36381451393612877544,
    37017636879676748769,
    37647460510879981281,
    38270985905771181468,
    38888276046713469653,
    39499393286246334956,
    40104399353383871606,
    40703355359850032890,
    41296321806251532561,
    41883358588189017235,
    42464525002307127063,
    43039879752284055792,
    43609480954761215234,
    44173386145213603082,
    44731652283761467051,
    45284335760923852380,
    45831492403314613856,
    46373177479281467717,
    46909445704488653040,
    47440351247443766510,
    47965947734969328845,
    48486288257619635557,
    49001425375043439201,
    49511411121293004809,
    50016297010080074761,
    50516134039979274013,
    51010972699579481273,
    51500862972583686460,
    51985854342857849595,
    52465995799429271099,
    52941335841434978388,
    53411922483020628604,
    53877803258190422318,
    54339025225608518095,
    54795634973352432914,
    55247678623618908585,
    55695201837382719499,
    56138249819008892304,
    56576867320818803381,
    57011098647610615347,
    57440987661134509194,
    57866577784523164102,
    58287912006677932461,
    58705032886611153136,
    59117982557745041605,
    59526802732167591189,
    59931534704845915277,
    60332219357797456124,
    60728897164219481563,
    61121608192577286747,
    61510392110651513880,
    61895288189544998741,
    62276335307649548754,
    62653571954573053266,
    63027036235027322733,
    63396765872677049506];

    // threshold of agent upgrade
    uint256[10] public requirement =
    [0,
    73890560989306501,
    200855369231876674,
    545981500331442382,
    1484131591025766010,
    4034287934927351160,
    10966331584284585813,
    29809579870417282259,
    81030839275753838749,
    220264657948067161559];


    //******************
    // EVENT
    //******************
    event UPGRADE (address indexed agent, uint256 indexed level);
    event BUYINSURANCE(address indexed buyer, uint256 indexed start, uint256 unit,  uint256 date);


    //******************
    // MODIFIER
    //******************
    modifier isHuman() {
        require(msg.sender == tx.origin, "sorry humans only");
        _;
    }

    //******************
    // CORE FUNCTIONS
    //******************

    /**
     * @dev Constructor
     * @notice Initialize the time
     */
    constructor() public {
        _now = now;
        today = _now / 1 days;
    }

    /**
     * @dev Ticker
     * @notice It is called everytime when a player interacts with this contract
     * @return true if MakerDAO has been shut down, false otherwise
     */
    function tick()
        internal
        returns(bool)
    {
        if(!ended) {
            if (_now != now) {
                _now = now;
                uint256 _today; // the current day as soon as ticker is called

                //check MakerDAO status
                ended = SAI_TUB.off();
                end = SAI_TOP.caged();

                _today = ended ? end / 1 days : _now / 1 days;

                // calculate the outdated issuedInsurance
                while (today < _today) {
                    issuedInsurance = issuedInsurance.sub(unitToExpire[today]);
                    today += 1;
                }
            }
        }
        
        return ended;
    }

    /**
     * @dev Register
     * @notice Register a name by a human player
     */
    function register(string calldata _nameString)
        external
        payable
        isHuman()
    {
        bytes32 _name = agency.register(_nameString);
        address _agent = msg.sender;
        require(msg.value >= 10000000000000000, "insufficient amount");
        require(agentxName_[_name] == address(0), "name registered");

        if(!player[_agent].isAgent){
            agents += 1;
            player[_agent].isAgent = true;
            player[_agent].id = agents;
            player[_agent].level = 1;
            agentxID_[agents] = _agent;
        }
        // set name active for the player
        player[_agent].name = _name;
        agentxName_[_name] = _agent;

        (new SafeSend).value(msg.value)(hakka);

    }

    /**
     * @dev Upgrade
     * @notice Upgrade when a player's referral bonus meet the promotion
     */
    function upgrade()
        external
        isHuman()
    {
        address _agent = msg.sender;
        require(player[_agent].isAgent);
        require(player[_agent].level < maxLevel);

        if(player[_agent].accumulatedRef >= requirement[player[_agent].level]){
            player[_agent].level = (1).add(player[_agent].level);
            emit UPGRADE(_agent,player[_agent].level);
        }
    }

    //using address for referral
    function buy(address payable _agent, uint256 _date)
        isHuman()
        public
        payable
    {
        // ticker
        if(tick()){
            msg.sender.transfer(msg.value);
            return;
        }

        // validate agent
        if(!player[_agent].isAgent){
            _agent = address(0);
        }

        buyCore(msg.sender, msg.value, _date, _agent);
    }

    //using ID for referral
    function buy(uint256 _agentId, uint256 _date)
        isHuman()
        public
        payable
    {
        // ticker
        if(tick()){
            msg.sender.transfer(msg.value);
            return;
        }

        //query agent
        address payable _agent = address(uint160(agentxID_[_agentId]));

        buyCore(msg.sender, msg.value, _date, _agent);
    }

    //using name for referral
    function buy(bytes32 _agentName, uint256 _date)
        isHuman()
        public
        payable
    {
        // ticker
        if(tick()){
            msg.sender.transfer(msg.value);
            return;
        }

        //query agent
        address payable _agent = address(uint160(agentxName_[_agentName]));

        buyCore(msg.sender, msg.value, _date, _agent);
    }

    // contract wallets, sorry insurance only for human
    function buy()
        public
        payable
    {
        // ticker
        if(tick()) {
            (new SafeSend).value(msg.value)(msg.sender);
            return;
        }

        buyCore(msg.sender, msg.value, 0, address(0));
    }

    // fallback
    function () external payable {
        buy();
    }

    /**
     * @dev Core part of buying
     */
    function buyCore(address _buyer, uint256 _eth, uint256 _date, address payable _agent) internal {

        updatePlayerUnit(_buyer);
        
        require(_eth >= 1000000000, "pocket lint: not a valid currency");
        require(_eth <= 10000000000000000000000, "no vitalik, no");

        if(_date > maxInsurePeriod){
            _date = maxInsurePeriod;
        }
        uint256 _rate = rate[_date] + 1000000000000000000;
        uint256 ethToBuyShare = _eth.mul(1000000000000000000) / _rate;
        //-- ethToBuyShare is a virtual amount used to represent the eth player paid for buying shares
        //which is usually different from _eth

        // get value of shares and insurances can be bought
        uint256 _share = underwriter.mintShare(ethOfShare, ethToBuyShare);
        uint256 _unit = (_date == 0)? 0: _share;
        uint256 newDate = today + _date - 1;


        // update global data
        ethOfShare = ethOfShare.add(ethToBuyShare);
        shares = shares.add(_share);
        unitToExpire[newDate] = unitToExpire[newDate].add(_unit);
        issuedInsurance = issuedInsurance.add(_unit);

        // update player data
        player[_buyer].eth = player[_buyer].eth.add(_eth);
        player[_buyer].shares = player[_buyer].shares.add(_share);
        player[_buyer].units = player[_buyer].units.add(_unit);
        unitToExpirePlayer[_buyer][newDate] = unitToExpirePlayer[_buyer][newDate].add(_unit);

        distributeEx(_eth, _agent);
        distributeIn(_buyer, _eth, _share);
        emit BUYINSURANCE(_buyer, today, _unit, _date);
        emit Transfer(address(0), _buyer, _unit);
    }

    /**
     * @dev Update player's units of insurance
     */
    function updatePlayerUnit(address _player) internal {
        uint256 _today = player[_player].plyrLastSeen;
        uint256 expiredUnit = 0;
        if(_today != 0){
            while(_today < today){
                expiredUnit = expiredUnit.add(unitToExpirePlayer[_player][_today]);
                _today += 1;
            }
            player[_player].units = player[_player].units.sub(expiredUnit);
        }
        player[_player].plyrLastSeen = today;
    }

    /**
     * @dev pay external stakeholder
     */
    function distributeEx(uint256 _eth, address payable _agent) internal {
        uint256 ex = _eth / 4 ;

        if(player[_agent].isAgent){
            uint256 refRate = player[_agent].level.add(6);
            uint256 _ref = _eth.mul(refRate) / 100;
            player[_agent].ref = player[_agent].ref.add(_ref);
            player[_agent].accumulatedRef = player[_agent].accumulatedRef.add(_ref);
            ex = ex.sub(_ref);
        }

        uint256 _dev = ex / 3;
        uint256 _hak = ex.sub(_dev);

        (new SafeSend).value(_dev)(developer);
        (new SafeSend).value(_hak)(hakka);
    }

    /**
     * @dev Distribute to internal
     */
    function distributeIn(address _buyer, uint256 _eth, uint256 _shares) internal {
        uint256 _gen = _eth.mul(3) / 20;

        // internal eth balance (eth = eth - (community share + ref share + dev share))
        _eth = _eth.sub(_eth / 4);

        // calculate pool
        uint256 _pool = _eth.sub(_gen);

        // distribute gen share and collect dust
        uint256 _dust = updateMasks(_buyer, _gen, _shares);

        // add eth to pool
        pool = pool.add(_dust).add(_pool);
    }

    function updateMasks(address  _player, uint256 _gen, uint256 _shares)
        private
        returns(uint256)
    {
        // calculate profit per share & global mask based on this buy: (dust goes to pool)
        uint256 _ppt = _gen.mul(1000000000000000000) / shares;
        mask = mask.add(_ppt);

        // calculate player earning from their own buy (only based on the shares
        // they just bought). & update player earnings mask
        uint256 _pearn = (_ppt.mul(_shares)) / 1000000000000000000;
        player[_player].mask = (((mask.mul(_shares)) / 1000000000000000000).sub(_pearn)).add(player[_player].mask);

        // calculate & return dust
        return(_gen.sub( _ppt.mul(shares) / 1000000000000000000));
    }

    /**
     * @dev Submit a claim from a beneficiary
     */
    function claim()
        isHuman()
        public
    {
        require(tick(), "not yet"); // MakerDAO shutdown!
        address payable beneficiary = msg.sender;
        updatePlayerUnit(beneficiary);
        uint256 amount = pool.mul(player[beneficiary].units) / issuedInsurance;
        player[beneficiary].units = 0;
        beneficiary.transfer(amount);
    }

    /**
     * @dev Withdraw dividends and ref
     */
    function withdraw()
        public
    {
        // get player earnings
        uint256 _eth;
        _eth = withdrawEarnings(msg.sender);

        // pay
        if (_eth > 0){
            if(msg.sender == tx.origin)
                msg.sender.transfer(_eth);
            else
                (new SafeSend).value(_eth)(msg.sender);
        }
    }

    function withdrawEarnings(address _player)
        private
        returns(uint256)
    {
        // update gen vault
        updateGenVault(_player);

        // from vaults
        uint256 _earnings = player[_player].gen.add(player[_player].ref);
        if (_earnings > 0) {
            player[_player].gen = 0;
            player[_player].ref = 0;
        }

        return(_earnings);
    }

    function updateGenVault(address _player)
        private
    {
        uint256 _earnings = calcUnMaskedEarnings(_player);
        if (_earnings > 0) {
            // put in gen vault
            player[_player].gen = _earnings.add(player[_player].gen);
            // zero out their earnings by updating mask
            player[_player].mask = _earnings.add(player[_player].mask);
        }
    }

    function calcUnMaskedEarnings(address _player)
        private
        view
        returns(uint256)
    {
        return (mask.mul(player[_player].shares) / 1000000000000000000).sub(player[_player].mask);
    }

    //******************
    // GETTERS
    //******************

    /**
     * @dev Return the price buyer will pay for next 1 individual share.
     * @return Price for next share bought (in wei format)
     */
    function getBuyPrice() external view returns(uint256) {
        return underwriter.burnShare(shares.add(1000000000000000000), 1000000000000000000);
    }

    /**
     * @dev Get the units of insurance of player
     * @return Amount of existing units of insurance
     */
    function getCurrentUnit(address _player)
        external
        view
        returns(uint256)
    {
        uint256 _unit = player[_player].units;
        uint256 _today = player[_player].plyrLastSeen;
        uint256 expiredUnit = 0;
        if(_today != 0) {
            while(_today < today){
                expiredUnit = expiredUnit.add(unitToExpirePlayer[_player][_today]);
                _today += 1;
            }

        }
        return _unit == 0 ? 0 : _unit.sub(expiredUnit);
    }

    /**
     * @dev Get the list of units of insurace going to expire of a player
     * @return List of units of insurance going to expire from a player
     */
    function getExpiringUnitListPlayer(address _player)
        external
        view
        returns(uint256[maxInsurePeriod] memory expiringUnitList)
    {
        for(uint256 i=0; i<maxInsurePeriod; i++) {
            expiringUnitList[i] = unitToExpirePlayer[_player][today+i];
        }
        return expiringUnitList;
    }

    /**
     * @dev Get the list of units of insurace going to expire
     * @return List of units of insurance going to expire
     */
    function getExpiringUnitList()
        external
        view
        returns(uint256[maxInsurePeriod] memory expiringUnitList)
    {
        for(uint256 i=0; i<maxInsurePeriod; i++){
            expiringUnitList[i] = unitToExpire[today+i];
        }
        return expiringUnitList;
    }

    //******************
    // ERC20
    //******************
    string  public constant name     = "Third Floor Mutual SAI";
    string  public constant symbol   = "3FMS";
    uint8   public constant decimals = 18;

    function totalSupply() external view returns(uint256) {
        return shares;
    }

    function balanceOf(address who) external view returns(uint256) {
        return player[who].shares;
    }

    event Transfer(address indexed from, address indexed to, uint256 amount);

}

contract TOP {
    function caged() public returns(uint256);
}

contract TUB {
    function off() public returns(bool);
}

contract SafeSend {
    constructor(address payable to) public payable {
        selfdestruct(to);
    }
}

contract Underwriter {
    function mintShare(uint256 _curEth, uint256 _newEth) external pure returns (uint256);
    function burnShare(uint256 _curShares, uint256 _sellShares) external pure returns (uint256);
    function shares(uint256 _eth) public pure returns(uint256);
    function eth(uint256 _shares) public pure returns(uint256);
}


contract Agency {
    function register(string memory _input) public pure returns(bytes32);
}

library SafeMath {

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

    function sub(uint256 a, uint256 b)
        internal
        pure
        returns (uint256 c)
    {
        require(b <= a);
        c = a - b;
    }

    function add(uint256 a, uint256 b)
        internal
        pure
        returns (uint256 c)
    {
        c = a + b;
        require(c >= a);
    }

    function sqrt(uint256 x)
        internal
        pure
        returns (uint256 y)
    {
        uint256 z = ((add(x, 1)) / 2);
        y = x;
        while (z < y)
        {
            y = z;
            z = ((add((x / z), z)) / 2);
        }
    }

    function sq(uint256 x)
        internal
        pure
        returns (uint256)
    {
        return (mul(x,x));
    }

    function pwr(uint256 x, uint256 y) internal pure returns(uint256 z) {
        z = 1;
        while(y != 0){
            if(y % 2 == 1)
                z = mul(z,x);
            x = sq(x);
            y = y / 2;
        }
        return z;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"buyer","type":"address"},{"indexed":true,"internalType":"uint256","name":"start","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"date","type":"uint256"}],"name":"BUYINSURANCE","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"agent","type":"address"},{"indexed":true,"internalType":"uint256","name":"level","type":"uint256"}],"name":"UPGRADE","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"_now","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"agents","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"agentxID_","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"agentxName_","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_agentName","type":"bytes32"},{"internalType":"uint256","name":"_date","type":"uint256"}],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_agent","type":"address"},{"internalType":"uint256","name":"_date","type":"uint256"}],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_agentId","type":"uint256"},{"internalType":"uint256","name":"_date","type":"uint256"}],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"end","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ended","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ethOfShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBuyPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_player","type":"address"}],"name":"getCurrentUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getExpiringUnitList","outputs":[{"internalType":"uint256[100]","name":"expiringUnitList","type":"uint256[100]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_player","type":"address"}],"name":"getExpiringUnitListPlayer","outputs":[{"internalType":"uint256[100]","name":"expiringUnitList","type":"uint256[100]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"issuedInsurance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mask","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"player","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"uint256","name":"gen","type":"uint256"},{"internalType":"uint256","name":"ref","type":"uint256"},{"internalType":"bool","name":"isAgent","type":"bool"},{"internalType":"uint256","name":"eth","type":"uint256"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"units","type":"uint256"},{"internalType":"uint256","name":"plyrLastSeen","type":"uint256"},{"internalType":"uint256","name":"mask","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"accumulatedRef","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_nameString","type":"string"}],"name":"register","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"requirement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"shares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"today","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"unitToExpire","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"unitToExpirePlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

600080546001600160a01b0319908116739b0ccf7c8994e19f39b2b4cf708e0a7df65fa8a317825560018054821673448a5065aebb8e423f0896e6c5d525c040f59af317905560028054821673e58cde3cbeecc8d9306f482729084b909afa235717905560038054909116737bc360ebd65efa503ff189a0f81f61f85d310ec3179055610d206040526080908152670de0b6b3a764000060a052671b9de674df07000060c052672937ea36b763400060e0526736af1c036c4df00061010052674403d4feb9031400610120526751366d68263b870061014052675e473c9d525c5f4061016052676b36991c33cecef061018052677804d885558f75d46101a0526784b24f9e0e03f2176101c05267913f5252b02558a16101e052679dac33b8b70e17be6102005267a9f94610ebf9a1bf6102205267b626dac986c418736102405267c235428048f80df76102605267ce24cd0493784b446102805267d9f5c95976d3693c6102a05267e5a885b7be4ee59f6102c05267f13d4f8ff5b73a5d6102e05267fcb4738c6a025b0f610300526801080e3d9324d1da26610320526801134af8c7e2e1d5686103405268011e6aef8e0571a7c1610360526801296e6b8a7eb33d1e6103805268013455b5a5b94dc4306103a05268013f21160d7b0059446103c052680149d0d436c271252c6103e0526801546536dfa0354b336104005268015ede84110b1de17d610420526801693d0120afd60fe06104405268017380f2b2bbde52476104605268017daa9cbba3f0bcf961048052680187ba4281e5da02c36104a052680191b0269fc5d2dee56104c05268019b8c8b05076566e86104e0526801a54fb0f8a1e9aaff610500526801aef9d91a70a4ee68610520526801b88b4364de96a458610540526801c2042f2e8dfe416c610560526801cb64db2bfba4d53f610580526801d4ad85711df543c16105a0526801ddde6b72ffedda1e6105c0526801e6f7ca0957f5df9e6105e0526801eff9dd701aa1a79f610600526801f8e4e149096f8ee861062052680201b9109d3d8833e16106405268020a76a5deae8c1ee1610660526802131ddae9b578f59c6106805268021baee9068bb03ad56106a0526802242a08eac62981ec6106c05268022c8f72baccd9e4766106e052680234df5e0b4e5a6efa6107005268023d1a01e2afd72111610720526802453f94ba795004936107405268024d504c80be35c717610760526802554c5e99826b28f06107805268025d33ffe01bb47d026107a0526802650764a88f9e5d0a6107c05268026cc6c0c0ede49eab6107e052680274724772a7627e5c6108005268027c0a2b83e194de60610820526802838e9f38c6b761456108405268028affd454d28510f0610860526802925dfc1c1ba52cee61088052680299a9475499cca4cd6108a0526802a0e1e647689cad656108c0526802a80808c20746ca616108e0526802af1bde1794fe9009610900526802b61d95220a414c09610920526802bd0d5c436efbaf1d610940526802c3eb61670d957cb9610960526802cab7d202a2eb313c610980526802d172db178b3d7afb6109a0526802d81ca933ec1e4e3b6109c0526802deb56873db6348546109e0526802e53d44828325027c610a00526802ebb4689b42d2e12e610a20526802f21aff8acd62d9cf610a40526802f87133b044a49512610a60526802feb72efe51bf41a9610a8052680304ed1afc3ae1580b610aa05268030b1320c6f6297d90610ac05268031129691239cfa2b5610ae052680317301c2989956633610b005268031d2761f14184b48a610b20526803230f61e79e0389c6610b4052680328e84325c143a9ad610b605268032eb22c60b61510f0610b80526803346d43ea7021d0c5610ba05268033a19afb2c999f515610bc05268033fb795487e56048d610be0526803454719da247698fc610c005268034ac8623722877ddb610c20526803503b92d0a32cb25b610c4052680355a0cfba865f9c18610c605268035af83cac5042a755610c805268036041fd02159181d2610ca0526803657e33bd65b40d52610cc05268036aad0386327a176d610ce05268036fce8eabb585d4a2610d0052620005fe906013906065620006c7565b506040805161014081018252600081526701068312e0059e8560208201526702c994e4e64bc24291810191909152670793b7482530c0ce6060820152671498b1d19b06ae7a60808201526737fcab8092fd2d7860a08201526798303c794a6def5560c082015268019db0e6f447db64d360e0820152680464875f006314189d610100820152680bf0c943643f76e5d7610120820152620006a390607890600a62000715565b50348015620006b157600080fd5b5042600d819055620151809004600c5562000770565b826065810192821562000703579160200282015b828111156200070357825182906001600160481b0316905591602001919060010190620006db565b506200071192915062000750565b5090565b82600a81019282156200070357916020028201828111156200070357825182906001600160481b0316905591602001919060010190620006db565b6200076d91905b8082111562000711576000815560010162000757565b90565b611f1f80620007806000396000f3fe6080604052600436106101f95760003560e01c8063585166611161010d578063b74e452b116100a0578063d93be4331161006f578063d93be433146106c2578063e7ee6ad6146106ec578063efbe1c1c14610716578063f0da93441461072b578063f2c298be14610740576101f9565b8063b74e452b14610649578063cce7ec131461065e578063d55ec6971461068a578063d6febde81461069f576101f9565b806395d89b41116100dc57806395d89b41146105f5578063a6f2ae3a146101f9578063aaaadb581461060a578063b3bb8cd414610634576101f9565b8063585166611461055057806370a0823114610565578063729fc61314610598578063757b0884146105cb576101f9565b806318160ddd116101905780633ef7c6871161015f5780633ef7c68714610413578063402e912f14610461578063489b3fee146104765780634c54e1b5146104a95780634e71d92d1461053b576101f9565b806318160ddd14610385578063274806e01461039a578063313ce567146103d35780633ccfd60b146103fe576101f9565b8063116134ee116101cc578063116134ee146102ec57806312fa6feb1461030157806316f0115b1461032a57806317604f711461033f576101f9565b8063018a25e81461020357806303314efa1461022a57806306fdde031461023f5780630ddeb632146102c9575b6102016107b0565b005b34801561020f57600080fd5b5061021861080f565b60408051918252519081900360200190f35b34801561023657600080fd5b506102186108b5565b34801561024b57600080fd5b506102546108bb565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028e578181015183820152602001610276565b50505050905090810190601f1680156102bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610201600480360360408110156102df57600080fd5b50803590602001356108ed565b3480156102f857600080fd5b5061021861099e565b34801561030d57600080fd5b506103166109a4565b604080519115158252519081900360200190f35b34801561033657600080fd5b506102186109ad565b34801561034b57600080fd5b506103696004803603602081101561036257600080fd5b50356109b3565b604080516001600160a01b039092168252519081900360200190f35b34801561039157600080fd5b506102186109ce565b3480156103a657600080fd5b50610218600480360360408110156103bd57600080fd5b506001600160a01b0381351690602001356109d4565b3480156103df57600080fd5b506103e86109f1565b6040805160ff9092168252519081900360200190f35b34801561040a57600080fd5b506102016109f6565b34801561041f57600080fd5b50610428610a85565b6040518082610c8080838360005b8381101561044e578181015183820152602001610436565b5050505090500191505060405180910390f35b34801561046d57600080fd5b50610218610aca565b34801561048257600080fd5b506104286004803603602081101561049957600080fd5b50356001600160a01b0316610ad0565b3480156104b557600080fd5b506104dc600480360360208110156104cc57600080fd5b50356001600160a01b0316610b2b565b604080519c8d5260208d019b909b528b8b019990995260608b019790975294151560808a015260a089019390935260c088019190915260e087015261010086015261012085015261014084015261016083015251908190036101800190f35b34801561054757600080fd5b50610201610b8e565b34801561055c57600080fd5b50610218610cac565b34801561057157600080fd5b506102186004803603602081101561058857600080fd5b50356001600160a01b0316610cb2565b3480156105a457600080fd5b50610218600480360360208110156105bb57600080fd5b50356001600160a01b0316610cd0565b3480156105d757600080fd5b50610218600480360360208110156105ee57600080fd5b5035610d6e565b34801561060157600080fd5b50610254610d82565b34801561061657600080fd5b506102186004803603602081101561062d57600080fd5b5035610da2565b34801561064057600080fd5b50610218610db4565b34801561065557600080fd5b50610218610dba565b6102016004803603604081101561067457600080fd5b506001600160a01b038135169060200135610dc0565b34801561069657600080fd5b50610201610e75565b610201600480360360408110156106b557600080fd5b5080359060200135610fc5565b3480156106ce57600080fd5b50610369600480360360208110156106e557600080fd5b503561106a565b3480156106f857600080fd5b506102186004803603602081101561070f57600080fd5b5035611085565b34801561072257600080fd5b50610218611092565b34801561073757600080fd5b50610218611098565b6102016004803603602081101561075657600080fd5b81019060208101813564010000000081111561077157600080fd5b82018360208201111561078357600080fd5b803590602001918460018302840111640100000000831117156107a557600080fd5b50909250905061109e565b6107b861134e565b156108005734336040516107cb90611e6c565b6001600160a01b039091168152604051908190036020019082f0801580156107f7573d6000803e3d6000fd5b5090505061080d565b61080d33346000806114de565b565b600254600a546000916001600160a01b031690636deba2289061084090670de0b6b3a764000063ffffffff61188716565b670de0b6b3a76400006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561088457600080fd5b505afa158015610898573d6000803e3d6000fd5b505050506040513d60208110156108ae57600080fd5b5051905090565b600a5481565b60405180604001604052806016815260200175546869726420466c6f6f72204d757475616c2053414960501b81525081565b333214610935576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b61093d61134e565b156109745760405133903480156108fc02916000818181858888f1935050505015801561096e573d6000803e3d6000fd5b5061099a565b6000828152601260205260409020546001600160a01b0316610998333484846114de565b505b5050565b600e5481565b60055460ff1681565b600b5481565b6012602052600090815260409020546001600160a01b031681565b600a5490565b600660209081526000928352604080842090915290825290205481565b601281565b6000610a013361189d565b90508015610a825733321415610a4457604051339082156108fc029083906000818181858888f19350505050158015610a3e573d6000803e3d6000fd5b50610a82565b8033604051610a5290611e6c565b6001600160a01b039091168152604051908190036020019082f080158015610a7e573d6000803e3d6000fd5b5050505b50565b610a8d611e78565b60005b6064811015610ac657600c548101600090815260076020526040902054828260648110610ab957fe5b6020020152600101610a90565b5090565b60085481565b610ad8611e78565b60005b6064811015610b25576001600160a01b0383166000908152600660209081526040808320600c5485018452909152902054828260648110610b1857fe5b6020020152600101610adb565b50919050565b601060205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b0154999a98999798969760ff90961696949593949293919290918c565b333214610bd6576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b610bde61134e565b610c19576040805162461bcd60e51b81526020600482015260076024820152661b9bdd081e595d60ca1b604482015290519081900360640190fd5b33610c238161190b565b6008546001600160a01b038216600090815260106020526040812060070154600b54919291610c579163ffffffff6119e816565b81610c5e57fe5b6001600160a01b038416600081815260106020526040808220600701829055519390920493509183156108fc0291849190818181858888f19350505050158015610998573d6000803e3d6000fd5b600f5481565b6001600160a01b031660009081526010602052604090206006015490565b6001600160a01b03811660009081526010602052604081206007810154600890910154828115610d47575b600c54821015610d47576001600160a01b0385166000908152600660209081526040808320858452909152902054610d3a90829063ffffffff61188716565b9050600182019150610cfb565b8215610d6257610d5d838263ffffffff611a1016565b610d65565b60005b95945050505050565b607881600a8110610d7b57fe5b0154905081565b6040518060400160405280600481526020016333464d5360e01b81525081565b60076020526000908152604090205481565b600d5481565b600c5481565b333214610e08576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b610e1061134e565b15610e415760405133903480156108fc02916000818181858888f1935050505015801561096e573d6000803e3d6000fd5b6001600160a01b03821660009081526010602052604090206004015460ff16610e6957600091505b61099a333483856114de565b333214610ebd576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b3360008181526010602052604090206004015460ff16610edc57600080fd5b6001600160a01b0381166000908152601060205260409020600a9081015410610f0457600080fd5b6001600160a01b0381166000908152601060205260409020600a908101546078918110610f2d57fe5b01546001600160a01b0382166000908152601060205260409020600b015410610a82576001600160a01b0381166000908152601060205260409020600a0154610f7e9060019063ffffffff61188716565b6001600160a01b038216600081815260106020526040808220600a01849055517f082e58bd2e7f7268b36ef0ce2331f7bfd29c08979529cbe85f06375fcecd43729190a350565b33321461100d576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b61101561134e565b156110465760405133903480156108fc02916000818181858888f1935050505015801561096e573d6000803e3d6000fd5b6000828152601160205260409020546001600160a01b0316610998333484846114de565b6011602052600090815260409020546001600160a01b031681565b60138160658110610d7b57fe5b60045481565b60095481565b3332146110e6576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b6003546040516379614c5f60e11b8152602060048201908152602482018490526000926001600160a01b03169163f2c298be9186918691908190604401848480828437600083820152604051601f909101601f191690920195506020945090925050508083038186803b15801561115c57600080fd5b505afa158015611170573d6000803e3d6000fd5b505050506040513d602081101561118657600080fd5b5051905033662386f26fc100003410156111dd576040805162461bcd60e51b81526020600482015260136024820152721a5b9cdd59999a58da595b9d08185b5bdd5b9d606a1b604482015290519081900360640190fd5b6000828152601260205260409020546001600160a01b031615611239576040805162461bcd60e51b815260206004820152600f60248201526e1b985b59481c9959da5cdd195c9959608a1b604482015290519081900360640190fd5b6001600160a01b03811660009081526010602052604090206004015460ff166112b857600f8054600190810182556001600160a01b038316600081815260106020908152604080832060048101805460ff19168717905586548155600a0194909455935481526011909352912080546001600160a01b03191690911790555b6001600160a01b038116600081815260106020908152604080832060010186905585835260129091529081902080546001600160a01b03191690921790915551349073d0533664013a82c31584b7ffdb215139f38ad77a9061131990611e6c565b6001600160a01b039091168152604051908190036020019082f080158015611345573d6000803e3d6000fd5b50505050505050565b60055460009060ff166114d45742600d54146114d45742600d5560015460408051636626b26d60e01b815290516000926001600160a01b031691636626b26d91600480830192602092919082900301818787803b1580156113ae57600080fd5b505af11580156113c2573d6000803e3d6000fd5b505050506040513d60208110156113d857600080fd5b50516005805460ff1916911515919091179055600080546040805163f83e579360e01b815290516001600160a01b039092169263f83e5793926004808401936020939083900390910190829087803b15801561143357600080fd5b505af1158015611447573d6000803e3d6000fd5b505050506040513d602081101561145d57600080fd5b505160045560055460ff166114805762015180600d548161147a57fe5b04611490565b620151806004548161148e57fe5b045b90505b80600c5410156114d257600c546000908152600760205260409020546008546114c19163ffffffff611a1016565b600855600c80546001019055611493565b505b5060055460ff1690565b6114e78461190b565b633b9aca0083101561152a5760405162461bcd60e51b8152600401808060200182810382526021815260200180611eca6021913960400191505060405180910390fd5b69021e19e0c9bab240000083111561157a576040805162461bcd60e51b815260206004820152600e60248201526d6e6f20766974616c696b2c206e6f60901b604482015290519081900360640190fd5b606482111561158857606491505b60006013836065811061159757fe5b0154670de0b6b3a76400000190506000816115c3670de0b6b3a7640000876119e890919063ffffffff16565b816115ca57fe5b0490506000600260009054906101000a90046001600160a01b03166001600160a01b03166310a76c2e600954846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561163257600080fd5b505afa158015611646573d6000803e3d6000fd5b505050506040513d602081101561165c57600080fd5b505190506000851561166e5781611671565b60005b600c546009549192508701600019019061168b9085611887565b600955600a546116a1908463ffffffff61188716565b600a556000818152600760205260409020546116c3908363ffffffff61188716565b6000828152600760205260409020556008546116e5908363ffffffff61188716565b6008556001600160a01b038916600090815260106020526040902060050154611714908963ffffffff61188716565b6001600160a01b038a166000908152601060205260409020600581019190915560060154611748908463ffffffff61188716565b6001600160a01b038a16600090815260106020526040902060068101919091556007015461177c908363ffffffff61188716565b6001600160a01b038a1660009081526010602090815260408083206007019390935560068152828220848352905220546117bc908363ffffffff61188716565b6001600160a01b038a1660009081526006602090815260408083208584529091529020556117ea8887611a25565b6117f5898985611beb565b600c5460408051848152602081018a905281516001600160a01b038d16927f4b9622a7ffcb20551847f4dd71b5b98c4267e10d7d338a6c7fb7b26d45d854e0928290030190a36040805183815290516001600160a01b038b16916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050505050505050565b8181018281101561189757600080fd5b92915050565b60006118a882611c6c565b6001600160a01b038216600090815260106020526040812060038101546002909101546118da9163ffffffff61188716565b90508015611897576001600160a01b0383166000908152601060205260408120600281018290556003015592915050565b6001600160a01b0381166000908152601060205260408120600801549081156119c4575b600c5482101561197b576001600160a01b038316600090815260066020908152604080832085845290915290205461196e90829063ffffffff61188716565b905060018201915061192f565b6001600160a01b0383166000908152601060205260409020600701546119a7908263ffffffff611a1016565b6001600160a01b0384166000908152601060205260409020600701555b5050600c546001600160a01b03909116600090815260106020526040902060080155565b6000826119f757506000611897565b5081810281838281611a0557fe5b041461189757600080fd5b600082821115611a1f57600080fd5b50900390565b6001600160a01b03811660009081526010602052604090206004908101549083049060ff1615611b2f576001600160a01b0382166000908152601060205260408120600a0154611a7c90600663ffffffff61188716565b905060006064611a92868463ffffffff6119e816565b81611a9957fe5b6001600160a01b0386166000908152601060205260409020600301549190049150611aca908263ffffffff61188716565b6001600160a01b03851660009081526010602052604090206003810191909155600b0154611afe908263ffffffff61188716565b6001600160a01b0385166000908152601060205260409020600b0155611b2a838263ffffffff611a1016565b925050505b600381046000611b3f8383611a10565b905081731e20b7d24d429b0de705d3ff8b88ec651d28a935604051611b6390611e6c565b6001600160a01b039091168152604051908190036020019082f080158015611b8f573d6000803e3d6000fd5b509050508073d0533664013a82c31584b7ffdb215139f38ad77a604051611bb590611e6c565b6001600160a01b039091168152604051908190036020019082f080158015611be1573d6000803e3d6000fd5b5050505050505050565b60006014611c0084600363ffffffff6119e816565b81611c0757fe5b049050611c178360048104611a10565b92506000611c2b848363ffffffff611a1016565b90506000611c3a868486611d01565b9050611c6182611c5583600b5461188790919063ffffffff16565b9063ffffffff61188716565b600b55505050505050565b6000611c7782611e28565b9050801561099a576001600160a01b038216600090815260106020526040902060020154611cac90829063ffffffff61188716565b6001600160a01b0383166000908152601060205260409020600281019190915560090154611ce190829063ffffffff61188716565b6001600160a01b0383166000908152601060205260409020600901555050565b600a546000908190611d2185670de0b6b3a764000063ffffffff6119e816565b81611d2857fe5b049050611d4081600e5461188790919063ffffffff16565b600e556000670de0b6b3a7640000611d5e838663ffffffff6119e816565b81611d6557fe5b049050611dca60106000886001600160a01b03166001600160a01b0316815260200190815260200160002060090154611c5583670de0b6b3a7640000611db689600e546119e890919063ffffffff16565b81611dbd57fe5b049063ffffffff611a1016565b6001600160a01b038716600090815260106020526040902060090155600a54611e1e90670de0b6b3a764000090611e0890859063ffffffff6119e816565b81611e0f57fe5b8791900463ffffffff611a1016565b9695505050505050565b6001600160a01b03811660009081526010602052604081206009810154600690910154600e546118979291670de0b6b3a764000091611db69163ffffffff6119e816565b603280611e9883390190565b60405180610c800160405280606490602082028038833950919291505056fe60806040526040516032380380603283398181016040526020811015602357600080fd5b50516001600160a01b038116fffe706f636b6574206c696e743a206e6f7420612076616c69642063757272656e6379a265627a7a72315820ed472ea9c4fbf6fee5152a7a8ee630fc7c455bfe498e032d01c7e1c3f9d1e8e964736f6c63430005100032

Deployed Bytecode

0x6080604052600436106101f95760003560e01c8063585166611161010d578063b74e452b116100a0578063d93be4331161006f578063d93be433146106c2578063e7ee6ad6146106ec578063efbe1c1c14610716578063f0da93441461072b578063f2c298be14610740576101f9565b8063b74e452b14610649578063cce7ec131461065e578063d55ec6971461068a578063d6febde81461069f576101f9565b806395d89b41116100dc57806395d89b41146105f5578063a6f2ae3a146101f9578063aaaadb581461060a578063b3bb8cd414610634576101f9565b8063585166611461055057806370a0823114610565578063729fc61314610598578063757b0884146105cb576101f9565b806318160ddd116101905780633ef7c6871161015f5780633ef7c68714610413578063402e912f14610461578063489b3fee146104765780634c54e1b5146104a95780634e71d92d1461053b576101f9565b806318160ddd14610385578063274806e01461039a578063313ce567146103d35780633ccfd60b146103fe576101f9565b8063116134ee116101cc578063116134ee146102ec57806312fa6feb1461030157806316f0115b1461032a57806317604f711461033f576101f9565b8063018a25e81461020357806303314efa1461022a57806306fdde031461023f5780630ddeb632146102c9575b6102016107b0565b005b34801561020f57600080fd5b5061021861080f565b60408051918252519081900360200190f35b34801561023657600080fd5b506102186108b5565b34801561024b57600080fd5b506102546108bb565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028e578181015183820152602001610276565b50505050905090810190601f1680156102bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610201600480360360408110156102df57600080fd5b50803590602001356108ed565b3480156102f857600080fd5b5061021861099e565b34801561030d57600080fd5b506103166109a4565b604080519115158252519081900360200190f35b34801561033657600080fd5b506102186109ad565b34801561034b57600080fd5b506103696004803603602081101561036257600080fd5b50356109b3565b604080516001600160a01b039092168252519081900360200190f35b34801561039157600080fd5b506102186109ce565b3480156103a657600080fd5b50610218600480360360408110156103bd57600080fd5b506001600160a01b0381351690602001356109d4565b3480156103df57600080fd5b506103e86109f1565b6040805160ff9092168252519081900360200190f35b34801561040a57600080fd5b506102016109f6565b34801561041f57600080fd5b50610428610a85565b6040518082610c8080838360005b8381101561044e578181015183820152602001610436565b5050505090500191505060405180910390f35b34801561046d57600080fd5b50610218610aca565b34801561048257600080fd5b506104286004803603602081101561049957600080fd5b50356001600160a01b0316610ad0565b3480156104b557600080fd5b506104dc600480360360208110156104cc57600080fd5b50356001600160a01b0316610b2b565b604080519c8d5260208d019b909b528b8b019990995260608b019790975294151560808a015260a089019390935260c088019190915260e087015261010086015261012085015261014084015261016083015251908190036101800190f35b34801561054757600080fd5b50610201610b8e565b34801561055c57600080fd5b50610218610cac565b34801561057157600080fd5b506102186004803603602081101561058857600080fd5b50356001600160a01b0316610cb2565b3480156105a457600080fd5b50610218600480360360208110156105bb57600080fd5b50356001600160a01b0316610cd0565b3480156105d757600080fd5b50610218600480360360208110156105ee57600080fd5b5035610d6e565b34801561060157600080fd5b50610254610d82565b34801561061657600080fd5b506102186004803603602081101561062d57600080fd5b5035610da2565b34801561064057600080fd5b50610218610db4565b34801561065557600080fd5b50610218610dba565b6102016004803603604081101561067457600080fd5b506001600160a01b038135169060200135610dc0565b34801561069657600080fd5b50610201610e75565b610201600480360360408110156106b557600080fd5b5080359060200135610fc5565b3480156106ce57600080fd5b50610369600480360360208110156106e557600080fd5b503561106a565b3480156106f857600080fd5b506102186004803603602081101561070f57600080fd5b5035611085565b34801561072257600080fd5b50610218611092565b34801561073757600080fd5b50610218611098565b6102016004803603602081101561075657600080fd5b81019060208101813564010000000081111561077157600080fd5b82018360208201111561078357600080fd5b803590602001918460018302840111640100000000831117156107a557600080fd5b50909250905061109e565b6107b861134e565b156108005734336040516107cb90611e6c565b6001600160a01b039091168152604051908190036020019082f0801580156107f7573d6000803e3d6000fd5b5090505061080d565b61080d33346000806114de565b565b600254600a546000916001600160a01b031690636deba2289061084090670de0b6b3a764000063ffffffff61188716565b670de0b6b3a76400006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561088457600080fd5b505afa158015610898573d6000803e3d6000fd5b505050506040513d60208110156108ae57600080fd5b5051905090565b600a5481565b60405180604001604052806016815260200175546869726420466c6f6f72204d757475616c2053414960501b81525081565b333214610935576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b61093d61134e565b156109745760405133903480156108fc02916000818181858888f1935050505015801561096e573d6000803e3d6000fd5b5061099a565b6000828152601260205260409020546001600160a01b0316610998333484846114de565b505b5050565b600e5481565b60055460ff1681565b600b5481565b6012602052600090815260409020546001600160a01b031681565b600a5490565b600660209081526000928352604080842090915290825290205481565b601281565b6000610a013361189d565b90508015610a825733321415610a4457604051339082156108fc029083906000818181858888f19350505050158015610a3e573d6000803e3d6000fd5b50610a82565b8033604051610a5290611e6c565b6001600160a01b039091168152604051908190036020019082f080158015610a7e573d6000803e3d6000fd5b5050505b50565b610a8d611e78565b60005b6064811015610ac657600c548101600090815260076020526040902054828260648110610ab957fe5b6020020152600101610a90565b5090565b60085481565b610ad8611e78565b60005b6064811015610b25576001600160a01b0383166000908152600660209081526040808320600c5485018452909152902054828260648110610b1857fe5b6020020152600101610adb565b50919050565b601060205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b0154999a98999798969760ff90961696949593949293919290918c565b333214610bd6576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b610bde61134e565b610c19576040805162461bcd60e51b81526020600482015260076024820152661b9bdd081e595d60ca1b604482015290519081900360640190fd5b33610c238161190b565b6008546001600160a01b038216600090815260106020526040812060070154600b54919291610c579163ffffffff6119e816565b81610c5e57fe5b6001600160a01b038416600081815260106020526040808220600701829055519390920493509183156108fc0291849190818181858888f19350505050158015610998573d6000803e3d6000fd5b600f5481565b6001600160a01b031660009081526010602052604090206006015490565b6001600160a01b03811660009081526010602052604081206007810154600890910154828115610d47575b600c54821015610d47576001600160a01b0385166000908152600660209081526040808320858452909152902054610d3a90829063ffffffff61188716565b9050600182019150610cfb565b8215610d6257610d5d838263ffffffff611a1016565b610d65565b60005b95945050505050565b607881600a8110610d7b57fe5b0154905081565b6040518060400160405280600481526020016333464d5360e01b81525081565b60076020526000908152604090205481565b600d5481565b600c5481565b333214610e08576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b610e1061134e565b15610e415760405133903480156108fc02916000818181858888f1935050505015801561096e573d6000803e3d6000fd5b6001600160a01b03821660009081526010602052604090206004015460ff16610e6957600091505b61099a333483856114de565b333214610ebd576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b3360008181526010602052604090206004015460ff16610edc57600080fd5b6001600160a01b0381166000908152601060205260409020600a9081015410610f0457600080fd5b6001600160a01b0381166000908152601060205260409020600a908101546078918110610f2d57fe5b01546001600160a01b0382166000908152601060205260409020600b015410610a82576001600160a01b0381166000908152601060205260409020600a0154610f7e9060019063ffffffff61188716565b6001600160a01b038216600081815260106020526040808220600a01849055517f082e58bd2e7f7268b36ef0ce2331f7bfd29c08979529cbe85f06375fcecd43729190a350565b33321461100d576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b61101561134e565b156110465760405133903480156108fc02916000818181858888f1935050505015801561096e573d6000803e3d6000fd5b6000828152601160205260409020546001600160a01b0316610998333484846114de565b6011602052600090815260409020546001600160a01b031681565b60138160658110610d7b57fe5b60045481565b60095481565b3332146110e6576040805162461bcd60e51b8152602060048201526011602482015270736f7272792068756d616e73206f6e6c7960781b604482015290519081900360640190fd5b6003546040516379614c5f60e11b8152602060048201908152602482018490526000926001600160a01b03169163f2c298be9186918691908190604401848480828437600083820152604051601f909101601f191690920195506020945090925050508083038186803b15801561115c57600080fd5b505afa158015611170573d6000803e3d6000fd5b505050506040513d602081101561118657600080fd5b5051905033662386f26fc100003410156111dd576040805162461bcd60e51b81526020600482015260136024820152721a5b9cdd59999a58da595b9d08185b5bdd5b9d606a1b604482015290519081900360640190fd5b6000828152601260205260409020546001600160a01b031615611239576040805162461bcd60e51b815260206004820152600f60248201526e1b985b59481c9959da5cdd195c9959608a1b604482015290519081900360640190fd5b6001600160a01b03811660009081526010602052604090206004015460ff166112b857600f8054600190810182556001600160a01b038316600081815260106020908152604080832060048101805460ff19168717905586548155600a0194909455935481526011909352912080546001600160a01b03191690911790555b6001600160a01b038116600081815260106020908152604080832060010186905585835260129091529081902080546001600160a01b03191690921790915551349073d0533664013a82c31584b7ffdb215139f38ad77a9061131990611e6c565b6001600160a01b039091168152604051908190036020019082f080158015611345573d6000803e3d6000fd5b50505050505050565b60055460009060ff166114d45742600d54146114d45742600d5560015460408051636626b26d60e01b815290516000926001600160a01b031691636626b26d91600480830192602092919082900301818787803b1580156113ae57600080fd5b505af11580156113c2573d6000803e3d6000fd5b505050506040513d60208110156113d857600080fd5b50516005805460ff1916911515919091179055600080546040805163f83e579360e01b815290516001600160a01b039092169263f83e5793926004808401936020939083900390910190829087803b15801561143357600080fd5b505af1158015611447573d6000803e3d6000fd5b505050506040513d602081101561145d57600080fd5b505160045560055460ff166114805762015180600d548161147a57fe5b04611490565b620151806004548161148e57fe5b045b90505b80600c5410156114d257600c546000908152600760205260409020546008546114c19163ffffffff611a1016565b600855600c80546001019055611493565b505b5060055460ff1690565b6114e78461190b565b633b9aca0083101561152a5760405162461bcd60e51b8152600401808060200182810382526021815260200180611eca6021913960400191505060405180910390fd5b69021e19e0c9bab240000083111561157a576040805162461bcd60e51b815260206004820152600e60248201526d6e6f20766974616c696b2c206e6f60901b604482015290519081900360640190fd5b606482111561158857606491505b60006013836065811061159757fe5b0154670de0b6b3a76400000190506000816115c3670de0b6b3a7640000876119e890919063ffffffff16565b816115ca57fe5b0490506000600260009054906101000a90046001600160a01b03166001600160a01b03166310a76c2e600954846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561163257600080fd5b505afa158015611646573d6000803e3d6000fd5b505050506040513d602081101561165c57600080fd5b505190506000851561166e5781611671565b60005b600c546009549192508701600019019061168b9085611887565b600955600a546116a1908463ffffffff61188716565b600a556000818152600760205260409020546116c3908363ffffffff61188716565b6000828152600760205260409020556008546116e5908363ffffffff61188716565b6008556001600160a01b038916600090815260106020526040902060050154611714908963ffffffff61188716565b6001600160a01b038a166000908152601060205260409020600581019190915560060154611748908463ffffffff61188716565b6001600160a01b038a16600090815260106020526040902060068101919091556007015461177c908363ffffffff61188716565b6001600160a01b038a1660009081526010602090815260408083206007019390935560068152828220848352905220546117bc908363ffffffff61188716565b6001600160a01b038a1660009081526006602090815260408083208584529091529020556117ea8887611a25565b6117f5898985611beb565b600c5460408051848152602081018a905281516001600160a01b038d16927f4b9622a7ffcb20551847f4dd71b5b98c4267e10d7d338a6c7fb7b26d45d854e0928290030190a36040805183815290516001600160a01b038b16916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050505050505050565b8181018281101561189757600080fd5b92915050565b60006118a882611c6c565b6001600160a01b038216600090815260106020526040812060038101546002909101546118da9163ffffffff61188716565b90508015611897576001600160a01b0383166000908152601060205260408120600281018290556003015592915050565b6001600160a01b0381166000908152601060205260408120600801549081156119c4575b600c5482101561197b576001600160a01b038316600090815260066020908152604080832085845290915290205461196e90829063ffffffff61188716565b905060018201915061192f565b6001600160a01b0383166000908152601060205260409020600701546119a7908263ffffffff611a1016565b6001600160a01b0384166000908152601060205260409020600701555b5050600c546001600160a01b03909116600090815260106020526040902060080155565b6000826119f757506000611897565b5081810281838281611a0557fe5b041461189757600080fd5b600082821115611a1f57600080fd5b50900390565b6001600160a01b03811660009081526010602052604090206004908101549083049060ff1615611b2f576001600160a01b0382166000908152601060205260408120600a0154611a7c90600663ffffffff61188716565b905060006064611a92868463ffffffff6119e816565b81611a9957fe5b6001600160a01b0386166000908152601060205260409020600301549190049150611aca908263ffffffff61188716565b6001600160a01b03851660009081526010602052604090206003810191909155600b0154611afe908263ffffffff61188716565b6001600160a01b0385166000908152601060205260409020600b0155611b2a838263ffffffff611a1016565b925050505b600381046000611b3f8383611a10565b905081731e20b7d24d429b0de705d3ff8b88ec651d28a935604051611b6390611e6c565b6001600160a01b039091168152604051908190036020019082f080158015611b8f573d6000803e3d6000fd5b509050508073d0533664013a82c31584b7ffdb215139f38ad77a604051611bb590611e6c565b6001600160a01b039091168152604051908190036020019082f080158015611be1573d6000803e3d6000fd5b5050505050505050565b60006014611c0084600363ffffffff6119e816565b81611c0757fe5b049050611c178360048104611a10565b92506000611c2b848363ffffffff611a1016565b90506000611c3a868486611d01565b9050611c6182611c5583600b5461188790919063ffffffff16565b9063ffffffff61188716565b600b55505050505050565b6000611c7782611e28565b9050801561099a576001600160a01b038216600090815260106020526040902060020154611cac90829063ffffffff61188716565b6001600160a01b0383166000908152601060205260409020600281019190915560090154611ce190829063ffffffff61188716565b6001600160a01b0383166000908152601060205260409020600901555050565b600a546000908190611d2185670de0b6b3a764000063ffffffff6119e816565b81611d2857fe5b049050611d4081600e5461188790919063ffffffff16565b600e556000670de0b6b3a7640000611d5e838663ffffffff6119e816565b81611d6557fe5b049050611dca60106000886001600160a01b03166001600160a01b0316815260200190815260200160002060090154611c5583670de0b6b3a7640000611db689600e546119e890919063ffffffff16565b81611dbd57fe5b049063ffffffff611a1016565b6001600160a01b038716600090815260106020526040902060090155600a54611e1e90670de0b6b3a764000090611e0890859063ffffffff6119e816565b81611e0f57fe5b8791900463ffffffff611a1016565b9695505050505050565b6001600160a01b03811660009081526010602052604081206009810154600690910154600e546118979291670de0b6b3a764000091611db69163ffffffff6119e816565b603280611e9883390190565b60405180610c800160405280606490602082028038833950919291505056fe60806040526040516032380380603283398181016040526020811015602357600080fd5b50516001600160a01b038116fffe706f636b6574206c696e743a206e6f7420612076616c69642063757272656e6379a265627a7a72315820ed472ea9c4fbf6fee5152a7a8ee630fc7c455bfe498e032d01c7e1c3f9d1e8e964736f6c63430005100032

Deployed Bytecode Sourcemap

28:18838:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10126:5;:3;:5::i;:::-;28:18838;16594:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16594:155:0;;;:::i;:::-;;;;;;;;;;;;;;;;1674:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1674:21:0;;;:::i;18419:59::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18419:59:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;18419:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9356:390;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9356:390:0;;;;;;;:::i;1913:19::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1913:19:0;;;:::i;1267:17::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1267:17:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;1737:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1737:19:0;;;:::i;2186:46::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2186:46:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2186:46:0;;:::i;:::-;;;;-1:-1:-1;;;;;2186:46:0;;;;;;;;;;;;;;18579:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18579:86:0;;;:::i;1372:73::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1372:73:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1372:73:0;;;;;;;;:::i;18533:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18533:37:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14944:363;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14944:363:0;;;:::i;18048:297::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18048:297:0;;;:::i;:::-;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;18048:297:0;;;;;;;;;;;;;;;;1542:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1542:30:0;;;:::i;17566:334::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17566:334:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17566:334:0;-1:-1:-1;;;;;17566:334:0;;:::i;2043:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2043:40:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2043:40:0;-1:-1:-1;;;;;2043:40:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14503:375;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14503:375:0;;;:::i;1965:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1965:21:0;;;:::i;18673:107::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18673:107:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18673:107:0;-1:-1:-1;;;;;18673:107:0;;:::i;16879:513::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16879:513:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16879:513:0;-1:-1:-1;;;;;16879:513:0;;:::i;5193:276::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5193:276:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5193:276:0;;:::i;18485:41::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18485:41:0;;;:::i;1452:47::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1452:47:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1452:47:0;;:::i;1860:19::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1860:19:0;;;:::i;1807:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1807:20:0;;;:::i;8492:404::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8492:404:0;;;;;;;;:::i;8033:417::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8033:417:0;;;:::i;8933:384::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8933:384:0;;;;;;;:::i;2105:44::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2105:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2105:44:0;;:::i;2424:2725::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2424:2725:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2424:2725:0;;:::i;1242:18::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1242:18:0;;;:::i;1603:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1603:25:0;;;:::i;7147:765::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7147:765:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;7147:765:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7147:765:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;7147:765:0;;-1:-1:-1;7147:765:0;-1:-1:-1;7147:765:0;:::i;9811:250::-;9897:6;:4;:6::i;:::-;9894:102;;;9941:9;9952:10;9920:43;;;;;:::i;:::-;-1:-1:-1;;;;;9920:43:0;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9920:43:0;;;;9978:7;;9894:102;10008:45;10016:10;10028:9;10039:1;10050;10008:7;:45::i;:::-;9811:250::o;16594:155::-;16666:11;;16688:6;;16639:7;;-1:-1:-1;;;;;16666:11:0;;:21;;16688:31;;16699:19;16688:31;:10;:31;:::i;:::-;16721:19;16666:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16666:75:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16666:75:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16666:75:0;;-1:-1:-1;16594:155:0;:::o;1674:21::-;;;;:::o;18419:59::-;;;;;;;;;;;;;;-1:-1:-1;;;18419:59:0;;;;:::o;9356:390::-;5824:10;5838:9;5824:23;5816:53;;;;;-1:-1:-1;;;5816:53:0;;;;;;;;;;;;-1:-1:-1;;;5816:53:0;;;;;;;;;;;;;;;9494:6;:4;:6::i;:::-;9491:88;;;9516:30;;:10;;9536:9;9516:30;;;;;;;;;9536:9;9516:10;:30;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9516:30:0;9561:7;;9491:88;9614:22;9655:23;;;:11;:23;;;;;;-1:-1:-1;;;;;9655:23:0;9693:45;9701:10;9713:9;9724:5;9655:23;9693:7;:45::i;:::-;5880:1;;9356:390;;:::o;1913:19::-;;;;:::o;1267:17::-;;;;;;:::o;1737:19::-;;;;:::o;2186:46::-;;;;;;;;;;;;-1:-1:-1;;;;;2186:46:0;;:::o;18579:86::-;18651:6;;18579:86;:::o;1372:73::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;18533:37::-;18568:2;18533:37;:::o;14944:363::-;15028:12;15058:28;15075:10;15058:16;:28::i;:::-;15051:35;-1:-1:-1;15119:8:0;;15115:185;;15146:10;15160:9;15146:23;15143:145;;;15188:25;;:10;;:25;;;;;15208:4;;15188:25;;;;15208:4;15188:10;:25;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15188:25:0;15143:145;;;15271:4;15277:10;15250:38;;;;;:::i;:::-;-1:-1:-1;;;;;15250:38:0;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;15143:145:0;14944:363;:::o;18048:297::-;18128:48;;:::i;:::-;18198:9;18194:110;2336:3;18211:1;:17;18194:110;;;18284:5;;:7;;18271:21;;;;:12;:21;;;;;;18249:16;18290:1;18249:19;;;;;;;;;;:43;18230:3;;18194:110;;;-1:-1:-1;18048:297:0;:::o;1542:30::-;;;;:::o;17566:334::-;17667:48;;:::i;:::-;17737:9;17733:126;2336:3;17750:1;:17;17733:126;;;-1:-1:-1;;;;;17811:27:0;;;;;;:18;:27;;;;;;;;17839:5;;:7;;17811:36;;;;;;;;17789:16;17845:1;17789:19;;;;;;;;;;:58;17769:3;;17733:126;;;-1:-1:-1;17566:334:0;;;:::o;2043:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14503:375::-;5824:10;5838:9;5824:23;5816:53;;;;;-1:-1:-1;;;5816:53:0;;;;;;;;;;;;-1:-1:-1;;;5816:53:0;;;;;;;;;;;;;;;14579:6;:4;:6::i;:::-;14571:26;;;;;-1:-1:-1;;;14571:26:0;;;;;;;;;;;;-1:-1:-1;;;14571:26:0;;;;;;;;;;;;;;;14660:10;14681:29;14660:10;14681:16;:29::i;:::-;14776:15;;-1:-1:-1;;;;;14747:19:0;;14721:14;14747:19;;;:6;:19;;;;;:25;;;14738:4;;14721:14;;14776:15;14738:35;;;:8;:35;:::i;:::-;:53;;;;;-1:-1:-1;;;;;14802:19:0;;14830:1;14802:19;;;:6;:19;;;;;;:25;;:29;;;14842:28;14738:53;;;;;-1:-1:-1;14802:19:0;14842:28;;;;;14738:53;;14842:28;;14830:1;14842:28;14738:53;14802:19;14842:28;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;1965:21:0;;;;:::o;18673:107::-;-1:-1:-1;;;;;18754:11:0;18727:7;18754:11;;;:6;:11;;;;;:18;;;;18673:107::o;16879:513::-;-1:-1:-1;;;;;17010:15:0;;16969:7;17010:15;;;:6;:15;;;;;:21;;;;17059:28;;;;;16969:7;17135:11;;17132:196;;17163:152;17178:5;;17169:6;:14;17163:152;;;-1:-1:-1;;;;;17233:27:0;;;;;;:18;:27;;;;;;;;:35;;;;;;;;;17217:52;;:11;;:52;:15;:52;:::i;:::-;17203:66;;17298:1;17288:11;;;;17163:152;;;17345:10;;:39;;17362:22;:5;17372:11;17362:22;:9;:22;:::i;:::-;17345:39;;;17358:1;17345:39;17338:46;16879:513;-1:-1:-1;;;;;16879:513:0:o;5193:276::-;;;;;;;;;;;;;-1:-1:-1;5193:276:0;:::o;18485:41::-;;;;;;;;;;;;;;-1:-1:-1;;;18485:41:0;;;;:::o;1452:47::-;;;;;;;;;;;;;:::o;1860:19::-;;;;:::o;1807:20::-;;;;:::o;8492:404::-;5824:10;5838:9;5824:23;5816:53;;;;;-1:-1:-1;;;5816:53:0;;;;;;;;;;;;-1:-1:-1;;;5816:53:0;;;;;;;;;;;;;;;8634:6;:4;:6::i;:::-;8631:88;;;8656:30;;:10;;8676:9;8656:30;;;;;;;;;8676:9;8656:10;:30;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;8631:88:0;-1:-1:-1;;;;;8762:14:0;;;;;;:6;:14;;;;;:22;;;;;8758:73;;8817:1;8800:19;;8758:73;8843:45;8851:10;8863:9;8874:5;8881:6;8843:7;:45::i;8033:417::-;5824:10;5838:9;5824:23;5816:53;;;;;-1:-1:-1;;;5816:53:0;;;;;;;;;;;;-1:-1:-1;;;5816:53:0;;;;;;;;;;;;;;;8122:10;8105:14;8151;;;:6;:14;;;;;:22;;;;;8143:31;;;;;;-1:-1:-1;;;;;8193:14:0;;;;;;:6;:14;;;;;2374:2;8193:20;;;;:31;8185:40;;;;;;-1:-1:-1;;;;;8286:14:0;;;;;;:6;:14;;;;;:20;;;;;8274:11;;:33;;;;;;;;-1:-1:-1;;;;;8241:14:0;;;;;;:6;:14;;;;;:29;;;:66;8238:205;;-1:-1:-1;;;;;8354:14:0;;;;;;:6;:14;;;;;:20;;;8346:29;;8347:1;;8346:29;:7;:29;:::i;:::-;-1:-1:-1;;;;;8323:14:0;;;;;;:6;:14;;;;;;:20;;:52;;;8395:36;;;8323:14;8395:36;5880:1;8033:417::o;8933:384::-;5824:10;5838:9;5824:23;5816:53;;;;;-1:-1:-1;;;5816:53:0;;;;;;;;;;;;-1:-1:-1;;;5816:53:0;;;;;;;;;;;;;;;9069:6;:4;:6::i;:::-;9066:88;;;9091:30;;:10;;9111:9;9091:30;;;;;;;;;9111:9;9091:10;:30;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;9066:88:0;9189:22;9230:19;;;:9;:19;;;;;;-1:-1:-1;;;;;9230:19:0;9264:45;9272:10;9284:9;9295:5;9230:19;9264:7;:45::i;2105:44::-;;;;;;;;;;;;-1:-1:-1;;;;;2105:44:0;;:::o;2424:2725::-;;;;;;;;;1242:18;;;;:::o;1603:25::-;;;;:::o;7147:765::-;5824:10;5838:9;5824:23;5816:53;;;;;-1:-1:-1;;;5816:53:0;;;;;;;;;;;;-1:-1:-1;;;5816:53:0;;;;;;;;;;;;;;;7280:6;;:28;;-1:-1:-1;;;7280:28:0;;;;;;;;;;;;;;;7264:13;;-1:-1:-1;;;;;7280:6:0;;:15;;7296:11;;;;7280:28;;;;;7296:11;;;;7280:28;1:33:-1;99:1;81:16;;;74:27;7280:28:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;;-1:-1;7280:28:0;;-1:-1:-1;7280:28:0;;-1:-1:-1;;;7280:28:0;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;7280:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7280:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7280:28:0;;-1:-1:-1;7336:10:0;7378:17;7365:9;:30;;7357:62;;;;;-1:-1:-1;;;7357:62:0;;;;;;;;;;;;-1:-1:-1;;;7357:62:0;;;;;;;;;;;;;;;7468:1;7438:18;;;:11;:18;;;;;;-1:-1:-1;;;;;7438:18:0;:32;7430:60;;;;;-1:-1:-1;;;7430:60:0;;;;;;;;;;;;-1:-1:-1;;;7430:60:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7507:14:0;;;;;;:6;:14;;;;;:22;;;;;7503:230;;7545:6;:11;;7555:1;7545:11;;;;;-1:-1:-1;;;;;7571:14:0;;7545:6;7571:14;;;:6;:14;;;;;;;;:22;;;:29;;-1:-1:-1;;7571:29:0;;;;;7635:6;;7615:26;;7656:20;;:24;;;;7705:6;;7695:17;;:9;:17;;;;;:26;;-1:-1:-1;;;;;;7695:26:0;;;;;;7503:230;-1:-1:-1;;;;;7786:14:0;;;;;;:6;:14;;;;;;;;:19;;:27;;;7824:18;;;:11;:18;;;;;;;:27;;-1:-1:-1;;;;;;7824:27:0;;;;;;;7864:38;7885:9;;1192:42;;7864:38;;;:::i;:::-;-1:-1:-1;;;;;7864:38:0;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;7147:765:0:o;6332:717::-;6409:5;;6383:4;;6409:5;;6405:604;;6443:3;6435:4;;:11;6431:567;;6474:3;6467:4;:10;6627:7;;:13;;;-1:-1:-1;;;6627:13:0;;;;6496:14;;-1:-1:-1;;;;;6627:7:0;;:11;;:13;;;;;;;;;;;;;;6496:14;6627:7;:13;;;5:2:-1;;;;30:1;27;20:12;5:2;6627:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6627:13:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6627:13:0;6619:5;:21;;-1:-1:-1;;6619:21:0;;;;;;;;;;-1:-1:-1;6665:7:0;;:15;;;-1:-1:-1;;;6665:15:0;;;;-1:-1:-1;;;;;6665:7:0;;;;:13;;:15;;;;;6627:13;;6665:15;;;;;;;;;;:7;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;6665:15:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6665:15:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6665:15:0;6659:3;:21;6710:5;;;;:36;;6740:6;6733:4;;:13;;;;;;6710:36;;;6724:6;6718:3;;:12;;;;;;6710:36;6701:45;;6826:157;6841:6;6833:5;;:14;6826:157;;;6923:5;;6910:19;;;;:12;:19;;;;;;6890:15;;:40;;;:19;:40;:::i;:::-;6872:15;:58;6953:5;:10;;6962:1;6953:10;;;6826:157;;;6431:567;;-1:-1:-1;7036:5:0;;;;6332:717;:::o;10198:1663::-;10306:24;10323:6;10306:16;:24::i;:::-;10367:10;10359:4;:18;;10351:64;;;;-1:-1:-1;;;10351:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10442:23;10434:4;:31;;10426:58;;;;;-1:-1:-1;;;10426:58:0;;;;;;;;;;;;-1:-1:-1;;;10426:58:0;;;;;;;;;;;;;;;2336:3;10500:5;:23;10497:77;;;2336:3;10539:23;;10497:77;10584:13;10600:4;10605:5;10600:11;;;;;;;;;10614:19;10600:33;10584:49;;10644:21;10700:5;10668:29;10677:19;10668:4;:8;;:29;;;;:::i;:::-;:37;;;;;;10644:61;;10931:14;10948:11;;;;;;;;;-1:-1:-1;;;;;10948:11:0;-1:-1:-1;;;;;10948:21:0;;10970:10;;10982:13;10948:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10948:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10948:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10948:48:0;;-1:-1:-1;11007:13:0;11024:10;;11023:23;;11040:6;11023:23;;;11037:1;11023:23;11075:5;;11151:10;;11007:39;;-1:-1:-1;11075:13:0;;-1:-1:-1;;11075:17:0;;11151:29;;11166:13;11151:14;:29::i;:::-;11138:10;:42;11200:6;;:18;;11211:6;11200:18;:10;:18;:::i;:::-;11191:6;:27;11253:21;;;;:12;:21;;;;;;:32;;11279:5;11253:32;:25;:32;:::i;:::-;11229:21;;;;:12;:21;;;;;:56;11314:15;;:26;;11334:5;11314:26;:19;:26;:::i;:::-;11296:15;:44;-1:-1:-1;;;;;11405:14:0;;;;;;:6;:14;;;;;:18;;;:28;;11428:4;11405:28;:22;:28;:::i;:::-;-1:-1:-1;;;;;11384:14:0;;;;;;:6;:14;;;;;:18;;;:49;;;;11468:21;;;:33;;11494:6;11468:33;:25;:33;:::i;:::-;-1:-1:-1;;;;;11444:14:0;;;;;;:6;:14;;;;;:21;;;:57;;;;11535:20;;;:31;;11560:5;11535:31;:24;:31;:::i;:::-;-1:-1:-1;;;;;11512:14:0;;;;;;:6;:14;;;;;;;;:20;;:54;;;;11615:18;:26;;;;;:35;;;;;;;:46;;11655:5;11615:46;:39;:46;:::i;:::-;-1:-1:-1;;;;;11577:26:0;;;;;;:18;:26;;;;;;;;:35;;;;;;;;:84;11674:26;11687:4;11693:6;11674:12;:26::i;:::-;11711:34;11724:6;11732:4;11738:6;11711:12;:34::i;:::-;11782:5;;11761:41;;;;;;;;;;;;;;-1:-1:-1;;;;;11761:41:0;;;;;;;;;;;11818:35;;;;;;;;-1:-1:-1;;;;;11818:35:0;;;11835:1;;11818:35;;;;;;;;;10198:1663;;;;;;;;;:::o;19951:155::-;20067:5;;;20091:6;;;;20083:15;;;;;;19951:155;;;;:::o;15315:410::-;15392:7;15446:23;15461:7;15446:14;:23::i;:::-;-1:-1:-1;;;;;15550:15:0;;15506:17;15550:15;;;:6;:15;;;;;:19;;;;15526;;;;;:44;;;:23;:44;:::i;:::-;15506:64;-1:-1:-1;15585:13:0;;15581:107;;-1:-1:-1;;;;;15615:15:0;;15637:1;15615:15;;;:6;:15;;;;;:19;;;:23;;;15653:19;;:23;15707:9;15315:410;-1:-1:-1;;15315:410:0:o;11935:477::-;-1:-1:-1;;;;;12015:15:0;;11998:14;12015:15;;;:6;:15;;;;;:28;;;;12091:11;;12088:270;;12118:152;12133:5;;12124:6;:14;12118:152;;;-1:-1:-1;;;;;12188:27:0;;;;;;:18;:27;;;;;;;;:35;;;;;;;;;12172:52;;:11;;:52;:15;:52;:::i;:::-;12158:66;;12253:1;12243:11;;;;12118:152;;;-1:-1:-1;;;;;12308:15:0;;;;;;:6;:15;;;;;:21;;;:38;;12334:11;12308:38;:25;:38;:::i;:::-;-1:-1:-1;;;;;12284:15:0;;;;;;:6;:15;;;;;:21;;:62;12088:270;-1:-1:-1;;12399:5:0;;-1:-1:-1;;;;;12368:15:0;;;;;;;:6;:15;;;;;:28;;:36;11935:477::o;19590:190::-;19675:9;19706:6;19702:20;;-1:-1:-1;19721:1:0;19714:8;;19702:20;-1:-1:-1;19737:5:0;;;19741:1;19737;:5;:1;19761:5;;;;;:10;19753:19;;;;;19788:155;19873:9;19913:1;19908;:6;;19900:15;;;;;;-1:-1:-1;19930:5:0;;;19788:155::o;12476:621::-;-1:-1:-1;;;;;12594:14:0;;12556:10;12594:14;;;:6;:14;;;;;12576:1;12594:22;;;;12569:8;;;;12594:22;;12591:333;;;-1:-1:-1;;;;;12650:14:0;;12632:15;12650:14;;;:6;:14;;;;;:20;;;:27;;12675:1;12650:27;:24;:27;:::i;:::-;12632:45;-1:-1:-1;12692:12:0;12727:3;12707:17;:4;12632:45;12707:17;:8;:17;:::i;:::-;:23;;;;;-1:-1:-1;;;;;12766:14:0;;;;;;:6;:14;;;;;:18;;;12707:23;;;;-1:-1:-1;12766:28:0;;12707:23;12766:28;:22;:28;:::i;:::-;-1:-1:-1;;;;;12745:14:0;;;;;;:6;:14;;;;;:18;;;:49;;;;12841:29;;;:39;;12875:4;12841:39;:33;:39;:::i;:::-;-1:-1:-1;;;;;12809:14:0;;;;;;:6;:14;;;;;:29;;:71;12900:12;:2;12907:4;12900:12;:6;:12;:::i;:::-;12895:17;;12591:333;;;12956:1;12951:6;;12936:12;12983;12951:2;:6;12983;:12::i;:::-;12968:27;;13029:4;1093:42;13008:37;;;;;:::i;:::-;-1:-1:-1;;;;;13008:37:0;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13008:37:0;;;;13077:4;1192:42;13056:33;;;;;:::i;:::-;-1:-1:-1;;;;;13056:33:0;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;;12476:621:0:o;13159:512::-;13248:12;13277:2;13263:11;:4;13272:1;13263:11;:8;:11;:::i;:::-;:16;;;;;;;-1:-1:-1;13388:18:0;13397:4;13404:1;13397:8;;13388;:18::i;:::-;13381:25;-1:-1:-1;13446:13:0;13462:14;13381:25;13471:4;13462:14;:8;:14;:::i;:::-;13446:30;;13539:13;13555:34;13567:6;13575:4;13581:7;13555:11;:34::i;:::-;13539:50;;13637:26;13657:5;13637:15;13646:5;13637:4;;:8;;:15;;;;:::i;:::-;:19;:26;:19;:26;:::i;:::-;13630:4;:33;-1:-1:-1;;;;;;13159:512:0:o;15733:406::-;15807:17;15827:29;15848:7;15827:20;:29::i;:::-;15807:49;-1:-1:-1;15871:13:0;;15867:265;;-1:-1:-1;;;;;15970:15:0;;;;;;:6;:15;;;;;:19;;;15956:34;;:9;;:34;:13;:34;:::i;:::-;-1:-1:-1;;;;;15934:15:0;;;;;;:6;:15;;;;;:19;;;:56;;;;16099:20;;;16085:35;;:9;;:35;:13;:35;:::i;:::-;-1:-1:-1;;;;;16062:15:0;;;;;;:6;:15;;;;;:20;;:58;15733:406;;:::o;13679:751::-;13947:6;;13783:7;;;;13915:29;:4;13924:19;13915:29;:8;:29;:::i;:::-;:38;;;;;;13900:53;;13971:14;13980:4;13971;;:8;;:14;;;;:::i;:::-;13964:4;:21;14141:14;14180:19;14159:17;:4;14168:7;14159:17;:8;:17;:::i;:::-;14158:41;;;;;;14141:58;;14233:83;14295:6;:15;14302:7;-1:-1:-1;;;;;14295:15:0;-1:-1:-1;;;;;14295:15:0;;;;;;;;;;;;:20;;;14234:55;14282:6;14257:19;14236:17;14245:7;14236:4;;:8;;:17;;;;:::i;:::-;14235:41;;;;;;;14234:55;:47;:55;:::i;14233:83::-;-1:-1:-1;;;;;14210:15:0;;;;;;:6;:15;;;;;:20;;:106;14391:6;;14372:49;;14401:19;;14382:16;;:4;;:16;:8;:16;:::i;:::-;:38;;;;;14372:4;;14382:38;;14372:49;:8;:49;:::i;:::-;14365:57;13679:751;-1:-1:-1;;;;;;13679:751:0:o;16147:217::-;-1:-1:-1;;;;;16335:15:0;;16242:7;16335:15;;;:6;:15;;;;;:20;;;;16284:22;;;;;16275:4;;16274:82;;16335:20;16310:19;;16275:32;;;:8;:32;:::i;28:18838::-;;;;;;;;:::o;:::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;28:18838:0;;;-1:-1:-1;;28:18838:0:o

Swarm Source

bzzr://ed472ea9c4fbf6fee5152a7a8ee630fc7c455bfe498e032d01c7e1c3f9d1e8e9
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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