Contract 0xfd97c61962ff2ae3d08491db4805e7e46f38c502

Contract Overview

Balance:
268.61787221167847352 AVAX

AVAX Value:
$3,817.06 (@ $14.21/AVAX)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x532399d16dbbc9480e6b65411d4cc5d703521f3b03cef70dba04b349441afde9Re Plant A Tree232378722022-12-05 8:50:0212 mins ago0x8191efdc4b4a1250481624a908c6cb349a60590e IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001570347 27
0x2b7fd57dd633770e08649ea11f56757936240ebfcb24a25bf30944a8ab54c959Re Plant A Tree232365952022-12-05 8:05:5256 mins ago0xcfe89c4f72fb88f285aa1a8b20b8a8277825cb93 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001469175 25
0xcebda4b5f8aa24505eb83c363216b5fa65fbd1f0123d7f078bdfbd6a08e68045Re Plant A Tree232354412022-12-05 7:26:211 hr 36 mins ago0x40c664fb77317ec83b2b188ff4f485a6c71da4ca IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001570131 27
0x00cfb17c5079c1c2826992be65ecc96e3c42646b90ca614ea5bca13574741ed7Re Plant A Tree232329782022-12-05 6:01:203 hrs 1 min ago0xb7f78106935607d2003ac997894c8271173ebfeb IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001468875 25
0xe53c84274dc632532ccf1de21e8511ddd0bb7923f0865ac4745efb4449894ef1Re Plant A Tree232328812022-12-05 5:58:013 hrs 4 mins ago0x2fd56b7c7c85c02f96347aaafbbfe2a5101af67a IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001570131 27
0x0bae3c7839682b1aacbbd943f832ce5a81019816e0958ba61d83ef78fb9e5cb1Re Plant A Tree232328522022-12-05 5:57:013 hrs 5 mins ago0x7b0705564c561c71aa8a35f12e3e4fb3ac9efb7f IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001582625659 27.211115
0x13f828d80b1e1e968758d8234968ef615dc2128d4d40dde07ff2ccc6a0117e68Re Plant A Tree232319522022-12-05 5:26:233 hrs 36 mins ago0xca9f4ac678ac742b4540ee8be43ce91b3e12384c IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001570131 27
0xbf6aacfc2c1e59d9bdcd7737072d84a5793295915849c7de80e4c2ef410ba2beRe Plant A Tree232316592022-12-05 5:16:063 hrs 46 mins ago0x7a198fe881abd9a2cabd25eb110543ffd86693dd IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001570131 27
0x7de8b9a62903fedc38b2d5ad65ffd206869d00055c72e4e2efb8a80def575abbRe Plant A Tree232289162022-12-05 3:40:405 hrs 21 mins ago0x2633e2642e83fcae6f0cbc0d186baf5da221bad1 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001454025 25
0x4e2e8e0f67c6f007afb8b64de45f99dabc99b9b42798ffc3e0b11d24121054a6Re Plant A Tree232286202022-12-05 3:30:325 hrs 32 mins ago0xef5fd2a252ef3c01cd9aea02f7ffe2fe77acbdd9 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001469175 25
0x63824f71e60867809e74a0edf0623f4b7ba81017e80efd68738d6db7eccee5f8Re Plant A Tree232285722022-12-05 3:28:565 hrs 33 mins ago0x77a673e3ffadb155011476bb50cce9235d695379 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001454025 25
0x81157e6435003a42c89736ef735d8e24e3137669df64fa292c11852409805a02Re Plant A Tree232279002022-12-05 3:05:515 hrs 56 mins ago0x03151ad1d54466235d3a3a0765d5f319d6a4017e IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001454025 25
0x58bc29a6a0bd4d184beddbca9707b4ef992c2e23f8b9d3b328b4d8eebe667e1bRe Plant A Tree232278812022-12-05 3:05:095 hrs 57 mins ago0xc012453f4ff3f48415d75307f9cb5619b357bbc6 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001453825 25
0x94e925a3828d6b4ed360858ab51ef2c6ad03f7310e37aff2252e4374cd14209dHarvest Trees232274002022-12-05 2:48:496 hrs 13 mins ago0x8191efdc4b4a1250481624a908c6cb349a60590e IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.003184542 27
0x9237da2f7b985d234feba3c745fbe5b061c70f62671aa0fdfcaf4660837fa478Re Plant A Tree232272072022-12-05 2:42:086 hrs 20 mins ago0xcfcff9e4fdd565e4f97ae358644428fd11ac4eea IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001454025 25
0xc5bd16cbdce389126c10b6a893fc6136b43157887a43cbf586dd4a538180afdfRe Plant A Tree232249522022-12-05 1:25:087 hrs 37 mins ago0x40c664fb77317ec83b2b188ff4f485a6c71da4ca IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001570131 27
0x1bd417cde2c49caaf6000cbed55f43d1c2ac428754622e992fb500c3ae32d2d6Re Plant A Tree232240972022-12-05 0:56:068 hrs 6 mins ago0x272e66b96f630391982d4218129c64b4698c7251 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.00145402525
0x7f6a247991834b3e3d1b01acf2877ec2a2cc58060ae3ad23472a80803eccfc94Harvest Trees232228612022-12-05 0:13:348 hrs 49 mins ago0xcc8b6f85c35ae1ccec0f872b11670d3b3f02fa1c IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.00296805 25
0x5e73db3e62c2235a227f715b86235eca48615dbf855a78f9c0823ceec9322e91Re Plant A Tree232226172022-12-05 0:05:158 hrs 57 mins ago0x29e574941643bdbd95c1e485a34c06cb1e0b5adb IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001454025 25
0x7e5f4ce823d8261781282d1281ab8c714eebd27918c266be64531504fdbd6a8dRe Plant A Tree232224602022-12-04 23:59:559 hrs 2 mins ago0x16763494c398e72a58b9802b8204e07a62c1c7de IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001454025 25
0xdf90d2abc7c31757eda7d6382b02de1098dbe5356ef3ecfbabc19eb441a1174cRe Plant A Tree232221912022-12-04 23:50:329 hrs 12 mins ago0x2fd56b7c7c85c02f96347aaafbbfe2a5101af67a IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001570131 27
0x0139055784d6099529e5c62e418b454297191283e63b92b87b73dfd56b7ef90cRe Plant A Tree232216732022-12-04 23:32:409 hrs 29 mins ago0x6182df3418e4bd1b1793e17175e9b41080c89171 IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001454025 25
0x587792731a46a74e41908701e088eb6548ec2bc4d7de56220f627c86fab72608Re Plant A Tree232212822022-12-04 23:18:549 hrs 43 mins ago0xca9f4ac678ac742b4540ee8be43ce91b3e12384c IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001570131 27
0xd2d0539589b6193080a8f8e9eca4a5ffbbd675e27ac2b2ad9a173d427b5a347bRe Plant A Tree232209962022-12-04 23:08:359 hrs 54 mins ago0x7a198fe881abd9a2cabd25eb110543ffd86693dd IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001570131 27
0x6276232cf390d748000901c598e16158df4fdd7c666ccfe7b28b6380f1f32aceRe Plant A Tree232203912022-12-04 22:47:2610 hrs 15 mins ago0x5009f90f584fb7d59c2cca7cfce88c1af3f662bd IN  0xfd97c61962ff2ae3d08491db4805e7e46f38c5020 AVAX0.001453825 25
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x94e925a3828d6b4ed360858ab51ef2c6ad03f7310e37aff2252e4374cd14209d232274002022-12-05 2:48:496 hrs 13 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x8191efdc4b4a1250481624a908c6cb349a60590e1.029614201144277718 AVAX
0x94e925a3828d6b4ed360858ab51ef2c6ad03f7310e37aff2252e4374cd14209d232274002022-12-05 2:48:496 hrs 13 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x5845894560e877fa467d281b6f23447a0fba45b30.010725147928586226 AVAX
0x94e925a3828d6b4ed360858ab51ef2c6ad03f7310e37aff2252e4374cd14209d232274002022-12-05 2:48:496 hrs 13 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xb69a4f612a8378c64a4153182068479f747891340.010725147928586226 AVAX
0x94e925a3828d6b4ed360858ab51ef2c6ad03f7310e37aff2252e4374cd14209d232274002022-12-05 2:48:496 hrs 13 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xe836a01baea5a6603d9025ec26739b7a265b983c0.021450295857172452 AVAX
0x7f6a247991834b3e3d1b01acf2877ec2a2cc58060ae3ad23472a80803eccfc94232228612022-12-05 0:13:348 hrs 49 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xcc8b6f85c35ae1ccec0f872b11670d3b3f02fa1c0.065806816141728644 AVAX
0x7f6a247991834b3e3d1b01acf2877ec2a2cc58060ae3ad23472a80803eccfc94232228612022-12-05 0:13:348 hrs 49 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x5845894560e877fa467d281b6f23447a0fba45b30.001175121716816582 AVAX
0x7f6a247991834b3e3d1b01acf2877ec2a2cc58060ae3ad23472a80803eccfc94232228612022-12-05 0:13:348 hrs 49 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xb69a4f612a8378c64a4153182068479f747891340.001175121716816582 AVAX
0x7f6a247991834b3e3d1b01acf2877ec2a2cc58060ae3ad23472a80803eccfc94232228612022-12-05 0:13:348 hrs 49 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xe836a01baea5a6603d9025ec26739b7a265b983c0.002350243433633165 AVAX
0x3bf3a0b6f4bb9e83d6e52fe75ae2b793c31225cc186f78cdd71aca111f42d955232142202022-12-04 19:15:2413 hrs 47 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x134f5cd11378ddb9d16a0931cbf07d8114846fbc0.028568639300882525 AVAX
0x3bf3a0b6f4bb9e83d6e52fe75ae2b793c31225cc186f78cdd71aca111f42d955232142202022-12-04 19:15:2413 hrs 47 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x5845894560e877fa467d281b6f23447a0fba45b30.000297589992717526 AVAX
0x3bf3a0b6f4bb9e83d6e52fe75ae2b793c31225cc186f78cdd71aca111f42d955232142202022-12-04 19:15:2413 hrs 47 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xb69a4f612a8378c64a4153182068479f747891340.000297589992717526 AVAX
0x3bf3a0b6f4bb9e83d6e52fe75ae2b793c31225cc186f78cdd71aca111f42d955232142202022-12-04 19:15:2413 hrs 47 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xe836a01baea5a6603d9025ec26739b7a265b983c0.000595179985435052 AVAX
0xc95b06ae8610a102e0666935c7b6b64141730277e4c4e6033f2e6560b4214dd9232104712022-12-04 17:07:0315 hrs 55 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x4ec106b066287fd0acce6a77ec15792354048ae70.045790694435735266 AVAX
0xc95b06ae8610a102e0666935c7b6b64141730277e4c4e6033f2e6560b4214dd9232104712022-12-04 17:07:0315 hrs 55 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x5845894560e877fa467d281b6f23447a0fba45b30.000476986400372242 AVAX
0xc95b06ae8610a102e0666935c7b6b64141730277e4c4e6033f2e6560b4214dd9232104712022-12-04 17:07:0315 hrs 55 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xb69a4f612a8378c64a4153182068479f747891340.000476986400372242 AVAX
0xc95b06ae8610a102e0666935c7b6b64141730277e4c4e6033f2e6560b4214dd9232104712022-12-04 17:07:0315 hrs 55 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xe836a01baea5a6603d9025ec26739b7a265b983c0.000953972800744484 AVAX
0xe40b4b8c4afe68b191cbe1a787d86b19f3c221c87fef8d2abf4983a635b805eb232080592022-12-04 15:44:2917 hrs 18 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xd1e0199fb69000ec1d6f87d3d32a1affc9fdcb080.422610235070908524 AVAX
0xe40b4b8c4afe68b191cbe1a787d86b19f3c221c87fef8d2abf4983a635b805eb232080592022-12-04 15:44:2917 hrs 18 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x5845894560e877fa467d281b6f23447a0fba45b30.004402189948655297 AVAX
0xe40b4b8c4afe68b191cbe1a787d86b19f3c221c87fef8d2abf4983a635b805eb232080592022-12-04 15:44:2917 hrs 18 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xb69a4f612a8378c64a4153182068479f747891340.004402189948655297 AVAX
0xe40b4b8c4afe68b191cbe1a787d86b19f3c221c87fef8d2abf4983a635b805eb232080592022-12-04 15:44:2917 hrs 18 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xe836a01baea5a6603d9025ec26739b7a265b983c0.008804379897310594 AVAX
0x73b5ddc56ba7dacb7c09fd2107cd8e9b568d5147e14b5432671870600576ca9b232062702022-12-04 14:43:4318 hrs 18 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xde9e2e22333124b30c028b81372abf201a0714ca0.256360974001587539 AVAX
0x73b5ddc56ba7dacb7c09fd2107cd8e9b568d5147e14b5432671870600576ca9b232062702022-12-04 14:43:4318 hrs 18 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020x5845894560e877fa467d281b6f23447a0fba45b30.002670426812516536 AVAX
0x73b5ddc56ba7dacb7c09fd2107cd8e9b568d5147e14b5432671870600576ca9b232062702022-12-04 14:43:4318 hrs 18 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xb69a4f612a8378c64a4153182068479f747891340.002670426812516536 AVAX
0x73b5ddc56ba7dacb7c09fd2107cd8e9b568d5147e14b5432671870600576ca9b232062702022-12-04 14:43:4318 hrs 18 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xe836a01baea5a6603d9025ec26739b7a265b983c0.005340853625033073 AVAX
0xf71b1d3b6c97d03137d7b967ceefb27813d8ca147126572e7a5d0217019fccfc231968642022-12-04 9:18:4023 hrs 43 mins ago 0xfd97c61962ff2ae3d08491db4805e7e46f38c5020xc51d05dda9945c36ca29e388e6cca784c831cd990.126955229175996408 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.