Contract 0xFd97C61962FF2aE3D08491Db4805E7E46F38C502

Contract Overview

Balance:
186.630996213884925127 AVAX

AVAX Value:
$5,427.23 (@ $29.08/AVAX)
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x5db348456d21cc92dbc702a9b71a4574a42a1a0a9fcf991e8b4c936b4bc6c76dRe Plant A Tree149687712022-05-21 2:42:3222 mins ago0x5216142425f566b822cb445e654e1aaaf78917be IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001453825 25
0xe401c4d2b57315c2715e0832cfcc1e6a2b193b78595d557fa4ef110f4eb6fa96Re Plant A Tree149684912022-05-21 2:33:0132 mins ago0x4ad9261d9c307872e995d2090212130ac50c0e5d IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.00153582073 26.41
0xddd9e722361df8370d1c17720718918e0b51a6428de84ba137a063fd1029cd03Re Plant A Tree149683012022-05-21 2:26:3138 mins ago0xaf3e28efedd472daec225ea8588753904c43d244 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001453825 25
0x65cd3ccbc45d090049fc3409a4f68e03ba5b2bef3277d3c0359d843b19675d7bRe Plant A Tree149671722022-05-21 1:48:421 hr 16 mins ago0x8974f6233225d764680657f28b8368da7d886d61 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001527942 26
0x02e03da65eba389b214b2293804dd554d6f111c97a6bd5b090ea4ef61af88bd3Plant A Tree149656892022-05-21 0:59:172 hrs 6 mins ago0xcca2147d7cf4feb2889e77ce75265509fd18cdaa IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020.425 AVAX0.006745325 25
0xd259ee823bcad470c6e25320956239ccf4d239ccca868aaf2916e67d67218e2cRe Plant A Tree149652882022-05-21 0:45:482 hrs 19 mins ago0x4ad9261d9c307872e995d2090212130ac50c0e5d IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001454025 25
0x6881e3391488f4c818ccf88675e08e605883bce6b0f196acbeee985201f553ddRe Plant A Tree149646362022-05-21 0:24:002 hrs 41 mins ago0x1e5c8f7dafdac3a65424c17730998dcccbac0d62 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001469175 25
0x6e365c0102e81e7864561970530d3611fdcd9a5ff18558644e1bebd44d504662Re Plant A Tree149636702022-05-20 23:51:483 hrs 13 mins ago0x6047314dbd7579e3e3f4d7877181780f8e27d938 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001603134376 27.2795
0xf19eb8d92f058227e1ecc64b5919148bbdf497dc458fc5fcf177ab87ee5c94daRe Plant A Tree149623372022-05-20 23:07:203 hrs 58 mins ago0x51ca6023a2e8a5c6c5ba8c10b5dfd13921e7db9e IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001469175 25
0x8bfd61840e62ef17135aaa4d584cee620fec9f08e125b8dda80af0f1eeeebe98Re Plant A Tree149599842022-05-20 21:48:555 hrs 16 mins ago0xf09726ed347466a4ad4753646d973e0fbe386948 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001469175 25
0x473b7d64331e20af268268f3e02dfcf885dc44dd084aa8f76836cb0370466e71Re Plant A Tree149591872022-05-20 21:22:285 hrs 43 mins ago0x4ad9261d9c307872e995d2090212130ac50c0e5d IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001453825 25
0xc5faa89214a78e677af03a2e5d552f54f42dd1098e6f9bf77152690a8f97c11aRe Plant A Tree149588662022-05-20 21:11:455 hrs 53 mins ago0x9309cf5ac83c9d64891edc7a242ad0c271e882ab IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001469175 25
0x26339a59aa4ece0e09701e00903fb453fbf2dc366c7f1f218965dacf046f32cbRe Plant A Tree149566102022-05-20 19:56:297 hrs 8 mins ago0x657a10dcb4aac6dc36413373282c9c2ce9b84f98 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001453825 25
0xd33bdd7cc4a3a2e32c705baae28f15544a83ff8887176e844daf9e1fd4cf8fc5Re Plant A Tree149565922022-05-20 19:55:567 hrs 9 mins ago0x272e66b96f630391982d4218129c64b4698c7251 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001453825 25
0x6a02c9bdbe4c4e77c5f2ef3ec19afd7e201fe20b4fd76ce95cfb3d141424c6f7Re Plant A Tree149532222022-05-20 18:04:119 hrs 1 min ago0xc6b5c4270bbe014ce9593ab221259e01e4e1baa5 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001454025 25
0xf232f8362649520ae8c5eb62e7cdb9bef1d6014b81bba790b52f6b846e90ce92Re Plant A Tree149500022022-05-20 16:17:2610 hrs 48 mins ago0x4ad9261d9c307872e995d2090212130ac50c0e5d IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001454025 25
0x0f533c26c72cc5fdea420f9844e9a676431b66abcb812713a2d4397c4b9b85a4Re Plant A Tree149498782022-05-20 16:13:1410 hrs 52 mins ago0xef5fd2a252ef3c01cd9aea02f7ffe2fe77acbdd9 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001469175 25
0xbc38b20a9854f9f0a8837ec8182df8ffcd0ed4ece507c20f7cd5d7610857c0ceRe Plant A Tree149496302022-05-20 16:05:0911 hrs ago0xffa2bfc40d9c363bad51df5b971686d1b4fa8ced IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001469175 25
0xf92a42968b5f61804f62b020f070a8f538ee1eb1cb9d8d608996babade007d3aRe Plant A Tree149492652022-05-20 15:53:0311 hrs 12 mins ago0x77a673e3ffadb155011476bb50cce9235d695379 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001454025 25
0x8cbb17d2114fa07279efc8d57fc29bfd428e59e0525704b14434ecfe8672f609Re Plant A Tree149490812022-05-20 15:46:5511 hrs 18 mins ago0x6d16872034e93eb96cdc3e8a41adcd7aa3cb0473 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001469175 25
0xabe4f494efcdda2437abe7063a58e2c3e53340bc7c0d68421db86c00efc5781aRe Plant A Tree149487382022-05-20 15:35:2511 hrs 30 mins ago0x6047314dbd7579e3e3f4d7877181780f8e27d938 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001527942 26
0xd5b4042127b2d42657e17349686d5b121964fbd4aa6d4a969d9a305d831bb235Re Plant A Tree149486322022-05-20 15:31:5411 hrs 33 mins ago0x5992f59a6f062b1ba6f3416469de1bbcc81cea12 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001469175 25
0x4fa24ea6614364cbf937a1c7d2294d817644474b37c396ee784f5f90c93dad7bRe Plant A Tree149482592022-05-20 15:19:3811 hrs 45 mins ago0x554aa7b74ae0bc1bbdcf816a58fa88d7e60a4daa IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001469175 25
0x6fea068c966c8220306d7f5d30e291a30208892b45e5c8523ff918c1dd7dce91Re Plant A Tree149480562022-05-20 15:12:5411 hrs 52 mins ago0x7f9c2d1a0b648db32f26ba5c396a83cae20dcc4c IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001453825 25
0x22411f97c296f33fbee2e5473b2fac6aef2a11e1a761aa2360dc9afcd1bc2d3bRe Plant A Tree149473262022-05-20 14:48:5112 hrs 16 mins ago0x912f022cfe8055d1d6903a06c31c72d4652ff9d3 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001453825 25
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x02e03da65eba389b214b2293804dd554d6f111c97a6bd5b090ea4ef61af88bd3149656892022-05-21 0:59:172 hrs 6 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x5845894560e877fa467d281b6f23447a0fba45b30.00425 AVAX
0x02e03da65eba389b214b2293804dd554d6f111c97a6bd5b090ea4ef61af88bd3149656892022-05-21 0:59:172 hrs 6 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xb69a4f612a8378c64a4153182068479f747891340.00425 AVAX
0x02e03da65eba389b214b2293804dd554d6f111c97a6bd5b090ea4ef61af88bd3149656892022-05-21 0:59:172 hrs 6 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xe836a01baea5a6603d9025ec26739b7a265b983c0.0085 AVAX
0x77977d11d17d879643d45e40be0a3b312a61aa47ff01c8fe958dabbe35bd9573149388212022-05-20 10:08:0216 hrs 57 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x5845894560e877fa467d281b6f23447a0fba45b30.05 AVAX
0x77977d11d17d879643d45e40be0a3b312a61aa47ff01c8fe958dabbe35bd9573149388212022-05-20 10:08:0216 hrs 57 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xb69a4f612a8378c64a4153182068479f747891340.05 AVAX
0x77977d11d17d879643d45e40be0a3b312a61aa47ff01c8fe958dabbe35bd9573149388212022-05-20 10:08:0216 hrs 57 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xe836a01baea5a6603d9025ec26739b7a265b983c0.1 AVAX
0x9b769dd17b03d99ec425b651e7476848c59998159d976f595301d4881d3510f7149352912022-05-20 8:10:3818 hrs 54 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x40a1b35eda3e0600f8504bf94dbb4cb738e2428d0.000512169816237843 AVAX
0x9b769dd17b03d99ec425b651e7476848c59998159d976f595301d4881d3510f7149352912022-05-20 8:10:3818 hrs 54 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x5845894560e877fa467d281b6f23447a0fba45b30.00001969883908607 AVAX
0x9b769dd17b03d99ec425b651e7476848c59998159d976f595301d4881d3510f7149352912022-05-20 8:10:3818 hrs 54 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xb69a4f612a8378c64a4153182068479f747891340.00001969883908607 AVAX
0x9b769dd17b03d99ec425b651e7476848c59998159d976f595301d4881d3510f7149352912022-05-20 8:10:3818 hrs 54 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xe836a01baea5a6603d9025ec26739b7a265b983c0.000039397678172141 AVAX
0x0711c93687c10084ed720ea33dc254cb552ffd130b420f59f70ce4b2f68f468f149138152022-05-19 20:14:251 day 6 hrs ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x5845894560e877fa467d281b6f23447a0fba45b30.01 AVAX
0x0711c93687c10084ed720ea33dc254cb552ffd130b420f59f70ce4b2f68f468f149138152022-05-19 20:14:251 day 6 hrs ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xb69a4f612a8378c64a4153182068479f747891340.01 AVAX
0x0711c93687c10084ed720ea33dc254cb552ffd130b420f59f70ce4b2f68f468f149138152022-05-19 20:14:251 day 6 hrs ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xe836a01baea5a6603d9025ec26739b7a265b983c0.02 AVAX
0xe570b8780a7d25f5c659467a28c3e4798e17116aee56f8cfa9edb9a02e0eb182149089292022-05-19 17:31:051 day 9 hrs ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x5845894560e877fa467d281b6f23447a0fba45b30.001 AVAX
0xe570b8780a7d25f5c659467a28c3e4798e17116aee56f8cfa9edb9a02e0eb182149089292022-05-19 17:31:051 day 9 hrs ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xb69a4f612a8378c64a4153182068479f747891340.001 AVAX
0xe570b8780a7d25f5c659467a28c3e4798e17116aee56f8cfa9edb9a02e0eb182149089292022-05-19 17:31:051 day 9 hrs ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xe836a01baea5a6603d9025ec26739b7a265b983c0.002 AVAX
0x4ec8549a225279c58ed8acf9f5289f41a3263469048d2b24aa8b61d778d97bfd148885762022-05-19 6:17:571 day 20 hrs ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x77835bec64cead9e3cbe0e4cff890c6071e296b30.313105387170822514 AVAX
0x4ec8549a225279c58ed8acf9f5289f41a3263469048d2b24aa8b61d778d97bfd148885762022-05-19 6:17:571 day 20 hrs ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x5845894560e877fa467d281b6f23447a0fba45b30.003261514449696067 AVAX
0x4ec8549a225279c58ed8acf9f5289f41a3263469048d2b24aa8b61d778d97bfd148885762022-05-19 6:17:571 day 20 hrs ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xb69a4f612a8378c64a4153182068479f747891340.003261514449696067 AVAX
0x4ec8549a225279c58ed8acf9f5289f41a3263469048d2b24aa8b61d778d97bfd148885762022-05-19 6:17:571 day 20 hrs ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xe836a01baea5a6603d9025ec26739b7a265b983c0.006523028899392135 AVAX
0x8bd18fcb2119a692bbd1f7e98487c1b5e79eb3139d72ab8fda14da21a296c04d148790602022-05-19 1:00:342 days 2 hrs ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x5845894560e877fa467d281b6f23447a0fba45b30.001 AVAX
0x8bd18fcb2119a692bbd1f7e98487c1b5e79eb3139d72ab8fda14da21a296c04d148790602022-05-19 1:00:342 days 2 hrs ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xb69a4f612a8378c64a4153182068479f747891340.001 AVAX
0x8bd18fcb2119a692bbd1f7e98487c1b5e79eb3139d72ab8fda14da21a296c04d148790602022-05-19 1:00:342 days 2 hrs ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xe836a01baea5a6603d9025ec26739b7a265b983c0.002 AVAX
0xd7fcb8bfc60b8e9bbd3ff0bc537fa1973fa911761003a58469d4e6a50fcf5f4c148754232022-05-18 22:57:232 days 4 hrs ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x5845894560e877fa467d281b6f23447a0fba45b30.001 AVAX
0xd7fcb8bfc60b8e9bbd3ff0bc537fa1973fa911761003a58469d4e6a50fcf5f4c148754232022-05-18 22:57:232 days 4 hrs ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xb69a4f612a8378c64a4153182068479f747891340.001 AVAX
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PlantTrees

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 7: PlantATree.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.11;

import "SafeMath.sol";
import "Pausable.sol";
import "Ownable.sol";
import "Address.sol";
import "Context.sol";
import "Escrow.sol";

    /*                 
    :::::::::  :::            :::     ::::    ::: :::::::::::         :::         ::::::::::: :::::::::  :::::::::: :::::::::: 
    :+:    :+: :+:          :+: :+:   :+:+:   :+:     :+:           :+: :+:           :+:     :+:    :+: :+:        :+:        
    +:+    +:+ +:+         +:+   +:+  :+:+:+  +:+     +:+          +:+   +:+          +:+     +:+    +:+ +:+        +:+        
    +#++:++#+  +#+        +#++:++#++: +#+ +:+ +#+     +#+         +#++:++#++:         +#+     +#++:++#:  +#++:++#   +#++:++#   
    +#+        +#+        +#+     +#+ +#+  +#+#+#     +#+         +#+     +#+         +#+     +#+    +#+ +#+        +#+        
    #+#        #+#        #+#     #+# #+#   #+#+#     #+#         #+#     #+#         #+#     #+#    #+# #+#        #+#        
    ###        ########## ###     ### ###    ####     ###         ###     ###         ###     ###    ### ########## ########## 
    */


contract PlantTrees is Pausable, Ownable {
    
    using SafeMath for uint256;

    bool private initialized = false;
    bool private isCompundingDay = false;
    bool private whiteListCompleted = false;
    uint256 private last48Hours = 2; //2 days

    mapping(address => uint256) private TreesMiners;
    mapping(address => uint256) private claimedTrees;
    mapping(address => uint256) private firstPlantedTrees;
    mapping(address => uint256) private lastPlantedTrees;
    mapping(address => uint256) private lastRePlantedTrees;
    mapping(address => uint256) private totalPlantedValue;
    mapping(address => bool) private lastRefRePlant;
    mapping(address => bool) private whiteList;
    mapping(address => address) private referrals;
    mapping(address => uint256) private referralsUsed;
    mapping(address => uint256) private referralsRewardsTotal;
    uint256 private TreesMarket;

    //Taxes for Harvest action on rePlant days
    //Day 1 90%, Day 2 = 80%, Day 3 = 70%, Day 4 = 50% , Day 5 = 40%, Day 6 = 20% Tax,
    //Day 7 = No extra tax  0%
    //Taxes always goes to Contract
    //Taxes subtract the regulare fees dev 2% , team 1% , Treasury 1%
    uint256[] private EXTRA_TAXES_PERCENTAGES = [90, 80, 70, 50, 40, 20, 0];

    //set a tax if player didnt compound for the last 48 hours on harvest day
    uint256 private Tax_No_RePlant_Last48Hours = 95;

    //to calculate the tree market value
    uint256 private MAX_INVESTMENT = 100000000000000000000 wei; // 100 AVAX
    uint256 private MIN_INVESTMENT = 100000000000000000 wei; // 0.1 AVAX
    uint256 private WL_MIN_INVESTMENT = 1000000000000000000 wei; // 1.0 AVAX
    uint256 private Plant_Trees_1MINERS = 1080000;
    uint256 private TSN = 10000;
    uint256 private TSNH = 5000;

    //regular fees
    //dev 2%, team 1%
    uint256 private Dev_Percentage = 2;
    uint256 private Team_Percentage = 1;
    uint256 private Treasury_Percentage = 1;

    struct FEE {
        uint256 Total;
        uint256 Dev;
        uint256 Team;
        uint256 Treasury;
    }

    address internal PlantATree_CONTRACT_ADDRESS;
    address payable devAddress;
    address payable teamAddress;
    address payable treasuryAddress;

    //pass the fees wallets 
    constructor(
        address payable devAddress_,
        address payable teamAddress_,
        address payable treasuryAddress_
    ) public {
        devAddress = devAddress_;
        teamAddress = teamAddress_;
        treasuryAddress = treasuryAddress_;
    }

    //initialize the contract and set the seed market
    function InitContract() public onlyOwner {
        seedMarket();
        initialized = true;
    }

    function diffTimeSinceFirstPlantTree() public view returns (uint256) {
        return SafeMath.sub(block.timestamp, firstPlantedTrees[msg.sender]);
    }

    function diffTimeSinceLastRePlantTree() public view returns (uint256) {
        return SafeMath.sub(block.timestamp, lastRePlantedTrees[msg.sender]);
    }

    function getMyReferralsUsedCount() public view returns (uint256) {
        return referralsUsed[msg.sender];
    }

    function getMyReferralsRewardsTotal() public view returns (uint256) {
        return referralsRewardsTotal[msg.sender];
    }

    //get the compounding day current tax
    function getCurrentDayExtraTax(bool include48HoursTax)
        public
        view
        returns (uint256)
    {
        //return tax 0 if there no first transaction for the user
        if (firstPlantedTrees[msg.sender] == 0) return 0;

        // diffTime / 60 / 60 / 24; to get the days
        uint256 diffDays = SafeMath.div(
            SafeMath.div(SafeMath.div(diffTimeSinceFirstPlantTree(), 60), 60),
            24
        );
        uint256 dayNumber = SafeMath.mod(diffDays, 7);
        uint256 currentDayTax = EXTRA_TAXES_PERCENTAGES[dayNumber];
        if (include48HoursTax)
            if (hasNoCompoundLast48Hours()) {
                //get higher tax
                if (Tax_No_RePlant_Last48Hours > currentDayTax)
                    currentDayTax = Tax_No_RePlant_Last48Hours;
            }
        return currentDayTax;
    }

    //check last 48 hours if user has one compound atleast
    function hasNoCompoundLast48Hours() public view returns (bool) {
        //return tax 0 if there no last transaction for the user
        if (lastRePlantedTrees[msg.sender] == 0) return false;

        uint256 diffDays = SafeMath.div(
            SafeMath.div(SafeMath.div(diffTimeSinceLastRePlantTree(), 60), 60),
            24
        );

        return (diffDays >= last48Hours);
    }

    //check if the day is for replant or harvest
    function isHarvestDay() public view returns (bool) {
        uint256 tax = getCurrentDayExtraTax(true);
        return (tax == 0);
    }

    //allow everyone to join the contract
    function setWhiteListCompleted() public onlyOwner {
        require(initialized, "Contract not initialized yet");
        require(whiteListCompleted == false, "whiteList is Already Completed");
        //this method only set whiteListCompleted to true forever after whitelist is complete.
        //you can't set it to false forever.
        whiteListCompleted = true;
    }

    //pass array of White List addresses in one function to reduce the gas fee as transaction
    function addWhiteList(address[] memory wls) public onlyOwner {
        require(initialized, "Contract not initialized yet");
        for (uint256 w = 0; w < wls.length; w++) {
            whiteList[wls[w]] = true;
        }
    }

    //remove wrong White List addresses
    function removeWhiteList(address[] memory wls) public onlyOwner {
        require(initialized, "Contract not initialized yet");
        for (uint256 w = 0; w < wls.length; w++) {
            whiteList[wls[w]] = false;
        }
    }

    //Plant A Tree //a deposit value in AVAX
    function PlantATree(address ref) public payable whenNotPaused {
        require(initialized, "Contract not initialized yet");
        require(
            whiteListCompleted == true || whiteList[msg.sender] == true,
            "Your wallet is not White Listed."
        );
        require(
            whiteListCompleted == true ||
                (whiteList[msg.sender] == true &&
                    msg.value >= WL_MIN_INVESTMENT),
            "Minimum investment is 1.0 AVAX for your White List wallet"
        );
        require(msg.value <= MAX_INVESTMENT, "Max investment is 100 AVAX");
        require(msg.value >= MIN_INVESTMENT, "Minimum investment is 0.1 AVAX");

        uint256 treesBought = calculateTreeBuy(
            msg.value,
            SafeMath.sub(address(this).balance, msg.value)
        );

        //total balance value for planted trees
        totalPlantedValue[msg.sender] = SafeMath.add(
            totalPlantedValue[msg.sender],
            msg.value
        );

        //no extra tax on plant A tree
        //always set it to zero
        //because it is a deposit
        FEE memory treeFees = calculateTotalFees(treesBought, 0);
        treesBought = SafeMath.sub(treesBought, treeFees.Total);

        //Dev 2% Team 1% fees and 1% tressuery
        //calculate and transfer fees
        FEE memory fees = calculateTotalFees(msg.value, 0);
        devAddress.transfer(fees.Dev);
        teamAddress.transfer(fees.Team);
        treasuryAddress.transfer(fees.Treasury);

        claimedTrees[msg.sender] = SafeMath.add(
            claimedTrees[msg.sender],
            treesBought
        );

        //set block chain time every time user plant a tree
        firstPlantedTrees[msg.sender] = block.timestamp;

        lastRefRePlant[msg.sender] = false;

        RePlantATree(ref);
    }

    //compound pending rewards
    function RePlantATree(address ref) public {
        require(initialized, "Contract not initialized yet");
        require(
            firstPlantedTrees[msg.sender] > 0,
            "You haven't planted a tree"
        );

        if (ref == msg.sender) {
            ref = address(0);
        }

        if (
            referrals[msg.sender] == address(0) &&
            referrals[msg.sender] != msg.sender
        ) {
            referrals[msg.sender] = ref;
        }

        uint256 treesUsed = getMyTrees();
        uint256 newMiners = SafeMath.div(treesUsed, Plant_Trees_1MINERS);

        TreesMiners[msg.sender] = SafeMath.add(
            TreesMiners[msg.sender],
            newMiners
        );
        claimedTrees[msg.sender] = 0;
        lastPlantedTrees[msg.sender] = block.timestamp;

        //send trees to their referrals only once
        //referral rewards around 12% 
        if (lastRefRePlant[msg.sender] == false) {
            uint256 rewardsCut = SafeMath.div(treesUsed, 8);
            claimedTrees[referrals[msg.sender]] = SafeMath.add(
                claimedTrees[referrals[msg.sender]],
                rewardsCut
            );
            //save referrals used count //save total rewards cut
            if (ref != msg.sender) {
                referralsUsed[referrals[msg.sender]] = SafeMath.add(
                    referralsUsed[referrals[msg.sender]],
                    1
                );
                referralsRewardsTotal[referrals[msg.sender]] = SafeMath.add(
                    referralsRewardsTotal[referrals[msg.sender]],
                    rewardsCut
                );
            }

            lastRefRePlant[msg.sender] = true;
        }

        //boost trees market 20%
        //trees market is the main factor of trees trading math
        TreesMarket = SafeMath.add(TreesMarket, SafeMath.div(treesUsed, 5));

        //save last replanted tree time always
        lastRePlantedTrees[msg.sender] = block.timestamp;
    }

    //claim pending rewards
    function HarvestTrees() public {
        require(initialized, "Contract not initialized yet");

        uint256 hasTrees = getMyTrees();
        require(hasTrees > 0, "You have no trees");

        uint256 treeValue = calculateTreeSell(hasTrees);
        claimedTrees[msg.sender] = 0;
        lastPlantedTrees[msg.sender] = block.timestamp;
        TreesMarket = SafeMath.add(TreesMarket, hasTrees);

        //calculate fees and transfer
        uint256 todayTax = getCurrentDayExtraTax(true);
        FEE memory fees = calculateTotalFees(treeValue, todayTax);

        //transfer fees
        devAddress.transfer(fees.Dev);
        teamAddress.transfer(fees.Team);
        treasuryAddress.transfer(fees.Treasury);

        //reset firstPlantedTrees and lastRePlantedTrees to zero on harvest
        firstPlantedTrees[msg.sender] = block.timestamp;
        lastRePlantedTrees[msg.sender] = block.timestamp;

        payable(msg.sender).transfer(SafeMath.sub(treeValue, fees.Total));
    }

    //get total balance for planted trees
    function totalPlantedBalance() public view returns (uint256) {
        return totalPlantedValue[msg.sender];
    }

    function TreesRewards() public view returns (uint256) {
        uint256 hasTrees = getMyTrees();
        return calculateTreeSell(hasTrees);
    }

    //trade balancing algorithm
    function calculateTrade(
        uint256 rt,
        uint256 rs,
        uint256 bs
    ) public view returns (uint256) {
        return
            SafeMath.div(
                SafeMath.mul(TSN, bs),
                SafeMath.add(
                    TSNH,
                    SafeMath.div(
                        SafeMath.add(
                            SafeMath.mul(TSN, rs),
                            SafeMath.mul(TSNH, rt)
                        ),
                        rt
                    )
                )
            );
    }

    function calculateTreeSell(uint256 trees) public view returns (uint256) {
        return calculateTrade(trees, TreesMarket, address(this).balance);
    }

    function calculateTreeBuy(uint256 eth, uint256 contractBalance)
        public
        view
        returns (uint256)
    {
        return calculateTrade(eth, contractBalance, TreesMarket);
    }

    function calculateTreeBuySimple(uint256 eth) public view returns (uint256) {
        return calculateTreeBuy(eth, address(this).balance);
    }

    function calculateTotalFees(uint256 amount, uint256 extraTaxPercentage)
        private
        view
        returns (FEE memory)
    {
        FEE memory fees;
        //calculate regular fees
        fees.Dev = SafeMath.div(SafeMath.mul(amount, Dev_Percentage), 100);
        fees.Team = SafeMath.div(SafeMath.mul(amount, Team_Percentage), 100);
        fees.Treasury = SafeMath.div(
            SafeMath.mul(amount, Treasury_Percentage),
            100
        );

        //subtract the regular fees from the total fees
        fees.Total = SafeMath.add(
            SafeMath.add(fees.Dev, fees.Team),
            fees.Treasury
        );

        //subtract also the extra taxes from the total fees //they must stay in the contract
        if (extraTaxPercentage > 0) {
            uint256 extraTaxStayValue = SafeMath.div(
                SafeMath.mul(amount, extraTaxPercentage),
                100
            );
            fees.Total = SafeMath.add(fees.Total, extraTaxStayValue);
        }

        return fees;
    }

    function seedMarket() private onlyOwner{
        require(TreesMarket == 0);
        TreesMarket = 108000000000;
    }

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

    function getMyMiners() public view returns (uint256) {
        return TreesMiners[msg.sender];
    }

    function getMyTrees() public view returns (uint256) {
        return
            SafeMath.add(
                claimedTrees[msg.sender],
                getTreesSinceLastPlant(msg.sender)
            );
    }

    function getTreesSinceLastPlant(address adr) public view returns (uint256) {
        uint256 secondsPassed = min(
            Plant_Trees_1MINERS,
            SafeMath.sub(block.timestamp, lastPlantedTrees[adr])
        );
        return SafeMath.mul(secondsPassed, TreesMiners[adr]);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return a < b ? a : b;
    }

    //Only used to prevent new deposits (PlantATree function) during an emergency situation.
    //PauseContract only applies to PlantATree deposit function and no other functions.
    function pauseContract() public onlyOwner {
        _pause();
    }

    function resumeContract() public onlyOwner {
        _unpause();
    }
}

File 2 of 7: Address.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)

pragma solidity ^0.8.1;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     *
     * [IMPORTANT]
     * ====
     * You shouldn't rely on `isContract` to protect against flash loan attacks!
     *
     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
     * constructor.
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize/address.code.length, which returns 0
        // for contracts in construction, since the code is only stored at the end
        // of the constructor execution.

        return account.code.length > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain `call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

File 3 of 7: Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

File 4 of 7: Escrow.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/escrow/Escrow.sol)

pragma solidity ^0.8.0;

import "Ownable.sol";
import "Address.sol";

/**
 * @title Escrow
 * @dev Base escrow contract, holds funds designated for a payee until they
 * withdraw them.
 *
 * Intended usage: This contract (and derived escrow contracts) should be a
 * standalone contract, that only interacts with the contract that instantiated
 * it. That way, it is guaranteed that all Ether will be handled according to
 * the `Escrow` rules, and there is no need to check for payable functions or
 * transfers in the inheritance tree. The contract that uses the escrow as its
 * payment method should be its owner, and provide public methods redirecting
 * to the escrow's deposit and withdraw.
 */
contract Escrow is Ownable {
    using Address for address payable;

    event Deposited(address indexed payee, uint256 weiAmount);
    event Withdrawn(address indexed payee, uint256 weiAmount);

    mapping(address => uint256) private _deposits;

    function depositsOf(address payee) public view returns (uint256) {
        return _deposits[payee];
    }

    /**
     * @dev Stores the sent amount as credit to be withdrawn.
     * @param payee The destination address of the funds.
     */
    function deposit(address payee) public payable virtual onlyOwner {
        uint256 amount = msg.value;
        _deposits[payee] += amount;
        emit Deposited(payee, amount);
    }

    /**
     * @dev Withdraw accumulated balance for a payee, forwarding all gas to the
     * recipient.
     *
     * WARNING: Forwarding all gas opens the door to reentrancy vulnerabilities.
     * Make sure you trust the recipient, or are either following the
     * checks-effects-interactions pattern or using {ReentrancyGuard}.
     *
     * @param payee The address whose funds will be withdrawn and transferred to.
     */
    function withdraw(address payable payee) public virtual onlyOwner {
        uint256 payment = _deposits[payee];

        _deposits[payee] = 0;

        payee.sendValue(payment);

        emit Withdrawn(payee, payment);
    }
}

File 5 of 7: Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

import "Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 6 of 7: Pausable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (security/Pausable.sol)

pragma solidity ^0.8.0;

import "Context.sol";

/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
abstract contract Pausable is Context {
    /**
     * @dev Emitted when the pause is triggered by `account`.
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by `account`.
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     * @dev Initializes the contract in unpaused state.
     */
    constructor() {
        _paused = false;
    }

    /**
     * @dev Returns true if the contract is paused, and false otherwise.
     */
    function paused() public view virtual returns (bool) {
        return _paused;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

File 7 of 7: SafeMath.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (utils/math/SafeMath.sol)

pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"devAddress_","type":"address"},{"internalType":"address payable","name":"teamAddress_","type":"address"},{"internalType":"address payable","name":"treasuryAddress_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"HarvestTrees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"InitContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"PlantATree","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"RePlantATree","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TreesRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wls","type":"address[]"}],"name":"addWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rt","type":"uint256"},{"internalType":"uint256","name":"rs","type":"uint256"},{"internalType":"uint256","name":"bs","type":"uint256"}],"name":"calculateTrade","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"},{"internalType":"uint256","name":"contractBalance","type":"uint256"}],"name":"calculateTreeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"}],"name":"calculateTreeBuySimple","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"trees","type":"uint256"}],"name":"calculateTreeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"diffTimeSinceFirstPlantTree","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"diffTimeSinceLastRePlantTree","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"include48HoursTax","type":"bool"}],"name":"getCurrentDayExtraTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMyMiners","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMyReferralsRewardsTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMyReferralsUsedCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMyTrees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getTreesSinceLastPlant","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasNoCompoundLast48Hours","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isHarvestDay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wls","type":"address[]"}],"name":"removeWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setWhiteListCompleted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalPlantedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405260008060156101000a81548160ff02191690831515021790555060008060166101000a81548160ff02191690831515021790555060008060176101000a81548160ff02191690831515021790555060026001556040518060e00160405280605a60ff168152602001605060ff168152602001604660ff168152602001603260ff168152602001602860ff168152602001601460ff168152602001600060ff16815250600e906007620000b89291906200030b565b50605f600f5568056bc75e2d6310000060105567016345785d8a0000601155670de0b6b3a764000060125562107ac06013556127106014556113886015556002601655600160175560016018553480156200011257600080fd5b5060405162003a0438038062003a048339818101604052810190620001389190620003eb565b60008060006101000a81548160ff02191690831515021790555062000172620001666200023e60201b60201c565b6200024660201b60201c565b82601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000447565b600033905090565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280548282559060005260206000209081019282156200034f579160200282015b828111156200034e578251829060ff169055916020019190600101906200032c565b5b5090506200035e919062000362565b5090565b5b808211156200037d57600081600090555060010162000363565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003b38262000386565b9050919050565b620003c581620003a6565b8114620003d157600080fd5b50565b600081519050620003e581620003ba565b92915050565b60008060006060848603121562000407576200040662000381565b5b60006200041786828701620003d4565b93505060206200042a86828701620003d4565b92505060406200043d86828701620003d4565b9150509250925092565b6135ad80620004576000396000f3fe6080604052600436106101cd5760003560e01c80637e6bcb57116100f7578063c2cfd89f11610095578063df8663b611610064578063df8663b6146105eb578063f2fde38b14610616578063f8ad688f1461063f578063fd41bfe91461067c576101cd565b8063c2cfd89f14610555578063c4b0a2cb14610580578063c4bc5da5146105bd578063d385f658146105d4576101cd565b80638ee46fc2116100d15780638ee46fc2146104bd5780639c9e369f146104e85780639ed5ece4146104ff578063b5cc7d541461052a576101cd565b80637e6bcb571461043c57806381fcfb1f146104675780638da5cb5b14610492576101cd565b8063439766ce1161016f5780636d02995d1161013e5780636d02995d146103a35780636d3e7807146103e0578063715018a6146103fc57806374998b6e14610413576101cd565b8063439766ce146103215780635c975abb146103385780635e1045ec1461036357806366147bd51461038c576101cd565b8063229824c4116101ab578063229824c414610253578063393b6a2d1461029057806339745791146102bb57806342e27936146102e4576101cd565b806305d33675146101d25780630a76e5ed146101fd57806312065fe014610228575b600080fd5b3480156101de57600080fd5b506101e76106b9565b6040516101f491906129ed565b60405180910390f35b34801561020957600080fd5b50610212610709565b60405161021f91906129ed565b60405180910390f35b34801561023457600080fd5b5061023d610750565b60405161024a91906129ed565b60405180910390f35b34801561025f57600080fd5b5061027a60048036038101906102759190612a48565b610758565b60405161028791906129ed565b60405180910390f35b34801561029c57600080fd5b506102a56107ab565b6040516102b29190612ab6565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd9190612c88565b610834565b005b3480156102f057600080fd5b5061030b60048036038101906103069190612cfd565b610994565b60405161031891906129ed565b60405180910390f35b34801561032d57600080fd5b50610336610a73565b005b34801561034457600080fd5b5061034d610af9565b60405161035a9190612ab6565b60405180910390f35b34801561036f57600080fd5b5061038a60048036038101906103859190612c88565b610b0f565b005b34801561039857600080fd5b506103a1610c6f565b005b3480156103af57600080fd5b506103ca60048036038101906103c59190612d2a565b610ffa565b6040516103d791906129ed565b60405180910390f35b6103fa60048036038101906103f59190612d6a565b611011565b005b34801561040857600080fd5b506104116115f1565b005b34801561041f57600080fd5b5061043a60048036038101906104359190612d6a565b611679565b005b34801561044857600080fd5b50610451611f98565b60405161045e91906129ed565b60405180910390f35b34801561047357600080fd5b5061047c611fb4565b60405161048991906129ed565b60405180910390f35b34801561049e57600080fd5b506104a7612004565b6040516104b49190612da6565b60405180910390f35b3480156104c957600080fd5b506104d261202d565b6040516104df91906129ed565b60405180910390f35b3480156104f457600080fd5b506104fd612074565b005b34801561050b57600080fd5b506105146121b2565b60405161052191906129ed565b60405180910390f35b34801561053657600080fd5b5061053f6121f9565b60405161054c9190612ab6565b60405180910390f35b34801561056157600080fd5b5061056a612212565b60405161057791906129ed565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a29190612dc1565b612259565b6040516105b491906129ed565b60405180910390f35b3480156105c957600080fd5b506105d261226f565b005b3480156105e057600080fd5b506105e96122f5565b005b3480156105f757600080fd5b50610600612396565b60405161060d91906129ed565b60405180910390f35b34801561062257600080fd5b5061063d60048036038101906106389190612d6a565b6123ee565b005b34801561064b57600080fd5b5061066660048036038101906106619190612dc1565b6124e6565b60405161067391906129ed565b60405180910390f35b34801561068857600080fd5b506106a3600480360381019061069e9190612d6a565b6124f9565b6040516106b091906129ed565b60405180910390f35b600061070442600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a3565b905090565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b600047905090565b60006107a2610769601454846125b9565b61079d6015546107986107926107816014548a6125b9565b61078d6015548c6125b9565b6125cf565b896125e5565b6125cf565b6125e5565b90509392505050565b600080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156107fd5760009050610831565b600061082561081e610817610810611fb4565b603c6125e5565b603c6125e5565b60186125e5565b90506001548110159150505b90565b61083c6125fb565b73ffffffffffffffffffffffffffffffffffffffff1661085a612004565b73ffffffffffffffffffffffffffffffffffffffff16146108b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a790612e4b565b60405180910390fd5b600060159054906101000a900460ff166108ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f690612eb7565b60405180910390fd5b60005b81518110156109905760006009600084848151811061092457610923612ed7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061098890612f35565b915050610902565b5050565b600080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156109e65760009050610a6e565b6000610a0e610a07610a006109f96106b9565b603c6125e5565b603c6125e5565b60186125e5565b90506000610a1d826007612603565b90506000600e8281548110610a3557610a34612ed7565b5b906000526020600020015490508415610a6757610a506107ab565b15610a665780600f541115610a6557600f5490505b5b5b8093505050505b919050565b610a7b6125fb565b73ffffffffffffffffffffffffffffffffffffffff16610a99612004565b73ffffffffffffffffffffffffffffffffffffffff1614610aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae690612e4b565b60405180910390fd5b610af7612619565b565b60008060009054906101000a900460ff16905090565b610b176125fb565b73ffffffffffffffffffffffffffffffffffffffff16610b35612004565b73ffffffffffffffffffffffffffffffffffffffff1614610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290612e4b565b60405180910390fd5b600060159054906101000a900460ff16610bda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd190612eb7565b60405180910390fd5b60005b8151811015610c6b57600160096000848481518110610bff57610bfe612ed7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c6390612f35565b915050610bdd565b5050565b600060159054906101000a900460ff16610cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb590612eb7565b60405180910390fd5b6000610cc8612396565b905060008111610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0490612fca565b60405180910390fd5b6000610d1882612259565b90506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610daf600d54836125cf565b600d819055506000610dc16001610994565b90506000610dcf83836126bb565b9050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc82602001519081150290604051600060405180830381858888f19350505050158015610e3d573d6000803e3d6000fd5b50601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc82604001519081150290604051600060405180830381858888f19350505050158015610eaa573d6000803e3d6000fd5b50601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc82606001519081150290604051600060405180830381858888f19350505050158015610f17573d6000803e3d6000fd5b5042600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc610fc88584600001516125a3565b9081150290604051600060405180830381858888f19350505050158015610ff3573d6000803e3d6000fd5b5050505050565b60006110098383600d54610758565b905092915050565b611019610af9565b15611059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105090613036565b60405180910390fd5b600060159054906101000a900460ff166110a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109f90612eb7565b60405180910390fd5b60011515600060179054906101000a900460ff161515148061111a575060011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b611159576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611150906130a2565b60405180910390fd5b60011515600060179054906101000a900460ff16151514806111d9575060011515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480156111d857506012543410155b5b611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120f90613134565b60405180910390fd5b60105434111561125d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611254906131a0565b60405180910390fd5b6011543410156112a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112999061320c565b60405180910390fd5b60006112b7346112b247346125a3565b610ffa565b9050611302600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054346125cf565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006113528260006126bb565b90506113628282600001516125a3565b915060006113713460006126bb565b9050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc82602001519081150290604051600060405180830381858888f193505050501580156113df573d6000803e3d6000fd5b50601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc82604001519081150290604051600060405180830381858888f1935050505015801561144c573d6000803e3d6000fd5b50601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc82606001519081150290604051600060405180830381858888f193505050501580156114b9573d6000803e3d6000fd5b50611503600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846125cf565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506115eb84611679565b50505050565b6115f96125fb565b73ffffffffffffffffffffffffffffffffffffffff16611617612004565b73ffffffffffffffffffffffffffffffffffffffff161461166d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166490612e4b565b60405180910390fd5b6116776000612794565b565b600060159054906101000a900460ff166116c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bf90612eb7565b60405180910390fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161174a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174190613278565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561178357600090505b600073ffffffffffffffffffffffffffffffffffffffff16600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156118a957503373ffffffffffffffffffffffffffffffffffffffff16600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561192d5780600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6000611937612396565b90506000611947826013546125e5565b9050611992600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826125cf565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060001515600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611f33576000611ac48360086125e5565b9050611b6e60036000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826125cf565b60036000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611ed957611cec600b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016125cf565b600b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e36600c6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826125cf565b600c6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505b611f49600d54611f448460056125e5565b6125cf565b600d8190555042600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600080611fa3612396565b9050611fae81612259565b91505090565b6000611fff42600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a3565b905090565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b61207c6125fb565b73ffffffffffffffffffffffffffffffffffffffff1661209a612004565b73ffffffffffffffffffffffffffffffffffffffff16146120f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e790612e4b565b60405180910390fd5b600060159054906101000a900460ff1661213f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213690612eb7565b60405180910390fd5b60001515600060179054906101000a900460ff16151514612195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218c906132e4565b60405180910390fd5b6001600060176101000a81548160ff021916908315150217905550565b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000806122066001610994565b90506000811491505090565b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b600061226882600d5447610758565b9050919050565b6122776125fb565b73ffffffffffffffffffffffffffffffffffffffff16612295612004565b73ffffffffffffffffffffffffffffffffffffffff16146122eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e290612e4b565b60405180910390fd5b6122f3612859565b565b6122fd6125fb565b73ffffffffffffffffffffffffffffffffffffffff1661231b612004565b73ffffffffffffffffffffffffffffffffffffffff1614612371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236890612e4b565b60405180910390fd5b6123796128fa565b6001600060156101000a81548160ff021916908315150217905550565b60006123e9600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e4336124f9565b6125cf565b905090565b6123f66125fb565b73ffffffffffffffffffffffffffffffffffffffff16612414612004565b73ffffffffffffffffffffffffffffffffffffffff161461246a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246190612e4b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d190613376565b60405180910390fd5b6124e381612794565b50565b60006124f28247610ffa565b9050919050565b60008061255060135461254b42600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a3565b612993565b905061259b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b9565b915050919050565b600081836125b19190613396565b905092915050565b600081836125c791906133ca565b905092915050565b600081836125dd9190613424565b905092915050565b600081836125f391906134a9565b905092915050565b600033905090565b6000818361261191906134da565b905092915050565b612621610af9565b15612661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265890613036565b60405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586126a46125fb565b6040516126b19190612da6565b60405180910390a1565b6126c36129ac565b6126cb6129ac565b6126e16126da856016546125b9565b60646125e5565b8160200181815250506127006126f9856017546125b9565b60646125e5565b81604001818152505061271f612718856018546125b9565b60646125e5565b81606001818152505061274761273d826020015183604001516125cf565b82606001516125cf565b816000018181525050600083111561278a57600061276f61276886866125b9565b60646125e5565b905061277f8260000151826125cf565b826000018181525050505b8091505092915050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612861610af9565b6128a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289790613557565b60405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6128e36125fb565b6040516128f09190612da6565b60405180910390a1565b6129026125fb565b73ffffffffffffffffffffffffffffffffffffffff16612920612004565b73ffffffffffffffffffffffffffffffffffffffff1614612976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296d90612e4b565b60405180910390fd5b6000600d541461298557600080fd5b6419254d3800600d81905550565b60008183106129a257816129a4565b825b905092915050565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b6000819050919050565b6129e7816129d4565b82525050565b6000602082019050612a0260008301846129de565b92915050565b6000604051905090565b600080fd5b600080fd5b612a25816129d4565b8114612a3057600080fd5b50565b600081359050612a4281612a1c565b92915050565b600080600060608486031215612a6157612a60612a12565b5b6000612a6f86828701612a33565b9350506020612a8086828701612a33565b9250506040612a9186828701612a33565b9150509250925092565b60008115159050919050565b612ab081612a9b565b82525050565b6000602082019050612acb6000830184612aa7565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612b1f82612ad6565b810181811067ffffffffffffffff82111715612b3e57612b3d612ae7565b5b80604052505050565b6000612b51612a08565b9050612b5d8282612b16565b919050565b600067ffffffffffffffff821115612b7d57612b7c612ae7565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bbe82612b93565b9050919050565b612bce81612bb3565b8114612bd957600080fd5b50565b600081359050612beb81612bc5565b92915050565b6000612c04612bff84612b62565b612b47565b90508083825260208201905060208402830185811115612c2757612c26612b8e565b5b835b81811015612c505780612c3c8882612bdc565b845260208401935050602081019050612c29565b5050509392505050565b600082601f830112612c6f57612c6e612ad1565b5b8135612c7f848260208601612bf1565b91505092915050565b600060208284031215612c9e57612c9d612a12565b5b600082013567ffffffffffffffff811115612cbc57612cbb612a17565b5b612cc884828501612c5a565b91505092915050565b612cda81612a9b565b8114612ce557600080fd5b50565b600081359050612cf781612cd1565b92915050565b600060208284031215612d1357612d12612a12565b5b6000612d2184828501612ce8565b91505092915050565b60008060408385031215612d4157612d40612a12565b5b6000612d4f85828601612a33565b9250506020612d6085828601612a33565b9150509250929050565b600060208284031215612d8057612d7f612a12565b5b6000612d8e84828501612bdc565b91505092915050565b612da081612bb3565b82525050565b6000602082019050612dbb6000830184612d97565b92915050565b600060208284031215612dd757612dd6612a12565b5b6000612de584828501612a33565b91505092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e35602083612dee565b9150612e4082612dff565b602082019050919050565b60006020820190508181036000830152612e6481612e28565b9050919050565b7f436f6e7472616374206e6f7420696e697469616c697a65642079657400000000600082015250565b6000612ea1601c83612dee565b9150612eac82612e6b565b602082019050919050565b60006020820190508181036000830152612ed081612e94565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f40826129d4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f7357612f72612f06565b5b600182019050919050565b7f596f752068617665206e6f207472656573000000000000000000000000000000600082015250565b6000612fb4601183612dee565b9150612fbf82612f7e565b602082019050919050565b60006020820190508181036000830152612fe381612fa7565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613020601083612dee565b915061302b82612fea565b602082019050919050565b6000602082019050818103600083015261304f81613013565b9050919050565b7f596f75722077616c6c6574206973206e6f74205768697465204c69737465642e600082015250565b600061308c602083612dee565b915061309782613056565b602082019050919050565b600060208201905081810360008301526130bb8161307f565b9050919050565b7f4d696e696d756d20696e766573746d656e7420697320312e302041564158206660008201527f6f7220796f7572205768697465204c6973742077616c6c657400000000000000602082015250565b600061311e603983612dee565b9150613129826130c2565b604082019050919050565b6000602082019050818103600083015261314d81613111565b9050919050565b7f4d617820696e766573746d656e74206973203130302041564158000000000000600082015250565b600061318a601a83612dee565b915061319582613154565b602082019050919050565b600060208201905081810360008301526131b98161317d565b9050919050565b7f4d696e696d756d20696e766573746d656e7420697320302e3120415641580000600082015250565b60006131f6601e83612dee565b9150613201826131c0565b602082019050919050565b60006020820190508181036000830152613225816131e9565b9050919050565b7f596f7520686176656e277420706c616e74656420612074726565000000000000600082015250565b6000613262601a83612dee565b915061326d8261322c565b602082019050919050565b6000602082019050818103600083015261329181613255565b9050919050565b7f77686974654c69737420697320416c726561647920436f6d706c657465640000600082015250565b60006132ce601e83612dee565b91506132d982613298565b602082019050919050565b600060208201905081810360008301526132fd816132c1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613360602683612dee565b915061336b82613304565b604082019050919050565b6000602082019050818103600083015261338f81613353565b9050919050565b60006133a1826129d4565b91506133ac836129d4565b9250828210156133bf576133be612f06565b5b828203905092915050565b60006133d5826129d4565b91506133e0836129d4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561341957613418612f06565b5b828202905092915050565b600061342f826129d4565b915061343a836129d4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561346f5761346e612f06565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006134b4826129d4565b91506134bf836129d4565b9250826134cf576134ce61347a565b5b828204905092915050565b60006134e5826129d4565b91506134f0836129d4565b925082613500576134ff61347a565b5b828206905092915050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613541601483612dee565b915061354c8261350b565b602082019050919050565b6000602082019050818103600083015261357081613534565b905091905056fea2646970667358221220d537bb9bf72b25ca41667b7c93cfa84ff5907c03f781845abd5bed0a1ad7e0b664736f6c634300080b0033000000000000000000000000e836a01baea5a6603d9025ec26739b7a265b983c000000000000000000000000b69a4f612a8378c64a4153182068479f747891340000000000000000000000005845894560e877fa467d281b6f23447a0fba45b3

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

000000000000000000000000e836a01baea5a6603d9025ec26739b7a265b983c000000000000000000000000b69a4f612a8378c64a4153182068479f747891340000000000000000000000005845894560e877fa467d281b6f23447a0fba45b3

-----Decoded View---------------
Arg [0] : devAddress_ (address): 0xe836a01baea5a6603d9025ec26739b7a265b983c
Arg [1] : teamAddress_ (address): 0xb69a4f612a8378c64a4153182068479f74789134
Arg [2] : treasuryAddress_ (address): 0x5845894560e877fa467d281b6f23447a0fba45b3

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000e836a01baea5a6603d9025ec26739b7a265b983c
Arg [1] : 000000000000000000000000b69a4f612a8378c64a4153182068479f74789134
Arg [2] : 0000000000000000000000005845894560e877fa467d281b6f23447a0fba45b3


Deployed ByteCode Sourcemap

1141:14870:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3879:155;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14927:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14820:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12526:565;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5447:399;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6860:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4509:870;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15859:69;;;;;;;;;;;;;:::i;:::-;;1128:86:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6577:234:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11147:1014;;;;;;;;;;;;;:::i;:::-;;13262:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7152:1877;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1712:103:3;;;;;;;;;;;;;:::i;:::-;;9069:2041:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12336:149;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4042:157;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1061:87:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4207:116:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6094:380;;;;;;;;;;;;;:::i;:::-;;12212:116;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5904:139;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4331:127;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13099:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15936:72;;;;;;;;;;;;;:::i;:::-;;3770:101;;;;;;;;;;;;;:::i;:::-;;15037:214;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1970:201:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13471:145:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15259:296;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3879:155;3939:7;3966:60;3979:15;3996:17;:29;4014:10;3996:29;;;;;;;;;;;;;;;;3966:12;:60::i;:::-;3959:67;;3879:155;:::o;14927:102::-;14971:7;14998:11;:23;15010:10;14998:23;;;;;;;;;;;;;;;;14991:30;;14927:102;:::o;14820:99::-;14863:7;14890:21;14883:28;;14820:99;:::o;12526:565::-;12641:7;12681:402;12712:21;12725:3;;12730:2;12712:12;:21::i;:::-;12752:316;12787:4;;12814:235;12853:144;12896:21;12909:3;;12914:2;12896:12;:21::i;:::-;12948:22;12961:4;;12967:2;12948:12;:22::i;:::-;12853:12;:144::i;:::-;13024:2;12814:12;:235::i;:::-;12752:12;:316::i;:::-;12681:12;:402::i;:::-;12661:422;;12526:565;;;;;:::o;5447:399::-;5504:4;5625:1;5591:18;:30;5610:10;5591:30;;;;;;;;;;;;;;;;:35;5587:53;;;5635:5;5628:12;;;;5587:53;5653:16;5672:121;5699:66;5712:48;5725:30;:28;:30::i;:::-;5757:2;5712:12;:48::i;:::-;5762:2;5699:12;:66::i;:::-;5780:2;5672:12;:121::i;:::-;5653:140;;5826:11;;5814:8;:23;;5806:32;;;5447:399;;:::o;6860:238::-;1292:12:3;:10;:12::i;:::-;1281:23;;:7;:5;:7::i;:::-;:23;;;1273:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6943:11:5::1;;;;;;;;;;;6935:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;7003:9;6998:93;7022:3;:10;7018:1;:14;6998:93;;;7074:5;7054:9;:17;7064:3;7068:1;7064:6;;;;;;;;:::i;:::-;;;;;;;;7054:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;7034:3;;;;;:::i;:::-;;;;6998:93;;;;6860:238:::0;:::o;4509:870::-;4612:7;4741:1;4708:17;:29;4726:10;4708:29;;;;;;;;;;;;;;;;:34;4704:48;;;4751:1;4744:8;;;;4704:48;4818:16;4837:120;4864:65;4877:47;4890:29;:27;:29::i;:::-;4921:2;4877:12;:47::i;:::-;4926:2;4864:12;:65::i;:::-;4944:2;4837:12;:120::i;:::-;4818:139;;4968:17;4988:25;5001:8;5011:1;4988:12;:25::i;:::-;4968:45;;5024:21;5048:23;5072:9;5048:34;;;;;;;;:::i;:::-;;;;;;;;;;5024:58;;5097:17;5093:248;;;5133:26;:24;:26::i;:::-;5129:212;;;5247:13;5218:26;;:42;5214:111;;;5299:26;;5283:42;;5214:111;5129:212;5093:248;5358:13;5351:20;;;;;4509:870;;;;:::o;15859:69::-;1292:12:3;:10;:12::i;:::-;1281:23;;:7;:5;:7::i;:::-;:23;;;1273:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15912:8:5::1;:6;:8::i;:::-;15859:69::o:0;1128:86:4:-;1175:4;1199:7;;;;;;;;;;;1192:14;;1128:86;:::o;6577:234:5:-;1292:12:3;:10;:12::i;:::-;1281:23;;:7;:5;:7::i;:::-;:23;;;1273:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6657:11:5::1;;;;;;;;;;;6649:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;6717:9;6712:92;6736:3;:10;6732:1;:14;6712:92;;;6788:4;6768:9;:17;6778:3;6782:1;6778:6;;;;;;;;:::i;:::-;;;;;;;;6768:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;6748:3;;;;;:::i;:::-;;;;6712:92;;;;6577:234:::0;:::o;11147:1014::-;11197:11;;;;;;;;;;;11189:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;11254:16;11273:12;:10;:12::i;:::-;11254:31;;11315:1;11304:8;:12;11296:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;11351:17;11371:27;11389:8;11371:17;:27::i;:::-;11351:47;;11436:1;11409:12;:24;11422:10;11409:24;;;;;;;;;;;;;;;:28;;;;11479:15;11448:16;:28;11465:10;11448:28;;;;;;;;;;;;;;;:46;;;;11519:35;11532:11;;11545:8;11519:12;:35::i;:::-;11505:11;:49;;;;11606:16;11625:27;11647:4;11625:21;:27::i;:::-;11606:46;;11663:15;11681:39;11700:9;11711:8;11681:18;:39::i;:::-;11663:57;;11758:10;;;;;;;;;;;:19;;:29;11778:4;:8;;;11758:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11798:11;;;;;;;;;;;:20;;:31;11819:4;:9;;;11798:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11840:15;;;;;;;;;;;:24;;:39;11865:4;:13;;;11840:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12001:15;11969:17;:29;11987:10;11969:29;;;;;;;;;;;;;;;:47;;;;12060:15;12027:18;:30;12046:10;12027:30;;;;;;;;;;;;;;;:48;;;;12096:10;12088:28;;:65;12117:35;12130:9;12141:4;:10;;;12117:12;:35::i;:::-;12088:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11178:983;;;;11147:1014::o;13262:201::-;13374:7;13406:49;13421:3;13426:15;13443:11;;13406:14;:49::i;:::-;13399:56;;13262:201;;;;:::o;7152:1877::-;1454:8:4;:6;:8::i;:::-;1453:9;1445:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7233:11:5::1;;;;;;;;;;;7225:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;7332:4;7310:26;;:18;;;;;;;;;;;:26;;;:59;;;;7365:4;7340:29;;:9;:21;7350:10;7340:21;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;7310:59;7288:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;7484:4;7462:26;;:18;;;;;;;;;;;:26;;;:133;;;;7535:4;7510:29;;:9;:21;7520:10;7510:21;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;:84;;;;;7577:17;;7564:9;:30;;7510:84;7462:133;7440:240;;;;;;;;;;;;:::i;:::-;;;;;;;;;7712:14;;7699:9;:27;;7691:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;7789:14;;7776:9;:27;;7768:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7851:19;7873:112;7904:9;7928:46;7941:21;7964:9;7928:12;:46::i;:::-;7873:16;:112::i;:::-;7851:134;;8079:91;8106:17;:29;8124:10;8106:29;;;;;;;;;;;;;;;;8150:9;8079:12;:91::i;:::-;8047:17;:29;8065:10;8047:29;;;;;;;;;;;;;;;:123;;;;8291:19;8313:34;8332:11;8345:1;8313:18;:34::i;:::-;8291:56;;8372:41;8385:11;8398:8;:14;;;8372:12;:41::i;:::-;8358:55;;8513:15;8531:32;8550:9;8561:1;8531:18;:32::i;:::-;8513:50;;8574:10;;;;;;;;;;;:19;;:29;8594:4;:8;;;8574:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;8614:11;;;;;;;;;;;:20;;:31;8635:4;:9;;;8614:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;8656:15;;;;;;;;;;;:24;;:39;8681:4;:13;;;8656:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;8735:88;8762:12;:24;8775:10;8762:24;;;;;;;;;;;;;;;;8801:11;8735:12;:88::i;:::-;8708:12;:24;8721:10;8708:24;;;;;;;;;;;;;;;:115;;;;8929:15;8897:17;:29;8915:10;8897:29;;;;;;;;;;;;;;;:47;;;;8986:5;8957:14;:26;8972:10;8957:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;9004:17;9017:3;9004:12;:17::i;:::-;7214:1815;;;7152:1877:::0;:::o;1712:103:3:-;1292:12;:10;:12::i;:::-;1281:23;;:7;:5;:7::i;:::-;:23;;;1273:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1777:30:::1;1804:1;1777:18;:30::i;:::-;1712:103::o:0;9069:2041:5:-;9130:11;;;;;;;;;;;9122:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;9239:1;9207:17;:29;9225:10;9207:29;;;;;;;;;;;;;;;;:33;9185:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;9318:10;9311:17;;:3;:17;;;9307:66;;;9359:1;9345:16;;9307:66;9436:1;9403:35;;:9;:21;9413:10;9403:21;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;:87;;;;;9480:10;9455:35;;:9;:21;9465:10;9455:21;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;;9403:87;9385:171;;;9541:3;9517:9;:21;9527:10;9517:21;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;9385:171;9568:17;9588:12;:10;:12::i;:::-;9568:32;;9611:17;9631:44;9644:9;9655:19;;9631:12;:44::i;:::-;9611:64;;9714:85;9741:11;:23;9753:10;9741:23;;;;;;;;;;;;;;;;9779:9;9714:12;:85::i;:::-;9688:11;:23;9700:10;9688:23;;;;;;;;;;;;;;;:111;;;;9837:1;9810:12;:24;9823:10;9810:24;;;;;;;;;;;;;;;:28;;;;9880:15;9849:16;:28;9866:10;9849:28;;;;;;;;;;;;;;;:46;;;;10033:5;10003:35;;:14;:26;10018:10;10003:26;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;9999:816;;;10055:18;10076:26;10089:9;10100:1;10076:12;:26::i;:::-;10055:47;;10155:110;10186:12;:35;10199:9;:21;10209:10;10199:21;;;;;;;;;;;;;;;;;;;;;;;;;10186:35;;;;;;;;;;;;;;;;10240:10;10155:12;:110::i;:::-;10117:12;:35;10130:9;:21;10140:10;10130:21;;;;;;;;;;;;;;;;;;;;;;;;;10117:35;;;;;;;;;;;;;;;:148;;;;10357:10;10350:17;;:3;:17;;;10346:408;;10427:114;10462:13;:36;10476:9;:21;10486:10;10476:21;;;;;;;;;;;;;;;;;;;;;;;;;10462:36;;;;;;;;;;;;;;;;10521:1;10427:12;:114::i;:::-;10388:13;:36;10402:9;:21;10412:10;10402:21;;;;;;;;;;;;;;;;;;;;;;;;;10388:36;;;;;;;;;;;;;;;:153;;;;10607:131;10642:21;:44;10664:9;:21;10674:10;10664:21;;;;;;;;;;;;;;;;;;;;;;;;;10642:44;;;;;;;;;;;;;;;;10709:10;10607:12;:131::i;:::-;10560:21;:44;10582:9;:21;10592:10;10582:21;;;;;;;;;;;;;;;;;;;;;;;;;10560:44;;;;;;;;;;;;;;;:178;;;;10346:408;10799:4;10770:14;:26;10785:10;10770:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;10040:775;9999:816;10940:53;10953:11;;10966:26;10979:9;10990:1;10966:12;:26::i;:::-;10940:12;:53::i;:::-;10926:11;:67;;;;11087:15;11054:18;:30;11073:10;11054:30;;;;;;;;;;;;;;;:48;;;;9111:1999;;9069:2041;:::o;12336:149::-;12381:7;12401:16;12420:12;:10;:12::i;:::-;12401:31;;12450:27;12468:8;12450:17;:27::i;:::-;12443:34;;;12336:149;:::o;4042:157::-;4103:7;4130:61;4143:15;4160:18;:30;4179:10;4160:30;;;;;;;;;;;;;;;;4130:12;:61::i;:::-;4123:68;;4042:157;:::o;1061:87:3:-;1107:7;1134:6;;;;;;;;;;;1127:13;;1061:87;:::o;4207:116:5:-;4263:7;4290:13;:25;4304:10;4290:25;;;;;;;;;;;;;;;;4283:32;;4207:116;:::o;6094:380::-;1292:12:3;:10;:12::i;:::-;1281:23;;:7;:5;:7::i;:::-;:23;;;1273:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6163:11:5::1;;;;;;;;;;;6155:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;6248:5;6226:27;;:18;;;;;;;;;;;:27;;;6218:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6462:4;6441:18;;:25;;;;;;;;;;;;;;;;;;6094:380::o:0;12212:116::-;12264:7;12291:17;:29;12309:10;12291:29;;;;;;;;;;;;;;;;12284:36;;12212:116;:::o;5904:139::-;5949:4;5966:11;5980:27;6002:4;5980:21;:27::i;:::-;5966:41;;6033:1;6026:3;:8;6018:17;;;5904:139;:::o;4331:127::-;4390:7;4417:21;:33;4439:10;4417:33;;;;;;;;;;;;;;;;4410:40;;4331:127;:::o;13099:155::-;13162:7;13189:57;13204:5;13211:11;;13224:21;13189:14;:57::i;:::-;13182:64;;13099:155;;;:::o;15936:72::-;1292:12:3;:10;:12::i;:::-;1281:23;;:7;:5;:7::i;:::-;:23;;;1273:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15990:10:5::1;:8;:10::i;:::-;15936:72::o:0;3770:101::-;1292:12:3;:10;:12::i;:::-;1281:23;;:7;:5;:7::i;:::-;:23;;;1273:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3822:12:5::1;:10;:12::i;:::-;3859:4;3845:11;;:18;;;;;;;;;;;;;;;;;;3770:101::o:0;15037:214::-;15080:7;15120:123;15151:12;:24;15164:10;15151:24;;;;;;;;;;;;;;;;15194:34;15217:10;15194:22;:34::i;:::-;15120:12;:123::i;:::-;15100:143;;15037:214;:::o;1970:201:3:-;1292:12;:10;:12::i;:::-;1281:23;;:7;:5;:7::i;:::-;:23;;;1273:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2079:1:::1;2059:22;;:8;:22;;;;2051:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2135:28;2154:8;2135:18;:28::i;:::-;1970:201:::0;:::o;13471:145:5:-;13537:7;13564:44;13581:3;13586:21;13564:16;:44::i;:::-;13557:51;;13471:145;;;:::o;15259:296::-;15325:7;15345:21;15369:115;15387:19;;15421:52;15434:15;15451:16;:21;15468:3;15451:21;;;;;;;;;;;;;;;;15421:12;:52::i;:::-;15369:3;:115::i;:::-;15345:139;;15502:45;15515:13;15530:11;:16;15542:3;15530:16;;;;;;;;;;;;;;;;15502:12;:45::i;:::-;15495:52;;;15259:296;;;:::o;3228:98:6:-;3286:7;3317:1;3313;:5;;;;:::i;:::-;3306:12;;3228:98;;;;:::o;3585:::-;3643:7;3674:1;3670;:5;;;;:::i;:::-;3663:12;;3585:98;;;;:::o;2847:::-;2905:7;2936:1;2932;:5;;;;:::i;:::-;2925:12;;2847:98;;;;:::o;3984:::-;4042:7;4073:1;4069;:5;;;;:::i;:::-;4062:12;;3984:98;;;;:::o;656::1:-;709:7;736:10;729:17;;656:98;:::o;4549::6:-;4607:7;4638:1;4634;:5;;;;:::i;:::-;4627:12;;4549:98;;;;:::o;1928:118:4:-;1454:8;:6;:8::i;:::-;1453:9;1445:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;1998:4:::1;1988:7;::::0;:14:::1;;;;;;;;;;;;;;;;;;2018:20;2025:12;:10;:12::i;:::-;2018:20;;;;;;:::i;:::-;;;;;;;;1928:118::o:0;13624:1060:5:-;13745:10;;:::i;:::-;13773:15;;:::i;:::-;13844:55;13857:36;13870:6;13878:14;;13857:12;:36::i;:::-;13895:3;13844:12;:55::i;:::-;13833:4;:8;;:66;;;;;13922:56;13935:37;13948:6;13956:15;;13935:12;:37::i;:::-;13974:3;13922:12;:56::i;:::-;13910:4;:9;;:68;;;;;14005:97;14032:41;14045:6;14053:19;;14032:12;:41::i;:::-;14088:3;14005:12;:97::i;:::-;13989:4;:13;;:113;;;;;14185:99;14212:33;14225:4;:8;;;14235:4;:9;;;14212:12;:33::i;:::-;14260:4;:13;;;14185:12;:99::i;:::-;14172:4;:10;;:112;;;;;14416:1;14395:18;:22;14391:262;;;14434:25;14462:108;14493:40;14506:6;14514:18;14493:12;:40::i;:::-;14552:3;14462:12;:108::i;:::-;14434:136;;14598:43;14611:4;:10;;;14623:17;14598:12;:43::i;:::-;14585:4;:10;;:56;;;;;14419:234;14391:262;14672:4;14665:11;;;13624:1060;;;;:::o;2331:191:3:-;2405:16;2424:6;;;;;;;;;;;2405:25;;2450:8;2441:6;;:17;;;;;;;;;;;;;;;;;;2505:8;2474:40;;2495:8;2474:40;;;;;;;;;;;;2394:128;2331:191;:::o;2187:120:4:-;1731:8;:6;:8::i;:::-;1723:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2256:5:::1;2246:7:::0;::::1;:15;;;;;;;;;;;;;;;;;;2277:22;2286:12;:10;:12::i;:::-;2277:22;;;;;;:::i;:::-;;;;;;;;2187:120::o:0;14692::5:-;1292:12:3;:10;:12::i;:::-;1281:23;;:7;:5;:7::i;:::-;:23;;;1273:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14765:1:5::1;14750:11;;:16;14742:25;;;::::0;::::1;;14792:12;14778:11;:26;;;;14692:120::o:0;15563:105::-;15620:7;15651:1;15647;:5;:13;;15659:1;15647:13;;;15655:1;15647:13;15640:20;;15563:105;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:77:7:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:75::-;475:6;508:2;502:9;492:19;;442:75;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:619::-;1119:6;1127;1135;1184:2;1172:9;1163:7;1159:23;1155:32;1152:119;;;1190:79;;:::i;:::-;1152:119;1310:1;1335:53;1380:7;1371:6;1360:9;1356:22;1335:53;:::i;:::-;1325:63;;1281:117;1437:2;1463:53;1508:7;1499:6;1488:9;1484:22;1463:53;:::i;:::-;1453:63;;1408:118;1565:2;1591:53;1636:7;1627:6;1616:9;1612:22;1591:53;:::i;:::-;1581:63;;1536:118;1042:619;;;;;:::o;1667:90::-;1701:7;1744:5;1737:13;1730:21;1719:32;;1667:90;;;:::o;1763:109::-;1844:21;1859:5;1844:21;:::i;:::-;1839:3;1832:34;1763:109;;:::o;1878:210::-;1965:4;2003:2;1992:9;1988:18;1980:26;;2016:65;2078:1;2067:9;2063:17;2054:6;2016:65;:::i;:::-;1878:210;;;;:::o;2094:117::-;2203:1;2200;2193:12;2217:102;2258:6;2309:2;2305:7;2300:2;2293:5;2289:14;2285:28;2275:38;;2217:102;;;:::o;2325:180::-;2373:77;2370:1;2363:88;2470:4;2467:1;2460:15;2494:4;2491:1;2484:15;2511:281;2594:27;2616:4;2594:27;:::i;:::-;2586:6;2582:40;2724:6;2712:10;2709:22;2688:18;2676:10;2673:34;2670:62;2667:88;;;2735:18;;:::i;:::-;2667:88;2775:10;2771:2;2764:22;2554:238;2511:281;;:::o;2798:129::-;2832:6;2859:20;;:::i;:::-;2849:30;;2888:33;2916:4;2908:6;2888:33;:::i;:::-;2798:129;;;:::o;2933:311::-;3010:4;3100:18;3092:6;3089:30;3086:56;;;3122:18;;:::i;:::-;3086:56;3172:4;3164:6;3160:17;3152:25;;3232:4;3226;3222:15;3214:23;;2933:311;;;:::o;3250:117::-;3359:1;3356;3349:12;3373:126;3410:7;3450:42;3443:5;3439:54;3428:65;;3373:126;;;:::o;3505:96::-;3542:7;3571:24;3589:5;3571:24;:::i;:::-;3560:35;;3505:96;;;:::o;3607:122::-;3680:24;3698:5;3680:24;:::i;:::-;3673:5;3670:35;3660:63;;3719:1;3716;3709:12;3660:63;3607:122;:::o;3735:139::-;3781:5;3819:6;3806:20;3797:29;;3835:33;3862:5;3835:33;:::i;:::-;3735:139;;;;:::o;3897:710::-;3993:5;4018:81;4034:64;4091:6;4034:64;:::i;:::-;4018:81;:::i;:::-;4009:90;;4119:5;4148:6;4141:5;4134:21;4182:4;4175:5;4171:16;4164:23;;4235:4;4227:6;4223:17;4215:6;4211:30;4264:3;4256:6;4253:15;4250:122;;;4283:79;;:::i;:::-;4250:122;4398:6;4381:220;4415:6;4410:3;4407:15;4381:220;;;4490:3;4519:37;4552:3;4540:10;4519:37;:::i;:::-;4514:3;4507:50;4586:4;4581:3;4577:14;4570:21;;4457:144;4441:4;4436:3;4432:14;4425:21;;4381:220;;;4385:21;3999:608;;3897:710;;;;;:::o;4630:370::-;4701:5;4750:3;4743:4;4735:6;4731:17;4727:27;4717:122;;4758:79;;:::i;:::-;4717:122;4875:6;4862:20;4900:94;4990:3;4982:6;4975:4;4967:6;4963:17;4900:94;:::i;:::-;4891:103;;4707:293;4630:370;;;;:::o;5006:539::-;5090:6;5139:2;5127:9;5118:7;5114:23;5110:32;5107:119;;;5145:79;;:::i;:::-;5107:119;5293:1;5282:9;5278:17;5265:31;5323:18;5315:6;5312:30;5309:117;;;5345:79;;:::i;:::-;5309:117;5450:78;5520:7;5511:6;5500:9;5496:22;5450:78;:::i;:::-;5440:88;;5236:302;5006:539;;;;:::o;5551:116::-;5621:21;5636:5;5621:21;:::i;:::-;5614:5;5611:32;5601:60;;5657:1;5654;5647:12;5601:60;5551:116;:::o;5673:133::-;5716:5;5754:6;5741:20;5732:29;;5770:30;5794:5;5770:30;:::i;:::-;5673:133;;;;:::o;5812:323::-;5868:6;5917:2;5905:9;5896:7;5892:23;5888:32;5885:119;;;5923:79;;:::i;:::-;5885:119;6043:1;6068:50;6110:7;6101:6;6090:9;6086:22;6068:50;:::i;:::-;6058:60;;6014:114;5812:323;;;;:::o;6141:474::-;6209:6;6217;6266:2;6254:9;6245:7;6241:23;6237:32;6234:119;;;6272:79;;:::i;:::-;6234:119;6392:1;6417:53;6462:7;6453:6;6442:9;6438:22;6417:53;:::i;:::-;6407:63;;6363:117;6519:2;6545:53;6590:7;6581:6;6570:9;6566:22;6545:53;:::i;:::-;6535:63;;6490:118;6141:474;;;;;:::o;6621:329::-;6680:6;6729:2;6717:9;6708:7;6704:23;6700:32;6697:119;;;6735:79;;:::i;:::-;6697:119;6855:1;6880:53;6925:7;6916:6;6905:9;6901:22;6880:53;:::i;:::-;6870:63;;6826:117;6621:329;;;;:::o;6956:118::-;7043:24;7061:5;7043:24;:::i;:::-;7038:3;7031:37;6956:118;;:::o;7080:222::-;7173:4;7211:2;7200:9;7196:18;7188:26;;7224:71;7292:1;7281:9;7277:17;7268:6;7224:71;:::i;:::-;7080:222;;;;:::o;7308:329::-;7367:6;7416:2;7404:9;7395:7;7391:23;7387:32;7384:119;;;7422:79;;:::i;:::-;7384:119;7542:1;7567:53;7612:7;7603:6;7592:9;7588:22;7567:53;:::i;:::-;7557:63;;7513:117;7308:329;;;;:::o;7643:169::-;7727:11;7761:6;7756:3;7749:19;7801:4;7796:3;7792:14;7777:29;;7643:169;;;;:::o;7818:182::-;7958:34;7954:1;7946:6;7942:14;7935:58;7818:182;:::o;8006:366::-;8148:3;8169:67;8233:2;8228:3;8169:67;:::i;:::-;8162:74;;8245:93;8334:3;8245:93;:::i;:::-;8363:2;8358:3;8354:12;8347:19;;8006:366;;;:::o;8378:419::-;8544:4;8582:2;8571:9;8567:18;8559:26;;8631:9;8625:4;8621:20;8617:1;8606:9;8602:17;8595:47;8659:131;8785:4;8659:131;:::i;:::-;8651:139;;8378:419;;;:::o;8803:178::-;8943:30;8939:1;8931:6;8927:14;8920:54;8803:178;:::o;8987:366::-;9129:3;9150:67;9214:2;9209:3;9150:67;:::i;:::-;9143:74;;9226:93;9315:3;9226:93;:::i;:::-;9344:2;9339:3;9335:12;9328:19;;8987:366;;;:::o;9359:419::-;9525:4;9563:2;9552:9;9548:18;9540:26;;9612:9;9606:4;9602:20;9598:1;9587:9;9583:17;9576:47;9640:131;9766:4;9640:131;:::i;:::-;9632:139;;9359:419;;;:::o;9784:180::-;9832:77;9829:1;9822:88;9929:4;9926:1;9919:15;9953:4;9950:1;9943:15;9970:180;10018:77;10015:1;10008:88;10115:4;10112:1;10105:15;10139:4;10136:1;10129:15;10156:233;10195:3;10218:24;10236:5;10218:24;:::i;:::-;10209:33;;10264:66;10257:5;10254:77;10251:103;;;10334:18;;:::i;:::-;10251:103;10381:1;10374:5;10370:13;10363:20;;10156:233;;;:::o;10395:167::-;10535:19;10531:1;10523:6;10519:14;10512:43;10395:167;:::o;10568:366::-;10710:3;10731:67;10795:2;10790:3;10731:67;:::i;:::-;10724:74;;10807:93;10896:3;10807:93;:::i;:::-;10925:2;10920:3;10916:12;10909:19;;10568:366;;;:::o;10940:419::-;11106:4;11144:2;11133:9;11129:18;11121:26;;11193:9;11187:4;11183:20;11179:1;11168:9;11164:17;11157:47;11221:131;11347:4;11221:131;:::i;:::-;11213:139;;10940:419;;;:::o;11365:166::-;11505:18;11501:1;11493:6;11489:14;11482:42;11365:166;:::o;11537:366::-;11679:3;11700:67;11764:2;11759:3;11700:67;:::i;:::-;11693:74;;11776:93;11865:3;11776:93;:::i;:::-;11894:2;11889:3;11885:12;11878:19;;11537:366;;;:::o;11909:419::-;12075:4;12113:2;12102:9;12098:18;12090:26;;12162:9;12156:4;12152:20;12148:1;12137:9;12133:17;12126:47;12190:131;12316:4;12190:131;:::i;:::-;12182:139;;11909:419;;;:::o;12334:182::-;12474:34;12470:1;12462:6;12458:14;12451:58;12334:182;:::o;12522:366::-;12664:3;12685:67;12749:2;12744:3;12685:67;:::i;:::-;12678:74;;12761:93;12850:3;12761:93;:::i;:::-;12879:2;12874:3;12870:12;12863:19;;12522:366;;;:::o;12894:419::-;13060:4;13098:2;13087:9;13083:18;13075:26;;13147:9;13141:4;13137:20;13133:1;13122:9;13118:17;13111:47;13175:131;13301:4;13175:131;:::i;:::-;13167:139;;12894:419;;;:::o;13319:244::-;13459:34;13455:1;13447:6;13443:14;13436:58;13528:27;13523:2;13515:6;13511:15;13504:52;13319:244;:::o;13569:366::-;13711:3;13732:67;13796:2;13791:3;13732:67;:::i;:::-;13725:74;;13808:93;13897:3;13808:93;:::i;:::-;13926:2;13921:3;13917:12;13910:19;;13569:366;;;:::o;13941:419::-;14107:4;14145:2;14134:9;14130:18;14122:26;;14194:9;14188:4;14184:20;14180:1;14169:9;14165:17;14158:47;14222:131;14348:4;14222:131;:::i;:::-;14214:139;;13941:419;;;:::o;14366:176::-;14506:28;14502:1;14494:6;14490:14;14483:52;14366:176;:::o;14548:366::-;14690:3;14711:67;14775:2;14770:3;14711:67;:::i;:::-;14704:74;;14787:93;14876:3;14787:93;:::i;:::-;14905:2;14900:3;14896:12;14889:19;;14548:366;;;:::o;14920:419::-;15086:4;15124:2;15113:9;15109:18;15101:26;;15173:9;15167:4;15163:20;15159:1;15148:9;15144:17;15137:47;15201:131;15327:4;15201:131;:::i;:::-;15193:139;;14920:419;;;:::o;15345:180::-;15485:32;15481:1;15473:6;15469:14;15462:56;15345:180;:::o;15531:366::-;15673:3;15694:67;15758:2;15753:3;15694:67;:::i;:::-;15687:74;;15770:93;15859:3;15770:93;:::i;:::-;15888:2;15883:3;15879:12;15872:19;;15531:366;;;:::o;15903:419::-;16069:4;16107:2;16096:9;16092:18;16084:26;;16156:9;16150:4;16146:20;16142:1;16131:9;16127:17;16120:47;16184:131;16310:4;16184:131;:::i;:::-;16176:139;;15903:419;;;:::o;16328:176::-;16468:28;16464:1;16456:6;16452:14;16445:52;16328:176;:::o;16510:366::-;16652:3;16673:67;16737:2;16732:3;16673:67;:::i;:::-;16666:74;;16749:93;16838:3;16749:93;:::i;:::-;16867:2;16862:3;16858:12;16851:19;;16510:366;;;:::o;16882:419::-;17048:4;17086:2;17075:9;17071:18;17063:26;;17135:9;17129:4;17125:20;17121:1;17110:9;17106:17;17099:47;17163:131;17289:4;17163:131;:::i;:::-;17155:139;;16882:419;;;:::o;17307:180::-;17447:32;17443:1;17435:6;17431:14;17424:56;17307:180;:::o;17493:366::-;17635:3;17656:67;17720:2;17715:3;17656:67;:::i;:::-;17649:74;;17732:93;17821:3;17732:93;:::i;:::-;17850:2;17845:3;17841:12;17834:19;;17493:366;;;:::o;17865:419::-;18031:4;18069:2;18058:9;18054:18;18046:26;;18118:9;18112:4;18108:20;18104:1;18093:9;18089:17;18082:47;18146:131;18272:4;18146:131;:::i;:::-;18138:139;;17865:419;;;:::o;18290:225::-;18430:34;18426:1;18418:6;18414:14;18407:58;18499:8;18494:2;18486:6;18482:15;18475:33;18290:225;:::o;18521:366::-;18663:3;18684:67;18748:2;18743:3;18684:67;:::i;:::-;18677:74;;18760:93;18849:3;18760:93;:::i;:::-;18878:2;18873:3;18869:12;18862:19;;18521:366;;;:::o;18893:419::-;19059:4;19097:2;19086:9;19082:18;19074:26;;19146:9;19140:4;19136:20;19132:1;19121:9;19117:17;19110:47;19174:131;19300:4;19174:131;:::i;:::-;19166:139;;18893:419;;;:::o;19318:191::-;19358:4;19378:20;19396:1;19378:20;:::i;:::-;19373:25;;19412:20;19430:1;19412:20;:::i;:::-;19407:25;;19451:1;19448;19445:8;19442:34;;;19456:18;;:::i;:::-;19442:34;19501:1;19498;19494:9;19486:17;;19318:191;;;;:::o;19515:348::-;19555:7;19578:20;19596:1;19578:20;:::i;:::-;19573:25;;19612:20;19630:1;19612:20;:::i;:::-;19607:25;;19800:1;19732:66;19728:74;19725:1;19722:81;19717:1;19710:9;19703:17;19699:105;19696:131;;;19807:18;;:::i;:::-;19696:131;19855:1;19852;19848:9;19837:20;;19515:348;;;;:::o;19869:305::-;19909:3;19928:20;19946:1;19928:20;:::i;:::-;19923:25;;19962:20;19980:1;19962:20;:::i;:::-;19957:25;;20116:1;20048:66;20044:74;20041:1;20038:81;20035:107;;;20122:18;;:::i;:::-;20035:107;20166:1;20163;20159:9;20152:16;;19869:305;;;;:::o;20180:180::-;20228:77;20225:1;20218:88;20325:4;20322:1;20315:15;20349:4;20346:1;20339:15;20366:185;20406:1;20423:20;20441:1;20423:20;:::i;:::-;20418:25;;20457:20;20475:1;20457:20;:::i;:::-;20452:25;;20496:1;20486:35;;20501:18;;:::i;:::-;20486:35;20543:1;20540;20536:9;20531:14;;20366:185;;;;:::o;20557:176::-;20589:1;20606:20;20624:1;20606:20;:::i;:::-;20601:25;;20640:20;20658:1;20640:20;:::i;:::-;20635:25;;20679:1;20669:35;;20684:18;;:::i;:::-;20669:35;20725:1;20722;20718:9;20713:14;;20557:176;;;;:::o;20739:170::-;20879:22;20875:1;20867:6;20863:14;20856:46;20739:170;:::o;20915:366::-;21057:3;21078:67;21142:2;21137:3;21078:67;:::i;:::-;21071:74;;21154:93;21243:3;21154:93;:::i;:::-;21272:2;21267:3;21263:12;21256:19;;20915:366;;;:::o;21287:419::-;21453:4;21491:2;21480:9;21476:18;21468:26;;21540:9;21534:4;21530:20;21526:1;21515:9;21511:17;21504:47;21568:131;21694:4;21568:131;:::i;:::-;21560:139;;21287:419;;;:::o

Swarm Source

ipfs://d537bb9bf72b25ca41667b7c93cfa84ff5907c03f781845abd5bed0a1ad7e0b6
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.