Contract 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be

Contract Overview

Balance:
80,423.905862441981245139 HT

HT Value:
$1,136,389.79 (@ $14.13/HT)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x75a434706ef6efaaf04f6eb4a559d2086b32f854f06ed8c1ec885bd7fd159d4eBuyback Token82919192021-09-16 5:19:351 day 7 hrs ago0xdb55b0ff29949fb2b0b3b89a911da83f4d0b5906 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.00051106275
0xfb1ec8043d1bbfccf4e2a796e13426259db60c95739701b5f0e924d31c47c04fBuyback Token82919172021-09-16 5:19:291 day 7 hrs ago0xdb55b0ff29949fb2b0b3b89a911da83f4d0b5906 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.0005630265
0x18075e3209f62e6c0d0a0e54f23ef9462ae893633083386a9b4178ab1a455d24Buyback Token82712862021-09-15 12:07:562 days 1 hr ago0x29cc3075594d304e543e3016a89675104ec8d6d7 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.00051106275
0xeebf9aa8b35b47c2092f4281fe33fed94e09bafdd96fd669a8518328cecbf400Buyback Token82703452021-09-15 11:20:532 days 1 hr ago0xdb55b0ff29949fb2b0b3b89a911da83f4d0b5906 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.000524052
0xda57c4cbcb1d2e046d43ea08f2b09c0ea13986e0e88ca2155687da1e9f4952aeBuyback Token82649602021-09-15 6:51:382 days 6 hrs ago0x29cc3075594d304e543e3016a89675104ec8d6d7 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.00051106275
0xb742b48c9d4f7f46b4b9207e5a3f8f2f7ecad76ba09b6b3d435794f395a65c86Buyback Token82649552021-09-15 6:51:232 days 6 hrs ago0x29cc3075594d304e543e3016a89675104ec8d6d7 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.0005293035
0x0a774810fbe13a8b13afee1e0e562c1f588ecbe6f915fe29d88287ecc7984c4eBuyback Token82648802021-09-15 6:47:332 days 6 hrs ago0x29cc3075594d304e543e3016a89675104ec8d6d7 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.000524079
0x1216aaf8ac0bf4236799dd0e5e44e7bbb81ff8a2ab3d322976e89d91350f7e50Buyback Token82605032021-09-15 3:08:422 days 10 hrs ago0x98c15f29bb559432e19d01078ff7a2cd1c23caa9 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.000726552
0xa4f80782d08ada36bfc33a83ca4c3338963316bf353ddff4b20d91530d4593c9Buyback Token82604422021-09-15 3:05:392 days 10 hrs ago0xdb55b0ff29949fb2b0b3b89a911da83f4d0b5906 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.0001727595
0x0391affd23b89abb8e9664f5d45d8a30a78ef40b7a52e7f5f0e0b459cd2d3c4bBuyback Token82604402021-09-15 3:05:332 days 10 hrs ago0xdb55b0ff29949fb2b0b3b89a911da83f4d0b5906 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.000524052
0xb28cb5006630765136bce59011b6fac9da44537d7dd88bf17f30ed5d82a0d6faBuyback Token82603962021-09-15 3:03:212 days 10 hrs ago0xdb55b0ff29949fb2b0b3b89a911da83f4d0b5906 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.000524052
0x895293b4ca388b79f65e2b8744ff009321912b6c5fc47b9e8b2d7eab1115deabBuyback Token82603482021-09-15 3:00:572 days 10 hrs ago0xdb55b0ff29949fb2b0b3b89a911da83f4d0b5906 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.0001727595
0x887a4dd336449d1d9960f52921c3038125b15500f039e3f2bf25f3491291045cBuyback Token82603462021-09-15 3:00:512 days 10 hrs ago0xdb55b0ff29949fb2b0b3b89a911da83f4d0b5906 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.000524052
0xd848148919db88b82e4a07b2c8a8ef059e831d421b19d5a5266de54c083402eeBuyback Token82603412021-09-15 3:00:362 days 10 hrs ago0xdb55b0ff29949fb2b0b3b89a911da83f4d0b5906 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.000557802
0xbce222bf05f9a1c39f26c8a8be56360580a3ed6923bafd10c09d259445ed37dfBuyback Token82603382021-09-15 3:00:272 days 10 hrs ago0xdb55b0ff29949fb2b0b3b89a911da83f4d0b5906 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.000557802
0x1abf88a94882906bf775518e6cc564f95e5d061d95e3219c161acf28e1d0a7a9Buyback Token82602562021-09-15 2:56:212 days 10 hrs ago0xdb55b0ff29949fb2b0b3b89a911da83f4d0b5906 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.000557802
0x01ba0fd0de8a57e2999fd85bb0b46c959319d39e3417495799a4799543ac82e8Buyback Token82602532021-09-15 2:56:122 days 10 hrs ago0xdb55b0ff29949fb2b0b3b89a911da83f4d0b5906 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.000557802
0x51077c75368d4dd78a570d5e1858b8bb7899671c5ff93d6d75d95dc308683e76Buyback Token82602462021-09-15 2:55:512 days 10 hrs ago0xdb55b0ff29949fb2b0b3b89a911da83f4d0b5906 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.000557802
0xbece42a5840e8d4d59da50beb6fb8b95a3ba002d829406425dc0a0fe8ed1c02cBuyback Token82178832021-09-13 15:37:413 days 21 hrs ago0x29cc3075594d304e543e3016a89675104ec8d6d7 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.000726552
0xb7a5d976beaa7e34602cbc02d1885906be12284f8d5fbd30978393e53f473e79Buyback Token81459962021-09-11 3:43:136 days 9 hrs ago0x3c26f4bbc75fa6a24f5433e0e240e0c659c4c13f IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.000760302
0xbeb4d1eab2e65eb96c1f405e554fdf5d8ec24398ef2b4c33b1e529f162954f5dNode Withdraw Al...80478062021-09-07 17:53:439 days 19 hrs ago0xdc8d59603a5549558ef711ba32f77c402efc1218 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.000076014
0xe40b360eac758d3999a2e4046482d3edb19d9a2256839a2d54b37e6d422137b2Transfer80477942021-09-07 17:53:079 days 19 hrs ago0xdc8d59603a5549558ef711ba32f77c402efc1218 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0.001 HT0.00017785125
0xe7fe240ebc4dd1916a857b6a9bf18b8743de4ce7787029224e035b0a3fdf5bcdBuyback Token80477692021-09-07 17:51:529 days 19 hrs ago0xdc8d59603a5549558ef711ba32f77c402efc1218 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.00051106275
0xa7a97f8eefbf5bbe1361721b0110233edd02c22b25eb0316379a18be85c35662Buyback Token80195542021-09-06 18:21:0610 days 18 hrs ago0xdc8d59603a5549558ef711ba32f77c402efc1218 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.00051106275
0x07e0131b70fceabd57aa48deb414854f2a7429b48658377356d4d75d09ef5b21Buyback Token80028552021-09-06 4:26:0911 days 8 hrs ago0xdb55b0ff29949fb2b0b3b89a911da83f4d0b5906 IN  0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0 HT0.000726552
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x75a434706ef6efaaf04f6eb4a559d2086b32f854f06ed8c1ec885bd7fd159d4e82919192021-09-16 5:19:351 day 7 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0xdb55b0ff29949fb2b0b3b89a911da83f4d0b590611.120327338345767984 HT
0xfb1ec8043d1bbfccf4e2a796e13426259db60c95739701b5f0e924d31c47c04f82919172021-09-16 5:19:291 day 7 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0xdb55b0ff29949fb2b0b3b89a911da83f4d0b590612.733375303743160838 HT
0xab04c756c84cef11bfd6c696bb75ac72c6e588632c3850bf25a35e4b65d9235982893362021-09-16 3:10:261 day 9 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be 0xca163fa96d44bb0b75c996711160110eecf6058a1,655.871366025002205452 HT
0x18075e3209f62e6c0d0a0e54f23ef9462ae893633083386a9b4178ab1a455d2482712862021-09-15 12:07:562 days 1 hr ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0x29cc3075594d304e543e3016a89675104ec8d6d711.349437976499987359 HT
0xeebf9aa8b35b47c2092f4281fe33fed94e09bafdd96fd669a8518328cecbf40082703452021-09-15 11:20:532 days 1 hr ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0xdb55b0ff29949fb2b0b3b89a911da83f4d0b590647.934556455249057729 HT
0xda57c4cbcb1d2e046d43ea08f2b09c0ea13986e0e88ca2155687da1e9f4952ae82649602021-09-15 6:51:382 days 6 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0x29cc3075594d304e543e3016a89675104ec8d6d7908.205406035839941586 HT
0xb742b48c9d4f7f46b4b9207e5a3f8f2f7ecad76ba09b6b3d435794f395a65c8682649552021-09-15 6:51:232 days 6 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0x29cc3075594d304e543e3016a89675104ec8d6d7127.288908588688111313 HT
0x0a774810fbe13a8b13afee1e0e562c1f588ecbe6f915fe29d88287ecc7984c4e82648802021-09-15 6:47:332 days 6 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0x29cc3075594d304e543e3016a89675104ec8d6d7240.067288993442665257 HT
0x1216aaf8ac0bf4236799dd0e5e44e7bbb81ff8a2ab3d322976e89d91350f7e5082605032021-09-15 3:08:422 days 10 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0x98c15f29bb559432e19d01078ff7a2cd1c23caa948.027967221181112777 HT
0x0391affd23b89abb8e9664f5d45d8a30a78ef40b7a52e7f5f0e0b459cd2d3c4b82604402021-09-15 3:05:332 days 10 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0xdb55b0ff29949fb2b0b3b89a911da83f4d0b590648.042477061147511461 HT
0xb28cb5006630765136bce59011b6fac9da44537d7dd88bf17f30ed5d82a0d6fa82603962021-09-15 3:03:212 days 10 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0xdb55b0ff29949fb2b0b3b89a911da83f4d0b590624.024865547174833315 HT
0x887a4dd336449d1d9960f52921c3038125b15500f039e3f2bf25f3491291045c82603462021-09-15 3:00:512 days 10 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0xdb55b0ff29949fb2b0b3b89a911da83f4d0b590624.028492615926001369 HT
0xd848148919db88b82e4a07b2c8a8ef059e831d421b19d5a5266de54c083402ee82603412021-09-15 3:00:362 days 10 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0xdb55b0ff29949fb2b0b3b89a911da83f4d0b590624.032119736820887239 HT
0xbce222bf05f9a1c39f26c8a8be56360580a3ed6923bafd10c09d259445ed37df82603382021-09-15 3:00:272 days 10 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0xdb55b0ff29949fb2b0b3b89a911da83f4d0b590624.035746909853119924 HT
0x1abf88a94882906bf775518e6cc564f95e5d061d95e3219c161acf28e1d0a7a982602562021-09-15 2:56:212 days 10 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0xdb55b0ff29949fb2b0b3b89a911da83f4d0b590612.018780192799633646 HT
0x01ba0fd0de8a57e2999fd85bb0b46c959319d39e3417495799a4799543ac82e882602532021-09-15 2:56:122 days 10 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0xdb55b0ff29949fb2b0b3b89a911da83f4d0b590612.019686937187745143 HT
0x51077c75368d4dd78a570d5e1858b8bb7899671c5ff93d6d75d95dc308683e7682602462021-09-15 2:55:512 days 10 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0xdb55b0ff29949fb2b0b3b89a911da83f4d0b590624.043001151623982343 HT
0xbece42a5840e8d4d59da50beb6fb8b95a3ba002d829406425dc0a0fe8ed1c02c82178832021-09-13 15:37:413 days 21 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0x29cc3075594d304e543e3016a89675104ec8d6d72.40433638353148951 HT
0xb7a5d976beaa7e34602cbc02d1885906be12284f8d5fbd30978393e53f473e7981459962021-09-11 3:43:136 days 9 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0x3c26f4bbc75fa6a24f5433e0e240e0c659c4c13f12.022588682900049231 HT
0xe7fe240ebc4dd1916a857b6a9bf18b8743de4ce7787029224e035b0a3fdf5bcd80477692021-09-07 17:51:529 days 19 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0xdc8d59603a5549558ef711ba32f77c402efc12181.138981522861535088 HT
0xa7a97f8eefbf5bbe1361721b0110233edd02c22b25eb0316379a18be85c3566280195542021-09-06 18:21:0610 days 18 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0xdc8d59603a5549558ef711ba32f77c402efc121822.779613232032123024 HT
0x07e0131b70fceabd57aa48deb414854f2a7429b48658377356d4d75d09ef5b2180028552021-09-06 4:26:0911 days 8 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0xdb55b0ff29949fb2b0b3b89a911da83f4d0b590624.048784305500817347 HT
0xed1660e40a0e12017b49be94d77126fea4ef002aa317a7cb93fd120b2293b0b179893732021-09-05 17:11:5811 days 19 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0xdc8d59603a5549558ef711ba32f77c402efc121835.924261834291633434 HT
0x425d71e0df09e3f05b163882bd1b14ff8e9bb7ae664f40d9ea64ce37a6ace04979891472021-09-05 17:00:4011 days 20 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0xdc8d59603a5549558ef711ba32f77c402efc121896.268197394835092601 HT
0x134deb4020b53dc695a4a0e3d710ded827013929b80fdc721ddd1939aa6ec22279564312021-09-04 13:44:5112 days 23 hrs ago 0x622b8448ce5ccedcdb0071ba71542b26b45ad4be0xdc8d59603a5549558ef711ba32f77c402efc121824.070675504976907122 HT
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BuybackNext

Compiler Version
v0.5.10+commit.5a6ea5b1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at hecoinfo.com on 2021-04-08
*/

// SPDX-License-Identifier: MIT

pragma solidity =0.5.10;

// SafeMath library
library SafeMath {
    function add(uint256 _a, uint256 _b) internal pure returns (uint256) {
        uint256 c = _a + _b;
        require(c >= _a, "unsafe add math");
        return c;
    }

    function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
        require(_a >= _b, "unsafe sub math");
        return _a - _b;
    }

    function mul(uint256 _a, uint256 _b) internal pure returns (uint256) {
        if (_a == 0) {
            return 0;
        }
        uint256 c = _a * _b;
        require(c / _a == _b, "unsafe mul math");
        return c;
    }

    function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
        require(_b != 0, "unsafe div math");
        uint256 c = _a / _b;
        return c;
    }
}

contract Ownable {
    address public owner;

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

    modifier onlyOwner() {
        require(msg.sender == owner, "sender must be owner");
        _;
    }

    function setOwner(address _owner) public onlyOwner {
        owner = _owner;
    }
}

// Invest Info Interface
interface InvestInfo {
    function tokenAddress() external view returns (address _tokenAddress);
    function tokenPriceBase() external view returns (uint256 _tokenPriceBase);
    function totalTokenDelivered() external view returns (uint256 _tokenAmount);
    function totalEthReceived() external view returns (uint256 _ethAmount);
    function tokenDelivered(address _addr) external view returns (uint256 _tokenAmount);
    function ethReceived(address _addr) external view returns (uint256 _ethAmount);
    function divieAddrs() external view returns (address payable[] memory _addr);
    function stepSize() external view returns (uint256 _size);
    function initPrice() external view returns (uint256 _price);
    function currentPrice() external view returns (uint256 _price);
    function priceAtLevel(uint256 _level) external view returns (uint256 _price);
    function currentLevel() external view returns (uint256 _level);
    function totalInvestors() external view returns (uint256 _total);
    function investorAddrById(uint256 _id) external view returns (address _addr);
    function investorInfo(address _addr) external view returns (uint256 _id, address[] memory _refs);

    function investCount(address _addr) external view returns (uint256 _count);
    function investHistory(address _addr, uint256 _start, uint256 _end) external view returns (uint256[] memory _eths,
                           uint256[] memory _tokens, uint256[] memory _timestamp);

    // Aggregated data getter methods
    function investorStatus(address _addr) external view returns (uint256 _ethInvested, uint256 _tokenReceived,
                            uint256 _tokenLocked, uint256 _tokenUnlocked, uint256 _tokenWithdrawable,
                            uint256 _tokenWithdrawn, uint256 _tokenAcceled,
                            uint256 _lastInvestTime, uint256 _lastWithdrawTime, uint256 _lastAccelTime);
    function overviewStatus() external view returns(address _tokenAddress, uint256 _tokenPriceBase,
                            address _buybackAddress, uint256 _totalTokenDelivered, uint256 _totalEthReceived,
                            uint256 _ethBalance, uint256 _tokenBalance, uint256 _state, uint256 _stepSize,
                            uint256 _currentLevel, uint256 _currentPrice, uint256 _totalWithdrawn,
                            uint256 _totalAcceled);
    function overviewExtra() external view returns (uint256 _investorCount, uint256 _lastInvestTime,
                                                    uint256 _lastWithdrawTime, address[] memory _agentAddrs,
                                                    uint256[] memory _agentAccelPPMs,
                                                    address payable[] memory _divieAddrs,
                                                    uint256[] memory _diviePPMs, uint256 _initTime, 
                                                    uint256 _currentTime, uint256 _currentLimit);
}

interface Token {
    function totalSupply() external view returns (uint256 _totalSupply);
    function balanceOf(address _owner) external view returns (uint256 _balance);
    function transfer(address _to, uint256 _value) external returns (bool _success);
    function transferFrom(address _from, address _to, uint256 _value) external returns (bool _success);
    function approve(address _spender, uint256 _value) external returns (bool _success);
    function allowance(address _owner, address _spender) external view returns (uint256 _remaining);

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

interface BuybackInterface {
    function depositEths() external payable returns (bool _success);
}

contract BuybackNext is BuybackInterface, Ownable {
    using SafeMath for uint256;

    uint256 constant private PPM = 1000000;
    uint8 constant private loopLimit = 128;

    string public constant contractName = "BuybackNext";
    string public constant contractVersion = "v1.0n";

    InvestInfo private investInfo;
    Token private token;

    address private investContractAddr;
    address private tokenAddress;
    address private projectAddr;

    uint256 private creationTime;

    uint256 private totalTokenReceived;
    uint256 private totalDiviePool;
    uint256 private ethTotal;
    uint256 private nodeEthBalance;
    uint256 private investContractEth;
    uint256 private burnPPM;
    uint256 private tokenPriceBase;
    uint256 private lastPrice;
    uint256 private lastPriceTime;
    uint256 private buybackTotalEth;
    uint256 private nodeTotalDivie;
    uint256 private totalNodeEth;
    uint256 private projectPPM;
    uint256 private topPPM;
    uint256 private topRate;
    uint256 private bottomPPM;
    uint256 private bottomRate;
    uint256 private totalPPM;
    uint256 private totalBurned;
    uint256 private totalTopped;
    uint8 private state;

    uint256 private faucetTime;
    uint256 private faucetPPM;
    uint256[] private nodeReqs;
    uint256[] private nodeHCs;

    mapping (address => bool) private overNodeFlag;
    mapping (uint256 => address) private overNodeAddrs;
    mapping (address => uint256) private overNodeID;
    mapping (uint256 => uint256) private overNodeAddrEth;
    uint256 private overNodeCount;
    uint256 private lastOverNodeEth;

    uint256[] private releaseTimes;
    uint256[] private releasePPMs;
    uint256 private releaseWithdrawn;

    struct BuybackHistory {
        uint256 count;
        uint256[] totalTokenNum;
        uint256[] payForEthNum;
        uint256[] buybackTime;
    }

    mapping (address => uint256) private nodeEth;
    mapping (address => uint256) private buybackTokenRecord;
    mapping (address => uint256) private butBackEthRecord;
    mapping (address => BuybackHistory) private buybackHistory;

    function isHuman(address _addr) private view returns (bool) {
        if (_addr == address(this)) {
            return false;
        }
        uint256 _codeLength;
        assembly {
            _codeLength := extcodesize(_addr)
        }
        return (_codeLength == 0);
    }

    modifier onlyHuman() {
        require(isHuman(msg.sender), "Sender cannot be contract!!");
        _;
    }

    constructor(address _tokenAddress, uint256 _burnPPM, uint256 _projectPPM,
                uint256 _topPPM, uint256 _topRate, uint256 _totalPPM) public {
        require(_burnPPM <= PPM && _projectPPM <= PPM && _topPPM <= PPM && _totalPPM <= PPM,
                "invalid parameters!!");

        token = Token(_tokenAddress);

        tokenAddress = _tokenAddress;
        burnPPM = _burnPPM;
        projectPPM = _projectPPM;
        topPPM = _topPPM;
        topRate = _topRate;
        totalPPM = _totalPPM;

        initDefaultParams();
    }

    function initDefaultParams() private {
        ethTotal = 0;
        totalNodeEth = 0;
        investContractEth = 0;
        totalTokenReceived = 0;
        lastPrice = 0;
        lastPriceTime = 0;
        buybackTotalEth = 0;
        nodeTotalDivie = 0;
        totalDiviePool = 0;
        nodeEthBalance = 0;
        totalBurned = 0;
        totalTopped = 0;

        state = 0;

        bottomPPM = PPM.sub(topPPM);
        bottomRate = totalPPM.sub(topPPM.mul(topRate).div(PPM)).mul(PPM).div(bottomPPM);
    }

    function setupBuyback(uint256 _faucetTime, uint256 _faucetPPM,
                          uint256[] calldata _nodeReqs, uint256[] calldata _nodeHCs) external onlyOwner {
        require(state == 0, "contract not in setup phase!!");
        require(_nodeReqs.length == _nodeHCs.length, "parameters length mismatch!!");

        faucetTime = _faucetTime;
        faucetPPM = _faucetPPM;
        nodeReqs = _nodeReqs;
        nodeHCs = _nodeHCs;
        state = 1;
    }

    function initBuyback(address _project, address _investContract,
                         uint256[] calldata _releaseTimes, uint256[] calldata _releasePPMs) external onlyOwner {
        require(state == 1, "contract not in initialization phase!!");
        require(_releaseTimes.length == _releasePPMs.length, "parameters length mismatch!!");

        projectAddr = _project;
        investInfo = InvestInfo(_investContract);
        investContractAddr = _investContract;
        tokenPriceBase = investInfo.tokenPriceBase();
        releaseTimes = _releaseTimes;
        releasePPMs = _releasePPMs;
        creationTime = block.timestamp;
        state = 2;
    }

    function buybackToken(uint256 _tokens) external onlyHuman returns(bool _success) {
        require(state == 2, "contract not initialized!!");
        require(_tokens > 0, "cannot buyback 0 token!!");
        require(_tokens <= getCanRedeemToken(msg.sender), "Token amount exceeds redeem limit!!");
        uint256 eths = caculateBuybackEth(_tokens);
        require(dealWithBuybackToken(_tokens), "process token failed!!");
        require(maintainParams(_tokens, eths), "process parameters failed!!");
        require(address(this).balance >= eths, "not enough eths!!");
        msg.sender.transfer(eths);
        return true;
    }

    function dealWithBuybackToken(uint256 _tokens) private returns(bool _success) {
        if(burnPPM == 0) {
            if(projectPPM == 0) {
                totalDiviePool = totalDiviePool.add(_tokens);
                require(token.transferFrom(msg.sender, address(this), _tokens), "token transfer failed!!");
            } else if(PPM > projectPPM) {
                uint256 projectAmount = _tokens.mul(projectPPM).div(PPM);
                uint256 buybackAmount = _tokens.sub(projectAmount);
                totalDiviePool = totalDiviePool.add(buybackAmount);
                require(token.transferFrom(msg.sender, projectAddr, projectAmount), "token transfer failed!!");
                require(token.transferFrom(msg.sender, address(this), buybackAmount), "token transfer failed!!");
            } else {
                require(token.transferFrom(msg.sender, projectAddr, _tokens), "token transfer failed!!");
            }
        } else if(PPM > burnPPM) {
            if(projectPPM == 0) {
                uint256 burnAmount = _tokens.mul(burnPPM).div(PPM);
                uint256 buybackAmount = _tokens.sub(burnAmount);
                totalDiviePool = totalDiviePool.add(buybackAmount);
                totalBurned = totalBurned.add(burnAmount);
                require(token.transferFrom(msg.sender, address(0x666), burnAmount), "token transfer failed!!");
                require(token.transferFrom(msg.sender, address(this), buybackAmount), "token transfer failed!!");
            } else if(PPM > projectPPM) {
                uint256 burnAmount = _tokens.mul(burnPPM).div(PPM);
                uint256 buybackAmount = _tokens.sub(burnAmount);
                uint256 projectAmount = _tokens.mul(projectPPM).div(PPM);
                buybackAmount = buybackAmount.sub(projectAmount);
                totalDiviePool = totalDiviePool.add(buybackAmount);
                totalBurned = totalBurned.add(burnAmount);
                require(token.transferFrom(msg.sender, address(0x666), burnAmount), "token transfer failed!!");
                require(token.transferFrom(msg.sender, projectAddr, projectAmount), "token transfer failed!!");
                require(token.transferFrom(msg.sender, address(this), buybackAmount), "token transfer failed!!");

            } else {
                uint256 burnAmount = _tokens.mul(burnPPM).div(PPM);
                uint256 projectAmount = _tokens.sub(burnAmount);
                totalBurned = totalBurned.add(burnAmount);
                require(token.transferFrom(msg.sender, address(0x666), burnAmount), "token transfer failed!!");
                require(token.transferFrom(msg.sender, projectAddr, projectAmount), "token transfer failed!!");
            }
        } else {
            totalBurned = totalBurned.add(_tokens);
            require(token.transferFrom(msg.sender, address(0x666), _tokens), "token transfer failed!!");
        }
        return true;
    }

    function getFaucetCycle() public view returns (uint256 _cycle) {
        _cycle = block.timestamp.sub(creationTime).div(faucetTime);
    }

    function getFaucetRate() public view returns (uint256 _rate) {
        _rate = getFaucetCycle().mul(faucetPPM).add(PPM);
    }

    function caculateBuybackEth(uint256 _tokens) private returns (uint256 _eths) {
        uint256 tokenCap = investInfo.totalTokenDelivered().sub(totalBurned);
        uint256 topCap = tokenCap.mul(topPPM).div(PPM);
        uint256 eths = 0;
        uint256 tm = (msg.sender == projectAddr || overNodeFlag[msg.sender]) ? tokenCap :
                     investInfo.tokenDelivered(msg.sender);
        uint256 tmTop = tm.mul(topPPM).div(PPM);
        uint256 tl = buybackTokenRecord[msg.sender];
        uint256 tll = tl.add(_tokens);

        if(totalTopped.add(_tokens) <= topCap) {
            if(tll <= tmTop) {
                eths = address(this).balance.mul(topRate).mul(_tokens).div(PPM).div(tokenCap);
                totalTopped = totalTopped.add(_tokens);
            } else if(tl < tmTop && tll > tmTop) {
                uint256 topPart = tmTop.sub(tl);
                uint256 bottomPart = _tokens.sub(topPart);
                totalTopped = totalTopped.add(topPart);
                eths = address(this).balance.mul(topRate).mul(topPart).div(PPM).div(tokenCap);
                eths = eths.add(address(this).balance.mul(bottomRate).mul(bottomPart).div(PPM).div(tokenCap));
            } else {
                eths = eths.add(address(this).balance.mul(bottomRate).mul(_tokens).div(PPM).div(tokenCap));
            }
        } else if((totalTopped < topCap) && (totalTopped.add(_tokens) > topCap)) {
            uint256 totalTopPart = topCap.sub(totalTopped);
            if(tll <= tmTop) {
                uint256 topPart = _tokens.sub(totalTopPart);
                uint256 bottomPart = _tokens.sub(topPart);
                totalTopped = totalTopped.add(topPart);
                eths = address(this).balance.mul(topRate).mul(topPart).div(PPM).div(tokenCap);
                eths = eths.add(address(this).balance.mul(bottomRate).mul(bottomPart).div(PPM).div(tokenCap));
            } else if(tl < tmTop && tll > tmTop) {
                uint256 topPart = tmTop.sub(tl) > totalTopPart ? totalTopPart : tmTop.sub(tl);
                uint256 bottomPart = _tokens.sub(topPart);
                totalTopped = totalTopped.add(topPart);
                eths = address(this).balance.mul(topRate).mul(topPart).div(PPM).div(tokenCap);
                eths = eths.add(address(this).balance.mul(bottomRate).mul(bottomPart).div(PPM).div(tokenCap));
            } else {
                eths = eths.add(address(this).balance.mul(bottomRate).mul(_tokens).div(PPM).div(tokenCap));
            }
        } else {
            eths = eths.add(address(this).balance.mul(bottomRate).mul(_tokens).div(PPM).div(tokenCap));
        }

        eths = eths.mul(getFaucetRate()).div(PPM);
        if (eths > address(this).balance) {
            eths = address(this).balance;
        }
        return eths;
    }

    function maintainParams(uint256 _tokens, uint256 _eths) private returns(bool _success) {
        lastPrice = _eths.mul(tokenPriceBase).div(_tokens);
        lastPriceTime = block.timestamp;

        buybackTotalEth = _eths.add(buybackTotalEth);
        butBackEthRecord[msg.sender] = butBackEthRecord[msg.sender].add(_eths);

        buybackHistory[msg.sender].payForEthNum.length++;
        buybackHistory[msg.sender].totalTokenNum.length++;
        buybackHistory[msg.sender].buybackTime.length++;
        buybackHistory[msg.sender].payForEthNum[buybackHistory[msg.sender].payForEthNum.length - 1] = _eths;
        buybackHistory[msg.sender].totalTokenNum[buybackHistory[msg.sender].totalTokenNum.length - 1] = _tokens;
        buybackHistory[msg.sender].buybackTime[buybackHistory[msg.sender].buybackTime.length - 1] = block.timestamp;
        buybackHistory[msg.sender].count++;

        totalTokenReceived = totalTokenReceived.add(_tokens);
        buybackTokenRecord[msg.sender] = buybackTokenRecord[msg.sender].add(_tokens);
        return true;
    }

    function nodeWithdrawToken(uint256 _withdrawTokenValue) external returns(bool _success) {
        require(state == 2, "contract not initialized!!");
        require(nodeEth[msg.sender] > 0 && nodeEthBalance > 0, "invalid node!!");
        uint256 tokenBalance = token.balanceOf(address(this));
        uint256 availableBalance = tokenBalance.mul(nodeEth[msg.sender]).div(nodeEthBalance);
        require(_withdrawTokenValue <= availableBalance, "not enough tokens!!");
        require(token.transfer(msg.sender, _withdrawTokenValue), "token transfer failed!!");
        uint256 costEth = _withdrawTokenValue.mul(nodeEth[msg.sender]).div(availableBalance);
        nodeEth[msg.sender] = nodeEth[msg.sender].sub(costEth);
        nodeEthBalance = nodeEthBalance.sub(costEth);
        nodeTotalDivie = nodeTotalDivie.add(_withdrawTokenValue);
        return true;
    }

    function nodeWithdrawAllToken() external returns(bool _success) {
        require(state == 2, "contract not initialized!!");
        require(nodeEth[msg.sender] > 0 && nodeEthBalance > 0, "invalid node!!");
        uint256 tokenBalance = token.balanceOf(address(this));
        uint256 availableBalance = tokenBalance.mul(nodeEth[msg.sender]).div(nodeEthBalance);
        require(token.transfer(msg.sender, availableBalance), "token transfer failed!!");
        nodeEthBalance = nodeEthBalance.sub(nodeEth[msg.sender]);
        nodeEth[msg.sender] = 0;
        nodeTotalDivie = nodeTotalDivie.add(tokenBalance);
        return true;
    }

    function watchNodeWithdrawToken() public view returns(uint256 _nodeWithdrawToken) {
        if(nodeEthBalance <= 0) return 0;
        return token.balanceOf(address(this)).mul(nodeEth[msg.sender]).div(nodeEthBalance);
    }

    function watchNodeWithdrawTokenByAddr(address _userAddr) public view returns(uint256 _nodeWithdrawToken) {
        if(nodeEthBalance <= 0) return 0;
        return token.balanceOf(address(this)).mul(nodeEth[_userAddr]).div(nodeEthBalance);
    }

    function getInvestContractAddr() public view returns(address _investContractAddr) {
        return investContractAddr;
    }

    function getTokenContractAddr() public view returns(address _tokenContractAddr) {
        return tokenAddress;
    }

    function getEthBalance() public view returns(uint256 _ethBalance) {
        return address(this).balance;
    }

    function getTokenBalance() public view returns(uint256 _tokenBalance) {
        return token.balanceOf(address(this));
    }

    function getBuybackAllTokenNum() public view returns(uint256 _buybackAllTokenNum) {
        return totalTokenReceived;
    }

    function getBuybackTokenByAddr(address _userAddr) public view returns(uint256 _buybackToken) {
        return buybackTokenRecord[_userAddr];
    }

    function getCanRedeemToken(address _userAddr) public view returns(uint256 _canRedeemToken) {
        if (msg.sender == projectAddr || overNodeFlag[msg.sender]) {
            _canRedeemToken = investInfo.totalTokenDelivered().sub(totalBurned);
        } else {
            _canRedeemToken = investInfo.tokenDelivered(_userAddr).sub(buybackTokenRecord[_userAddr]);
        }
    }

    function getLastPrice() public view returns(uint256 _lastPrice, uint256 _lastPriceTime) {
        if(lastPrice <= 0) {
            return (investInfo.currentPrice(), lastPriceTime);
        } else {
            return (lastPrice, lastPriceTime);
        }
    }

    function getBuybackByUserAddr(address _userAddr) public view returns (uint256 _canRedeemToken,
                                  uint256 _buybackToken, uint256 _buybackEth) {
        return (
            getCanRedeemToken(_userAddr),
            buybackTokenRecord[_userAddr],
            butBackEthRecord[_userAddr]
        );
    }

    function getBuybackInfoCollections() public view returns (uint256 _buybackAllTokenNum,
                                       uint256 _ethBalance, uint256 _lastPrice, uint256 _lastPriceTime,
                                       uint256 _totalEth, uint256 _buybackTotalEth, uint256 _unredeem) {
        uint256 lastPriceTemp = lastPrice;
        if(lastPriceTemp <= 0) {
            lastPriceTemp = investInfo.currentPrice();
        }
        return (
            totalTokenReceived,
            address(this).balance,
            lastPriceTemp,
            lastPriceTime,
            ethTotal,
            buybackTotalEth,
            ethTotal - buybackTotalEth
        );
    }

    function getBuybackInfoExtra() public view returns (uint256 _burned, uint256 _lastNodeEth) {
        _burned = totalBurned;
        _lastNodeEth = lastOverNodeEth;
    }

    function getSuperNodeByUserAddr(address _userAddr) public view returns (uint256 _nodeWithdrawToken,
                                                                            uint256 _nodeEthInvest) {
        if(nodeEthBalance <= 0) return (0, nodeEth[_userAddr]);
        else {
            return (token.balanceOf(address(this)).mul(nodeEth[_userAddr]).div(nodeEthBalance), nodeEth[_userAddr]);
        }
    }

    function estimateSuperNodeUserOutput(address _userAddr, uint256 _eths) public view returns (
                                                                                       uint256 _nodeWithdrawToken,
                                                                                       uint256 _nodeEthInvest) {
        uint256 tempEthBalance = nodeEthBalance.add(_eths);
        uint256 tempNodeEth = nodeEth[_userAddr].add(_eths);
        if (tempEthBalance <= 0) return (0, tempNodeEth);
        else {
            return (token.balanceOf(address(this)).mul(tempNodeEth).div(tempEthBalance), tempNodeEth);
        }
    }

    function getSuperNode() public view returns (uint256 _totalDiviePool, uint256 _totalNodeEth,
                                                 uint256 _nodeEthBalance, uint256 _tokenBalance) {
        return (totalDiviePool, totalNodeEth, nodeEthBalance, token.balanceOf(address(this)));
    }

    function getBuybackEth(address _userAddr) public view returns(uint256 _buybackEth) {
        return butBackEthRecord[_userAddr];
    }

    function getBuybackHistory(address _userAddr, uint256 _start, uint256 _end) public view
             returns (uint256[] memory _ethNum, uint256[] memory _tokenNum, uint256[] memory _timestamp) {
        _ethNum = new uint256[](_end.sub(_start).add(1));
        _tokenNum = new uint256[](_end.sub(_start).add(1));
        _timestamp = new uint256[](_end.sub(_start).add(1));
        for (uint256 i = _start; i <= _end; i++) {
            _ethNum[i - _start] = buybackHistory[_userAddr].payForEthNum[i];
            _tokenNum[i - _start] = buybackHistory[_userAddr].totalTokenNum[i];
            _timestamp[i - _start] = buybackHistory[_userAddr].buybackTime[i];
        }
    }

    function getBuybackHistoryCount(address _userAddr) public view returns (uint256 _count) {
        return buybackHistory[_userAddr].count;
    }

    function getTotalEth() public view returns(uint256 _totalEth) {
        return ethTotal;
    }

    function getBuybackTotalEth() public view returns(uint256 _buybackTotalEth) {
        return buybackTotalEth;
    }

    function getNodeTotalDivie() public view returns(uint256 _nodeTotalDivie) {
        return nodeTotalDivie;
    }

    function getBuybackTokenDivieNum() public view returns(uint256 _totalDiviePool) {
        return totalDiviePool;
    }

    function getTotalNodeEth() public view returns(uint256 _totalNodeEth) {
        return totalNodeEth;
    }

    function getNodeEthInvest(address _userAddr) public view returns(uint256 _nodeEthInvest) {
        return nodeEth[_userAddr];
    }

    function getProjectAddr() public view returns(address _projectAddr) {
        return projectAddr;
    }

    function getDestroyTokenTotalNum() public view returns(uint256 _totalBurned) {
        return totalBurned;
    }

    function getLastOverNodeEth() public view returns (uint256 _eths) {
        _eths = lastOverNodeEth;
    }

    function getTotalTopped() public view returns (uint256 _tokens) {
        _tokens = totalTopped;
    }

    function getReleasedAmount() public view returns (uint256 _eths) {
        uint256 releasedPPM = 0;
        for (uint256 i = 0; i < releaseTimes.length && i < loopLimit; i++) {
            if (block.timestamp > releaseTimes[releaseTimes.length.sub(1).sub(i)]) {
                releasedPPM = releasePPMs[releaseTimes.length.sub(1).sub(i)];
                break;
            }
        }

        if (releasedPPM > PPM) {
            releasedPPM = PPM;
        }

        uint256 released = address(this).balance.add(releaseWithdrawn).mul(releasedPPM).div(PPM);
        _eths = (released > releaseWithdrawn) ? released.sub(releaseWithdrawn) : 0;
    }

    function withdrawReleased(uint256 _eths) public returns (bool _success) {
        require(state == 2, "contract not initialized!!");
        require(msg.sender == projectAddr, "only project address may withdraw released eths!!");
        require(address(this).balance >= _eths, "not enough eths!!");
        require(getReleasedAmount() >= _eths, "not enough eths released yet!!");
        msg.sender.transfer(_eths);
        releaseWithdrawn = releaseWithdrawn.add(_eths);
        return true;
    }

    function depositEths() public payable returns(bool _success) {
        require(state == 2, "contract not initialized!!");
        require(msg.sender == investContractAddr, "only invest contract may do deposit!!");
        investContractEth = investContractEth.add(msg.value);
        ethTotal = ethTotal.add(msg.value);
        return true;
    }

    function () external payable {
        if(msg.sender != investContractAddr) {
            nodeEth[msg.sender] = nodeEth[msg.sender].add(msg.value);
            nodeEthBalance = nodeEthBalance.add(msg.value);
            totalNodeEth = totalNodeEth.add(msg.value);

            if (msg.value > lastOverNodeEth && !overNodeFlag[msg.sender]) {
                require(nodeReqs.length < loopLimit, "loop limited exceeded!!");
                uint8 index = 0;
                uint256 nodeHC = 0;
                if (nodeReqs.length > 0) {
                    while (msg.value >= nodeReqs[index] && index < nodeReqs.length && overNodeCount >= nodeHC) {
                        nodeHC = nodeHC.add(nodeHCs[index]);
                        index++;
                    }
                }
                if (index > 0 && overNodeCount < nodeHC) {
                    overNodeCount++;
                    overNodeAddrs[overNodeCount] = msg.sender;
                    overNodeID[msg.sender] = overNodeCount;
                    overNodeAddrEth[overNodeCount] = msg.value;
                    overNodeFlag[msg.sender] = true;
                    lastOverNodeEth = msg.value;
                }
            }
        } else {
            investContractEth = investContractEth.add(msg.value);
        }
        ethTotal = ethTotal.add(msg.value);
    }

}

Contract ABI

[{"constant":false,"inputs":[{"name":"_eths","type":"uint256"}],"name":"withdrawReleased","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTotalEth","outputs":[{"name":"_totalEth","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_userAddr","type":"address"}],"name":"watchNodeWithdrawTokenByAddr","outputs":[{"name":"_nodeWithdrawToken","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_project","type":"address"},{"name":"_investContract","type":"address"},{"name":"_releaseTimes","type":"uint256[]"},{"name":"_releasePPMs","type":"uint256[]"}],"name":"initBuyback","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBuybackInfoCollections","outputs":[{"name":"_buybackAllTokenNum","type":"uint256"},{"name":"_ethBalance","type":"uint256"},{"name":"_lastPrice","type":"uint256"},{"name":"_lastPriceTime","type":"uint256"},{"name":"_totalEth","type":"uint256"},{"name":"_buybackTotalEth","type":"uint256"},{"name":"_unredeem","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"watchNodeWithdrawToken","outputs":[{"name":"_nodeWithdrawToken","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddr","type":"address"}],"name":"getBuybackTokenByAddr","outputs":[{"name":"_buybackToken","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBuybackTokenDivieNum","outputs":[{"name":"_totalDiviePool","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddr","type":"address"}],"name":"getNodeEthInvest","outputs":[{"name":"_nodeEthInvest","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTotalNodeEth","outputs":[{"name":"_totalNodeEth","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddr","type":"address"},{"name":"_eths","type":"uint256"}],"name":"estimateSuperNodeUserOutput","outputs":[{"name":"_nodeWithdrawToken","type":"uint256"},{"name":"_nodeEthInvest","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getSuperNode","outputs":[{"name":"_totalDiviePool","type":"uint256"},{"name":"_totalNodeEth","type":"uint256"},{"name":"_nodeEthBalance","type":"uint256"},{"name":"_tokenBalance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getProjectAddr","outputs":[{"name":"_projectAddr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getFaucetCycle","outputs":[{"name":"_cycle","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddr","type":"address"}],"name":"getBuybackByUserAddr","outputs":[{"name":"_canRedeemToken","type":"uint256"},{"name":"_buybackToken","type":"uint256"},{"name":"_buybackEth","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_faucetTime","type":"uint256"},{"name":"_faucetPPM","type":"uint256"},{"name":"_nodeReqs","type":"uint256[]"},{"name":"_nodeHCs","type":"uint256[]"}],"name":"setupBuyback","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBuybackInfoExtra","outputs":[{"name":"_burned","type":"uint256"},{"name":"_lastNodeEth","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBuybackAllTokenNum","outputs":[{"name":"_buybackAllTokenNum","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getEthBalance","outputs":[{"name":"_ethBalance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getLastOverNodeEth","outputs":[{"name":"_eths","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contractName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTokenBalance","outputs":[{"name":"_tokenBalance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTokenContractAddr","outputs":[{"name":"_tokenContractAddr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddr","type":"address"},{"name":"_start","type":"uint256"},{"name":"_end","type":"uint256"}],"name":"getBuybackHistory","outputs":[{"name":"_ethNum","type":"uint256[]"},{"name":"_tokenNum","type":"uint256[]"},{"name":"_timestamp","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getFaucetRate","outputs":[{"name":"_rate","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"nodeWithdrawAllToken","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_userAddr","type":"address"}],"name":"getSuperNodeByUserAddr","outputs":[{"name":"_nodeWithdrawToken","type":"uint256"},{"name":"_nodeEthInvest","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getReleasedAmount","outputs":[{"name":"_eths","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contractVersion","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"uint256"}],"name":"buybackToken","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getInvestContractAddr","outputs":[{"name":"_investContractAddr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBuybackTotalEth","outputs":[{"name":"_buybackTotalEth","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getNodeTotalDivie","outputs":[{"name":"_nodeTotalDivie","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"depositEths","outputs":[{"name":"_success","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_userAddr","type":"address"}],"name":"getBuybackEth","outputs":[{"name":"_buybackEth","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getLastPrice","outputs":[{"name":"_lastPrice","type":"uint256"},{"name":"_lastPriceTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_withdrawTokenValue","type":"uint256"}],"name":"nodeWithdrawToken","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_userAddr","type":"address"}],"name":"getCanRedeemToken","outputs":[{"name":"_canRedeemToken","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddr","type":"address"}],"name":"getBuybackHistoryCount","outputs":[{"name":"_count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getDestroyTokenTotalNum","outputs":[{"name":"_totalBurned","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTotalTopped","outputs":[{"name":"_tokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_burnPPM","type":"uint256"},{"name":"_projectPPM","type":"uint256"},{"name":"_topPPM","type":"uint256"},{"name":"_topRate","type":"uint256"},{"name":"_totalPPM","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]

60806040523480156200001157600080fd5b5060405162003e0238038062003e02833981810160405260c08110156200003757600080fd5b508051602082015160408301516060840151608085015160a090950151600080546001600160a01b031916331790559394929391929091620f42408511801590620000855750620f42408411155b8015620000955750620f42408311155b8015620000a55750620f42408111155b6200011157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c696420706172616d65746572732121000000000000000000000000604482015290519081900360640190fd5b600280546001600160a01b0388166001600160a01b03199182168117909255600480549091169091179055600c8590556013849055601483905560158290556018819055620001686001600160e01b036200017416565b505050505050620003f1565b600060098190556012819055600b8190556007819055600e819055600f819055601081905560118190556008819055600a8190556019819055601a55601b805460ff19169055601454620001d990620f4240906200025c602090811b620026e717901c565b6016819055506200025760165462000218620f4240620002436200022c620f424062000218601554601454620002d960201b6200262c1790919060201c565b6200036d60201b6200268d1790919060201c565b6018546200025c60201b620026e71790919060201c565b620002d960201b6200262c1790919060201c565b601755565b600081831015620002ce57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f756e7361666520737562206d6174680000000000000000000000000000000000604482015290519081900360640190fd5b508082035b92915050565b600082620002ea57506000620002d3565b82820282848281620002f857fe5b04146200036657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f756e73616665206d756c206d6174680000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600081620003dc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f756e7361666520646976206d6174680000000000000000000000000000000000604482015290519081900360640190fd5b6000828481620003e857fe5b04949350505050565b613a0180620004016000396000f3fe60806040526004361061025c5760003560e01c806375d0c0dc11610144578063ae068a23116100b6578063d8cf24fd1161007a578063d8cf24fd14610c86578063df41f9b714610c9b578063e3c27c8514610cc5578063e40f989414610cf8578063eec791b514610d2b578063fc4666a914610d405761025c565b8063ae068a2314610c0c578063b0defe0414610c21578063b16290f514610c36578063b233863d14610c4b578063d81915c914610c535761025c565b80639224488d116101085780639224488d14610b5b57806395064f1114610b705780639960f33814610b855780639a5569a714610bb8578063a0a8e46014610bcd578063ace6d38c14610be25761025c565b806375d0c0dc1461097557806382b2e257146109ff57806389ff39fe14610a145780638da5cb5b14610a295780639091607614610a3e5761025c565b806324b20318116101dd5780635e914edb116101a15780635e914edb146107f95780635fa569981461084a578063650b28f01461092157806369d8db421461093657806370ed0ada1461094b57806373bd7b2f146109605761025c565b806324b2031814610711578063287545821461072657806338a4a1d5146107785780634ab8802f146107b3578063533fe7c0146107e45761025c565b8063182c165111610224578063182c16511461063457806318c0810c146106815780631b6fc552146106965780631dfb3e06146106c95780632186a884146106de5761025c565b80630552aa2f146104835780630e9d56a2146104c157806313af4035146104e85780631524576d1461051d578063169119c214610550575b6003546001600160a01b03163314610454573360009081526029602052604090205461028e903463ffffffff610d5516565b33600090815260296020526040902055600a546102b1903463ffffffff610d5516565b600a556012546102c7903463ffffffff610d5516565b601255602554341180156102ea575033600090815260208052604090205460ff16155b1561044f57601e54608011610346576040805162461bcd60e51b815260206004820152601760248201527f6c6f6f70206c696d697465642065786365656465642121000000000000000000604482015290519081900360640190fd5b601e546000908190156103cf575b601e8260ff168154811061036457fe5b906000526020600020015434101580156103825750601e5460ff8316105b801561039057508060245410155b156103cf576103c2601f8360ff16815481106103a857fe5b906000526020600020015482610d5590919063ffffffff16565b6001909201919050610354565b60008260ff161180156103e3575080602454105b1561044c57602480546001908101808355600090815260216020908152604080832080546001600160a01b0319163390811790915594548584526022835281842081905583526023825280832034908190559483529080529020805460ff191690911790556025555b50505b61046b565b600b54610467903463ffffffff610d5516565b600b555b60095461047e903463ffffffff610d5516565b600955005b34801561048f57600080fd5b506104ad600480360360208110156104a657600080fd5b5035610daa565b604080519115158252519081900360200190f35b3480156104cd57600080fd5b506104d6610f31565b60408051918252519081900360200190f35b3480156104f457600080fd5b5061051b6004803603602081101561050b57600080fd5b50356001600160a01b0316610f38565b005b34801561052957600080fd5b506104d66004803603602081101561054057600080fd5b50356001600160a01b0316610fb0565b34801561055c57600080fd5b5061051b6004803603608081101561057357600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b8111156105a657600080fd5b8201836020820111156105b857600080fd5b803590602001918460208302840111600160201b831117156105d957600080fd5b919390929091602081019035600160201b8111156105f657600080fd5b82018360208201111561060857600080fd5b803590602001918460208302840111600160201b8311171561062957600080fd5b50909250905061106f565b34801561064057600080fd5b50610649611232565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b34801561068d57600080fd5b506104d66112ed565b3480156106a257600080fd5b506104d6600480360360208110156106b957600080fd5b50356001600160a01b0316611368565b3480156106d557600080fd5b506104d6611383565b3480156106ea57600080fd5b506104d66004803603602081101561070157600080fd5b50356001600160a01b0316611389565b34801561071d57600080fd5b506104d66113a4565b34801561073257600080fd5b5061075f6004803603604081101561074957600080fd5b506001600160a01b0381351690602001356113aa565b6040805192835260208301919091528051918290030190f35b34801561078457600080fd5b5061078d61146e565b604080519485526020850193909352838301919091526060830152519081900360800190f35b3480156107bf57600080fd5b506107c8611508565b604080516001600160a01b039092168252519081900360200190f35b3480156107f057600080fd5b506104d6611517565b34801561080557600080fd5b5061082c6004803603602081101561081c57600080fd5b50356001600160a01b0316611534565b60408051938452602084019290925282820152519081900360600190f35b34801561085657600080fd5b5061051b6004803603608081101561086d57600080fd5b813591602081013591810190606081016040820135600160201b81111561089357600080fd5b8201836020820111156108a557600080fd5b803590602001918460208302840111600160201b831117156108c657600080fd5b919390929091602081019035600160201b8111156108e357600080fd5b8201836020820111156108f557600080fd5b803590602001918460208302840111600160201b8311171561091657600080fd5b509092509050611574565b34801561092d57600080fd5b5061075f6116af565b34801561094257600080fd5b506104d66116b9565b34801561095757600080fd5b506104d66116bf565b34801561096c57600080fd5b506104d66116c4565b34801561098157600080fd5b5061098a6116ca565b6040805160208082528351818301528351919283929083019185019080838360005b838110156109c45781810151838201526020016109ac565b50505050905090810190601f1680156109f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a0b57600080fd5b506104d66116f1565b348015610a2057600080fd5b506107c861176d565b348015610a3557600080fd5b506107c861177c565b348015610a4a57600080fd5b50610a7d60048036036060811015610a6157600080fd5b506001600160a01b03813516906020810135906040013561178b565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015610ac5578181015183820152602001610aad565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015610b04578181015183820152602001610aec565b50505050905001848103825285818151815260200191508051906020019060200280838360005b83811015610b43578181015183820152602001610b2b565b50505050905001965050505050505060405180910390f35b348015610b6757600080fd5b506104d6611974565b348015610b7c57600080fd5b506104ad611997565b348015610b9157600080fd5b5061075f60048036036020811015610ba857600080fd5b50356001600160a01b0316611bfe565b348015610bc457600080fd5b506104d6611cb7565b348015610bd957600080fd5b5061098a611dc1565b348015610bee57600080fd5b506104ad60048036036020811015610c0557600080fd5b5035611de2565b348015610c1857600080fd5b506107c861205e565b348015610c2d57600080fd5b506104d661206d565b348015610c4257600080fd5b506104d6612073565b6104ad612079565b348015610c5f57600080fd5b506104d660048036036020811015610c7657600080fd5b50356001600160a01b031661213f565b348015610c9257600080fd5b5061075f61215a565b348015610ca757600080fd5b506104ad60048036036020811015610cbe57600080fd5b50356121fb565b348015610cd157600080fd5b506104d660048036036020811015610ce857600080fd5b50356001600160a01b03166124e9565b348015610d0457600080fd5b506104d660048036036020811015610d1b57600080fd5b50356001600160a01b0316612605565b348015610d3757600080fd5b506104d6612620565b348015610d4c57600080fd5b506104d6612626565b600082820183811015610da1576040805162461bcd60e51b815260206004820152600f60248201526e0eadce6c2ccca40c2c8c840dac2e8d608b1b604482015290519081900360640190fd5b90505b92915050565b601b5460009060ff16600214610df5576040805162461bcd60e51b815260206004820152601a602482015260008051602061393f833981519152604482015290519081900360640190fd5b6005546001600160a01b03163314610e3e5760405162461bcd60e51b81526004018080602001828103825260318152602001806138ee6031913960400191505060405180910390fd5b3031821115610e88576040805162461bcd60e51b81526020600482015260116024820152706e6f7420656e6f7567682065746873212160781b604482015290519081900360640190fd5b81610e91611cb7565b1015610ee4576040805162461bcd60e51b815260206004820152601e60248201527f6e6f7420656e6f75676820657468732072656c65617365642079657421210000604482015290519081900360640190fd5b604051339083156108fc029084906000818181858888f19350505050158015610f11573d6000803e3d6000fd5b50602854610f25908363ffffffff610d5516565b6028555060015b919050565b6009545b90565b6000546001600160a01b03163314610f8e576040805162461bcd60e51b815260206004820152601460248201527339b2b73232b91036bab9ba1031329037bbb732b960611b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080600a5411610fc357506000610f2c565b600a546001600160a01b038084166000908152602960209081526040918290205460025483516370a0823160e01b81523060048201529351610da496956110639593949216926370a08231926024808301939192829003018186803b15801561102b57600080fd5b505afa15801561103f573d6000803e3d6000fd5b505050506040513d602081101561105557600080fd5b50519063ffffffff61262c16565b9063ffffffff61268d16565b6000546001600160a01b031633146110c5576040805162461bcd60e51b815260206004820152601460248201527339b2b73232b91036bab9ba1031329037bbb732b960611b604482015290519081900360640190fd5b601b5460ff166001146111095760405162461bcd60e51b815260040180806020018281038252602681526020018061395f6026913960400191505060405180910390fd5b82811461115d576040805162461bcd60e51b815260206004820152601c60248201527f706172616d6574657273206c656e677468206d69736d61746368212100000000604482015290519081900360640190fd5b600580546001600160a01b038089166001600160a01b0319928316179092556001805488841690831681179182905560038054909316179091556040805162160b8560e71b815290519190921691630b05c280916004828101926020929190829003018186803b1580156111d057600080fd5b505afa1580156111e4573d6000803e3d6000fd5b505050506040513d60208110156111fa57600080fd5b5051600d5561120b6026858561385f565b506112186027838361385f565b5050426006555050601b805460ff19166002179055505050565b600080600080600080600080600e549050600081116112c857600160009054906101000a90046001600160a01b03166001600160a01b0316639d1b464a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561129957600080fd5b505afa1580156112ad573d6000803e3d6000fd5b505050506040513d60208110156112c357600080fd5b505190505b600754600f54600954601054929b30319b509399509097509550935083850392509050565b600080600a541161130057506000610f35565b600a54336000908152602960209081526040918290205460025483516370a0823160e01b815230600482015293516113639594611063946001600160a01b03909316926370a0823192602480840193829003018186803b15801561102b57600080fd5b905090565b6001600160a01b03166000908152602a602052604090205490565b60085490565b6001600160a01b031660009081526029602052604090205490565b60125490565b60008060006113c484600a54610d5590919063ffffffff16565b6001600160a01b038616600090815260296020526040812054919250906113f1908663ffffffff610d5516565b905060008211611408576000935091506114679050565b600254604080516370a0823160e01b8152306004820152905161145c9285926110639286926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561102b57600080fd5b935091506114679050565b9250929050565b600854601254600a54600254604080516370a0823160e01b815230600482015290516000958695869586959294919390926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156114ce57600080fd5b505afa1580156114e2573d6000803e3d6000fd5b505050506040513d60208110156114f857600080fd5b5051929791965094509092509050565b6005546001600160a01b031690565b6000611363601c54611063600654426126e790919063ffffffff16565b6000806000611542846124e9565b6001600160a01b03949094166000908152602a6020908152604080832054602b90925290912054949590949350915050565b6000546001600160a01b031633146115ca576040805162461bcd60e51b815260206004820152601460248201527339b2b73232b91036bab9ba1031329037bbb732b960611b604482015290519081900360640190fd5b601b5460ff1615611622576040805162461bcd60e51b815260206004820152601d60248201527f636f6e7472616374206e6f7420696e2073657475702070686173652121000000604482015290519081900360640190fd5b828114611676576040805162461bcd60e51b815260206004820152601c60248201527f706172616d6574657273206c656e677468206d69736d61746368212100000000604482015290519081900360640190fd5b601c869055601d85905561168c601e858561385f565b50611699601f838361385f565b5050601b805460ff191660011790555050505050565b6019546025549091565b60075490565b303190565b60255490565b6040518060400160405280600b81526020016a109d5e589858dad3995e1d60aa1b81525081565b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561173c57600080fd5b505afa158015611750573d6000803e3d6000fd5b505050506040513d602081101561176657600080fd5b5051905090565b6004546001600160a01b031690565b6000546001600160a01b031681565b606080806117b060016117a4868863ffffffff6126e716565b9063ffffffff610d5516565b6040519080825280602002602001820160405280156117d9578160200160208202803883390190505b5092506117f160016117a4868863ffffffff6126e716565b60405190808252806020026020018201604052801561181a578160200160208202803883390190505b50915061183260016117a4868863ffffffff6126e716565b60405190808252806020026020018201604052801561185b578160200160208202803883390190505b509050845b84811161196a576001600160a01b0387166000908152602c6020526040902060020180548290811061188e57fe5b906000526020600020015484878303815181106118a757fe5b602002602001018181525050602c6000886001600160a01b03166001600160a01b0316815260200190815260200160002060010181815481106118e657fe5b906000526020600020015483878303815181106118ff57fe5b602002602001018181525050602c6000886001600160a01b03166001600160a01b03168152602001908152602001600020600301818154811061193e57fe5b9060005260206000200154828783038151811061195757fe5b6020908102919091010152600101611860565b5093509350939050565b6000611363620f42406117a4601d5461198b611517565b9063ffffffff61262c16565b601b5460009060ff166002146119e2576040805162461bcd60e51b815260206004820152601a602482015260008051602061393f833981519152604482015290519081900360640190fd5b3360009081526029602052604090205415801590611a0257506000600a54115b611a44576040805162461bcd60e51b815260206004820152600e60248201526d696e76616c6964206e6f6465212160901b604482015290519081900360640190fd5b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015611a8f57600080fd5b505afa158015611aa3573d6000803e3d6000fd5b505050506040513d6020811015611ab957600080fd5b5051600a543360009081526029602052604081205492935091611ae8919061106390859063ffffffff61262c16565b6002546040805163a9059cbb60e01b81523360048201526024810184905290519293506001600160a01b039091169163a9059cbb916044808201926020929091908290030181600087803b158015611b3f57600080fd5b505af1158015611b53573d6000803e3d6000fd5b505050506040513d6020811015611b6957600080fd5b5051611baa576040805162461bcd60e51b8152602060048201526017602482015260008051602061391f833981519152604482015290519081900360640190fd5b33600090815260296020526040902054600a54611bcc9163ffffffff6126e716565b600a5533600090815260296020526040812055601154611bf2908363ffffffff610d5516565b60115550600191505090565b6000806000600a5411611c2b5750506001600160a01b038116600090815260296020526040812054611cb2565b600a546001600160a01b038085166000908152602960209081526040918290205460025483516370a0823160e01b81523060048201529351611c9396956110639593949216926370a08231926024808301939192829003018186803b15801561102b57600080fd5b6001600160a01b03841660009081526029602052604090205490925090505b915091565b600080805b60265481108015611ccd5750608081105b15611d565760268054611cf9908390611ced90600163ffffffff6126e716565b9063ffffffff6126e716565b81548110611d0357fe5b9060005260206000200154421115611d4e57602654602790611d32908390611ced90600163ffffffff6126e716565b81548110611d3c57fe5b90600052602060002001549150611d56565b600101611cbc565b50620f4240811115611d685750620f42405b6000611d94620f42406110638461198b602854306001600160a01b031631610d5590919063ffffffff16565b90506028548111611da6576000611dba565b602854611dba90829063ffffffff6126e716565b9250505090565b604051806040016040528060058152602001643b1897183760d91b81525081565b6000611ded33612736565b611e3e576040805162461bcd60e51b815260206004820152601b60248201527f53656e6465722063616e6e6f7420626520636f6e747261637421210000000000604482015290519081900360640190fd5b601b5460ff16600214611e86576040805162461bcd60e51b815260206004820152601a602482015260008051602061393f833981519152604482015290519081900360640190fd5b60008211611edb576040805162461bcd60e51b815260206004820152601860248201527f63616e6e6f74206275796261636b203020746f6b656e21210000000000000000604482015290519081900360640190fd5b611ee4336124e9565b821115611f225760405162461bcd60e51b81526004018080602001828103825260238152602001806139856023913960400191505060405180910390fd5b6000611f2d83612757565b9050611f3883612c4a565b611f82576040805162461bcd60e51b815260206004820152601660248201527570726f6365737320746f6b656e206661696c6564212160501b604482015290519081900360640190fd5b611f8c8382613692565b611fdd576040805162461bcd60e51b815260206004820152601b60248201527f70726f6365737320706172616d6574657273206661696c656421210000000000604482015290519081900360640190fd5b3031811115612027576040805162461bcd60e51b81526020600482015260116024820152706e6f7420656e6f7567682065746873212160781b604482015290519081900360640190fd5b604051339082156108fc029083906000818181858888f19350505050158015612054573d6000803e3d6000fd5b5060019392505050565b6003546001600160a01b031690565b60105490565b60115490565b601b5460009060ff166002146120c4576040805162461bcd60e51b815260206004820152601a602482015260008051602061393f833981519152604482015290519081900360640190fd5b6003546001600160a01b0316331461210d5760405162461bcd60e51b81526004018080602001828103825260258152602001806139a86025913960400191505060405180910390fd5b600b54612120903463ffffffff610d5516565b600b55600954612136903463ffffffff610d5516565b60095550600190565b6001600160a01b03166000908152602b602052604090205490565b6000806000600e54116121ee57600160009054906101000a90046001600160a01b03166001600160a01b0316639d1b464a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156121b557600080fd5b505afa1580156121c9573d6000803e3d6000fd5b505050506040513d60208110156121df57600080fd5b5051600f5490925090506121f7565b5050600e54600f545b9091565b601b5460009060ff16600214612246576040805162461bcd60e51b815260206004820152601a602482015260008051602061393f833981519152604482015290519081900360640190fd5b336000908152602960205260409020541580159061226657506000600a54115b6122a8576040805162461bcd60e51b815260206004820152600e60248201526d696e76616c6964206e6f6465212160901b604482015290519081900360640190fd5b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156122f357600080fd5b505afa158015612307573d6000803e3d6000fd5b505050506040513d602081101561231d57600080fd5b5051600a54336000908152602960205260408120549293509161234c919061106390859063ffffffff61262c16565b905080841115612399576040805162461bcd60e51b81526020600482015260136024820152726e6f7420656e6f75676820746f6b656e73212160681b604482015290519081900360640190fd5b6002546040805163a9059cbb60e01b81523360048201526024810187905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b1580156123ed57600080fd5b505af1158015612401573d6000803e3d6000fd5b505050506040513d602081101561241757600080fd5b5051612458576040805162461bcd60e51b8152602060048201526017602482015260008051602061391f833981519152604482015290519081900360640190fd5b3360009081526029602052604081205461247f90839061106390889063ffffffff61262c16565b336000908152602960205260409020549091506124a2908263ffffffff6126e716565b33600090815260296020526040902055600a546124c5908263ffffffff6126e716565b600a556011546124db908663ffffffff610d5516565b601155506001949350505050565b6005546000906001600160a01b0316331480612513575033600090815260208052604090205460ff165b156125a15760195460015460408051633b3089ed60e21b8152905161259a93926001600160a01b03169163ecc227b4916004808301926020929190829003018186803b15801561256257600080fd5b505afa158015612576573d6000803e3d6000fd5b505050506040513d602081101561258c57600080fd5b50519063ffffffff6126e716565b9050610f2c565b6001600160a01b038083166000818152602a60209081526040918290205460015483516307c4b54d60e31b815260048101959095529251610da49591949390911692633e25aa68926024808301939192829003018186803b15801561256257600080fd5b6001600160a01b03166000908152602c602052604090205490565b60195490565b601a5490565b60008261263b57506000610da4565b8282028284828161264857fe5b0414610da1576040805162461bcd60e51b815260206004820152600f60248201526e0eadce6c2ccca40daead840dac2e8d608b1b604482015290519081900360640190fd5b6000816126d3576040805162461bcd60e51b815260206004820152600f60248201526e0eadce6c2ccca40c8d2ec40dac2e8d608b1b604482015290519081900360640190fd5b60008284816126de57fe5b04949350505050565b600081831015612730576040805162461bcd60e51b815260206004820152600f60248201526e0eadce6c2ccca40e6eac440dac2e8d608b1b604482015290519081900360640190fd5b50900390565b60006001600160a01b03821630141561275157506000610f2c565b503b1590565b6000806127ae601954600160009054906101000a90046001600160a01b03166001600160a01b031663ecc227b46040518163ffffffff1660e01b815260040160206040518083038186803b15801561256257600080fd5b905060006127ce620f42406110636014548561262c90919063ffffffff16565b60055490915060009081906001600160a01b03163314806127fd575033600090815260208052604090205460ff165b61287d57600154604080516307c4b54d60e31b815233600482015290516001600160a01b0390921691633e25aa6891602480820192602092909190829003018186803b15801561284c57600080fd5b505afa158015612860573d6000803e3d6000fd5b505050506040513d602081101561287657600080fd5b505161287f565b835b9050600061289f620f42406110636014548561262c90919063ffffffff16565b336000908152602a60205260408120549192506128c2828a63ffffffff610d5516565b9050856128da8a601a54610d5590919063ffffffff16565b11612a44578281116129325761291487611063620f42406110638d61198b601554306001600160a01b03163161262c90919063ffffffff16565b601a5490955061292a908a63ffffffff610d5516565b601a55612a3f565b828210801561294057508281115b156129fe576000612957848463ffffffff6126e716565b9050600061296b8b8363ffffffff6126e716565b601a54909150612981908363ffffffff610d5516565b601a819055506129b589611063620f42406110638661198b601554306001600160a01b03163161262c90919063ffffffff16565b96506129f56129e88a611063620f42406110638661198b601754306001600160a01b03163161262c90919063ffffffff16565b889063ffffffff610d5516565b96505050612a3f565b612a3c612a2f88611063620f42406110638e61198b601754306001600160a01b03163161262c90919063ffffffff16565b869063ffffffff610d5516565b94505b612c0e565b85601a54108015612a675750601a548690612a65908b63ffffffff610d5516565b115b15612bda576000612a83601a54886126e790919063ffffffff16565b9050838211612b45576000612a9e8b8363ffffffff6126e716565b90506000612ab28c8363ffffffff6126e716565b601a54909150612ac8908363ffffffff610d5516565b601a81905550612afc8a611063620f42406110638661198b601554306001600160a01b03163161262c90919063ffffffff16565b9750612b3c612b2f8b611063620f42406110638661198b601754306001600160a01b03163161262c90919063ffffffff16565b899063ffffffff610d5516565b97505050612bd4565b8383108015612b5357508382115b15612b9357600081612b6b868663ffffffff6126e716565b11612b8557612b80858563ffffffff6126e716565b612a9e565b50806000612ab28c836126e7565b612bd1612bc489611063620f42406110638f61198b601754306001600160a01b03163161262c90919063ffffffff16565b879063ffffffff610d5516565b95505b50612c0e565b612c0b612a2f88611063620f42406110638e61198b601754306001600160a01b03163161262c90919063ffffffff16565b94505b612c2d620f4240611063612c20611974565b889063ffffffff61262c16565b94503031851115612c3d57303194505b5092979650505050505050565b6000600c5460001415612ffb57601354612d3e57600854612c71908363ffffffff610d5516565b600855600254604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015612cce57600080fd5b505af1158015612ce2573d6000803e3d6000fd5b505050506040513d6020811015612cf857600080fd5b5051612d39576040805162461bcd60e51b8152602060048201526017602482015260008051602061391f833981519152604482015290519081900360640190fd5b612ff6565b601354620f42401115612f2c576000612d69620f42406110636013548661262c90919063ffffffff16565b90506000612d7d848363ffffffff6126e716565b600854909150612d93908263ffffffff610d5516565b600855600254600554604080516323b872dd60e01b81523360048201526001600160a01b03928316602482015260448101869052905191909216916323b872dd9160648083019260209291908290030181600087803b158015612df557600080fd5b505af1158015612e09573d6000803e3d6000fd5b505050506040513d6020811015612e1f57600080fd5b5051612e60576040805162461bcd60e51b8152602060048201526017602482015260008051602061391f833981519152604482015290519081900360640190fd5b600254604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015612eba57600080fd5b505af1158015612ece573d6000803e3d6000fd5b505050506040513d6020811015612ee457600080fd5b5051612f25576040805162461bcd60e51b8152602060048201526017602482015260008051602061391f833981519152604482015290519081900360640190fd5b5050612ff6565b600254600554604080516323b872dd60e01b81523360048201526001600160a01b03928316602482015260448101869052905191909216916323b872dd9160648083019260209291908290030181600087803b158015612f8b57600080fd5b505af1158015612f9f573d6000803e3d6000fd5b505050506040513d6020811015612fb557600080fd5b5051612ff6576040805162461bcd60e51b8152602060048201526017602482015260008051602061391f833981519152604482015290519081900360640190fd5b61368a565b600c54620f424011156135ad576013546130cc57600061302d620f4240611063600c548661262c90919063ffffffff16565b90506000613041848363ffffffff6126e716565b600854909150613057908263ffffffff610d5516565b60085560195461306d908363ffffffff610d5516565b601955600254604080516323b872dd60e01b815233600482015261066660248201526044810185905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015612df557600080fd5b601354620f424011156133ca5760006130f7620f4240611063600c548661262c90919063ffffffff16565b9050600061310b848363ffffffff6126e716565b9050600061312b620f42406110636013548861262c90919063ffffffff16565b905061313d828263ffffffff6126e716565b600854909250613153908363ffffffff610d5516565b600855601954613169908463ffffffff610d5516565b601955600254604080516323b872dd60e01b815233600482015261066660248201526044810186905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b1580156131c857600080fd5b505af11580156131dc573d6000803e3d6000fd5b505050506040513d60208110156131f257600080fd5b5051613233576040805162461bcd60e51b8152602060048201526017602482015260008051602061391f833981519152604482015290519081900360640190fd5b600254600554604080516323b872dd60e01b81523360048201526001600160a01b03928316602482015260448101859052905191909216916323b872dd9160648083019260209291908290030181600087803b15801561329257600080fd5b505af11580156132a6573d6000803e3d6000fd5b505050506040513d60208110156132bc57600080fd5b50516132fd576040805162461bcd60e51b8152602060048201526017602482015260008051602061391f833981519152604482015290519081900360640190fd5b600254604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561335757600080fd5b505af115801561336b573d6000803e3d6000fd5b505050506040513d602081101561338157600080fd5b50516133c2576040805162461bcd60e51b8152602060048201526017602482015260008051602061391f833981519152604482015290519081900360640190fd5b505050612ff6565b60006133e8620f4240611063600c548661262c90919063ffffffff16565b905060006133fc848363ffffffff6126e716565b601954909150613412908363ffffffff610d5516565b601955600254604080516323b872dd60e01b815233600482015261066660248201526044810185905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561347157600080fd5b505af1158015613485573d6000803e3d6000fd5b505050506040513d602081101561349b57600080fd5b50516134dc576040805162461bcd60e51b8152602060048201526017602482015260008051602061391f833981519152604482015290519081900360640190fd5b600254600554604080516323b872dd60e01b81523360048201526001600160a01b03928316602482015260448101859052905191909216916323b872dd9160648083019260209291908290030181600087803b15801561353b57600080fd5b505af115801561354f573d6000803e3d6000fd5b505050506040513d602081101561356557600080fd5b50516135a6576040805162461bcd60e51b8152602060048201526017602482015260008051602061391f833981519152604482015290519081900360640190fd5b505061368a565b6019546135c0908363ffffffff610d5516565b601955600254604080516323b872dd60e01b815233600482015261066660248201526044810185905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561361f57600080fd5b505af1158015613633573d6000803e3d6000fd5b505050506040513d602081101561364957600080fd5b505161368a576040805162461bcd60e51b8152602060048201526017602482015260008051602061391f833981519152604482015290519081900360640190fd5b506001919050565b60006136ad83611063600d548561262c90919063ffffffff16565b600e5542600f556010546136c890839063ffffffff610d5516565b601055336000908152602b60205260409020546136eb908363ffffffff610d5516565b336000908152602b6020908152604080832093909355602c90522060020180549061371990600183016138aa565b50336000908152602c60205260409020600190810180549161373d919083016138aa565b50336000908152602c6020526040902060030180549061376090600183016138aa565b50336000908152602c602052604090206002018054839190600019810190811061378657fe5b6000918252602080832090910192909255338152602c90915260409020600101805484919060001981019081106137b957fe5b6000918252602080832090910192909255338152602c90915260409020600301805442919060001981019081106137ec57fe5b6000918252602080832090910192909255338152602c9091526040902080546001019055600754613823908463ffffffff610d5516565b600755336000908152602a6020526040902054613846908463ffffffff610d5516565b336000908152602a602052604090205550600192915050565b82805482825590600052602060002090810192821561389a579160200282015b8281111561389a57823582559160200191906001019061387f565b506138a69291506138d3565b5090565b8154818355818111156138ce576000838152602090206138ce9181019083016138d3565b505050565b610f3591905b808211156138a657600081556001016138d956fe6f6e6c792070726f6a6563742061646472657373206d61792077697468647261772072656c656173656420657468732121746f6b656e207472616e73666572206661696c65642121000000000000000000636f6e7472616374206e6f7420696e697469616c697a65642121000000000000636f6e7472616374206e6f7420696e20696e697469616c697a6174696f6e2070686173652121546f6b656e20616d6f756e7420657863656564732072656465656d206c696d697421216f6e6c7920696e7665737420636f6e7472616374206d617920646f206465706f7369742121a265627a7a723058202e956baa52e51912d453fa0ee058f56e7b56ba76a2758a2746c29cd2f1c37ab964736f6c634300050a0032000000000000000000000000f649e5f6c811df360e5d7e5a8e52b11b4642fb2a00000000000000000000000000000000000000000000000000000000000e7ef00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c35000000000000000000000000000000000000000000000000000000000001e848000000000000000000000000000000000000000000000000000000000000f4240

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

000000000000000000000000f649e5f6c811df360e5d7e5a8e52b11b4642fb2a00000000000000000000000000000000000000000000000000000000000e7ef00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c35000000000000000000000000000000000000000000000000000000000001e848000000000000000000000000000000000000000000000000000000000000f4240

-----Decoded View---------------
Arg [0] : _tokenAddress (address): 0xf649e5f6c811df360e5d7e5a8e52b11b4642fb2a
Arg [1] : _burnPPM (uint256): 950000
Arg [2] : _projectPPM (uint256): 0
Arg [3] : _topPPM (uint256): 50000
Arg [4] : _topRate (uint256): 2000000
Arg [5] : _totalPPM (uint256): 1000000

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000f649e5f6c811df360e5d7e5a8e52b11b4642fb2a
Arg [1] : 00000000000000000000000000000000000000000000000000000000000e7ef0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 000000000000000000000000000000000000000000000000000000000000c350
Arg [4] : 00000000000000000000000000000000000000000000000000000000001e8480
Arg [5] : 00000000000000000000000000000000000000000000000000000000000f4240


Deployed ByteCode Sourcemap

5054:23949:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27686:18;;-1:-1:-1;;;;;27686:18:0;27672:10;:32;27669:1277;;27751:10;27743:19;;;;:7;:19;;;;;;:34;;27767:9;27743:34;:23;:34;:::i;:::-;27729:10;27721:19;;;;:7;:19;;;;;:56;27809:14;;:29;;27828:9;27809:29;:18;:29;:::i;:::-;27792:14;:46;27868:12;;:27;;27885:9;27868:27;:16;:27;:::i;:::-;27853:12;:42;27928:15;;27916:9;:27;:56;;;;-1:-1:-1;27961:10:0;27948:24;;;;:12;:24;;;;;;;;27947:25;27916:56;27912:938;;;28001:8;:15;5226:3;-1:-1:-1;27993:63:0;;;;;-1:-1:-1;;;27993:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;28150:8;:15;28075:11;;;;28150:19;28146:278;;28194:211;28214:8;28223:5;28214:15;;;;;;;;;;;;;;;;;;28201:9;:28;;:55;;;;-1:-1:-1;28241:8:0;:15;28233:23;;;;28201:55;:82;;;;;28277:6;28260:13;;:23;;28201:82;28194:211;;;28321:26;28332:7;28340:5;28332:14;;;;;;;;;;;;;;;;;;28321:6;:10;;:26;;;;:::i;:::-;28374:7;;;;;28312:35;-1:-1:-1;28194:211:0;;;28454:1;28446:5;:9;;;:35;;;;;28475:6;28459:13;;:22;28446:35;28442:393;;;28506:13;:15;;;;;;;;;:13;28544:28;;;:13;:28;;;;;;;;:41;;-1:-1:-1;;;;;;28544:41:0;28575:10;28544:41;;;;;;28633:13;;28608:22;;;:10;:22;;;;;:38;;;28669:30;;:15;:30;;;;;28702:9;28669:42;;;;28734:24;;;;;;;;:31;;-1:-1:-1;;28734:31:0;;;;;;28788:15;:27;28442:393;27912:938;;;27669:1277;;;28902:17;;:32;;28924:9;28902:32;:21;:32;:::i;:::-;28882:17;:52;27669:1277;28967:8;;:23;;28980:9;28967:23;:12;:23;:::i;:::-;28956:8;:34;5054:23949;26754:507;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26754:507:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;26754:507:0;;:::i;:::-;;;;;;;;;;;;;;;;;;24882:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24882:96:0;;;:::i;:::-;;;;;;;;;;;;;;;;1098:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1098:84:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1098:84:0;-1:-1:-1;;;;;1098:84:0;;:::i;:::-;;19550:248;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19550:248:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19550:248:0;-1:-1:-1;;;;;19550:248:0;;:::i;9237:676::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9237:676:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;9237:676:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;9237:676:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9237:676:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9237:676:0;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;9237:676:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9237:676:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;9237:676:0;;-1:-1:-1;9237:676:0;-1:-1:-1;9237:676:0;:::i;21626:697::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21626:697:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19316:226;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19316:226:0;;;:::i;20455:148::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20455:148:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20455:148:0;-1:-1:-1;;;;;20455:148:0;;:::i;25233:120::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25233:120:0;;;:::i;25477:133::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25477:133:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25477:133:0;-1:-1:-1;;;;;25477:133:0;;:::i;25361:108::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25361:108:0;;;:::i;22938:642::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22938:642:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;22938:642:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;23588:295;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23588:295:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25618:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25618:105:0;;;:::i;:::-;;;;-1:-1:-1;;;;;25618:105:0;;;;;;;;;;;;;;13552:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13552:140:0;;;:::i;21278:340::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21278:340:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21278:340:0;-1:-1:-1;;;;;21278:340:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;8753:476;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8753:476:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;8753:476:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;8753:476:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8753:476:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;8753:476:0;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;8753:476:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8753:476:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;8753:476:0;;-1:-1:-1;8753:476:0;-1:-1:-1;8753:476:0;:::i;22331:172::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22331:172:0;;;:::i;20321:126::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20321:126:0;;;:::i;20066:113::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20066:113:0;;;:::i;25853:108::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25853:108:0;;;:::i;5238:51::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5238:51: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;5238:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20187:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20187:126:0;;;:::i;19940:118::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19940:118:0;;;:::i;891:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;891:20:0;;;:::i;24035:686::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24035:686:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;24035:686: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;24035:686:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;24035:686:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;24035:686:0;;;;;;;;;;;;;;;;;;;;;13700:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13700:128:0;;;:::i;18660:648::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18660:648:0;;;:::i;22511:419::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22511:419:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22511:419:0;-1:-1:-1;;;;;22511:419:0;;:::i;26081:665::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26081:665:0;;;:::i;5296:48::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5296:48:0;;;:::i;9921:643::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9921:643:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9921:643:0;;:::i;19806:126::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19806:126:0;;;:::i;24986:117::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24986:117:0;;;:::i;25111:114::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25111:114:0;;;:::i;27269:352::-;;;:::i;23891:136::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23891:136:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23891:136:0;-1:-1:-1;;;;;23891:136:0;;:::i;21003:267::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21003:267:0;;;:::i;17774:878::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17774:878:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17774:878:0;;:::i;20611:384::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20611:384:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20611:384:0;-1:-1:-1;;;;;20611:384:0;;:::i;24729:145::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24729:145:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24729:145:0;-1:-1:-1;;;;;24729:145:0;;:::i;25731:114::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25731:114:0;;;:::i;25969:104::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25969:104:0;;;:::i;108:172::-;168:7;200;;;226;;;;218:35;;;;;-1:-1:-1;;;218:35:0;;;;;;;;;;;;-1:-1:-1;;;218:35:0;;;;;;;;;;;;;;;271:1;-1:-1:-1;108:172:0;;;;;:::o;26754:507::-;26845:5;;26811:13;;26845:5;;26854:1;26845:10;26837:49;;;;;-1:-1:-1;;;26837:49:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;26837:49:0;;;;;;;;;;;;;;;26919:11;;-1:-1:-1;;;;;26919:11:0;26905:10;:25;26897:87;;;;-1:-1:-1;;;26897:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27011:4;27003:21;:30;-1:-1:-1;27003:30:0;26995:60;;;;;-1:-1:-1;;;26995:60:0;;;;;;;;;;;;-1:-1:-1;;;26995:60:0;;;;;;;;;;;;;;;27097:5;27074:19;:17;:19::i;:::-;:28;;27066:71;;;;;-1:-1:-1;;;27066:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;27148:26;;:10;;:26;;;;;27168:5;;27148:26;;;;27168:5;27148:10;:26;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;27204:16:0;;:27;;27225:5;27204:27;:20;:27;:::i;:::-;27185:16;:46;-1:-1:-1;27249:4:0;26754:507;;;;:::o;24882:96::-;24962:8;;24882:96;;:::o;1098:84::-;1040:5;;-1:-1:-1;;;;;1040:5:0;1026:10;:19;1018:52;;;;;-1:-1:-1;;;1018:52:0;;;;;;;;;;;;-1:-1:-1;;;1018:52:0;;;;;;;;;;;;;;;1160:5;:14;;-1:-1:-1;;;;;;1160:14:0;-1:-1:-1;;;;;1160:14:0;;;;;;;;;;1098:84::o;19550:248::-;19627:26;19687:1;19669:14;;:19;19666:32;;-1:-1:-1;19697:1:0;19690:8;;19666:32;19775:14;;-1:-1:-1;;;;;19751:18:0;;;;;;;:7;:18;;;;;;;;;;19716:5;;:30;;-1:-1:-1;;;19716:30:0;;19740:4;19716:30;;;;;;:74;;19775:14;19716:54;;19751:18;;19716:5;;;:15;;:30;;;;;19751:18;;19716:30;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;19716:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19716:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19716:30:0;;:54;:34;:54;:::i;:::-;:58;:74;:58;:74;:::i;9237:676::-;1040:5;;-1:-1:-1;;;;;1040:5:0;1026:10;:19;1018:52;;;;;-1:-1:-1;;;1018:52:0;;;;;;;;;;;;-1:-1:-1;;;1018:52:0;;;;;;;;;;;;;;;9432:5;;;;;:10;9424:61;;;;-1:-1:-1;;;9424:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9504:43;;;9496:84;;;;;-1:-1:-1;;;9496:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9593:11;:22;;-1:-1:-1;;;;;9593:22:0;;;-1:-1:-1;;;;;;9593:22:0;;;;;;;;9626:40;;;;;;;;;;;;;;9677:18;:36;;;;;;;;;9741:27;;;-1:-1:-1;;;9741:27:0;;;;:10;;;;;:25;;-1:-1:-1;9741:27:0;;;;;;;;;;;;;:10;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;9741:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9741:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9741:27:0;9724:14;:44;9779:28;:12;9794:13;;9779:28;:::i;:::-;-1:-1:-1;9818:26:0;:11;9832:12;;9818:26;:::i;:::-;-1:-1:-1;;9870:15:0;9855:12;:30;-1:-1:-1;;9896:5:0;:9;;-1:-1:-1;;9896:9:0;9904:1;9896:9;;;-1:-1:-1;;;9237:676:0:o;21626:697::-;21684:27;21753:19;21774:18;21794:22;21858:17;21877:24;21903:17;21933:21;21957:9;;21933:33;;21997:1;21980:13;:18;21977:91;;22031:10;;;;;;;;;-1:-1:-1;;;;;22031:10:0;-1:-1:-1;;;;;22031:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22031:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22031:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22031:25:0;;-1:-1:-1;21977:91:0;22100:18;;22197:13;;22225:8;;22248:15;;22100:18;;22141:4;22133:21;;-1:-1:-1;22169:13:0;;-1:-1:-1;22197:13:0;;-1:-1:-1;22225:8:0;-1:-1:-1;22248:15:0;-1:-1:-1;22278:26:0;;;;-1:-1:-1;21626:697:0;-1:-1:-1;21626:697:0:o;19316:226::-;19370:26;19430:1;19412:14;;:19;19409:32;;-1:-1:-1;19440:1:0;19433:8;;19409:32;19519:14;;19502:10;19494:19;;;;:7;:19;;;;;;;;;;19459:5;;:30;;-1:-1:-1;;;19459:30:0;;19483:4;19459:30;;;;;;:75;;19519:14;19459:55;;-1:-1:-1;;;;;19459:5:0;;;;:15;;:30;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;19459:75:0;19452:82;;19316:226;:::o;20455:148::-;-1:-1:-1;;;;;20566:29:0;20525:21;20566:29;;;:18;:29;;;;;;;20455:148::o;25233:120::-;25331:14;;25233:120;:::o;25477:133::-;-1:-1:-1;;;;;25584:18:0;25542:22;25584:18;;;:7;:18;;;;;;;25477:133::o;25361:108::-;25449:12;;25361:108;:::o;22938:642::-;23119:26;23235:22;23270;23295:25;23314:5;23295:14;;:18;;:25;;;;:::i;:::-;-1:-1:-1;;;;;23353:18:0;;23331:19;23353:18;;;:7;:18;;;;;;23270:50;;-1:-1:-1;23331:19:0;23353:29;;23376:5;23353:29;:22;:29;:::i;:::-;23331:51;;23415:1;23397:14;:19;23393:180;;23426:1;;-1:-1:-1;23429:11:0;-1:-1:-1;23418:23:0;;-1:-1:-1;23418:23:0;23393:180;23480:5;;:30;;;-1:-1:-1;;;23480:30:0;;23504:4;23480:30;;;;;;:67;;23532:14;;23480:47;;23515:11;;-1:-1:-1;;;;;23480:5:0;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;23480:67:0;23472:89;-1:-1:-1;23549:11:0;-1:-1:-1;23472:89:0;;-1:-1:-1;23472:89:0;22938:642;;;;;;:::o;23588:295::-;23798:14;;23814:12;;23828:14;;23844:5;;:30;;;-1:-1:-1;;;23844:30:0;;23868:4;23844:30;;;;;;23633:23;;;;;;;;23798:14;;23814:12;;23828:14;;-1:-1:-1;;;;;23844:5:0;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;23844:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23844:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23844:30:0;23790:85;;;;-1:-1:-1;23790:85:0;-1:-1:-1;23844:30:0;;-1:-1:-1;23588:295:0;-1:-1:-1;23588:295:0:o;25618:105::-;25704:11;;-1:-1:-1;;;;;25704:11:0;25618:105;:::o;13552:140::-;13599:14;13635:49;13673:10;;13635:33;13655:12;;13635:15;:19;;:33;;;;:::i;21278:340::-;21348:23;21408:21;21431:19;21485:28;21503:9;21485:17;:28::i;:::-;-1:-1:-1;;;;;21528:29:0;;;;;;;;:18;:29;;;;;;;;;21572:16;:27;;;;;;;21463:147;;21528:29;;21572:27;-1:-1:-1;21278:340:0;-1:-1:-1;;21278:340:0:o;8753:476::-;1040:5;;-1:-1:-1;;;;;1040:5:0;1026:10;:19;1018:52;;;;;-1:-1:-1;;;1018:52:0;;;;;;;;;;;;-1:-1:-1;;;1018:52:0;;;;;;;;;;;;;;;8940:5;;;;:10;8932:52;;;;;-1:-1:-1;;;8932:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9003:35;;;8995:76;;;;;-1:-1:-1;;;8995:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9084:10;:24;;;9119:9;:22;;;9152:20;:8;9163:9;;9152:20;:::i;:::-;-1:-1:-1;9183:18:0;:7;9193:8;;9183:18;:::i;:::-;-1:-1:-1;;9212:5:0;:9;;-1:-1:-1;;9212:9:0;9220:1;9212:9;;;-1:-1:-1;;;;;8753:476:0:o;22331:172::-;22443:11;;22480:15;;22443:11;;22331:172::o;20321:126::-;20421:18;;20321:126;:::o;20066:113::-;20158:4;20150:21;20066:113;:::o;25853:108::-;25938:15;;;25853:108::o;5238:51::-;;;;;;;;;;;;;;-1:-1:-1;;;5238:51:0;;;;:::o;20187:126::-;20275:5;;:30;;;-1:-1:-1;;;20275:30:0;;20299:4;20275:30;;;;;;20234:21;;-1:-1:-1;;;;;20275:5:0;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;20275:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20275:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20275:30:0;;-1:-1:-1;20187:126:0;:::o;19940:118::-;20038:12;;-1:-1:-1;;;;;20038:12:0;19940:118;:::o;891:20::-;;;-1:-1:-1;;;;;891:20:0;;:::o;24035:686::-;24146:24;;;24264:23;24285:1;24264:16;:4;24273:6;24264:16;:8;:16;:::i;:::-;:20;:23;:20;:23;:::i;:::-;24250:38;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;24250:38:0;-1:-1:-1;24240:48:0;-1:-1:-1;24325:23:0;24346:1;24325:16;:4;24334:6;24325:16;:8;:16;:::i;:23::-;24311:38;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;24311:38:0;-1:-1:-1;24299:50:0;-1:-1:-1;24387:23:0;24408:1;24387:16;:4;24396:6;24387:16;:8;:16;:::i;:23::-;24373:38;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;24373:38:0;-1:-1:-1;24360:51:0;-1:-1:-1;24439:6:0;24422:292;24452:4;24447:1;:9;24422:292;;-1:-1:-1;;;;;24500:25:0;;;;;;:14;:25;;;;;:38;;:41;;24539:1;;24500:41;;;;;;;;;;;;;;24478:7;24490:6;24486:1;:10;24478:19;;;;;;;;;;;;;:63;;;;;24580:14;:25;24595:9;-1:-1:-1;;;;;24580:25:0;-1:-1:-1;;;;;24580:25:0;;;;;;;;;;;;:39;;24620:1;24580:42;;;;;;;;;;;;;;;;24556:9;24570:6;24566:1;:10;24556:21;;;;;;;;;;;;;:66;;;;;24662:14;:25;24677:9;-1:-1:-1;;;;;24662:25:0;-1:-1:-1;;;;;24662:25:0;;;;;;;;;;;;:37;;24700:1;24662:40;;;;;;;;;;;;;;;;24637:10;24652:6;24648:1;:10;24637:22;;;;;;;;;;;;;;;;;:65;24458:3;;24422:292;;;;24035:686;;;;;;;:::o;13700:128::-;13746:13;13780:40;5177:7;13780:31;13801:9;;13780:16;:14;:16::i;:::-;:20;:31;:20;:31;:::i;18660:648::-;18743:5;;18709:13;;18743:5;;18752:1;18743:10;18735:49;;;;;-1:-1:-1;;;18735:49:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;18735:49:0;;;;;;;;;;;;;;;18811:10;18825:1;18803:19;;;:7;:19;;;;;;:23;;;;:45;;;18847:1;18830:14;;:18;18803:45;18795:72;;;;;-1:-1:-1;;;18795:72:0;;;;;;;;;;;;-1:-1:-1;;;18795:72:0;;;;;;;;;;;;;;;18901:5;;:30;;;-1:-1:-1;;;18901:30:0;;18925:4;18901:30;;;;;;18878:20;;-1:-1:-1;;;;;18901:5:0;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;18901:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18901:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18901:30:0;19011:14;;18994:10;18942:24;18986:19;;;:7;18901:30;18986:19;;;;;18901:30;;-1:-1:-1;18942:24:0;18969:57;;19011:14;18969:37;;18901:30;;18969:37;:16;:37;:::i;:57::-;19045:5;;:44;;;-1:-1:-1;;;19045:44:0;;19060:10;19045:44;;;;;;;;;;;;18942:84;;-1:-1:-1;;;;;;19045:5:0;;;;:14;;:44;;;;;;;;;;;;;;;:5;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;19045:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19045:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19045:44:0;19037:80;;;;;-1:-1:-1;;;19037:80:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;19037:80:0;;;;;;;;;;;;;;;19172:10;19164:19;;;;:7;:19;;;;;;19145:14;;:39;;;:18;:39;:::i;:::-;19128:14;:56;19203:10;19217:1;19195:19;;;:7;:19;;;;;:23;19246:14;;:32;;19265:12;19246:32;:18;:32;:::i;:::-;19229:14;:49;-1:-1:-1;19296:4:0;;-1:-1:-1;;18660:648:0;:::o;22511:419::-;22583:26;22688:22;22744:1;22726:14;;:19;22723:200;;-1:-1:-1;;;;;;;22758:18:0;;22755:1;22758:18;;;:7;:18;;;;;;22747:30;;22723:200;22875:14;;-1:-1:-1;;;;;22851:18:0;;;;;;;:7;:18;;;;;;;;;;22816:5;;:30;;-1:-1:-1;;;22816:30:0;;22840:4;22816:30;;;;;;:74;;22875:14;22816:54;;22851:18;;22816:5;;;:15;;:30;;;;;22851:18;;22816:30;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;22816:74:0;-1:-1:-1;;;;;22892:18:0;;;;;;:7;:18;;;;;;22808:103;;-1:-1:-1;22892:18:0;-1:-1:-1;22723:200:0;22511:419;;;:::o;26081:665::-;26131:13;;;26191:283;26215:12;:19;26211:23;;:40;;;;-1:-1:-1;5226:3:0;26238:13;;26211:40;26191:283;;;26295:12;26308:19;;:33;;26339:1;;26308:26;;26332:1;26308:26;:23;:26;:::i;:::-;:30;:33;:30;:33;:::i;:::-;26295:47;;;;;;;;;;;;;;;;26277:15;:65;26273:190;;;26389:12;:19;26377:11;;26389:33;;26420:1;;26389:26;;26413:1;26389:26;:23;:26;:::i;:33::-;26377:46;;;;;;;;;;;;;;;;26363:60;;26442:5;;26273:190;26253:3;;26191:283;;;;5177:7;26490:11;:17;26486:67;;;-1:-1:-1;5177:7:0;26486:67;26565:16;26584:69;5177:7;26584:60;26632:11;26584:43;26610:16;;26592:4;-1:-1:-1;;;;;26584:21:0;;:25;;:43;;;;:::i;:69::-;26565:88;;26684:16;;26673:8;:27;26672:66;;26737:1;26672:66;;;26717:16;;26704:30;;:8;;:30;:12;:30;:::i;:::-;26664:74;;26081:665;;;:::o;5296:48::-;;;;;;;;;;;;;;-1:-1:-1;;;5296:48:0;;;;:::o;9921:643::-;9987:13;7564:19;7572:10;7564:7;:19::i;:::-;7556:59;;;;;-1:-1:-1;;;7556:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10021:5;;;;10030:1;10021:10;10013:49;;;;;-1:-1:-1;;;10013:49:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10013:49:0;;;;;;;;;;;;;;;10091:1;10081:7;:11;10073:48;;;;;-1:-1:-1;;;10073:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10151:29;10169:10;10151:17;:29::i;:::-;10140:7;:40;;10132:88;;;;-1:-1:-1;;;10132:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10231:12;10246:27;10265:7;10246:18;:27::i;:::-;10231:42;;10292:29;10313:7;10292:20;:29::i;:::-;10284:64;;;;;-1:-1:-1;;;10284:64:0;;;;;;;;;;;;-1:-1:-1;;;10284:64:0;;;;;;;;;;;;;;;10367:29;10382:7;10391:4;10367:14;:29::i;:::-;10359:69;;;;;-1:-1:-1;;;10359:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10455:4;10447:21;:29;-1:-1:-1;10447:29:0;10439:59;;;;;-1:-1:-1;;;10439:59:0;;;;;;;;;;;;-1:-1:-1;;;10439:59:0;;;;;;;;;;;;;;;10509:25;;:10;;:25;;;;;10529:4;;10509:25;;;;10529:4;10509:10;:25;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;10552:4:0;;9921:643;-1:-1:-1;;;9921:643:0:o;19806:126::-;19906:18;;-1:-1:-1;;;;;19906:18:0;19806:126;:::o;24986:117::-;25080:15;;24986:117;:::o;25111:114::-;25203:14;;25111:114;:::o;27269:352::-;27349:5;;27315:13;;27349:5;;27358:1;27349:10;27341:49;;;;;-1:-1:-1;;;27341:49:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;27341:49:0;;;;;;;;;;;;;;;27423:18;;-1:-1:-1;;;;;27423:18:0;27409:10;:32;27401:82;;;;-1:-1:-1;;;27401:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27514:17;;:32;;27536:9;27514:32;:21;:32;:::i;:::-;27494:17;:52;27568:8;;:23;;27581:9;27568:23;:12;:23;:::i;:::-;27557:8;:34;-1:-1:-1;27609:4:0;27269:352;:::o;23891:136::-;-1:-1:-1;;;;;23992:27:0;23953:19;23992:27;;;:16;:27;;;;;;;23891:136::o;21003:267::-;21047:18;21067:22;21118:1;21105:9;;:14;21102:161;;21144:10;;;;;;;;;-1:-1:-1;;;;;21144:10:0;-1:-1:-1;;;;;21144:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21144:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21144:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21144:25:0;21171:13;;21144:25;;-1:-1:-1;21171:13:0;-1:-1:-1;21136:49:0;;21102:161;-1:-1:-1;;21226:9:0;;21237:13;;21102:161;21003:267;;:::o;17774:878::-;17881:5;;17847:13;;17881:5;;17890:1;17881:10;17873:49;;;;;-1:-1:-1;;;17873:49:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;17873:49:0;;;;;;;;;;;;;;;17949:10;17963:1;17941:19;;;:7;:19;;;;;;:23;;;;:45;;;17985:1;17968:14;;:18;17941:45;17933:72;;;;;-1:-1:-1;;;17933:72:0;;;;;;;;;;;;-1:-1:-1;;;17933:72:0;;;;;;;;;;;;;;;18039:5;;:30;;;-1:-1:-1;;;18039:30:0;;18063:4;18039:30;;;;;;18016:20;;-1:-1:-1;;;;;18039:5:0;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;18039:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18039:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18039:30:0;18149:14;;18132:10;18080:24;18124:19;;;:7;18039:30;18124:19;;;;;18039:30;;-1:-1:-1;18080:24:0;18107:57;;18149:14;18107:37;;18039:30;;18107:37;:16;:37;:::i;:57::-;18080:84;;18206:16;18183:19;:39;;18175:71;;;;;-1:-1:-1;;;18175:71:0;;;;;;;;;;;;-1:-1:-1;;;18175:71:0;;;;;;;;;;;;;;;18265:5;;:47;;;-1:-1:-1;;;18265:47:0;;18280:10;18265:47;;;;;;;;;;;;-1:-1:-1;;;;;18265:5:0;;;;:14;;:47;;;;;;;;;;;;;;;:5;;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;18265:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18265:47:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18265:47:0;18257:83;;;;;-1:-1:-1;;;18257:83:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;18257:83:0;;;;;;;;;;;;;;;18401:10;18351:15;18393:19;;;:7;:19;;;;;;18369:66;;18418:16;;18369:44;;:19;;:44;:23;:44;:::i;:66::-;18476:10;18468:19;;;;:7;:19;;;;;;18351:84;;-1:-1:-1;18468:32:0;;18351:84;18468:32;:23;:32;:::i;:::-;18454:10;18446:19;;;;:7;:19;;;;;:54;18528:14;;:27;;18547:7;18528:27;:18;:27;:::i;:::-;18511:14;:44;18583:14;;:39;;18602:19;18583:39;:18;:39;:::i;:::-;18566:14;:56;-1:-1:-1;18640:4:0;;17774:878;-1:-1:-1;;;;17774:878:0:o;20611:384::-;20731:11;;20677:23;;-1:-1:-1;;;;;20731:11:0;20717:10;:25;;:53;;-1:-1:-1;20759:10:0;20746:24;;;;:12;:24;;;;;;;;20717:53;20713:275;;;20842:11;;20805:10;;:32;;;-1:-1:-1;;;20805:32:0;;;;:49;;20842:11;-1:-1:-1;;;;;20805:10:0;;:30;;:32;;;;;;;;;;;;;;:10;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;20805:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20805:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20805:32:0;;:49;:36;:49;:::i;:::-;20787:67;;20713:275;;;-1:-1:-1;;;;;20946:29:0;;;;;;;:18;:29;;;;;;;;;;20905:10;;:36;;-1:-1:-1;;;20905:36:0;;;;;;;;;;;:71;;20946:29;;20905:10;;;;;:25;;:36;;;;;20946:29;;20905:36;;;;;:10;:36;;;5:2:-1;;;;30:1;27;20:12;24729:145:0;-1:-1:-1;;;;;24835:25:0;24801:14;24835:25;;;:14;:25;;;;;:31;;24729:145::o;25731:114::-;25826:11;;25731:114;:::o;25969:104::-;26054:11;;;25969:104::o;445:235::-;505:7;529;525:48;;-1:-1:-1;560:1:0;553:8;;525:48;595:7;;;600:2;595;:7;:2;621:6;;;;;:12;613:40;;;;;-1:-1:-1;;;613:40:0;;;;;;;;;;;;-1:-1:-1;;;613:40:0;;;;;;;;;;;;;;688:172;748:7;776;768:35;;;;;-1:-1:-1;;;768:35:0;;;;;;;;;;;;-1:-1:-1;;;768:35:0;;;;;;;;;;;;;;;814:9;831:2;826;:7;;;;;;;688:172;-1:-1:-1;;;;688:172:0:o;288:149::-;348:7;382:2;376;:8;;368:36;;;;;-1:-1:-1;;;368:36:0;;;;;;;;;;;;-1:-1:-1;;;368:36:0;;;;;;;;;;;;;;;-1:-1:-1;422:7:0;;;288:149::o;7227:289::-;7281:4;-1:-1:-1;;;;;7302:22:0;;7319:4;7302:22;7298:67;;;-1:-1:-1;7348:5:0;7341:12;;7298:67;-1:-1:-1;7444:18:0;7491:16;;7227:289::o;13836:2846::-;13898:13;13924:16;13943:49;13980:11;;13943:10;;;;;;;;;-1:-1:-1;;;;;13943:10:0;-1:-1:-1;;;;;13943:30:0;;:32;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;13943:49:0;13924:68;;14003:14;14020:29;5177:7;14020:20;14033:6;;14020:8;:12;;:20;;;;:::i;:29::-;14115:11;;14003:46;;-1:-1:-1;14060:12:0;;;;-1:-1:-1;;;;;14115:11:0;14101:10;:25;;:53;;-1:-1:-1;14143:10:0;14130:24;;;;:12;:24;;;;;;;;14101:53;14100:128;;14191:10;;:37;;;-1:-1:-1;;;14191:37:0;;14217:10;14191:37;;;;;;-1:-1:-1;;;;;14191:10:0;;;;:25;;:37;;;;;;;;;;;;;;;:10;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;14191:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14191:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14191:37:0;14100:128;;;14158:8;14100:128;14087:141;;14239:13;14255:23;5177:7;14255:14;14262:6;;14255:2;:6;;:14;;;;:::i;:23::-;14321:10;14289;14302:30;;;:18;:30;;;;;;14239:39;;-1:-1:-1;14357:15:0;14302:30;14364:7;14357:15;:6;:15;:::i;:::-;14343:29;;14416:6;14388:24;14404:7;14388:11;;:15;;:24;;;;:::i;:::-;:34;14385:2115;;14449:5;14442:3;:12;14439:744;;14482:70;14543:8;14482:56;5177:7;14482:47;14521:7;14482:34;14508:7;;14490:4;-1:-1:-1;;;;;14482:21:0;;:25;;:34;;;;:::i;:70::-;14585:11;;14475:77;;-1:-1:-1;14585:24:0;;14601:7;14585:24;:15;:24;:::i;:::-;14571:11;:38;14439:744;;;14639:5;14634:2;:10;:25;;;;;14654:5;14648:3;:11;14634:25;14631:552;;;14680:15;14698:13;:5;14708:2;14698:13;:9;:13;:::i;:::-;14680:31;-1:-1:-1;14730:18:0;14751:20;:7;14680:31;14751:20;:11;:20;:::i;:::-;14804:11;;14730:41;;-1:-1:-1;14804:24:0;;14820:7;14804:24;:15;:24;:::i;:::-;14790:11;:38;;;;14854:70;14915:8;14854:56;5177:7;14854:47;14893:7;14854:34;14880:7;;14862:4;-1:-1:-1;;;;;14854:21:0;;:25;;:34;;;;:::i;:70::-;14847:77;;14950:86;14959:76;15026:8;14959:62;5177:7;14959:53;15001:10;14959:37;14985:10;;14967:4;-1:-1:-1;;;;;14959:21:0;;:25;;:37;;;;:::i;:76::-;14950:4;;:86;:8;:86;:::i;:::-;14943:93;;14631:552;;;;;15084:83;15093:73;15157:8;15093:59;5177:7;15093:50;15135:7;15093:37;15119:10;;15101:4;-1:-1:-1;;;;;15093:21:0;;:25;;:37;;;;:::i;:73::-;15084:4;;:83;:8;:83;:::i;:::-;15077:90;;14631:552;14385:2115;;;15218:6;15204:11;;:20;15203:61;;;;-1:-1:-1;15230:11:0;;15257:6;;15230:24;;15246:7;15230:24;:15;:24;:::i;:::-;:33;15203:61;15200:1300;;;15281:20;15304:23;15315:11;;15304:6;:10;;:23;;;;:::i;:::-;15281:46;;15352:5;15345:3;:12;15342:1024;;15378:15;15396:25;:7;15408:12;15396:25;:11;:25;:::i;:::-;15378:43;-1:-1:-1;15440:18:0;15461:20;:7;15378:43;15461:20;:11;:20;:::i;:::-;15514:11;;15440:41;;-1:-1:-1;15514:24:0;;15530:7;15514:24;:15;:24;:::i;:::-;15500:11;:38;;;;15564:70;15625:8;15564:56;5177:7;15564:47;15603:7;15564:34;15590:7;;15572:4;-1:-1:-1;;;;;15564:21:0;;:25;;:34;;;;:::i;:70::-;15557:77;;15660:86;15669:76;15736:8;15669:62;5177:7;15669:53;15711:10;15669:37;15695:10;;15677:4;-1:-1:-1;;;;;15669:21:0;;:25;;:37;;;;:::i;:76::-;15660:4;;:86;:8;:86;:::i;:::-;15653:93;;15342:1024;;;;;15776:5;15771:2;:10;:25;;;;;15791:5;15785:3;:11;15771:25;15768:598;;;15817:15;15851:12;15835:13;:5;15845:2;15835:13;:9;:13;:::i;:::-;:28;:59;;15881:13;:5;15891:2;15881:13;:9;:13;:::i;:::-;15835:59;;;-1:-1:-1;15866:12:0;15913:18;15934:20;:7;15866:12;15934:11;:20::i;15768:598::-;16267:83;16276:73;16340:8;16276:59;5177:7;16276:50;16318:7;16276:37;16302:10;;16284:4;-1:-1:-1;;;;;16276:21:0;;:25;;:37;;;;:::i;:73::-;16267:4;;:83;:8;:83;:::i;:::-;16260:90;;15768:598;15200:1300;;;;16405:83;16414:73;16478:8;16414:59;5177:7;16414:50;16456:7;16414:37;16440:10;;16422:4;-1:-1:-1;;;;;16414:21:0;;:25;;:37;;;;:::i;16405:83::-;16398:90;;15200:1300;16519:34;5177:7;16519:25;16528:15;:13;:15::i;:::-;16519:4;;:25;:8;:25;:::i;:34::-;16512:41;-1:-1:-1;16583:4:0;16575:21;16568:28;;16564:89;;;16628:4;16620:21;;-1:-1:-1;16564:89:0;-1:-1:-1;16670:4:0;;13836:2846;-1:-1:-1;;;;;;;13836:2846:0:o;10572:2972::-;10635:13;10664:7;;10675:1;10664:12;10661:2854;;;10696:10;;10693:821;;10749:14;;:27;;10768:7;10749:27;:18;:27;:::i;:::-;10732:14;:44;10803:5;;:54;;;-1:-1:-1;;;10803:54:0;;10822:10;10803:54;;;;10842:4;10803:54;;;;;;;;;;;;-1:-1:-1;;;;;10803:5:0;;;;:18;;:54;;;;;;;;;;;;;;;:5;;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;10803:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10803:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10803:54:0;10795:90;;;;;-1:-1:-1;;;10795:90:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10795:90:0;;;;;;;;;;;;;;;10693:821;;;10916:10;;5177:7;10910:16;10907:607;;;10947:21;10971:32;5177:7;10971:23;10983:10;;10971:7;:11;;:23;;;;:::i;:32::-;10947:56;-1:-1:-1;11022:21:0;11046:26;:7;10947:56;11046:26;:11;:26;:::i;:::-;11108:14;;11022:50;;-1:-1:-1;11108:33:0;;11022:50;11108:33;:18;:33;:::i;:::-;11091:14;:50;11168:5;;11199:11;;11168:58;;;-1:-1:-1;;;11168:58:0;;11187:10;11168:58;;;;-1:-1:-1;;;;;11199:11:0;;;11168:58;;;;;;;;;;;;:5;;;;;:18;;:58;;;;;;;;;;;;;;:5;;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;11168:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11168:58:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11168:58:0;11160:94;;;;;-1:-1:-1;;;11160:94:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11160:94:0;;;;;;;;;;;;;;;11281:5;;:60;;;-1:-1:-1;;;11281:60:0;;11300:10;11281:60;;;;11320:4;11281:60;;;;;;;;;;;;-1:-1:-1;;;;;11281:5:0;;;;:18;;:60;;;;;;;;;;;;;;;:5;;:60;;;5:2:-1;;;;30:1;27;20:12;5:2;11281:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11281:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11281:60:0;11273:96;;;;;-1:-1:-1;;;11273:96:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11273:96:0;;;;;;;;;;;;;;;10907:607;;;;;11418:5;;11449:11;;11418:52;;;-1:-1:-1;;;11418:52:0;;11437:10;11418:52;;;;-1:-1:-1;;;;;11449:11:0;;;11418:52;;;;;;;;;;;;:5;;;;;:18;;:52;;;;;;;;;;;;;;:5;;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;11418:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11418:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11418:52:0;11410:88;;;;;-1:-1:-1;;;11410:88:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11410:88:0;;;;;;;;;;;;;;;10661:2854;;;11540:7;;5177;11534:13;11531:1984;;;11567:10;;11564:1763;;11603:18;11624:29;5177:7;11624:20;11636:7;;11624;:11;;:20;;;;:::i;:29::-;11603:50;-1:-1:-1;11672:21:0;11696:23;:7;11603:50;11696:23;:11;:23;:::i;:::-;11755:14;;11672:47;;-1:-1:-1;11755:33:0;;11672:47;11755:33;:18;:33;:::i;:::-;11738:14;:50;11821:11;;:27;;11837:10;11821:27;:15;:27;:::i;:::-;11807:11;:41;11875:5;;:58;;;-1:-1:-1;;;11875:58:0;;11894:10;11875:58;;;;11914:5;11875:58;;;;;;;;;;;;-1:-1:-1;;;;;11875:5:0;;;;:18;;:58;;;;;;;;;;;;;;;:5;;:58;;;5:2:-1;;;;30:1;27;20:12;11564:1763:0;12107:10;;5177:7;12101:16;12098:1229;;;12138:18;12159:29;5177:7;12159:20;12171:7;;12159;:11;;:20;;;;:::i;:29::-;12138:50;-1:-1:-1;12207:21:0;12231:23;:7;12138:50;12231:23;:11;:23;:::i;:::-;12207:47;;12273:21;12297:32;5177:7;12297:23;12309:10;;12297:7;:11;;:23;;;;:::i;:32::-;12273:56;-1:-1:-1;12364:32:0;:13;12273:56;12364:32;:17;:32;:::i;:::-;12432:14;;12348:48;;-1:-1:-1;12432:33:0;;12348:48;12432:33;:18;:33;:::i;:::-;12415:14;:50;12498:11;;:27;;12514:10;12498:27;:15;:27;:::i;:::-;12484:11;:41;12552:5;;:58;;;-1:-1:-1;;;12552:58:0;;12571:10;12552:58;;;;12591:5;12552:58;;;;;;;;;;;;-1:-1:-1;;;;;12552:5:0;;;;:18;;:58;;;;;;;;;;;;;;;:5;;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;12552:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12552:58:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12552:58:0;12544:94;;;;;-1:-1:-1;;;12544:94:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12544:94:0;;;;;;;;;;;;;;;12665:5;;12696:11;;12665:58;;;-1:-1:-1;;;12665:58:0;;12684:10;12665:58;;;;-1:-1:-1;;;;;12696:11:0;;;12665:58;;;;;;;;;;;;:5;;;;;:18;;:58;;;;;;;;;;;;;;:5;;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;12665:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12665:58:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12665:58:0;12657:94;;;;;-1:-1:-1;;;12657:94:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12657:94:0;;;;;;;;;;;;;;;12778:5;;:60;;;-1:-1:-1;;;12778:60:0;;12797:10;12778:60;;;;12817:4;12778:60;;;;;;;;;;;;-1:-1:-1;;;;;12778:5:0;;;;:18;;:60;;;;;;;;;;;;;;;:5;;:60;;;5:2:-1;;;;30:1;27;20:12;5:2;12778:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12778:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12778:60:0;12770:96;;;;;-1:-1:-1;;;12770:96:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12770:96:0;;;;;;;;;;;;;;;12098:1229;;;;;;12909:18;12930:29;5177:7;12930:20;12942:7;;12930;:11;;:20;;;;:::i;:29::-;12909:50;-1:-1:-1;12978:21:0;13002:23;:7;12909:50;13002:23;:11;:23;:::i;:::-;13058:11;;12978:47;;-1:-1:-1;13058:27:0;;13074:10;13058:27;:15;:27;:::i;:::-;13044:11;:41;13112:5;;:58;;;-1:-1:-1;;;13112:58:0;;13131:10;13112:58;;;;13151:5;13112:58;;;;;;;;;;;;-1:-1:-1;;;;;13112:5:0;;;;:18;;:58;;;;;;;;;;;;;;;:5;;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;13112:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13112:58:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13112:58:0;13104:94;;;;;-1:-1:-1;;;13104:94:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13104:94:0;;;;;;;;;;;;;;;13225:5;;13256:11;;13225:58;;;-1:-1:-1;;;13225:58:0;;13244:10;13225:58;;;;-1:-1:-1;;;;;13256:11:0;;;13225:58;;;;;;;;;;;;:5;;;;;:18;;:58;;;;;;;;;;;;;;:5;;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;13225:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13225:58:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13225:58:0;13217:94;;;;;-1:-1:-1;;;13217:94:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13217:94:0;;;;;;;;;;;;;;;12098:1229;;11531:1984;;;13373:11;;:24;;13389:7;13373:24;:15;:24;:::i;:::-;13359:11;:38;13420:5;;:55;;;-1:-1:-1;;;13420:55:0;;13439:10;13420:55;;;;13459:5;13420:55;;;;;;;;;;;;-1:-1:-1;;;;;13420:5:0;;;;:18;;:55;;;;;;;;;;;;;;;:5;;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;13420:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13420:55:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13420:55:0;13412:91;;;;;-1:-1:-1;;;13412:91:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13412:91:0;;;;;;;;;;;;;;;-1:-1:-1;13532:4:0;10572:2972;;;:::o;16690:1076::-;16762:13;16800:38;16830:7;16800:25;16810:14;;16800:5;:9;;:25;;;;:::i;:38::-;16788:9;:50;16865:15;16849:13;:31;16921:15;;16911:26;;:5;;:26;:9;:26;:::i;:::-;16893:15;:44;16996:10;16979:28;;;;:16;:28;;;;;;:39;;17012:5;16979:39;:32;:39;:::i;:::-;16965:10;16948:28;;;;:16;:28;;;;;;;;:70;;;;17031:14;:26;;;:39;;:48;;;;;;;;;:::i;:::-;-1:-1:-1;17105:10:0;17090:26;;;;:14;:26;;;;;:40;;;;:49;;;;;:40;:49;;;:::i;:::-;-1:-1:-1;17165:10:0;17150:26;;;;:14;:26;;;;;:38;;:47;;;;;;;;;:::i;:::-;-1:-1:-1;17223:10:0;17208:26;;;;:14;:26;;;;;:39;;17248:46;;17302:5;;17208:39;-1:-1:-1;;17248:50:0;;;17208:91;;;;;;;;;;;;;;;;;:99;;;;17333:10;17318:26;;:14;:26;;;;;;:40;;17359:47;;17414:7;;17318:40;-1:-1:-1;;17359:51:0;;;17318:93;;;;;;;;;;;;;;;;;:103;;;;17447:10;17432:26;;:14;:26;;;;;;:38;;17471:45;;17524:15;;17432:38;-1:-1:-1;;17471:49:0;;;17432:89;;;;;;;;;;;;;;;;;:107;;;;17565:10;17550:26;;:14;:26;;;;;;:34;;;;;;17618:18;;:31;;17641:7;17618:31;:22;:31;:::i;:::-;17597:18;:52;17712:10;17693:30;;;;:18;:30;;;;;;:43;;17728:7;17693:43;:34;:43;:::i;:::-;17679:10;17660:30;;;;:18;:30;;;;;:76;-1:-1:-1;17754:4:0;16690:1076;;;;:::o;5054:23949::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5054:23949:0;;;-1:-1:-1;5054:23949:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://2e956baa52e51912d453fa0ee058f56e7b56ba76a2758a2746c29cd2f1c37ab9
Block Transaction Gas Used Reward
Age Block Fee Address Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading