Contract 0x3acee164de1345c3551f273c1ba01a3292e1b8e3 1

Txn Hash Method
Block
From
To
Value [Txn Fee]
0xcc8a68b8f3152dc9c3b88474248058fbe97e71921c02dfba65270db468117094Burn164173302022-06-25 8:35:2230 secs ago0x922b4762ce4115820efaf05b2be15b3d51d0a583 IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.000285423
0x1205fb79d721faf7c90ffd3b2f5ad5b8b3b5c57d61d510b4cffd86e887118284Mint164173292022-06-25 8:35:1933 secs ago0x1eadbd4f778831b1a3777e9ae17fc130f6cfd413 IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001789713
0x74646de9c5e764f8abc772eedbd732534c4a0102c11b6012d1496973d288113dMint164173172022-06-25 8:34:431 min ago0x922b4762ce4115820efaf05b2be15b3d51d0a583 IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001873713
0x46f753f1918b2a3f80bc7114e8d23f15c91a23712105d05a58eff96969256f38Burn164173052022-06-25 8:34:071 min ago0x5d7f5aa05820d749ee036f8d1b473e2147eff203 IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0002847813
0x69e672c80b14d5ab068b3285525f0bb8de86167a443d04079d2d516a9089f39eBurn164173022022-06-25 8:33:581 min ago0xa42d34e314deaac964dc8ead0047d00a175fcdcd IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0002860593
0xbba534ede3f17e33065061c76b78ab81cbd3cdc837ef2942a39bbd53929cf5afMint164172872022-06-25 8:33:132 mins ago0x5d7f5aa05820d749ee036f8d1b473e2147eff203 IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001789713
0xc3515ba2897c734597aac1dff276183326d405a394027f4ca82b7301b38d3882Mint164172862022-06-25 8:33:102 mins ago0x63d2bd713cf6749a61786f6c0a2ebb39a61c9601 IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001789713
0x6d78c4de95e89b96d942f44d895b8190441f71db8e1e6ba5aaf9abb2ee1c65bfMint164172782022-06-25 8:32:463 mins ago0xd656203552a8e900531ef1a734242e30d3b13e1e IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001789713
0x3df3ccebdfc5ddb8330e6903ec36668eaa47833cd9450a8616cb69b77a9a4492Mint164172662022-06-25 8:32:103 mins ago0x52a1d3fc0e6ebe33ffd476c8de869826191b5be9 IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001789713
0xdfda2910edbbfeb0521b1f2500caa236907bbf93b362d9d3d842e06d6a16d933Mint164172612022-06-25 8:31:553 mins ago0xe9bd23c0c7aa7d04afd389238bc4ecad78b77485 IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001789713
0xd1fd49203e3151841d5b60f5366401e97b9957b57af3c9686cb7cb62b90cae62Mint164172582022-06-25 8:31:464 mins ago0xadb9d341a559e6f77c02f334f19b79a283f2abaf IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001789713
0xa523cb620aa494471465b8988e3d38e6398197cd2a0c0a40ca46040e35596c6dMint164172572022-06-25 8:31:434 mins ago0x3d3b977b6aab832a5c7795aa63198fb07ace091f IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001795533
0x6fcaf633d69f24f3ec7255e00fde1b2df94b26f1d16dc2c75ca46db0488f85c8Mint164172532022-06-25 8:31:314 mins ago0x172e50ebee183bdb1937258a6bce781f9321b7eb IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001795533
0x60207c12fdf6f9a7e254e6f8e7d0aa5e3627c9f74120ef82246844e562394592Mint164172512022-06-25 8:31:254 mins ago0x56044d3268ed19354c6879fed010359b65e783cc IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001789713
0xcaa5f91275b11e737ada57d827f37d61e828fcbfb61b752b1a1874ba26d0f5fcMint164172492022-06-25 8:31:194 mins ago0xd8bd94553c35ae5a8039015ea28a3c802a7f2465 IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001795533
0x06a1010bdd5f6b40685d9521f81cf9040dad941e3f63d6f4a4f5e5029744ad29Mint164172482022-06-25 8:31:164 mins ago0xa03995b938cce12132274a0d94541a1f01d64d2e IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001789713
0x311950ea1b568f4d5e0c43e1c42268d3ce5a199d03a1fb1f8be3a40cc04a78dfMint164172442022-06-25 8:31:044 mins ago0xe2ca52496879d473b08e4957c0b98a4be1f7d354 IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001795533
0xa69cb008a8f6760e942f25b699fce5fcc08d6f34030dec818436a65da64203deMint164172412022-06-25 8:30:554 mins ago0x2d3095f9ce6d31dfe6af4582c9c3358808430ec0 IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001789713
0x85c5d38168ed929e4027694deb0e83db4ed7c5f7365f1c012497aec0497f1a34Approve164172392022-06-25 8:30:495 mins ago0xa42d34e314deaac964dc8ead0047d00a175fcdcd IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.000112232.5
0xaa40ffe43204c889ae373780b8388868f9d6da7368c0e28df849068977b41944Mint164172392022-06-25 8:30:495 mins ago0x369e77449477cb11baa7a2c404b627fb96961dc9 IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001801353
0xd9a943f9b53a13018483a650a98208aa122c71ccbbc8ca74c576288fc48cf7f1Mint164172352022-06-25 8:30:375 mins ago0x5cdeb16bfc84046dd4766a43348518446c2ae1be IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001789713
0x51567b379b30c682e586638897f9bcac07c2204c5829203e1165cdd6e9cf0bd3Mint164172292022-06-25 8:30:195 mins ago0xf7178f74c558acdd4d28d65bd321f725a9b77857 IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001039593
0xa3e93e768c4bfe49ca94aa78aa8a2a47f354fdd4108d666e00dc1abde20be0dcMint164172292022-06-25 8:30:195 mins ago0x83d65800a7fd586503517a40d66e60081778ff63 IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001795533
0xbba89c336265e9f91cd58fc248a72c59ff66d1c71ed0d4f3fe74fa641cfcb5e1Mint164172272022-06-25 8:30:135 mins ago0xf7178f74c558acdd4d28d65bd321f725a9b77857 IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001795533
0x73d00f70d89971700bba2f3a1ca1af9e810259c2efaf8b6498692f302c87b480Mint164172232022-06-25 8:30:015 mins ago0x20c53116f654b180e55b28eb5f9ee22f81e82d46 IN 0x3acee164de1345c3551f273c1ba01a3292e1b8e30 HT0.0001789713
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
burn_token

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at hecoinfo.com on 2022-01-27
*/

// SPDX-License-Identifier: SimPL-2.0
pragma solidity  ^0.8.9;

/**
 * Math operations with safety checks
 */
contract SafeMath {
  function safeMul(uint256 a, uint256 b) pure internal returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function safeDiv(uint256 a, uint256 b) pure internal returns (uint256) {
    assert(b > 0);
    uint256 c = a / b;
    assert(a == b * c + a % b);
    return c;
  }

  function safeSub(uint256 a, uint256 b) pure internal returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function safeAdd(uint256 a, uint256 b) pure internal returns (uint256) {
    uint256 c = a + b;
    assert(c>=a && c>=b);
    return c;
  }
}
interface  iburn_token {
    //获取老合约的算力
    function power(address owner) external view returns (uint256);
    function invite(address owner) external view returns (address);
    function last_miner(address owner) external view returns (uint256);
}

library TransferHelper {
    function safeTransfer(address token, address to, uint value) internal {
        // bytes4(keccak256(bytes('transfer(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED');
    }

    function safeTransferFrom(address token, address from, address to, uint value) internal {
        // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FROM_FAILED');
    }
}

contract burn_token is SafeMath{
    string public name;
    string public symbol;
    uint8 public decimals = 3;
    uint public epoch_base = 86400;//挖矿周期基数,不变
    uint public epoch = 86400;//挖矿周期,随着时间变化
    uint public start_time;//挖矿开始时间
    uint256 public totalSupply;
    uint256 public totalPower;//总算力
    uint256 public totalUsersAmount;//总用户数
    address payable public owner;
    bool public is_airdrop = true;//是否开启空投,开启空投不能挖矿
    bool public is_upgrade = false;//是否开启老合约升级到新合约
    bool public is_addPower = true;//是否开启老合约升级到新合约
    bool public is_mint = false;//是否开启挖矿

    uint public anti_bot = 100e18;//如果v1用户token余额小于这个值,不能挖矿
    address public requireToken = 0xa71EdC38d189767582C38A3145b5873052c3e47a;//token合约地址
    address public daoAddress;

    uint public burnTokenAmount = 0;//每燃烧1个基础数字需要配合燃烧token的数量


    /* This creates an array with all balances */
    mapping (address => uint256) public balanceOf;
    //      user             token        balance
    mapping (address => mapping(address => uint256)) public TokenBalanceOf;
    mapping (address => address) public invite;//邀请
    mapping (address => uint256) public power;//算力
    mapping (address => uint256) public last_miner;//用户上次挖矿时间
    mapping (address => uint256) public freezeOf;
    mapping (address => uint256) public inviteCount;//邀请人好友数
    mapping (address => uint256) public rewardCount;//累计奖励
    mapping (address => mapping (address => uint256)) public allowance;//授权

    /* This generates a public event on the blockchain that will notify clients */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /* This notifies clients about the amount burnt */
    event Burn(address indexed from, uint256 value);

	/* This notifies clients about the amount frozen */
    event Freeze(address indexed from, uint256 value);

	/* This notifies clients about the amount unfrozen */
    event Unfreeze(address indexed from, uint256 value);

    // 铸币事件
    event Minted(
        address indexed operator,
        address indexed to,
        uint256 amount
    );

    event  Deposit(address indexed dst,address token, uint wad);
    event  Withdrawal(address indexed src,address token, uint wad);

    /* Initializes contract with initial supply tokens to the creator of the contract */
    constructor(
        string memory tokenName,
        string memory tokenSymbol
        ) {
        totalSupply = 0;// Update total supply
        name = tokenName;                                // Set the name for display purposes
        symbol = tokenSymbol;                            // Set the symbol for display purposes
        owner = payable(msg.sender);
        daoAddress = owner;
        epoch_base = 86400;
        epoch = epoch_base;
    }

    receive() payable external {
    }

    //管理员可以提出转出合约地址里的QKI
    function withdraw(uint amount) public {
        require(msg.sender == owner);
        owner.transfer(amount);
    }

    //托管质押的token
    function depositToken(address token,uint256 amount) public {
        TransferHelper.safeTransferFrom(token, msg.sender, address(this), amount);
        TokenBalanceOf[msg.sender][token] += amount;
    }

    //提现已质押的token
    function withdrawToken(address token,uint256 amount) public {
        require(block.timestamp - last_miner[msg.sender] >= 86400);//提现已质押的token需要在挖矿24小时后才能提交
        require(TokenBalanceOf[msg.sender][token] >= amount);
        TokenBalanceOf[msg.sender][token] -= amount;
        TransferHelper.safeTransfer(token,msg.sender,amount);
    }


    /* Send coins */
    function transfer(address _to, uint256 _value) public returns (bool success) {
        require(_to != address(0)); // Prevent transfer to 0x0 address. Use burn() instead
		require(_value > 0);
        require(msg.sender != _to);//自己不能转给自己

        uint fee = transfer_fee(msg.sender,_value);
        uint sub_value = SafeMath.safeAdd(fee, _value); //扣除余额需要计算手续费

        require(balanceOf[msg.sender] >= sub_value);//需要计算加上手续费后是否够
        if (balanceOf[_to] + _value < balanceOf[_to]) revert("overflows"); // Check for overflows

        balanceOf[msg.sender] = SafeMath.safeSub(balanceOf[msg.sender], sub_value);// Subtract from the sender
        balanceOf[_to] = SafeMath.safeAdd(balanceOf[_to], _value);                         // Add the same to the recipient
        balanceOf[daoAddress] = SafeMath.safeAdd(balanceOf[daoAddress], fee);
        emit Transfer(msg.sender, _to, _value);                // Notify anyone listening that this transfer took place
        if(fee > 0)
        {
            emit Transfer(msg.sender, daoAddress, fee);
        }
        return true;
    }

    function transfer_fee(address _from,uint256 _value) public view returns (uint256 fee) {
        uint8 scale = 20;// n/100
        //没有挖矿用户免手续费
        if(last_miner[_from] == 0)
        {
            scale = 0;
            return 0;
        }
        else if(power[_from] < 1000 * 1e3)
        {
            scale = 50;
        }
        else if(power[_from] < 5000 * 1e3)
        {
            scale = 20;
        }
        else if(power[_from] < 10000 * 1e3)
        {
            scale = 10;
        }
        else if(power[_from] < 50000 * 1e3)
        {
            scale = 9;
        }
        else if(power[_from] < 100000 * 1e3)
        {
            scale = 8;
        }
        else if(power[_from] >= 100000 * 1e3)
        {
            scale = 7;
        }
        uint256 _fee = _value * scale / 100;
        return _fee;
    }

    /* Allow another contract to spend some tokens in your behalf */
    function approve(address _spender, uint256 _value) public returns (bool success) {
        // To change the approve amount you first have to reduce the addresses`
        //  allowance to zero by calling `approve(_spender, 0)` if it is not
        //  already 0 to mitigate the race condition described here:
        //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
        require(!((_value != 0) && (allowance[msg.sender][_spender] != 0)));

		require(_value >= 0);
        allowance[msg.sender][_spender] = _value;
        return true;
    }


    /* A contract attempts to get the coins */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)  {
        if (_to == address(0)) revert();                             // Prevent transfer to 0x0 address. Use burn() instead
		if (_value <= 0) revert();
        require(_from != _to);//自己不能转给自己

        uint fee = transfer_fee(_from,_value);
        uint sub_value = SafeMath.safeAdd(fee, _value);


        if (balanceOf[_from] < sub_value) revert();              // Check if the sender has enough
        if (balanceOf[_to] + _value < balanceOf[_to]) revert();  // Check for overflows
        if (sub_value > allowance[_from][msg.sender]) revert();  // Check allowance

        balanceOf[_from] = SafeMath.safeSub(balanceOf[_from], sub_value);                        // Subtract from the sender
        balanceOf[_to] = SafeMath.safeAdd(balanceOf[_to], _value);                          // Add the same to the recipient
        allowance[_from][msg.sender] = SafeMath.safeSub(allowance[_from][msg.sender], sub_value);
        balanceOf[daoAddress] = SafeMath.safeAdd(balanceOf[daoAddress], fee);
        emit Transfer(_from, _to, _value);
        if(fee > 0)
        {
            emit Transfer(_from, daoAddress, fee);
        }
        return true;
    }

    //空投,用户自己可以申请领取算力
    function airdrop() public{
        require(power[msg.sender] == 0);//零算力账号才可以
        require(is_airdrop);//需要开启空投
        power[msg.sender] = 100 * 1e3;
        totalPower += 100 *  1e3;
        totalUsersAmount++;
    }

    //暂停升级
    function stop_addPower() public{
        require(msg.sender == owner);
        require(is_addPower);
        is_addPower = false;
    }

    function addPower(address account,uint256 _value)  public returns (bool success)  {
        require(msg.sender == owner);
        require(is_addPower);
        power[account] += _value;//燃烧加算力
        totalPower += _value;//加累计算力
        return true;
    }


    function subPower(address account,uint256 _value)  public returns (bool success)  {
        require(msg.sender == owner);
        require(is_addPower);
        power[account] -= _value;//燃烧加算力
        totalPower -= _value;//加累计算力
        return true;
    }

    function burn(uint256 _value) public returns (bool success)  {
        require(balanceOf[msg.sender] >= _value);         // Check if the sender has enough
		require(_value > 0);

        //如果需要混合燃烧,从质押里面扣
        if (burnTokenAmount > 0) {
            require(TokenBalanceOf[msg.sender][requireToken] >= burnTokenAmount * _value,"token insufficient");
            TokenBalanceOf[msg.sender][requireToken] -= burnTokenAmount * _value;
            TransferHelper.safeTransfer(requireToken,address(0x0000000000000000000000000000000000000010), burnTokenAmount * _value);
        }

        //如果可以挖矿,先挖一次,避免多计算
        if (power[msg.sender] > 0 && block.timestamp - last_miner[msg.sender] >= epoch){
            //v1需要有质押
            if(power[msg.sender] < 500 * 1e3 && TokenBalanceOf[msg.sender][requireToken] >= anti_bot) {
                mint();
            } else if (power[msg.sender] >= 500 * 1e3){
                mint();
            }
        }

        balanceOf[msg.sender] = SafeMath.safeSub(balanceOf[msg.sender], _value);                   // Subtract from the sender
        totalSupply = SafeMath.safeSub(totalSupply,_value);                             // Updates totalSupply
        if(power[msg.sender] == 0)
            totalUsersAmount++;
        power[msg.sender] += _value * 3;//燃烧加算力
        emit Transfer(msg.sender,address(0),_value);
        totalPower += _value * 3;//加累计算力
        reward_upline(_value);//给上级奖励
        return true;
    }

    function reward_upline(uint256 _value) private returns (bool success){
        //邀请人不能为空
        if(invite[msg.sender] != address(0))
        {
            address invite1 = invite[msg.sender];

            //零算力不奖励
            if(power[invite1] == 0)
                return true;
            uint8 scale = 2;// n/100 通证数量乘以精度单位
            if(power[invite1] < 1000 * 1e3)
            {
                scale = 2;
            }
            else if(power[invite1] < 5000 * 1e3)
            {
                scale = 4;
            }
            else if(power[invite1] < 10000 * 1e3)
            {
                scale = 5;
            }
            else if(power[invite1] < 50000 * 1e3)
            {
                scale = 6;
            }
            else if(power[invite1] < 100000 * 1e3)
            {
                scale = 7;
            }
            else if(power[invite1] >= 100000 * 1e3)
            {
                scale = 8;
            }
            //小数支持不好,就先乘后除的方法
            uint256 reward = _value * scale / 100;
            //如果本次算力大于上级
            if(power[invite1] < reward)
            {
                reward = power[invite1];
            }

            power[invite1] = power[invite1] - reward;//减少邀请人算力
            totalPower = totalPower - reward;//减少总算力
            balanceOf[invite1] =  balanceOf[invite1] + reward;//增加邀请人余额
            totalSupply = totalSupply + reward;//增加总量
            rewardCount[invite1] += reward;//记录累计奖励
            emit Minted(msg.sender,invite1,reward);

            if(invite[invite1] != address(0))
            {
                address invite2 =  invite[invite1];

                //零算力不奖励
                if(power[invite2] == 0)
                    return true;

                scale = 2;// n/100
                if(power[invite2] < 1000 * 1e3)
                {
                    scale = 0;
                }
                else if(power[invite2] < 5000* 1e3)
                {
                    scale = 1;
                }
                else if(power[invite2] < 10000 * 1e3)
                {
                    scale = 2;
                }
                else if(power[invite2] < 50000 * 1e3)
                {
                    scale = 3;
                }
                else if(power[invite2] < 100000 * 1e3)
                {
                    scale = 4;
                }
                else if(power[invite2] >= 100000 * 1e3)
                {
                    scale = 5;
                }
                reward = _value * scale / 100;
                //Check
                if(power[invite2] < reward)
                {
                    reward = power[invite2];
                }

                power[invite2] = power[invite2] - reward;//减少邀请人算力
                totalPower = totalPower - reward;//减少总算力
                balanceOf[invite2] =  balanceOf[invite2] + reward;//增加邀请人余额
                totalSupply = totalSupply + reward;//增加总量
                rewardCount[invite2] += reward;//记录累计奖励
                emit Minted(msg.sender,invite2,reward);
                return true;
            }
            return true;
        }
        return true;
    }

	function freeze(uint256 _value) public returns (bool success)  {
        if (balanceOf[msg.sender] < _value) revert();         // Check if the sender has enough
		if (_value <= 0) revert();
        balanceOf[msg.sender] = SafeMath.safeSub(balanceOf[msg.sender], _value);                   // Subtract from the sender
        freezeOf[msg.sender] = SafeMath.safeAdd(freezeOf[msg.sender], _value);                             // Updates totalSupply
        emit Freeze(msg.sender, _value);
        return true;
    }

	function unfreeze(uint256 _value) public returns (bool success) {
        if (freezeOf[msg.sender] < _value) revert();         // Check if the sender has enough
		if (_value <= 0) revert();
        freezeOf[msg.sender] = SafeMath.safeSub(freezeOf[msg.sender], _value);                   // Subtract from the sender
		balanceOf[msg.sender] = SafeMath.safeAdd(balanceOf[msg.sender], _value);
        emit Unfreeze(msg.sender, _value);
        return true;
    }


    function setOwner(address payable new_owner) public {
        require(msg.sender == owner);
        owner = new_owner;
    }

    function setDao(address new_dao) public {
        require(msg.sender == owner);
        daoAddress = new_dao;
    }


    function setAirdrop() public{
        require(msg.sender == owner);
        is_airdrop = !is_airdrop;
    }

     //设置挖矿门槛,如果用户的抵押的token余额小于这个值,而且算力小于500,不能挖矿,限制刷子
    function setAntiBot(uint _value) public{
        require(msg.sender == owner);
        anti_bot = _value;
    }

    function setburnTokenAmount(uint _value) public{
        require(msg.sender == owner);
        burnTokenAmount = _value;
    }

    function startMint()public{
        require(msg.sender == owner);
        is_mint = true;
        start_time = block.timestamp;
    }


    function update_epoch() private returns (bool success){
        epoch =  epoch_base + (block.timestamp - start_time)/365;
        return true;
    }

    function registration(address invite_address) public returns (bool success){
        require(invite[msg.sender] == address(0));//现在没有邀请人
        require(msg.sender != invite_address);//不能是自己
        invite[msg.sender] = invite_address;//记录邀请人
        inviteCount[invite_address] += 1;//邀请人的下级数加一
        return true;
    }
    //挖矿
    function mint() public returns (bool success){
        update_epoch();//每次都更新基础周期值
        require(is_mint,"not start mint");
        require(power[msg.sender] > 0);//算力不能为零
        require(block.timestamp - last_miner[msg.sender] >= epoch); //距离上次挖矿大于一个周期
        uint8 scale = 20;// 万分之n
        if(power[msg.sender] < 1000 * 1e3)
        {
            scale = 20;
            //用户合约内锁仓token余额小于一个值,就不能挖矿
            require(TokenBalanceOf[msg.sender][requireToken] >= anti_bot,"token too low");
        }
        else if(power[msg.sender] < 5000* 1e3)
        {
            scale = 50;
        }
        else if(power[msg.sender] < 10000 * 1e3)
        {
            scale = 55;
        }
        else if(power[msg.sender] < 50000 * 1e3)
        {
            scale = 60;
        }
        else if(power[msg.sender] < 100000 * 1e3)
        {
            scale = 65;
        }
        else if(power[msg.sender] >= 100000 * 1e3)
        {
            scale = 70;
        }

        uint miner_days=(block.timestamp - last_miner[msg.sender])/epoch;

        if(miner_days > 5)
        {
            miner_days = 5;//单次最多领取5天的
        }

        //第一次挖矿只能1天
        if(last_miner[msg.sender] == 0)
        {
            miner_days = 1;
        }

        //v2及以上可以5天 v1只能每天领
        if(miner_days > 1 && power[msg.sender] < 500 * 1e3)
        {
            miner_days = 1;
        }

        //算力*比例*天数
        uint256 reward = power[msg.sender] * miner_days * scale / 10000;
        power[msg.sender] = power[msg.sender] - reward;//算力减去本次转换的
        totalPower = totalPower - reward;//减少总算力
        balanceOf[msg.sender] =  balanceOf[msg.sender] + reward;//增加余额
        totalSupply = totalSupply + reward;//增加总量
        last_miner[msg.sender] = block.timestamp;//记录本次挖矿时间
        emit Transfer(address(0), msg.sender, reward);
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"string","name":"tokenSymbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Minted","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":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Unfreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Withdrawal","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"TokenBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"addPower","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"anti_bot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daoAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"depositToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"epoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"epoch_base","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"freeze","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"freezeOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"invite","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"inviteCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"is_addPower","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"is_airdrop","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"is_mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"is_upgrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"last_miner","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"power","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"invite_address","type":"address"}],"name":"registration","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"requireToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"new_dao","type":"address"}],"name":"setDao","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"new_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setburnTokenAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start_time","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stop_addPower","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"subPower","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalPower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalUsersAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer_fee","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"unfreeze","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526002805460ff1916600390811790915562015180908190556004556009805463ffffffff60a01b19166201000160a01b17905568056bc75e2d63100000600a55600b80546001600160a01b03191673a71edc38d189767582c38a3145b5873052c3e47a1790556000600d553480156200007c57600080fd5b50604051620029ec380380620029ec8339810160408190526200009f9162000279565b600060068190558251620000b99190602085019062000106565b508051620000cf90600190602084019062000106565b505060098054336001600160a01b03199182168117909255600c805490911690911790555062015180600381905560045562000320565b8280546200011490620002e3565b90600052602060002090601f01602090048101928262000138576000855562000183565b82601f106200015357805160ff191683800117855562000183565b8280016001018555821562000183579182015b828111156200018357825182559160200191906001019062000166565b506200019192915062000195565b5090565b5b8082111562000191576000815560010162000196565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001d457600080fd5b81516001600160401b0380821115620001f157620001f1620001ac565b604051601f8301601f19908116603f011681019082821181831017156200021c576200021c620001ac565b816040528381526020925086838588010111156200023957600080fd5b600091505b838210156200025d57858201830151818301840152908201906200023e565b838211156200026f5760008385830101525b9695505050505050565b600080604083850312156200028d57600080fd5b82516001600160401b0380821115620002a557600080fd5b620002b386838701620001c2565b93506020850151915080821115620002ca57600080fd5b50620002d985828601620001c2565b9150509250929050565b600181811c90821680620002f857607f821691505b602082108114156200031a57634e487b7160e01b600052602260045260246000fd5b50919050565b6126bc80620003306000396000f3fe6080604052600436106102b25760003560e01c806370a0823111610175578063b34d30ca116100dc578063d7a78db811610095578063dd62ed3e1161006f578063dd62ed3e146108bb578063dd94a29d146108f3578063e180830114610909578063e41ea9d51461091e57600080fd5b8063d7a78db814610865578063db3ad22c14610885578063dc53ddb81461089b57600080fd5b8063b34d30ca14610793578063b5af960d146107b3578063b6ab61a7146107e0578063cd4217c1146107f6578063cf3a199414610823578063d07a5b3d1461084457600080fd5b80639e281a981161012e5780639e281a98146106dc5780639e2f3836146106fc578063a3f040371461071c578063a9059cbb1461073c578063aae651191461075c578063af2872c71461077d57600080fd5b806370a082311461062d5780637e19cc701461065a578063834ee4171461067b5780638da5cb5b14610691578063900cf0cf146106b157806395d89b41146106c757600080fd5b8063313ce567116102195780634b77c468116101d25780634b77c46814610547578063503371a51461057d57806350b98f50146105aa57806357b24e6b146105c05780636623fc46146105ed5780636637b8821461060d57600080fd5b8063313ce56714610486578063338b5dea146104b25780633884d635146104d25780633dcb7d7e146104e757806342966c68146105075780634a586f9e1461052757600080fd5b80631f251a621161026b5780631f251a62146103945780632131c68c146103c157806323b872dd146103f95780632be09561146104195780632e1a7d4d1461042e5780632f2617cc1461044e57600080fd5b806306fdde03146102be5780630840605a146102e9578063095ea7b3146103195780631249c58b1461033957806313af40351461034e57806318160ddd1461037057600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610933565b6040516102e0919061240f565b60405180910390f35b3480156102f557600080fd5b5061030961030436600461245a565b6109c1565b60405190151581526020016102e0565b34801561032557600080fd5b50610309610334366004612477565b610a4f565b34801561034557600080fd5b50610309610abc565b34801561035a57600080fd5b5061036e61036936600461245a565b610df6565b005b34801561037c57600080fd5b5061038660065481565b6040519081526020016102e0565b3480156103a057600080fd5b506103866103af36600461245a565b60126020526000908152604090205481565b3480156103cd57600080fd5b50600c546103e1906001600160a01b031681565b6040516001600160a01b0390911681526020016102e0565b34801561040557600080fd5b506103096104143660046124a3565b610e2f565b34801561042557600080fd5b5061036e611070565b34801561043a57600080fd5b5061036e6104493660046124e4565b6110a0565b34801561045a57600080fd5b506103866104693660046124fd565b600f60209081526000928352604080842090915290825290205481565b34801561049257600080fd5b506002546104a09060ff1681565b60405160ff90911681526020016102e0565b3480156104be57600080fd5b5061036e6104cd366004612477565b6110f5565b3480156104de57600080fd5b5061036e61113d565b3480156104f357600080fd5b5061036e6105023660046124e4565b6111b3565b34801561051357600080fd5b506103096105223660046124e4565b6111cf565b34801561053357600080fd5b50600b546103e1906001600160a01b031681565b34801561055357600080fd5b506103e161056236600461245a565b6010602052600090815260409020546001600160a01b031681565b34801561058957600080fd5b5061038661059836600461245a565b60116020526000908152604090205481565b3480156105b657600080fd5b50610386600a5481565b3480156105cc57600080fd5b506103866105db36600461245a565b60146020526000908152604090205481565b3480156105f957600080fd5b506103096106083660046124e4565b61148f565b34801561061957600080fd5b5061036e61062836600461245a565b61154e565b34801561063957600080fd5b5061038661064836600461245a565b600e6020526000908152604090205481565b34801561066657600080fd5b5060095461030990600160b01b900460ff1681565b34801561068757600080fd5b5061038660055481565b34801561069d57600080fd5b506009546103e1906001600160a01b031681565b3480156106bd57600080fd5b5061038660045481565b3480156106d357600080fd5b506102d3611587565b3480156106e857600080fd5b5061036e6106f7366004612477565b611594565b34801561070857600080fd5b50610386610717366004612477565b611632565b34801561072857600080fd5b5061036e6107373660046124e4565b611780565b34801561074857600080fd5b50610309610757366004612477565b61179c565b34801561076857600080fd5b5060095461030990600160a01b900460ff1681565b34801561078957600080fd5b5061038660035481565b34801561079f57600080fd5b506103096107ae366004612477565b61196d565b3480156107bf57600080fd5b506103866107ce36600461245a565b60156020526000908152604090205481565b3480156107ec57600080fd5b50610386600d5481565b34801561080257600080fd5b5061038661081136600461245a565b60136020526000908152604090205481565b34801561082f57600080fd5b5060095461030990600160a81b900460ff1681565b34801561085057600080fd5b5060095461030990600160b81b900460ff1681565b34801561087157600080fd5b506103096108803660046124e4565b6119ec565b34801561089157600080fd5b5061038660075481565b3480156108a757600080fd5b506103096108b6366004612477565b611a9b565b3480156108c757600080fd5b506103866108d63660046124fd565b601660209081526000928352604080842090915290825290205481565b3480156108ff57600080fd5b5061038660085481565b34801561091557600080fd5b5061036e611b0c565b34801561092a57600080fd5b5061036e611b44565b6000805461094090612536565b80601f016020809104026020016040519081016040528092919081815260200182805461096c90612536565b80156109b95780601f1061098e576101008083540402835291602001916109b9565b820191906000526020600020905b81548152906001019060200180831161099c57829003601f168201915b505050505081565b336000908152601060205260408120546001600160a01b0316156109e457600080fd5b336001600160a01b03831614156109fa57600080fd5b33600090815260106020908152604080832080546001600160a01b0319166001600160a01b038716908117909155835260149091528120805460019290610a42908490612587565b9091555060019392505050565b60008115801590610a8257503360009081526016602090815260408083206001600160a01b038716845290915290205415155b15610a8c57600080fd5b503360009081526016602090815260408083206001600160a01b0386168452909152902081905560015b92915050565b6000610ac6611b80565b50600954600160b81b900460ff16610b165760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd081cdd185c9d081b5a5b9d60921b60448201526064015b60405180910390fd5b33600090815260116020526040902054610b2f57600080fd5b60045433600090815260126020526040902054610b4c904261259f565b1015610b5757600080fd5b33600090815260116020526040902054601490620f42401115610be45750600a54336000908152600f60209081526040808320600b546001600160a01b031684529091529020546014911115610bdf5760405162461bcd60e51b815260206004820152600d60248201526c746f6b656e20746f6f206c6f7760981b6044820152606401610b0d565b610c8c565b33600090815260116020526040902054624c4b401115610c0657506032610c8c565b33600090815260116020526040902054629896801115610c2857506037610c8c565b336000908152601160205260409020546302faf0801115610c4b5750603c610c8c565b336000908152601160205260409020546305f5e1001115610c6e57506041610c8c565b336000908152601160205260409020546305f5e10011610c8c575060465b60045433600090815260126020526040812054909190610cac904261259f565b610cb691906125b6565b90506005811115610cc5575060055b33600090815260126020526040902054610cdd575060015b600181118015610cfe5750336000908152601160205260409020546207a120115b15610d07575060015b336000908152601160205260408120546127109060ff851690610d2b9085906125d8565b610d3591906125d8565b610d3f91906125b6565b33600090815260116020526040902054909150610d5d90829061259f565b33600090815260116020526040902055600754610d7b90829061259f565b600755336000908152600e6020526040902054610d99908290612587565b336000908152600e6020526040902055600654610db7908290612587565b60065533600081815260126020908152604080832042905551848152600080516020612667833981519152910160405180910390a36001935050505090565b6009546001600160a01b03163314610e0d57600080fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b038316610e4457600080fd5b60008211610e5157600080fd5b826001600160a01b0316846001600160a01b03161415610e7057600080fd5b6000610e7c8584611632565b90506000610e8a8285611bb3565b6001600160a01b0387166000908152600e6020526040902054909150811115610eb257600080fd5b6001600160a01b0385166000908152600e6020526040902054610ed58582612587565b1015610ee057600080fd5b6001600160a01b0386166000908152601660209081526040808320338452909152902054811115610f1057600080fd5b6001600160a01b0386166000908152600e6020526040902054610f339082611be5565b6001600160a01b038088166000908152600e60205260408082209390935590871681522054610f629085611bb3565b6001600160a01b038087166000908152600e60209081526040808320949094559189168152601682528281203382529091522054610fa09082611be5565b6001600160a01b038088166000908152601660209081526040808320338452825280832094909455600c549092168152600e9091522054610fe19083611bb3565b600c546001600160a01b039081166000908152600e602090815260409182902093909355518681528782169291891691600080516020612667833981519152910160405180910390a3811561106457600c546040518381526001600160a01b03918216918816906000805160206126678339815191529060200160405180910390a35b50600195945050505050565b6009546001600160a01b0316331461108757600080fd5b6009805460ff60b81b1916600160b81b17905542600555565b6009546001600160a01b031633146110b757600080fd5b6009546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156110f1573d6000803e3d6000fd5b5050565b61110182333084611c01565b336000908152600f602090815260408083206001600160a01b038616845290915281208054839290611134908490612587565b90915550505050565b336000908152601160205260409020541561115757600080fd5b600954600160a01b900460ff1661116d57600080fd5b336000908152601160205260408120620186a0908190556007805491929091611197908490612587565b9091555050600880549060006111ac836125f7565b9190505550565b6009546001600160a01b031633146111ca57600080fd5b600a55565b336000908152600e60205260408120548211156111eb57600080fd5b600082116111f857600080fd5b600d54156112e65781600d5461120e91906125d8565b336000908152600f60209081526040808320600b546001600160a01b0316845290915290205410156112775760405162461bcd60e51b81526020600482015260126024820152711d1bdad95b881a5b9cdd59999a58da595b9d60721b6044820152606401610b0d565b81600d5461128591906125d8565b336000908152600f60209081526040808320600b546001600160a01b03168452909152812080549091906112ba90849061259f565b9091555050600b54600d546112e6916001600160a01b0316906010906112e19086906125d8565b611d31565b336000908152601160205260409020541580159061131f57506004543360009081526012602052604090205461131c904261259f565b10155b156113a257336000908152601160205260409020546207a12011801561136c5750600a54336000908152600f60209081526040808320600b546001600160a01b0316845290915290205410155b1561137f57611379610abc565b506113a2565b336000908152601160205260409020546207a120116113a2576113a0610abc565b505b336000908152600e60205260409020546113bc9083611be5565b336000908152600e60205260409020556006546113d99083611be5565b600655336000908152601160205260409020546114065760088054906000611400836125f7565b91905055505b6114118260036125d8565b3360009081526011602052604081208054909190611430908490612587565b909155505060405182815260009033906000805160206126678339815191529060200160405180910390a36114668260036125d8565b600760008282546114779190612587565b90915550611486905082611e4c565b50600192915050565b336000908152601360205260408120548211156114ab57600080fd5b600082116114b857600080fd5b336000908152601360205260409020546114d29083611be5565b33600090815260136020908152604080832093909355600e905220546114f89083611bb3565b336000818152600e6020526040908190209290925590517f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f9061153e9085815260200190565b60405180910390a2506001919050565b6009546001600160a01b0316331461156557600080fd5b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6001805461094090612536565b3360009081526012602052604090205462015180906115b3904261259f565b10156115be57600080fd5b336000908152600f602090815260408083206001600160a01b03861684529091529020548111156115ee57600080fd5b336000908152600f602090815260408083206001600160a01b03861684529091528120805483929061162190849061259f565b909155506110f19050823383611d31565b6001600160a01b03821660009081526012602052604081205460149061165c575060009050610ab6565b6001600160a01b038416600090815260116020526040902054620f424011156116875750603261175c565b6001600160a01b038416600090815260116020526040902054624c4b4011156116b25750601461175c565b6001600160a01b0384166000908152601160205260409020546298968011156116dd5750600a61175c565b6001600160a01b0384166000908152601160205260409020546302faf08011156117095750600961175c565b6001600160a01b0384166000908152601160205260409020546305f5e10011156117355750600861175c565b6001600160a01b0384166000908152601160205260409020546305f5e1001161175c575060075b6000606461176d60ff8416866125d8565b61177791906125b6565b95945050505050565b6009546001600160a01b0316331461179757600080fd5b600d55565b60006001600160a01b0383166117b157600080fd5b600082116117be57600080fd5b336001600160a01b03841614156117d457600080fd5b60006117e03384611632565b905060006117ee8285611bb3565b336000908152600e602052604090205490915081111561180d57600080fd5b6001600160a01b0385166000908152600e60205260409020546118308582612587565b101561186a5760405162461bcd60e51b81526020600482015260096024820152686f766572666c6f777360b81b6044820152606401610b0d565b336000908152600e60205260409020546118849082611be5565b336000908152600e6020526040808220929092556001600160a01b038716815220546118b09085611bb3565b6001600160a01b038087166000908152600e602052604080822093909355600c54909116815220546118e29083611bb3565b600c546001600160a01b039081166000908152600e60209081526040918290209390935551868152908716913391600080516020612667833981519152910160405180910390a3811561196257600c546040518381526001600160a01b039091169033906000805160206126678339815191529060200160405180910390a35b506001949350505050565b6009546000906001600160a01b0316331461198757600080fd5b600954600160b01b900460ff1661199d57600080fd5b6001600160a01b038316600090815260116020526040812080548492906119c5908490612587565b9250508190555081600760008282546119de9190612587565b909155506001949350505050565b336000908152600e6020526040812054821115611a0857600080fd5b60008211611a1557600080fd5b336000908152600e6020526040902054611a2f9083611be5565b336000908152600e6020908152604080832093909355601390522054611a559083611bb3565b33600081815260136020526040908190209290925590517ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e09061153e9085815260200190565b6009546000906001600160a01b03163314611ab557600080fd5b600954600160b01b900460ff16611acb57600080fd5b6001600160a01b03831660009081526011602052604081208054849290611af390849061259f565b9250508190555081600760008282546119de919061259f565b6009546001600160a01b03163314611b2357600080fd5b6009805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6009546001600160a01b03163314611b5b57600080fd5b600954600160b01b900460ff16611b7157600080fd5b6009805460ff60b01b19169055565b600061016d60055442611b93919061259f565b611b9d91906125b6565b600354611baa9190612587565b60045550600190565b600080611bc08385612587565b9050838110158015611bd25750828110155b611bde57611bde612612565b9392505050565b600082821115611bf757611bf7612612565b611bde828461259f565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691611c659190612628565b6000604051808303816000865af19150503d8060008114611ca2576040519150601f19603f3d011682016040523d82523d6000602084013e611ca7565b606091505b5091509150818015611cd1575080511580611cd1575080806020019051810190611cd19190612644565b611d295760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f46416044820152631253115160e21b6064820152608401610b0d565b505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691611d8d9190612628565b6000604051808303816000865af19150503d8060008114611dca576040519150601f19603f3d011682016040523d82523d6000602084013e611dcf565b606091505b5091509150818015611df9575080511580611df9575080806020019051810190611df99190612644565b611e455760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c4544006044820152606401610b0d565b5050505050565b336000908152601060205260408120546001600160a01b0316156123d757336000908152601060209081526040808320546001600160a01b0316808452601190925290912054611e9f5750600192915050565b6001600160a01b038116600090815260116020526040902054600290620f42401115611ecd57506002611fa2565b6001600160a01b038216600090815260116020526040902054624c4b401115611ef857506004611fa2565b6001600160a01b038216600090815260116020526040902054629896801115611f2357506005611fa2565b6001600160a01b0382166000908152601160205260409020546302faf0801115611f4f57506006611fa2565b6001600160a01b0382166000908152601160205260409020546305f5e1001115611f7b57506007611fa2565b6001600160a01b0382166000908152601160205260409020546305f5e10011611fa2575060085b60006064611fb360ff8416876125d8565b611fbd91906125b6565b6001600160a01b038416600090815260116020526040902054909150811115611ffb57506001600160a01b0382166000908152601160205260409020545b6001600160a01b03831660009081526011602052604090205461201f90829061259f565b6001600160a01b03841660009081526011602052604090205560075461204690829061259f565b6007556001600160a01b0383166000908152600e602052604090205461206d908290612587565b6001600160a01b0384166000908152600e6020526040902055600654612094908290612587565b6006556001600160a01b038316600090815260156020526040812080548392906120bf908490612587565b90915550506040518181526001600160a01b0384169033907f9d228d69b5fdb8d273a2336f8fb8612d039631024ea9bf09c424a9503aa078f09060200160405180910390a36001600160a01b038381166000908152601060205260409020541615611962576001600160a01b038084166000908152601060209081526040808320549093168083526011909152919020546121605750600195945050505050565b6001600160a01b03811660009081526011602052604090205460029350620f42401115612190576000925061226a565b6001600160a01b038116600090815260116020526040902054624c4b4011156121bc576001925061226a565b6001600160a01b0381166000908152601160205260409020546298968011156121e8576002925061226a565b6001600160a01b0381166000908152601160205260409020546302faf0801115612215576003925061226a565b6001600160a01b0381166000908152601160205260409020546305f5e1001115612242576004925061226a565b6001600160a01b0381166000908152601160205260409020546305f5e1001161226a57600592505b606461227960ff8516886125d8565b61228391906125b6565b6001600160a01b0382166000908152601160205260409020549092508211156122c2576001600160a01b03811660009081526011602052604090205491505b6001600160a01b0381166000908152601160205260409020546122e690839061259f565b6001600160a01b03821660009081526011602052604090205560075461230d90839061259f565b6007556001600160a01b0381166000908152600e6020526040902054612334908390612587565b6001600160a01b0382166000908152600e602052604090205560065461235b908390612587565b6006556001600160a01b03811660009081526015602052604081208054849290612386908490612587565b90915550506040518281526001600160a01b0382169033907f9d228d69b5fdb8d273a2336f8fb8612d039631024ea9bf09c424a9503aa078f09060200160405180910390a350600195945050505050565b506001919050565b60005b838110156123fa5781810151838201526020016123e2565b83811115612409576000848401525b50505050565b602081526000825180602084015261242e8160408501602087016123df565b601f01601f19169190910160400192915050565b6001600160a01b038116811461245757600080fd5b50565b60006020828403121561246c57600080fd5b8135611bde81612442565b6000806040838503121561248a57600080fd5b823561249581612442565b946020939093013593505050565b6000806000606084860312156124b857600080fd5b83356124c381612442565b925060208401356124d381612442565b929592945050506040919091013590565b6000602082840312156124f657600080fd5b5035919050565b6000806040838503121561251057600080fd5b823561251b81612442565b9150602083013561252b81612442565b809150509250929050565b600181811c9082168061254a57607f821691505b6020821081141561256b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561259a5761259a612571565b500190565b6000828210156125b1576125b1612571565b500390565b6000826125d357634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156125f2576125f2612571565b500290565b600060001982141561260b5761260b612571565b5060010190565b634e487b7160e01b600052600160045260246000fd5b6000825161263a8184602087016123df565b9190910192915050565b60006020828403121561265657600080fd5b81518015158114611bde57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ef1a93dbf897013f07ae585ce25af8d5bf0ba7b0f857fcd122d236de327f84d064736f6c634300080b0033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003485354000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034853540000000000000000000000000000000000000000000000000000000000

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003485354000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034853540000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : tokenName (string): HST
Arg [1] : tokenSymbol (string): HST

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [3] : 4853540000000000000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [5] : 4853540000000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

1823:18904:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1861:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18182:380;;;;;;;;;;-1:-1:-1;18182:380:0;;;;;:::i;:::-;;:::i;:::-;;;1218:14:1;;1211:22;1193:41;;1181:2;1166:18;18182:380:0;1053:187:1;8011:575:0;;;;;;;;;;-1:-1:-1;8011:575:0;;;;;:::i;:::-;;:::i;18582:2142::-;;;;;;;;;;;;;:::i;17102:127::-;;;;;;;;;;-1:-1:-1;17102:127:0;;;;;:::i;:::-;;:::i;:::-;;2127:26;;;;;;;;;;;;;;;;;;;1971:25:1;;;1959:2;1944:18;2127:26:0;1825:177:1;3255:46:0;;;;;;;;;;-1:-1:-1;3255:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;2776:25;;;;;;;;;;-1:-1:-1;2776:25:0;;;;-1:-1:-1;;;;;2776:25:0;;;;;;-1:-1:-1;;;;;2171:32:1;;;2153:51;;2141:2;2126:18;2776:25:0;2007:203:1;8644:1296:0;;;;;;;;;;-1:-1:-1;8644:1296:0;;;;;:::i;:::-;;:::i;17876:137::-;;;;;;;;;;;;;:::i;5052:118::-;;;;;;;;;;-1:-1:-1;5052:118:0;;;;;:::i;:::-;;:::i;3065:70::-;;;;;;;;;;-1:-1:-1;3065:70:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1913:25;;;;;;;;;;-1:-1:-1;1913:25:0;;;;;;;;;;;3426:4:1;3414:17;;;3396:36;;3384:2;3369:18;1913:25:0;3254:184:1;5206:205:0;;;;;;;;;;-1:-1:-1;5206:205:0;;;;;:::i;:::-;;:::i;9999:255::-;;;;;;;;;;;;;:::i;17617:114::-;;;;;;;;;;-1:-1:-1;17617:114:0;;;;;:::i;:::-;;:::i;11011:1595::-;;;;;;;;;;-1:-1:-1;11011:1595:0;;;;;:::i;:::-;;:::i;2678:72::-;;;;;;;;;;-1:-1:-1;2678:72:0;;;;-1:-1:-1;;;;;2678:72:0;;;3142:42;;;;;;;;;;-1:-1:-1;3142:42:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;3142:42:0;;;3199:41;;;;;;;;;;-1:-1:-1;3199:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;2585:29;;;;;;;;;;;;;;;;3385:47;;;;;;;;;;-1:-1:-1;3385:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;16626:466;;;;;;;;;;-1:-1:-1;16626:466:0;;;;;:::i;:::-;;:::i;17237:118::-;;;;;;;;;;-1:-1:-1;17237:118:0;;;;;:::i;:::-;;:::i;2962:45::-;;;;;;;;;;-1:-1:-1;2962:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2451:30;;;;;;;;;;-1:-1:-1;2451:30:0;;;;-1:-1:-1;;;2451:30:0;;;;;;2078:22;;;;;;;;;;;;;;;;2255:28;;;;;;;;;;-1:-1:-1;2255:28:0;;;;-1:-1:-1;;;;;2255:28:0;;;2011:25;;;;;;;;;;;;;;;;1886:20;;;;;;;;;;;;;:::i;5450:380::-;;;;;;;;;;-1:-1:-1;5450:380:0;;;;;:::i;:::-;;:::i;7039:894::-;;;;;;;;;;-1:-1:-1;7039:894:0;;;;;:::i;:::-;;:::i;17739:129::-;;;;;;;;;;-1:-1:-1;17739:129:0;;;;;:::i;:::-;;:::i;5862:1169::-;;;;;;;;;;-1:-1:-1;5862:1169:0;;;;;:::i;:::-;;:::i;2290:29::-;;;;;;;;;;-1:-1:-1;2290:29:0;;;;-1:-1:-1;;;2290:29:0;;;;;;1945:30;;;;;;;;;;;;;;;;10429:282;;;;;;;;;;-1:-1:-1;10429:282:0;;;;;:::i;:::-;;:::i;3459:47::-;;;;;;;;;;-1:-1:-1;3459:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;2810:31;;;;;;;;;;;;;;;;3334:44;;;;;;;;;;-1:-1:-1;3334:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;2373:30;;;;;;;;;;-1:-1:-1;2373:30:0;;;;-1:-1:-1;;;2373:30:0;;;;;;2529:27;;;;;;;;;;-1:-1:-1;2529:27:0;;;;-1:-1:-1;;;2529:27:0;;;;;;16100:521;;;;;;;;;;-1:-1:-1;16100:521:0;;;;;:::i;:::-;;:::i;2160:25::-;;;;;;;;;;;;;;;;10721:282;;;;;;;;;;-1:-1:-1;10721:282:0;;;;;:::i;:::-;;:::i;3527:66::-;;;;;;;;;;-1:-1:-1;3527:66:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2203:31;;;;;;;;;;;;;;;;17365:110;;;;;;;;;;;;;:::i;10282:139::-;;;;;;;;;;;;;:::i;1861:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18182:380::-;18283:10;18244:12;18276:18;;;:6;:18;;;;;;-1:-1:-1;;;;;18276:18:0;:32;18268:41;;;;;;18351:10;-1:-1:-1;;;;;18351:28:0;;;;18343:37;;;;;;18415:10;18408:18;;;;:6;:18;;;;;;;;:35;;-1:-1:-1;;;;;;18408:35:0;-1:-1:-1;;;;;18408:35:0;;;;;;;;18471:27;;:11;:27;;;;;:32;;-1:-1:-1;;18408:18:0;18471:32;;-1:-1:-1;;18471:32:0;:::i;:::-;;;;-1:-1:-1;18550:4:0;;18182:380;-1:-1:-1;;;18182:380:0:o;8011:575::-;8078:12;8422:11;;;;;8421:55;;-1:-1:-1;8449:10:0;8439:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;8439:31:0;;;;;;;;;;:36;;8421:55;8419:58;8411:67;;;;;;-1:-1:-1;8526:10:0;8516:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;8516:31:0;;;;;;;;;:40;;;8574:4;8011:575;;;;;:::o;18582:2142::-;18614:12;18638:14;:12;:14::i;:::-;-1:-1:-1;18703:7:0;;-1:-1:-1;;;18703:7:0;;;;18695:33;;;;-1:-1:-1;;;18695:33:0;;4519:2:1;18695:33:0;;;4501:21:1;4558:2;4538:18;;;4531:30;-1:-1:-1;;;4577:18:1;;;4570:44;4631:18;;18695:33:0;;;;;;;;;18753:10;18767:1;18747:17;;;:5;:17;;;;;;18739:30;;;;;;18852:5;;18837:10;18826:22;;;;:10;:22;;;;;;18808:40;;:15;:40;:::i;:::-;:49;;18800:58;;;;;;18957:10;18908:11;18951:17;;;:5;:17;;;;;;18922:2;;18971:10;-1:-1:-1;18948:740:0;;;-1:-1:-1;19165:8:0;;19136:10;19121:26;;;;:14;:26;;;;;;;;19148:12;;-1:-1:-1;;;;;19148:12:0;19121:40;;;;;;;;19015:2;;-1:-1:-1;19121:52:0;19113:77;;;;-1:-1:-1;;;19113:77:0;;4992:2:1;19113:77:0;;;4974:21:1;5031:2;5011:18;;;5004:30;-1:-1:-1;;;5050:18:1;;;5043:43;5103:18;;19113:77:0;4790:337:1;19113:77:0;18948:740;;;19226:10;19220:17;;;;:5;:17;;;;;;19240:9;-1:-1:-1;19217:471:0;;;-1:-1:-1;19283:2:0;19217:471;;;19321:10;19315:17;;;;:5;:17;;;;;;19335:11;-1:-1:-1;19312:376:0;;;-1:-1:-1;19380:2:0;19312:376;;;19418:10;19412:17;;;;:5;:17;;;;;;19432:11;-1:-1:-1;19409:279:0;;;-1:-1:-1;19477:2:0;19409:279;;;19515:10;19509:17;;;;:5;:17;;;;;;19529:12;-1:-1:-1;19506:182:0;;;-1:-1:-1;19575:2:0;19506:182;;;19613:10;19607:17;;;;:5;:17;;;;;;19628:12;-1:-1:-1;19604:84:0;;-1:-1:-1;19674:2:0;19604:84;19759:5;;19746:10;19700:15;19735:22;;;:10;:22;;;;;;19700:15;;19759:5;19717:40;;:15;:40;:::i;:::-;19716:48;;;;:::i;:::-;19700:64;;19793:1;19780:10;:14;19777:96;;;-1:-1:-1;19833:1:0;19777:96;19936:10;19925:22;;;;:10;:22;;;;;;19922:82;;-1:-1:-1;19991:1:0;19922:82;20083:1;20070:10;:14;:47;;;;-1:-1:-1;20094:10:0;20088:17;;;;:5;:17;;;;;;20108:9;-1:-1:-1;20070:47:0;20067:102;;;-1:-1:-1;20156:1:0;20067:102;20236:10;20213:14;20230:17;;;:5;:17;;;;;;20271:5;;20230:38;;;;:30;;20250:10;;20230:30;:::i;:::-;:38;;;;:::i;:::-;:46;;;;:::i;:::-;20313:10;20307:17;;;;:5;:17;;;;;;20213:63;;-1:-1:-1;20307:26:0;;20213:63;;20307:26;:::i;:::-;20293:10;20287:17;;;;:5;:17;;;;;:46;20386:10;;:19;;20399:6;;20386:19;:::i;:::-;20373:10;:32;20468:10;20458:21;;;;:9;:21;;;;;;:30;;20482:6;;20458:30;:::i;:::-;20443:10;20433:21;;;;:9;:21;;;;;:55;20527:11;;:20;;20541:6;;20527:20;:::i;:::-;20513:11;:34;20583:10;20572:22;;;;:10;:22;;;;;;;;20597:15;20572:40;;20654;1971:25:1;;;-1:-1:-1;;;;;;;;;;;20654:40:0;1944:18:1;20654:40:0;;;;;;;20712:4;20705:11;;;;;18582:2142;:::o;17102:127::-;17187:5;;-1:-1:-1;;;;;17187:5:0;17173:10;:19;17165:28;;;;;;17204:5;:17;;-1:-1:-1;;;;;;17204:17:0;-1:-1:-1;;;;;17204:17:0;;;;;;;;;;17102:127::o;8644:1296::-;8726:12;-1:-1:-1;;;;;8756:17:0;;8752:31;;8775:8;;;8752:31;8885:1;8875:6;:11;8871:25;;8888:8;;;8871:25;8924:3;-1:-1:-1;;;;;8915:12:0;:5;-1:-1:-1;;;;;8915:12:0;;;8907:21;;;;;;8967:8;8978:26;8991:5;8997:6;8978:12;:26::i;:::-;8967:37;;9015:14;9032:29;9049:3;9054:6;9032:16;:29::i;:::-;-1:-1:-1;;;;;9080:16:0;;;;;;:9;:16;;;;;;9015:46;;-1:-1:-1;9080:28:0;-1:-1:-1;9076:42:0;;;9110:8;;;9076:42;-1:-1:-1;;;;;9206:14:0;;;;;;:9;:14;;;;;;9180:23;9197:6;9206:14;9180:23;:::i;:::-;:40;9176:54;;;9222:8;;;9176:54;-1:-1:-1;;;;;9281:16:0;;;;;;:9;:16;;;;;;;;9298:10;9281:28;;;;;;;;9269:40;;9265:54;;;9311:8;;;9265:54;-1:-1:-1;;;;;9388:16:0;;;;;;:9;:16;;;;;;9371:45;;9406:9;9371:16;:45::i;:::-;-1:-1:-1;;;;;9352:16:0;;;;;;;:9;:16;;;;;;:64;;;;9512:14;;;;;;;9495:40;;9528:6;9495:16;:40::i;:::-;-1:-1:-1;;;;;9478:14:0;;;;;;;:9;:14;;;;;;;;:57;;;;9652:16;;;;;:9;:16;;;;;9669:10;9652:28;;;;;;;9635:57;;9682:9;9635:16;:57::i;:::-;-1:-1:-1;;;;;9604:16:0;;;;;;;:9;:16;;;;;;;;9621:10;9604:28;;;;;;;:88;;;;9754:10;;;;;9744:21;;:9;:21;;;;;9727:44;;9767:3;9727:16;:44::i;:::-;9713:10;;-1:-1:-1;;;;;9713:10:0;;;9703:21;;;;:9;:21;;;;;;;;;:68;;;;9787:28;1971:25:1;;;9787:28:0;;;;;;;;-1:-1:-1;;;;;;;;;;;9787:28:0;1944:18:1;9787:28:0;;;;;;;9829:7;;9826:85;;9883:10;;9867:32;;1971:25:1;;;-1:-1:-1;;;;;9883:10:0;;;;9867:32;;;-1:-1:-1;;;;;;;;;;;9867:32:0;1959:2:1;1944:18;9867:32:0;;;;;;;9826:85;-1:-1:-1;9928:4:0;;8644:1296;-1:-1:-1;;;;;8644:1296:0:o;17876:137::-;17935:5;;-1:-1:-1;;;;;17935:5:0;17921:10;:19;17913:28;;;;;;17952:7;:14;;-1:-1:-1;;;;17952:14:0;-1:-1:-1;;;17952:14:0;;;17990:15;17977:10;:28;17876:137::o;5052:118::-;5123:5;;-1:-1:-1;;;;;5123:5:0;5109:10;:19;5101:28;;;;;;5140:5;;:22;;-1:-1:-1;;;;;5140:5:0;;;;:22;;;;;5155:6;;5140:5;:22;:5;:22;5155:6;5140:5;:22;;;;;;;;;;;;;;;;;;;;;5052:118;:::o;5206:205::-;5276:73;5308:5;5315:10;5335:4;5342:6;5276:31;:73::i;:::-;5375:10;5360:26;;;;:14;:26;;;;;;;;-1:-1:-1;;;;;5360:33:0;;;;;;;;;:43;;5397:6;;5360:26;:43;;5397:6;;5360:43;:::i;:::-;;;;-1:-1:-1;;;;5206:205:0:o;9999:255::-;10049:10;10043:17;;;;:5;:17;;;;;;:22;10035:31;;;;;;10111:10;;-1:-1:-1;;;10111:10:0;;;;10103:19;;;;;;10159:10;10153:17;;;;:5;:17;;;;;10173:9;10153:29;;;;10193:10;:24;;10173:9;;10193:10;;:24;;10173:9;;10193:24;:::i;:::-;;;;-1:-1:-1;;10228:16:0;:18;;;:16;:18;;;:::i;:::-;;;;;;9999:255::o;17617:114::-;17689:5;;-1:-1:-1;;;;;17689:5:0;17675:10;:19;17667:28;;;;;;17706:8;:17;17617:114::o;11011:1595::-;11101:10;11057:12;11091:21;;;:9;:21;;;;;;:31;-1:-1:-1;11091:31:0;11083:40;;;;;;11187:1;11178:6;:10;11170:19;;;;;;11263:15;;:19;11259:367;;11369:6;11351:15;;:24;;;;:::i;:::-;11322:10;11307:26;;;;:14;:26;;;;;;;;11334:12;;-1:-1:-1;;;;;11334:12:0;11307:40;;;;;;;;:68;;11299:98;;;;-1:-1:-1;;;11299:98:0;;5869:2:1;11299:98:0;;;5851:21:1;5908:2;5888:18;;;5881:30;-1:-1:-1;;;5927:18:1;;;5920:48;5985:18;;11299:98:0;5667:342:1;11299:98:0;11474:6;11456:15;;:24;;;;:::i;:::-;11427:10;11412:26;;;;:14;:26;;;;;;;;11439:12;;-1:-1:-1;;;;;11439:12:0;11412:40;;;;;;;:68;;:40;;:26;:68;;;;;:::i;:::-;;;;-1:-1:-1;;11523:12:0;;11589:15;;11495:119;;-1:-1:-1;;;;;11523:12:0;;11544:42;;11589:24;;11607:6;;11589:24;:::i;:::-;11495:27;:119::i;:::-;11711:10;11725:1;11705:17;;;:5;:17;;;;;;:21;;;;:74;;-1:-1:-1;11774:5:0;;11759:10;11748:22;;;;:10;:22;;;;;;11730:40;;:15;:40;:::i;:::-;:49;;11705:74;11701:351;;;11837:10;11831:17;;;;:5;:17;;;;;;11851:9;-1:-1:-1;11831:85:0;;;;-1:-1:-1;11908:8:0;;11879:10;11864:26;;;;:14;:26;;;;;;;;11891:12;;-1:-1:-1;;;;;11891:12:0;11864:40;;;;;;;;:52;;11831:85;11828:213;;;11937:6;:4;:6::i;:::-;;11828:213;;;11975:10;11969:17;;;;:5;:17;;;;;;11990:9;-1:-1:-1;11965:76:0;;12019:6;:4;:6::i;:::-;;11965:76;12115:10;12105:21;;;;:9;:21;;;;;;12088:47;;12128:6;12088:16;:47::i;:::-;12074:10;12064:21;;;;:9;:21;;;;;:71;12223:11;;12206:36;;12235:6;12206:16;:36::i;:::-;12192:11;:50;12313:10;12307:17;;;;:5;:17;;;;;;12304:58;;12344:16;:18;;;:16;:18;;;:::i;:::-;;;;;;12304:58;12394:10;:6;12403:1;12394:10;:::i;:::-;12379;12373:17;;;;:5;:17;;;;;:31;;:17;;;:31;;;;;:::i;:::-;;;;-1:-1:-1;;12437:38:0;;1971:25:1;;;12465:1:0;;12446:10;;-1:-1:-1;;;;;;;;;;;12437:38:0;1959:2:1;1944:18;12437:38:0;;;;;;;12500:10;:6;12509:1;12500:10;:::i;:::-;12486;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;12538:21:0;;-1:-1:-1;12552:6:0;12538:13;:21::i;:::-;-1:-1:-1;12594:4:0;;11011:1595;-1:-1:-1;;11011:1595:0:o;16626:466::-;16714:10;16676:12;16705:20;;;:8;:20;;;;;;:29;-1:-1:-1;16701:43:0;;;16736:8;;;16701:43;16805:1;16795:6;:11;16791:25;;16808:8;;;16791:25;16876:10;16867:20;;;;:8;:20;;;;;;16850:46;;16889:6;16850:16;:46::i;:::-;16836:10;16827:20;;;;:8;:20;;;;;;;;:69;;;;16988:9;:21;;;;16971:47;;17011:6;16971:16;:47::i;:::-;16957:10;16947:21;;;;:9;:21;;;;;;;:71;;;;17034:28;;;;;;17055:6;1971:25:1;;1959:2;1944:18;;1825:177;17034:28:0;;;;;;;;-1:-1:-1;17080:4:0;;16626:466;-1:-1:-1;16626:466:0:o;17237:118::-;17310:5;;-1:-1:-1;;;;;17310:5:0;17296:10;:19;17288:28;;;;;;17327:10;:20;;-1:-1:-1;;;;;;17327:20:0;-1:-1:-1;;;;;17327:20:0;;;;;;;;;;17237:118::o;1886:20::-;;;;;;;:::i;5450:380::-;5558:10;5547:22;;;;:10;:22;;;;;;5573:5;;5529:40;;:15;:40;:::i;:::-;:49;;5521:58;;;;;;5676:10;5661:26;;;;:14;:26;;;;;;;;-1:-1:-1;;;;;5661:33:0;;;;;;;;;;:43;-1:-1:-1;5661:43:0;5653:52;;;;;;5731:10;5716:26;;;;:14;:26;;;;;;;;-1:-1:-1;;;;;5716:33:0;;;;;;;;;:43;;5753:6;;5716:26;:43;;5753:6;;5716:43;:::i;:::-;;;;-1:-1:-1;5770:52:0;;-1:-1:-1;5798:5:0;5804:10;5815:6;5770:27;:52::i;7039:894::-;-1:-1:-1;;;;;7216:17:0;;7112:11;7216:17;;;:10;:17;;;;;;7150:2;;7213:645;;-1:-1:-1;7272:1:0;;-1:-1:-1;7288:8:0;;7213:645;-1:-1:-1;;;;;7326:12:0;;;;;;:5;:12;;;;;;7341:10;-1:-1:-1;7323:535:0;;;-1:-1:-1;7385:2:0;7323:535;;;-1:-1:-1;;;;;7417:12:0;;;;;;:5;:12;;;;;;7432:10;-1:-1:-1;7414:444:0;;;-1:-1:-1;7476:2:0;7414:444;;;-1:-1:-1;;;;;7508:12:0;;;;;;:5;:12;;;;;;7523:11;-1:-1:-1;7505:353:0;;;-1:-1:-1;7568:2:0;7505:353;;;-1:-1:-1;;;;;7600:12:0;;;;;;:5;:12;;;;;;7615:11;-1:-1:-1;7597:261:0;;;-1:-1:-1;7660:1:0;7597:261;;;-1:-1:-1;;;;;7691:12:0;;;;;;:5;:12;;;;;;7706;-1:-1:-1;7688:170:0;;;-1:-1:-1;7752:1:0;7688:170;;;-1:-1:-1;;;;;7783:12:0;;;;;;:5;:12;;;;;;7799;-1:-1:-1;7780:78:0;;-1:-1:-1;7845:1:0;7780:78;7868:12;7900:3;7883:14;;;;:6;:14;:::i;:::-;:20;;;;:::i;:::-;7868:35;7039:894;-1:-1:-1;;;;;7039:894:0:o;17739:129::-;17819:5;;-1:-1:-1;;;;;17819:5:0;17805:10;:19;17797:28;;;;;;17836:15;:24;17739:129::o;5862:1169::-;5925:12;-1:-1:-1;;;;;5958:17:0;;5950:26;;;;;;6053:1;6044:6;:10;6036:19;;;;;;6074:10;-1:-1:-1;;;;;6074:17:0;;;;6066:26;;;;;;6131:8;6142:31;6155:10;6166:6;6142:12;:31::i;:::-;6131:42;;6184:14;6201:29;6218:3;6223:6;6201:16;:29::i;:::-;6297:10;6287:21;;;;:9;:21;;;;;;6184:46;;-1:-1:-1;6287:34:0;-1:-1:-1;6287:34:0;6279:43;;;;;;-1:-1:-1;;;;;6404:14:0;;;;;;:9;:14;;;;;;6378:23;6395:6;6404:14;6378:23;:::i;:::-;:40;6374:65;;;6420:19;;-1:-1:-1;;;6420:19:0;;6216:2:1;6420:19:0;;;6198:21:1;6255:1;6235:18;;;6228:29;-1:-1:-1;;;6273:18:1;;;6266:39;6322:18;;6420:19:0;6014:332:1;6374:65:0;6526:10;6516:21;;;;:9;:21;;;;;;6499:50;;6539:9;6499:16;:50::i;:::-;6485:10;6475:21;;;;:9;:21;;;;;;:74;;;;-1:-1:-1;;;;;6621:14:0;;;;;;6604:40;;6637:6;6604:16;:40::i;:::-;-1:-1:-1;;;;;6587:14:0;;;;;;;:9;:14;;;;;;:57;;;;6763:10;;;;;6753:21;;;;6736:44;;6776:3;6736:16;:44::i;:::-;6722:10;;-1:-1:-1;;;;;6722:10:0;;;6712:21;;;;:9;:21;;;;;;;;;:68;;;;6796:33;1971:25:1;;;6796:33:0;;;;6805:10;;-1:-1:-1;;;;;;;;;;;6796:33:0;1944:18:1;6796:33:0;;;;;;;6915:7;;6912:90;;6974:10;;6953:37;;1971:25:1;;;-1:-1:-1;;;;;6974:10:0;;;;6962;;-1:-1:-1;;;;;;;;;;;6953:37:0;1959:2:1;1944:18;6953:37:0;;;;;;;6912:90;-1:-1:-1;7019:4:0;;5862:1169;-1:-1:-1;;;;5862:1169:0:o;10429:282::-;10544:5;;10496:12;;-1:-1:-1;;;;;10544:5:0;10530:10;:19;10522:28;;;;;;10569:11;;-1:-1:-1;;;10569:11:0;;;;10561:20;;;;;;-1:-1:-1;;;;;10592:14:0;;;;;;:5;:14;;;;;:24;;10610:6;;10592:14;:24;;10610:6;;10592:24;:::i;:::-;;;;;;;;10658:6;10644:10;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;10699:4:0;;10429:282;-1:-1:-1;;;;10429:282:0:o;16100:521::-;16188:10;16148:12;16178:21;;;:9;:21;;;;;;:30;-1:-1:-1;16174:44:0;;;16210:8;;;16174:44;16279:1;16269:6;:11;16265:25;;16282:8;;;16265:25;16352:10;16342:21;;;;:9;:21;;;;;;16325:47;;16365:6;16325:16;:47::i;:::-;16311:10;16301:21;;;;:9;:21;;;;;;;;:71;;;;16469:8;:20;;;;16452:46;;16491:6;16452:16;:46::i;:::-;16438:10;16429:20;;;;:8;:20;;;;;;;:69;;;;16565:26;;;;;;16584:6;1971:25:1;;1959:2;1944:18;;1825:177;10721:282:0;10836:5;;10788:12;;-1:-1:-1;;;;;10836:5:0;10822:10;:19;10814:28;;;;;;10861:11;;-1:-1:-1;;;10861:11:0;;;;10853:20;;;;;;-1:-1:-1;;;;;10884:14:0;;;;;;:5;:14;;;;;:24;;10902:6;;10884:14;:24;;10902:6;;10884:24;:::i;:::-;;;;;;;;10950:6;10936:10;;:20;;;;;;;:::i;17365:110::-;17426:5;;-1:-1:-1;;;;;17426:5:0;17412:10;:19;17404:28;;;;;;17457:10;;;-1:-1:-1;;;;17443:24:0;;-1:-1:-1;;;17457:10:0;;;;;;17456:11;17443:24;;;;;;17365:110::o;10282:139::-;10346:5;;-1:-1:-1;;;;;10346:5:0;10332:10;:19;10324:28;;;;;;10371:11;;-1:-1:-1;;;10371:11:0;;;;10363:20;;;;;;10394:11;:19;;-1:-1:-1;;;;10394:19:0;;;10282:139::o;18023:151::-;18064:12;18141:3;18129:10;;18111:15;:28;;;;:::i;:::-;18110:34;;;;:::i;:::-;18097:10;;:47;;;;:::i;:::-;18088:5;:56;-1:-1:-1;18162:4:0;;18023:151::o;594:143::-;656:7;;684:5;688:1;684;:5;:::i;:::-;672:17;;706:1;703;:4;;:12;;;;;714:1;711;:4;;703:12;696:20;;;;:::i;:::-;730:1;594:143;-1:-1:-1;;;594:143:0:o;471:117::-;533:7;561:1;556;:6;;549:14;;;;:::i;:::-;577:5;581:1;577;:5;:::i;1414:402::-;1639:51;;;-1:-1:-1;;;;;6741:15:1;;;1639:51:0;;;6723:34:1;6793:15;;;6773:18;;;6766:43;6825:18;;;;6818:34;;;1639:51:0;;;;;;;;;;6658:18:1;;;;1639:51:0;;;;;;;-1:-1:-1;;;;;1639:51:0;-1:-1:-1;;;1639:51:0;;;1628:63;;-1:-1:-1;;;;1628:10:0;;;;:63;;1639:51;1628:63;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1592:99;;;;1710:7;:57;;;;-1:-1:-1;1722:11:0;;:16;;:44;;;1753:4;1742:24;;;;;;;;;;;;:::i;:::-;1702:106;;;;-1:-1:-1;;;1702:106:0;;7626:2:1;1702:106:0;;;7608:21:1;7665:2;7645:18;;;7638:30;7704:34;7684:18;;;7677:62;-1:-1:-1;;;7755:18:1;;;7748:34;7799:19;;1702:106:0;7424:400:1;1702:106:0;1502:314;;1414:402;;;;:::o;1045:361::-;1240:45;;;-1:-1:-1;;;;;8021:32:1;;;1240:45:0;;;8003:51:1;8070:18;;;;8063:34;;;1240:45:0;;;;;;;;;;7976:18:1;;;;1240:45:0;;;;;;;-1:-1:-1;;;;;1240:45:0;-1:-1:-1;;;1240:45:0;;;1229:57;;-1:-1:-1;;;;1229:10:0;;;;:57;;1240:45;1229:57;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1193:93;;;;1305:7;:57;;;;-1:-1:-1;1317:11:0;;:16;;:44;;;1348:4;1337:24;;;;;;;;;;;;:::i;:::-;1297:101;;;;-1:-1:-1;;;1297:101:0;;8310:2:1;1297:101:0;;;8292:21:1;8349:2;8329:18;;;8322:30;8388:33;8368:18;;;8361:61;8439:18;;1297:101:0;8108:355:1;1297:101:0;1115:291;;1045:361;;;:::o;12614:3481::-;12737:10;12670:12;12730:18;;;:6;:18;;;;;;-1:-1:-1;;;;;12730:18:0;:32;12727:3339;;12813:10;12788:15;12806:18;;;:6;:18;;;;;;;;;-1:-1:-1;;;;;12806:18:0;12878:14;;;:5;:14;;;;;;;12875:52;;-1:-1:-1;12923:4:0;;12614:3481;-1:-1:-1;;12614:3481:0:o;12875:52::-;-1:-1:-1;;;;;13014:14:0;;12942:11;13014:14;;;:5;:14;;;;;;12956:1;;13031:10;-1:-1:-1;13011:636:0;;;-1:-1:-1;13083:1:0;13011:636;;;-1:-1:-1;;;;;13122:14:0;;;;;;:5;:14;;;;;;13139:10;-1:-1:-1;13119:528:0;;;-1:-1:-1;13191:1:0;13119:528;;;-1:-1:-1;;;;;13230:14:0;;;;;;:5;:14;;;;;;13247:11;-1:-1:-1;13227:420:0;;;-1:-1:-1;13300:1:0;13227:420;;;-1:-1:-1;;;;;13339:14:0;;;;;;:5;:14;;;;;;13356:11;-1:-1:-1;13336:311:0;;;-1:-1:-1;13409:1:0;13336:311;;;-1:-1:-1;;;;;13448:14:0;;;;;;:5;:14;;;;;;13465:12;-1:-1:-1;13445:202:0;;;-1:-1:-1;13519:1:0;13445:202;;;-1:-1:-1;;;;;13558:14:0;;;;;;:5;:14;;;;;;13576:12;-1:-1:-1;13555:92:0;;-1:-1:-1;13630:1:0;13555:92;13722:14;13756:3;13739:14;;;;:6;:14;:::i;:::-;:20;;;;:::i;:::-;-1:-1:-1;;;;;13823:14:0;;;;;;:5;:14;;;;;;13722:37;;-1:-1:-1;13823:23:0;-1:-1:-1;13820:99:0;;;-1:-1:-1;;;;;;13889:14:0;;;;;;:5;:14;;;;;;13820:99;-1:-1:-1;;;;;13952:14:0;;;;;;:5;:14;;;;;;:23;;13969:6;;13952:23;:::i;:::-;-1:-1:-1;;;;;13935:14:0;;;;;;:5;:14;;;;;:40;14026:10;;:19;;14039:6;;14026:19;:::i;:::-;14013:10;:32;-1:-1:-1;;;;;14099:18:0;;;;;;:9;:18;;;;;;:27;;14120:6;;14099:27;:::i;:::-;-1:-1:-1;;;;;14077:18:0;;;;;;:9;:18;;;;;:49;14178:11;;:20;;14192:6;;14178:20;:::i;:::-;14164:11;:34;-1:-1:-1;;;;;14227:20:0;;;;;;:11;:20;;;;;:30;;14251:6;;14227:20;:30;;14251:6;;14227:30;:::i;:::-;;;;-1:-1:-1;;14297:33:0;;1971:25:1;;;-1:-1:-1;;;;;14297:33:0;;;14304:10;;14297:33;;1959:2:1;1944:18;14297:33:0;;;;;;;-1:-1:-1;;;;;14350:15:0;;;14377:1;14350:15;;;:6;:15;;;;;;;:29;14347:1682;;-1:-1:-1;;;;;14432:15:0;;;14413;14432;;;:6;:15;;;;;;;;;;;;14509:14;;;:5;:14;;;;;;;14506:56;;-1:-1:-1;14558:4:0;;12614:3481;-1:-1:-1;;;;;12614:3481:0:o;14506:56::-;-1:-1:-1;;;;;14622:14:0;;;;;;:5;:14;;;;;;14591:1;;-1:-1:-1;14639:10:0;-1:-1:-1;14619:727:0;;;14699:1;14691:9;;14619:727;;;-1:-1:-1;;;;;14746:14:0;;;;;;:5;:14;;;;;;14763:9;-1:-1:-1;14743:603:0;;;14822:1;14814:9;;14743:603;;;-1:-1:-1;;;;;14869:14:0;;;;;;:5;:14;;;;;;14886:11;-1:-1:-1;14866:480:0;;;14947:1;14939:9;;14866:480;;;-1:-1:-1;;;;;14994:14:0;;;;;;:5;:14;;;;;;15011:11;-1:-1:-1;14991:355:0;;;15072:1;15064:9;;14991:355;;;-1:-1:-1;;;;;15119:14:0;;;;;;:5;:14;;;;;;15136:12;-1:-1:-1;15116:230:0;;;15198:1;15190:9;;15116:230;;;-1:-1:-1;;;;;15245:14:0;;;;;;:5;:14;;;;;;15263:12;-1:-1:-1;15242:104:0;;15325:1;15317:9;;15242:104;15390:3;15373:14;;;;:6;:14;:::i;:::-;:20;;;;:::i;:::-;-1:-1:-1;;;;;15440:14:0;;;;;;:5;:14;;;;;;15364:29;;-1:-1:-1;15440:23:0;-1:-1:-1;15437:111:0;;;-1:-1:-1;;;;;15514:14:0;;;;;;:5;:14;;;;;;;-1:-1:-1;15437:111:0;-1:-1:-1;;;;;15585:14:0;;;;;;:5;:14;;;;;;:23;;15602:6;;15585:23;:::i;:::-;-1:-1:-1;;;;;15568:14:0;;;;;;:5;:14;;;;;:40;15663:10;;:19;;15676:6;;15663:19;:::i;:::-;15650:10;:32;-1:-1:-1;;;;;15740:18:0;;;;;;:9;:18;;;;;;:27;;15761:6;;15740:27;:::i;:::-;-1:-1:-1;;;;;15718:18:0;;;;;;:9;:18;;;;;:49;15823:11;;:20;;15837:6;;15823:20;:::i;:::-;15809:11;:34;-1:-1:-1;;;;;15876:20:0;;;;;;:11;:20;;;;;:30;;15900:6;;15876:20;:30;;15900:6;;15876:30;:::i;:::-;;;;-1:-1:-1;;15950:33:0;;1971:25:1;;;-1:-1:-1;;;;;15950:33:0;;;15957:10;;15950:33;;1959:2:1;1944:18;15950:33:0;;;;;;;-1:-1:-1;16009:4:0;;12614:3481;-1:-1:-1;;;;;12614:3481:0:o;12727:3339::-;-1:-1:-1;16083:4:0;;12614:3481;-1:-1:-1;12614:3481:0:o;14:258:1:-;86:1;96:113;110:6;107:1;104:13;96:113;;;186:11;;;180:18;167:11;;;160:39;132:2;125:10;96:113;;;227:6;224:1;221:13;218:48;;;262:1;253:6;248:3;244:16;237:27;218:48;;14:258;;;:::o;277:383::-;426:2;415:9;408:21;389:4;458:6;452:13;501:6;496:2;485:9;481:18;474:34;517:66;576:6;571:2;560:9;556:18;551:2;543:6;539:15;517:66;:::i;:::-;644:2;623:15;-1:-1:-1;;619:29:1;604:45;;;;651:2;600:54;;277:383;-1:-1:-1;;277:383:1:o;665:131::-;-1:-1:-1;;;;;740:31:1;;730:42;;720:70;;786:1;783;776:12;720:70;665:131;:::o;801:247::-;860:6;913:2;901:9;892:7;888:23;884:32;881:52;;;929:1;926;919:12;881:52;968:9;955:23;987:31;1012:5;987:31;:::i;1245:315::-;1313:6;1321;1374:2;1362:9;1353:7;1349:23;1345:32;1342:52;;;1390:1;1387;1380:12;1342:52;1429:9;1416:23;1448:31;1473:5;1448:31;:::i;:::-;1498:5;1550:2;1535:18;;;;1522:32;;-1:-1:-1;;;1245:315:1:o;2215:456::-;2292:6;2300;2308;2361:2;2349:9;2340:7;2336:23;2332:32;2329:52;;;2377:1;2374;2367:12;2329:52;2416:9;2403:23;2435:31;2460:5;2435:31;:::i;:::-;2485:5;-1:-1:-1;2542:2:1;2527:18;;2514:32;2555:33;2514:32;2555:33;:::i;:::-;2215:456;;2607:7;;-1:-1:-1;;;2661:2:1;2646:18;;;;2633:32;;2215:456::o;2676:180::-;2735:6;2788:2;2776:9;2767:7;2763:23;2759:32;2756:52;;;2804:1;2801;2794:12;2756:52;-1:-1:-1;2827:23:1;;2676:180;-1:-1:-1;2676:180:1:o;2861:388::-;2929:6;2937;2990:2;2978:9;2969:7;2965:23;2961:32;2958:52;;;3006:1;3003;2996:12;2958:52;3045:9;3032:23;3064:31;3089:5;3064:31;:::i;:::-;3114:5;-1:-1:-1;3171:2:1;3156:18;;3143:32;3184:33;3143:32;3184:33;:::i;:::-;3236:7;3226:17;;;2861:388;;;;;:::o;3667:380::-;3746:1;3742:12;;;;3789;;;3810:61;;3864:4;3856:6;3852:17;3842:27;;3810:61;3917:2;3909:6;3906:14;3886:18;3883:38;3880:161;;;3963:10;3958:3;3954:20;3951:1;3944:31;3998:4;3995:1;3988:15;4026:4;4023:1;4016:15;3880:161;;3667:380;;;:::o;4052:127::-;4113:10;4108:3;4104:20;4101:1;4094:31;4144:4;4141:1;4134:15;4168:4;4165:1;4158:15;4184:128;4224:3;4255:1;4251:6;4248:1;4245:13;4242:39;;;4261:18;;:::i;:::-;-1:-1:-1;4297:9:1;;4184:128::o;4660:125::-;4700:4;4728:1;4725;4722:8;4719:34;;;4733:18;;:::i;:::-;-1:-1:-1;4770:9:1;;4660:125::o;5132:217::-;5172:1;5198;5188:132;;5242:10;5237:3;5233:20;5230:1;5223:31;5277:4;5274:1;5267:15;5305:4;5302:1;5295:15;5188:132;-1:-1:-1;5334:9:1;;5132:217::o;5354:168::-;5394:7;5460:1;5456;5452:6;5448:14;5445:1;5442:21;5437:1;5430:9;5423:17;5419:45;5416:71;;;5467:18;;:::i;:::-;-1:-1:-1;5507:9:1;;5354:168::o;5527:135::-;5566:3;-1:-1:-1;;5587:17:1;;5584:43;;;5607:18;;:::i;:::-;-1:-1:-1;5654:1:1;5643:13;;5527:135::o;6351:127::-;6412:10;6407:3;6403:20;6400:1;6393:31;6443:4;6440:1;6433:15;6467:4;6464:1;6457:15;6863:274;6992:3;7030:6;7024:13;7046:53;7092:6;7087:3;7080:4;7072:6;7068:17;7046:53;:::i;:::-;7115:16;;;;;6863:274;-1:-1:-1;;6863:274:1:o;7142:277::-;7209:6;7262:2;7250:9;7241:7;7237:23;7233:32;7230:52;;;7278:1;7275;7268:12;7230:52;7310:9;7304:16;7363:5;7356:13;7349:21;7342:5;7339:32;7329:60;;7385:1;7382;7375:12

Swarm Source

ipfs://ef1a93dbf897013f07ae585ce25af8d5bf0ba7b0f857fcd122d236de327f84d0
Block Transaction Gas Used Reward
Age Block Fee Address Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading