Contract 0xeb73c8d265D7f67aD00B0706fe87726C5d07435b

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xdbac250ebb2b0ec66a45172d403a94d36458eb327aa5f4d508a166dd56a198a4Approve98024392021-08-06 17:15:47120 days 12 hrs ago0x47ad70ad41749bec058aebfd4b65f920752bd8db IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.000222255
0x82b09eef3da72b317b40cfd250d1a7cf2460042da5b017d7b7062f5f95c7bbdcApprove98022512021-08-06 17:05:45120 days 12 hrs ago0x795cd9360f541c0a08d1195e55b6712a50d09273 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.000222255
0x3c17945ee1d68042eb9b0891026c7ae86b9383217666a9adff97d72f7f66aa7cApprove98011422021-08-06 16:08:17120 days 13 hrs ago0x59fdba7132b625883346f52e3688986d45aeeda3 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.000222255
0x346431ee31b05694997da13b53fe79e30a7157f546346f9aa1509f50b3c42653Approve98011342021-08-06 16:07:53120 days 13 hrs ago0xc995b8c78ce46a58ff610196c11d36fbf8d32b59 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.000222255
0x0432587517889d21c497e9cbeda6c8d4e274047ff41e258ea1a3a5c92c78921dApprove98003832021-08-06 15:29:17120 days 13 hrs ago0x83037d633813d101299a84e5b131e19305fdfd1d IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.00044451
0x28cc418b47647918c2e8d1752ca4417a90b21a59077720e231550be817123723Approve98003822021-08-06 15:29:11120 days 13 hrs ago0xf111386b8c049c89b09be416ae1c79cc4a72d6b3 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.00044451
0x7786a92b11d33dc58dbb83b92551870a85bcde2662086c31cd18ddc60ef8c62dApprove98003822021-08-06 15:29:11120 days 13 hrs ago0x91c669e3645e1432b5a461d5f6a60a8fcd926fd0 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.00044451
0xdcf3b07d2ad483d915d8f84c59b32c18df0360c8e5de012ea7bfa424adee9fb1Approve98003822021-08-06 15:29:11120 days 13 hrs ago0xed6cffda212ac414c759921cb24015fe3e73cfd7 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.00044451
0xb193d732462c2c1a7ab4a71ce76a60f8ba1eac7a8166797ae9ed38240c18402eApprove98003812021-08-06 15:29:08120 days 13 hrs ago0xac35b8a566beca8ec35fabfe3a05e1daed26c930 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.00044451
0x93055800c004ec7b1e35a5fd1df00c59f471e174b01be34f6eb928575fbd448dSet Is Dividend ...97967252021-08-06 12:15:39120 days 17 hrs ago0x4a2b13b861fe3f096a28efe1cb577b5dda0c6fb8 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.00029644
0x819a57f40908b7da44c8675047f00f460ed988893fa68efd864304f4d86e65bdSet Is Blacklist...97967242021-08-06 12:15:36120 days 17 hrs ago0x4a2b13b861fe3f096a28efe1cb577b5dda0c6fb8 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.00023093
0xe7c3e539401cc6c3e9fa5a18c1185e84f95fdff424bcbafdb537969b8e75e644Set Is Dividend ...97966782021-08-06 12:13:17120 days 17 hrs ago0x4a2b13b861fe3f096a28efe1cb577b5dda0c6fb8 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.00029644
0x4aec7671e4dcc55361cee5dd448a0cce653ab0bbd7a084c2696326f1bc95148cSet Is Blacklist...97966722021-08-06 12:12:59120 days 17 hrs ago0x4a2b13b861fe3f096a28efe1cb577b5dda0c6fb8 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.00023093
0x3d76b3bc8df52c5ed841d1383719ff866cf4956d413a8846f57d3c9fd1e6fd7aApprove97449482021-08-04 15:52:29122 days 13 hrs ago0x4a2b13b861fe3f096a28efe1cb577b5dda0c6fb8 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.000222255
0x9643d615a60419cd1a036e5231612e523b6b20a1b938ed4a8346295d1051a414Approve96043662021-07-30 14:24:36127 days 14 hrs ago0xd39c509d3f833002982ceace11ebd2956b0e4423 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.000666765
0xa1d4aa952eefddedf953b5ce011cc06136a97cee2ffa33d2042761b4ded1bcedApprove96018332021-07-30 12:14:36127 days 17 hrs ago0x9f9ae3ad3b6d7923d5c39eff5144c373017cd5c8 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.000222255
0x9a8a33bbdef39a79ecd622666a1aa32e2c755a95a633e7c2032b04d7bc790500Approve96018322021-07-30 12:14:33127 days 17 hrs ago0x9f9ae3ad3b6d7923d5c39eff5144c373017cd5c8 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.000222255
0x6581481a48ffd0b6960f12469c6993720efa796f050372653a21a965f560d515Approve95283672021-07-27 19:08:58130 days 10 hrs ago0x588edd1a40478176e61bf9909f99a64f3305c82a IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.000222255
0xd3c15a395c00d3ccc204e7ec88fdcf641c44ff875274dde5538b74075f0bc955Approve95281812021-07-27 18:57:35130 days 10 hrs ago0x2715e7eb575bf6292176fb91d8932842918fd764 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.000222255
0x1cc693830762038fd0d67789d16c6f2c4f788db071e9c204464fdd55729f2b39Set Is Dividend ...95278782021-07-27 18:37:55130 days 10 hrs ago0x4a2b13b861fe3f096a28efe1cb577b5dda0c6fb8 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.000591174
0x8d4a91b0e64c5e9a29594fabee14ce57c84f5d6b898abb3a29d8bef7b746c9adSet Is Tx Limit ...95278622021-07-27 18:36:54130 days 10 hrs ago0x4a2b13b861fe3f096a28efe1cb577b5dda0c6fb8 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.000323134
0x6dfef24665cf96e539f89fa69598d1df30e9e9b0375596369f52c9de32015eacSet Is Fee Exemp...95278472021-07-27 18:36:01130 days 10 hrs ago0x4a2b13b861fe3f096a28efe1cb577b5dda0c6fb8 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.000322994
0x29c40ab7cd041fbb0bbaf339a25883ecc9bf939d55e68974f5d8f02d85f09177Set Is Dividend ...95278192021-07-27 18:34:14130 days 10 hrs ago0x4a2b13b861fe3f096a28efe1cb577b5dda0c6fb8 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.00037037
0xad2c8ace3d4d90b843d85158ede37ddf0365deca104132f7597b16e1839df6f7Set Is Tx Limit ...95277552021-07-27 18:29:47130 days 10 hrs ago0x4a2b13b861fe3f096a28efe1cb577b5dda0c6fb8 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.0004615
0xd0b7b4aca4a981f33c8d9bbe9062ca48e82c3c4c94fec89f8617336a15314abeSet Is Fee Exemp...95277342021-07-27 18:28:21130 days 10 hrs ago0x4a2b13b861fe3f096a28efe1cb577b5dda0c6fb8 IN  0xeb73c8d265d7f67ad00b0706fe87726c5d07435b0 BNB0.0004613
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DogeTycoon

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 8 : DogeAuth.sol
//SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.4;


enum Permission {
    ChangeFees,
    Buyback,
    AdjustContractVariables,
    Authorize,
    Unauthorize,
    PauseUnpauseContract,
    BypassPause,
    LockPermissions,
    ExcludeInclude,
    Blacklist
}


/**
 * Allows for contract ownership along with multi-address authorization for different permissions
 */
abstract contract DogeAuth {
    struct PermissionLock {
        bool isLocked;
        uint64 expiryTime;
    }

    address public owner;
    mapping(address => mapping(uint256 => bool)) private authorizations; // uint256 is permission index
    
    uint256 constant NUM_PERMISSIONS = 10; // always has to be adjusted when Permission element is added or removed
    mapping(string => uint256) permissionNameToIndex;
    mapping(uint256 => string) permissionIndexToName;

    mapping(uint256 => PermissionLock) lockedPermissions;

    constructor(address owner_) {
        owner = owner_;
        for (uint256 i; i < NUM_PERMISSIONS; i++) {
            authorizations[owner_][i] = true;
        }

        permissionNameToIndex["ChangeFees"] = uint256(Permission.ChangeFees);
        permissionNameToIndex["Buyback"] = uint256(Permission.Buyback);
        permissionNameToIndex["AdjustContractVariables"] = uint256(Permission.AdjustContractVariables);
        permissionNameToIndex["Authorize"] = uint256(Permission.Authorize);
        permissionNameToIndex["Unauthorize"] = uint256(Permission.Unauthorize);
        permissionNameToIndex["PauseUnpauseContract"] = uint256(Permission.PauseUnpauseContract);
        permissionNameToIndex["BypassPause"] = uint256(Permission.BypassPause);
        permissionNameToIndex["LockPermissions"] = uint256(Permission.LockPermissions);
        permissionNameToIndex["ExcludeInclude"] = uint256(Permission.ExcludeInclude);
        permissionNameToIndex["Blacklist"] = uint256(Permission.Blacklist);

        permissionIndexToName[uint256(Permission.ChangeFees)] = "ChangeFees";
        permissionIndexToName[uint256(Permission.Buyback)] = "Buyback";
        permissionIndexToName[uint256(Permission.AdjustContractVariables)] = "AdjustContractVariables";
        permissionIndexToName[uint256(Permission.Authorize)] = "Authorize";
        permissionIndexToName[uint256(Permission.Unauthorize)] = "Unauthorize";
        permissionIndexToName[uint256(Permission.PauseUnpauseContract)] = "PauseUnpauseContract";
        permissionIndexToName[uint256(Permission.BypassPause)] = "BypassPause";
        permissionIndexToName[uint256(Permission.LockPermissions)] = "LockPermissions";
        permissionIndexToName[uint256(Permission.ExcludeInclude)] = "ExcludeInclude";
        permissionIndexToName[uint256(Permission.Blacklist)] = "Blacklist";
    }

    /**
     * Function modifier to require caller to be contract owner
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "Ownership required."); _;
    }

    /**
     * Function modifier to require caller to be authorized
     */
    modifier authorizedFor(Permission permission) {
        require(!lockedPermissions[uint256(permission)].isLocked, "Permission is locked.");
        require(isAuthorizedFor(msg.sender, permission), string(abi.encodePacked("Not authorized. You need the permission ", permissionIndexToName[uint256(permission)]))); _;
    }

    /**
     * Authorize address for one permission
     */
    function authorizeFor(address adr, string memory permissionName) public authorizedFor(Permission.Authorize) {
        uint256 permIndex = permissionNameToIndex[permissionName];
        authorizations[adr][permIndex] = true;
        emit AuthorizedFor(adr, permissionName, permIndex);
    }

    /**
     * Authorize address for multiple permissions
     */
    function authorizeForMultiplePermissions(address adr, string[] calldata permissionNames) public authorizedFor(Permission.Authorize) {
        for (uint256 i; i < permissionNames.length; i++) {
            uint256 permIndex = permissionNameToIndex[permissionNames[i]];
            authorizations[adr][permIndex] = true;
            emit AuthorizedFor(adr, permissionNames[i], permIndex);
        }
    }

    /**
     * Remove address' authorization
     */
    function unauthorizeFor(address adr, string memory permissionName) public authorizedFor(Permission.Unauthorize) {
        require(adr != owner, "Can't unauthorize owner");

        uint256 permIndex = permissionNameToIndex[permissionName];
        authorizations[adr][permIndex] = false;
        emit UnauthorizedFor(adr, permissionName, permIndex);
    }

    /**
     * Unauthorize address for multiple permissions
     */
    function unauthorizeForMultiplePermissions(address adr, string[] calldata permissionNames) public authorizedFor(Permission.Unauthorize) {
        require(adr != owner, "Can't unauthorize owner");

        for (uint256 i; i < permissionNames.length; i++) {
            uint256 permIndex = permissionNameToIndex[permissionNames[i]];
            authorizations[adr][permIndex] = false;
            emit UnauthorizedFor(adr, permissionNames[i], permIndex);
        }
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Return address' authorization status
     */
    function isAuthorizedFor(address adr, string memory permissionName) public view returns (bool) {
        return authorizations[adr][permissionNameToIndex[permissionName]];
    }

    /**
     * Return address' authorization status
     */
    function isAuthorizedFor(address adr, Permission permission) public view returns (bool) {
        return authorizations[adr][uint256(permission)];
    }

    /**
     * Transfer ownership to new address. Caller must be owner.
     */
    function transferOwnership(address payable adr) public onlyOwner {
        address oldOwner = owner;
        owner = adr;
        for (uint256 i; i < NUM_PERMISSIONS; i++) {
            authorizations[oldOwner][i] = false;
            authorizations[owner][i] = true;
        }
        emit OwnershipTransferred(oldOwner, owner);
    }

    /**
     * Get the index of the permission by its name
     */
    function getPermissionNameToIndex(string memory permissionName) public view returns (uint256) {
        return permissionNameToIndex[permissionName];
    }
    
    /**
     * Get the time the timelock expires
     */
    function getPermissionUnlockTime(string memory permissionName) public view returns (uint256) {
        return lockedPermissions[permissionNameToIndex[permissionName]].expiryTime;
    }

    /**
     * Check if the permission is locked
     */
    function isLocked(string memory permissionName) public view returns (bool) {
        return lockedPermissions[permissionNameToIndex[permissionName]].isLocked;
    }

    /*
     *Locks the permission from being used for the amount of time provided
     */
    function lockPermission(string memory permissionName, uint64 time) public virtual authorizedFor(Permission.LockPermissions) {
        uint256 permIndex = permissionNameToIndex[permissionName];
        uint64 expiryTime = uint64(block.timestamp) + time;
        lockedPermissions[permIndex] = PermissionLock(true, expiryTime);
        emit PermissionLocked(permissionName, permIndex, expiryTime);
    }
    
    /*
     * Unlocks the permission if the lock has expired 
     */
    function unlockPermission(string memory permissionName) public virtual {
        require(block.timestamp > getPermissionUnlockTime(permissionName) , "Permission is locked until the expiry time.");
        uint256 permIndex = permissionNameToIndex[permissionName];
        lockedPermissions[permIndex].isLocked = false;
        emit PermissionUnlocked(permissionName, permIndex);
    }

    event PermissionLocked(string permissionName, uint256 permissionIndex, uint64 expiryTime);
    event PermissionUnlocked(string permissionName, uint256 permissionIndex);
    event OwnershipTransferred(address from, address to);
    event AuthorizedFor(address adr, string permissionName, uint256 permissionIndex);
    event UnauthorizedFor(address adr, string permissionName, uint256 permissionIndex);
}

File 2 of 8 : DogeTycoon01.sol
//SPDX-License-Identifier: UNLICENSED

/**
 * ████████████████▀█████████████████████████████████████████████
 * █▄─▄▄▀█─▄▄─█─▄▄▄▄█▄─▄▄─███─▄─▄─█▄─█─▄█─▄▄▄─█─▄▄─█─▄▄─█▄─▀█▄─▄█
 * ██─██─█─██─█─██▄─██─▄█▀█████─████▄─▄██─███▀█─██─█─██─██─█▄▀─██
 * ▀▄▄▄▄▀▀▄▄▄▄▀▄▄▄▄▄▀▄▄▄▄▄▀▀▀▀▄▄▄▀▀▀▄▄▄▀▀▄▄▄▄▄▀▄▄▄▄▀▄▄▄▄▀▄▄▄▀▀▄▄▀
 * 
 * NFT Super-Powered Hyperdeflationary Token
 * Hold more than .1% of circ supply to gain unique NFT's.
 * NFT's change buy/sell and NFT drop rates.
 *
 * + Holders get BUSD rewards
 * + Intelligent Buyback system
 * + Dynamic sell ratios
 *
 * for more info: https://dogetycoon.io
 * 
 */
pragma solidity ^0.8.4;
import './DogeAuth.sol';
import './SafeMath.sol';
import './IDividentDistributor.sol';
import './IBEP20.sol';
import './IDEXRouter.sol';
import './IDEXFactory.sol';
import './IDogeTycoonSuperPower.sol';


contract DogeTycoon is IBEP20, DogeAuth {
    using SafeMath for uint256;

    address WBNB;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "Doge Tycoon";
    string constant _symbol = "DTY";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 10 * 10 ** 9 * (10 ** _decimals); // 10 billion
    uint256 public _maxTxAmount = _totalSupply / 1000; // 0.1%

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) isDividendExempt;
    mapping (address => bool) isBlacklisted;

    uint256 liquidityFee = 150;
    uint256 buybackFee = 300;
    uint256 reflectionFee = 500;
    uint256 marketingFee = 150;
    uint256 totalBuyFee = 1100;
    uint256 totalSellFee = 1600;
    uint256 feeDenominator = 10000;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address pancakeV2BNBPair;
    address[] public pairs;

    uint256 public launchedAt;

    uint256 buybackMultiplierNumerator = 125;
    uint256 buybackMultiplierDenominator = 100;
    uint256 buybackMultiplierTriggeredAt;
    uint256 buybackMultiplierLength = 30 minutes;

    bool public feesOnNormalTransfers = false;

    IDividendDistributor distributor;
    uint256 distributorGas = 500000;

    IDogeTycoonSuperPower nftSuperPower;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 5000; // 0.02%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor (address _dividentDistributor, address pancakeExchange, address _WBNB, address _nftSuperPower) DogeAuth(msg.sender) {
        WBNB = _WBNB;
        router = IDEXRouter(pancakeExchange);
        pancakeV2BNBPair = IDEXFactory(router.factory()).createPair(WBNB, address(this));
        _allowances[address(this)][address(router)] = ~uint256(0);

        pairs.push(pancakeV2BNBPair);
        distributor = IDividendDistributor(_dividentDistributor);

        nftSuperPower = IDogeTycoonSuperPower(_nftSuperPower);

        address owner_ = msg.sender;

        isFeeExempt[owner_] = true;
        isTxLimitExempt[owner_] = true;
        isDividendExempt[pancakeV2BNBPair] = true;
        isDividendExempt[address(this)] = true;
        isFeeExempt[address(this)] = true;
        isTxLimitExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;

        autoLiquidityReceiver = owner_;
        marketingFeeReceiver = owner_;

        _balances[owner_] = _totalSupply;
        emit Transfer(address(0), owner_, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, ~uint256(0));
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != ~uint256(0)){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!isBlacklisted[sender], "Address is blacklisted");

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        checkTxLimit(sender, amount);

        if(shouldSwapBack()){ swapBack(); }

        if(!launched() && recipient == pancakeV2BNBPair){ require(_balances[sender] > 0); launch(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        bool stf = shouldTakeFee(sender, recipient);

        uint256 amountReceived = stf ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        if(!isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} }
        if(!isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} }

        try distributor.process(distributorGas) {} catch {}

        if(stf && !isSell(recipient)){
            nftSuperPower.tryDrop(recipient, _balances[recipient], getCirculatingSupply());
        }

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        if (isFeeExempt[sender] || isFeeExempt[recipient] || !launched()) return false;

        address[] memory liqPairs = pairs;

        for (uint256 i = 0; i < liqPairs.length; i++) {
            if (sender == liqPairs[i] || recipient == liqPairs[i]) return true;
        }

        return feesOnNormalTransfers;
    }

    function getTotalFee(bool selling) public view returns (uint256) {
        if(launchedAt + 1 >= block.number){ return feeDenominator.sub(1); }
        if(selling && buybackMultiplierTriggeredAt.add(buybackMultiplierLength) > block.timestamp){ return getMultipliedFee(); }
        return selling ? totalSellFee : totalBuyFee;
    }

    function getMultipliedFee() public view returns (uint256) {
        uint totalFee = totalSellFee;
        uint256 remainingTime = buybackMultiplierTriggeredAt.add(buybackMultiplierLength).sub(block.timestamp);
        uint256 feeIncrease = totalFee.mul(buybackMultiplierNumerator).div(buybackMultiplierDenominator).sub(totalFee);
        return totalFee.add(feeIncrease.mul(remainingTime).div(buybackMultiplierLength));
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        bool sell = isSell(recipient);
        uint256 feeAmount = amount.mul(getTotalFee(sell)).div(feeDenominator);

        try nftSuperPower.useSuperPowerInTransaction(sender,recipient,sell,amount,feeAmount) returns (uint256 supFeeAmount, bool used) {
            if(supFeeAmount != feeAmount){
                emit SuperPowerUsed(feeAmount, supFeeAmount);
                feeAmount = supFeeAmount;
            }
         } catch Error(string memory e) {
            emit SuperPowerFailed(string(abi.encodePacked("SuperPower failed with error ", e)));
        } catch {
            emit SuperPowerFailed("SuperPower failed without an error message");
        }
        
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }
        
    function isSell(address recipient) internal view returns (bool) {
        address[] memory liqPairs = pairs;
        for (uint256 i = 0; i < liqPairs.length; i++) {
            if (recipient == liqPairs[i]) return true;
        }
        return false;
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pancakeV2BNBPair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalBuyFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WBNB;

        uint256 balanceBefore = address(this).balance;

        try router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        ) {

            uint256 amountBNB = address(this).balance.sub(balanceBefore);

            uint256 totalBNBFee = totalBuyFee.sub(dynamicLiquidityFee.div(2));

            uint256 amountBNBLiquidity = amountBNB.mul(dynamicLiquidityFee).div(totalBNBFee).div(2);
            uint256 amountBNBReflection = amountBNB.mul(reflectionFee).div(totalBNBFee);
            uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);

            try distributor.deposit{value: amountBNBReflection}() {} catch {}
            payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");

            if(amountToLiquify > 0){
                try router.addLiquidityETH{ value: amountBNBLiquidity }(
                    address(this),
                    amountToLiquify,
                    0,
                    0,
                    autoLiquidityReceiver,
                    block.timestamp
                ) {
                    emit AutoLiquify(amountToLiquify, amountBNBLiquidity);
                } catch {
                    emit AutoLiquify(0, 0);
                }
            }

            emit SwapBackSuccess(amountToSwap);
        } catch Error(string memory e) {
            emit SwapBackFailed(string(abi.encodePacked("SwapBack failed with error ", e)));
        } catch {
            emit SwapBackFailed("SwapBack failed without an error message from pancakeSwap");
        }
    }

    function triggerBuyback(uint256 amount, bool triggerBuybackMultiplier) external authorizedFor(Permission.Buyback) {
        buyTokens(amount, DEAD);
        if(triggerBuybackMultiplier){
            buybackMultiplierTriggeredAt = block.timestamp;
            emit BuybackMultiplierActive(buybackMultiplierLength);
        }
    }
    
    function clearBuybackMultiplier() external authorizedFor(Permission.Buyback) {
        buybackMultiplierTriggeredAt = 0;
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = WBNB;
        path[1] = address(this);

        try router.swapExactETHForTokensSupportingFeeOnTransferTokens{ value: amount }(
            0,
            path,
            to,
            block.timestamp
        ) {
            emit BoughtBack(amount, to);
        } catch Error(string memory reason) {
            revert(string(abi.encodePacked("Buyback failed with error ", reason)));
        } catch {
            revert("Buyback failed without an error message from pancakeSwap");
        }
    }

    function setBuybackMultiplierSettings(uint256 numerator, uint256 denominator, uint256 length) external authorizedFor(Permission.AdjustContractVariables) {
        require(numerator / denominator <= 3 && numerator > denominator);
        buybackMultiplierNumerator = numerator;
        buybackMultiplierDenominator = denominator;
        buybackMultiplierLength = length;
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
        emit Launched(block.number, block.timestamp);
    }

    function setTxLimit(uint256 amount) external authorizedFor(Permission.AdjustContractVariables) {
        require(amount >= _totalSupply / 2000);
        _maxTxAmount = amount;
    }

    function setSuperPower(address superPower) external authorizedFor(Permission.AdjustContractVariables) {
        nftSuperPower = IDogeTycoonSuperPower(superPower);
    }

    function getSuperPower() external view returns (address) {
        address(nftSuperPower);
    }

    function setIsDividendExempt(address holder, bool exempt) external authorizedFor(Permission.ExcludeInclude) {
        require(holder != address(this) && holder != pancakeV2BNBPair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        }else{
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function setIsFeeExempt(address holder, bool exempt) external authorizedFor(Permission.ExcludeInclude) {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external authorizedFor(Permission.ExcludeInclude) {
        isTxLimitExempt[holder] = exempt;
    }

    function setFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _feeDenominator, uint256 _totalSellFee) external authorizedFor(Permission.AdjustContractVariables) {
        liquidityFee = _liquidityFee;
        buybackFee = _buybackFee;
        reflectionFee = _reflectionFee;
        marketingFee = _marketingFee;
        totalBuyFee = _liquidityFee.add(_buybackFee).add(_reflectionFee).add(_marketingFee);
        feeDenominator = _feeDenominator;
        totalSellFee = _totalSellFee;
        require(totalBuyFee <= feeDenominator / 10, "Buy fee too high");
        require(totalSellFee <= feeDenominator / 5, "Sell fee too high");
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver) external authorizedFor(Permission.AdjustContractVariables) {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorizedFor(Permission.AdjustContractVariables) {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorizedFor(Permission.AdjustContractVariables) {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorizedFor(Permission.AdjustContractVariables) {
        distributor.setDistributionCriteria(_minPeriod, _minDistribution);
    }

    function setDistributorSettings(uint256 gas) external authorizedFor(Permission.AdjustContractVariables) {
        require(gas <= 1000000);
        distributorGas = gas;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pancakeV2BNBPair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

    function claimDividend() external {
        distributor.claimDividend();
    }
    
    function addPair(address pair) external authorizedFor(Permission.AdjustContractVariables) {
        pairs.push(pair);
    }
    
    function removeLastPair() external authorizedFor(Permission.AdjustContractVariables) {
        pairs.pop();
    }
    
    function setFeesOnNormalTransfers(bool _enabled) external authorizedFor(Permission.AdjustContractVariables) {
        feesOnNormalTransfers = _enabled;
    }
        
    function setIsBlacklisted(address adr, bool blacklisted) external authorizedFor(Permission.Blacklist) {
        isBlacklisted[adr] = blacklisted;
    }

    function setLaunchedAt(uint256 launched_) external authorizedFor(Permission.AdjustContractVariables) {
        launchedAt = launched_;
    }

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);
    event BuybackMultiplierActive(uint256 duration);
    event BoughtBack(uint256 amount, address to);
    event Launched(uint256 blockNumber, uint256 timestamp);
    event SwapBackSuccess(uint256 amount);
    event SwapBackFailed(string message);
    event SuperPowerUsed(uint256 feeAmount, uint256 supFeeAmount);
    event SuperPowerFailed(string message);
}

File 3 of 8 : IBEP20.sol
//SPDX-License-Identifier: UNLICENSED

/**
 * ████████████████▀█████████████████████████████████████████████
 * █▄─▄▄▀█─▄▄─█─▄▄▄▄█▄─▄▄─███─▄─▄─█▄─█─▄█─▄▄▄─█─▄▄─█─▄▄─█▄─▀█▄─▄█
 * ██─██─█─██─█─██▄─██─▄█▀█████─████▄─▄██─███▀█─██─█─██─██─█▄▀─██
 * ▀▄▄▄▄▀▀▄▄▄▄▀▄▄▄▄▄▀▄▄▄▄▄▀▀▀▀▄▄▄▀▀▀▄▄▄▀▀▄▄▄▄▄▀▄▄▄▄▀▄▄▄▄▀▄▄▄▀▀▄▄▀
 * 
 * NFT Super-Powered Hyperdeflationary Token
 * Hold more than .1% of circ supply to gain unique NFT's.
 * NFT's change buy/sell and NFT drop rates.
 *
 * + Holders get BUSD rewards
 * + Intelligent Buyback system
 * + Dynamic sell ratios
 *
 * for more info: https://dogetycoon.io
 * 
 */
 
pragma solidity ^0.8.2;
/**
 * BEP20 standard interface.
 */
interface IBEP20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 4 of 8 : IDEXFactory.sol
//SPDX-License-Identifier: UNLICENSED

/**
 * ████████████████▀█████████████████████████████████████████████
 * █▄─▄▄▀█─▄▄─█─▄▄▄▄█▄─▄▄─███─▄─▄─█▄─█─▄█─▄▄▄─█─▄▄─█─▄▄─█▄─▀█▄─▄█
 * ██─██─█─██─█─██▄─██─▄█▀█████─████▄─▄██─███▀█─██─█─██─██─█▄▀─██
 * ▀▄▄▄▄▀▀▄▄▄▄▀▄▄▄▄▄▀▄▄▄▄▄▀▀▀▀▄▄▄▀▀▀▄▄▄▀▀▄▄▄▄▄▀▄▄▄▄▀▄▄▄▄▀▄▄▄▀▀▄▄▀
 * 
 * NFT Super-Powered Hyperdeflationary Token
 * Hold more than .1% of circ supply to gain unique NFT's.
 * NFT's change buy/sell and NFT drop rates.
 *
 * + Holders get BUSD rewards
 * + Intelligent Buyback system
 * + Dynamic sell ratios
 *
 * for more info: https://dogetycoon.io
 * 
 */

 
pragma solidity ^0.8.2;
interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

File 5 of 8 : IDEXRouter.sol
//SPDX-License-Identifier: UNLICENSED

/**
 * ████████████████▀█████████████████████████████████████████████
 * █▄─▄▄▀█─▄▄─█─▄▄▄▄█▄─▄▄─███─▄─▄─█▄─█─▄█─▄▄▄─█─▄▄─█─▄▄─█▄─▀█▄─▄█
 * ██─██─█─██─█─██▄─██─▄█▀█████─████▄─▄██─███▀█─██─█─██─██─█▄▀─██
 * ▀▄▄▄▄▀▀▄▄▄▄▀▄▄▄▄▄▀▄▄▄▄▄▀▀▀▀▄▄▄▀▀▀▄▄▄▀▀▄▄▄▄▄▀▄▄▄▄▀▄▄▄▄▀▄▄▄▀▀▄▄▀
 * 
 * NFT Super-Powered Hyperdeflationary Token
 * Hold more than .1% of circ supply to gain unique NFT's.
 * NFT's change buy/sell and NFT drop rates.
 *
 * + Holders get BUSD rewards
 * + Intelligent Buyback system
 * + Dynamic sell ratios
 *
 * for more info: https://dogetycoon.io
 * 
 */
 
pragma solidity ^0.8.2;

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

File 6 of 8 : IDividentDistributor.sol
//SPDX-License-Identifier: UNLICENSED

/**
 * ████████████████▀█████████████████████████████████████████████
 * █▄─▄▄▀█─▄▄─█─▄▄▄▄█▄─▄▄─███─▄─▄─█▄─█─▄█─▄▄▄─█─▄▄─█─▄▄─█▄─▀█▄─▄█
 * ██─██─█─██─█─██▄─██─▄█▀█████─████▄─▄██─███▀█─██─█─██─██─█▄▀─██
 * ▀▄▄▄▄▀▀▄▄▄▄▀▄▄▄▄▄▀▄▄▄▄▄▀▀▀▀▄▄▄▀▀▀▄▄▄▀▀▄▄▄▄▄▀▄▄▄▄▀▄▄▄▄▀▄▄▄▀▀▄▄▀
 * 
 * NFT Super-Powered Hyperdeflationary Token
 * Hold more than .1% of circ supply to gain unique NFT's.
 * NFT's change buy/sell and NFT drop rates.
 *
 * + Holders get BUSD rewards
 * + Intelligent Buyback system
 * + Dynamic sell ratios
 *
 * for more info: https://dogetycoon.io
 * 
 */
 
pragma solidity ^0.8.2;

interface IDividendDistributor {
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
    function claimDividend() external;
}

File 7 of 8 : IDogeTycoonSuperPower.sol
//SPDX-License-Identifier: UNLICENSED

/**
 * ████████████████▀█████████████████████████████████████████████
 * █▄─▄▄▀█─▄▄─█─▄▄▄▄█▄─▄▄─███─▄─▄─█▄─█─▄█─▄▄▄─█─▄▄─█─▄▄─█▄─▀█▄─▄█
 * ██─██─█─██─█─██▄─██─▄█▀█████─████▄─▄██─███▀█─██─█─██─██─█▄▀─██
 * ▀▄▄▄▄▀▀▄▄▄▄▀▄▄▄▄▄▀▄▄▄▄▄▀▀▀▀▄▄▄▀▀▀▄▄▄▀▀▄▄▄▄▄▀▄▄▄▄▀▄▄▄▄▀▄▄▄▀▀▄▄▀
 * 
 * NFT Super-Powered Hyperdeflationary Token
 * Hold more than .1% of circ supply to gain unique NFT's.
 * NFT's change buy/sell and NFT drop rates.
 *
 * + Holders get BUSD rewards
 * + Intelligent Buyback system
 * + Dynamic sell ratios
 *
 * for more info: https://dogetycoon.io
 * 
 */
 
pragma solidity ^0.8.2;


interface IDogeTycoonSuperPower {
    function calculateSuperPowerOutput (
        uint256 nftDetails, 
        bool isSell, 
        uint256 amount, 
        uint256 currentFee) external pure returns (uint256 newFee, bool used);
    function tryDrop(address sender, uint256 balance, uint256 circulatingSupply) external;
    function useSuperPowerInTransaction(
      address sender, address recipient, bool isSell, uint256 amount,
      uint256 currentFee) external returns (uint256 newFee, bool used);
}

File 8 of 8 : SafeMath.sol
//SPDX-License-Identifier: UNLICENSED

/**
 * ████████████████▀█████████████████████████████████████████████
 * █▄─▄▄▀█─▄▄─█─▄▄▄▄█▄─▄▄─███─▄─▄─█▄─█─▄█─▄▄▄─█─▄▄─█─▄▄─█▄─▀█▄─▄█
 * ██─██─█─██─█─██▄─██─▄█▀█████─████▄─▄██─███▀█─██─█─██─██─█▄▀─██
 * ▀▄▄▄▄▀▀▄▄▄▄▀▄▄▄▄▄▀▄▄▄▄▄▀▀▀▀▄▄▄▀▀▀▄▄▄▀▀▄▄▄▄▄▀▄▄▄▄▀▄▄▄▄▀▄▄▄▀▀▄▄▀
 * 
 * NFT Super-Powered Hyperdeflationary Token
 * Hold more than .1% of circ supply to gain unique NFT's.
 * NFT's change buy/sell and NFT drop rates.
 *
 * + Holders get BUSD rewards
 * + Intelligent Buyback system
 * + Dynamic sell ratios
 *
 * for more info: https://dogetycoon.io
 * 
 */

 
pragma solidity ^0.8.2;
/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

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

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "istanbul",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_dividentDistributor","type":"address"},{"internalType":"address","name":"pancakeExchange","type":"address"},{"internalType":"address","name":"_WBNB","type":"address"},{"internalType":"address","name":"_nftSuperPower","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"adr","type":"address"},{"indexed":false,"internalType":"string","name":"permissionName","type":"string"},{"indexed":false,"internalType":"uint256","name":"permissionIndex","type":"uint256"}],"name":"AuthorizedFor","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"BoughtBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"}],"name":"BuybackMultiplierActive","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Launched","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"permissionName","type":"string"},{"indexed":false,"internalType":"uint256","name":"permissionIndex","type":"uint256"},{"indexed":false,"internalType":"uint64","name":"expiryTime","type":"uint64"}],"name":"PermissionLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"permissionName","type":"string"},{"indexed":false,"internalType":"uint256","name":"permissionIndex","type":"uint256"}],"name":"PermissionUnlocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"message","type":"string"}],"name":"SuperPowerFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"feeAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"supFeeAmount","type":"uint256"}],"name":"SuperPowerUsed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"message","type":"string"}],"name":"SwapBackFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SwapBackSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"adr","type":"address"},{"indexed":false,"internalType":"string","name":"permissionName","type":"string"},{"indexed":false,"internalType":"uint256","name":"permissionIndex","type":"uint256"}],"name":"UnauthorizedFor","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"},{"internalType":"string","name":"permissionName","type":"string"}],"name":"authorizeFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"},{"internalType":"string[]","name":"permissionNames","type":"string[]"}],"name":"authorizeForMultiplePermissions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearBuybackMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"feesOnNormalTransfers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMultipliedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"permissionName","type":"string"}],"name":"getPermissionNameToIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"permissionName","type":"string"}],"name":"getPermissionUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSuperPower","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"},{"internalType":"enum Permission","name":"permission","type":"uint8"}],"name":"isAuthorizedFor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"},{"internalType":"string","name":"permissionName","type":"string"}],"name":"isAuthorizedFor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"permissionName","type":"string"}],"name":"isLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"permissionName","type":"string"},{"internalType":"uint64","name":"time","type":"uint64"}],"name":"lockPermission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLastPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"setBuybackMultiplierSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"},{"internalType":"uint256","name":"_totalSellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setFeesOnNormalTransfers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"},{"internalType":"bool","name":"blacklisted","type":"bool"}],"name":"setIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"launched_","type":"uint256"}],"name":"setLaunchedAt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"superPower","type":"address"}],"name":"setSuperPower","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"triggerBuybackMultiplier","type":"bool"}],"name":"triggerBuyback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"},{"internalType":"string","name":"permissionName","type":"string"}],"name":"unauthorizeFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"},{"internalType":"string[]","name":"permissionNames","type":"string[]"}],"name":"unauthorizeForMultiplePermissions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"permissionName","type":"string"}],"name":"unlockPermission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600680546001600160a01b031990811661dead17909155600780549091169055620000326009600a62000b78565b62000043906402540be40062000c39565b6008556103e860085462000058919062000b0c565b6009556096601081905561012c6011556101f460125560135561044c60149081556106406015556127106016556019556064601a819055607d601f556020556107086022556023805460ff191690556207a1206024556025805460ff60a01b1916600160a01b179055600854620000d3906113889062000b0c565b602655348015620000e357600080fd5b506040516200578238038062005782833981016040819052620001069162000aaf565b600080546001600160a01b031916339081178255905b600a8110156200016a576001600160a01b0382166000908152600160208181526040808420858552909152909120805460ff1916909117905580620001618162000c98565b9150506200011c565b506000604051694368616e67654665657360b01b8152600290600a01908152604051908190036020019020556001604051664275796261636b60c81b81526002906007019081526040519081900360200190205560026040517f41646a757374436f6e74726163745661726961626c6573000000000000000000815260029060170190815260405190819003602001902055600360405168417574686f72697a6560b81b81526002906009019081526040519081900360200190205560046040516a556e617574686f72697a6560a81b8152600290600b019081526040519081900360200190205560056040517f5061757365556e7061757365436f6e747261637400000000000000000000000081526002906014019081526040519081900360200190205560066040516a427970617373506175736560a81b8152600290600b019081526040519081900360200190205560076040516e4c6f636b5065726d697373696f6e7360881b8152600290600f019081526040519081900360200190205560086040516d4578636c756465496e636c75646560901b8152600290600e0190815260405190819003602001902055600960405168109b1858dadb1a5cdd60ba1b8152600290600901908152604080519182900360209081018320939093558181019052600a8152694368616e67654665657360b01b828201908152600080526003909252516200039f917f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff91620009c7565b506040805180820190915260078152664275796261636b60c81b60208083019182526001600052600390529051620003f9917fa15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054c91620009c7565b5060408051808201909152601781527f41646a757374436f6e74726163745661726961626c65730000000000000000006020808301918252600260005260039052905162000469917fc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4d91620009c7565b50604080518082019091526009815268417574686f72697a6560b81b60208083019182526003600081905290529051620004c5917fcbc4e5fb02c3d1de23a9f1e014b4d2ee5aeaea9505df5e855c9210bf472495af91620009c7565b5060408051808201909152600b81526a556e617574686f72697a6560a81b6020808301918252600460005260039052905162000523917f83ec6a1f0257b830b5e016457c9cf1435391bf56cc98f369a58a54fe9377246591620009c7565b5060408051808201909152601481527f5061757365556e7061757365436f6e74726163740000000000000000000000006020808301918252600560005260039052905162000593917f405aad32e1adbac89bb7f176e338b8fc6e994ca210c9bb7bdca249b46594225091620009c7565b5060408051808201909152600b81526a427970617373506175736560a81b60208083019182526006600052600390529051620005f1917fc69056f16cbaa3c616b828e333ab7d3a32310765507f8f58359e99ebb7a885f391620009c7565b5060408051808201909152600f81526e4c6f636b5065726d697373696f6e7360881b6020808301918252600760005260039052905162000653917ff2c49132ed1cee2a7e75bde50d332a2f81f1d01e5456d8a19d1df09bd561dbd291620009c7565b5060408051808201909152600e81526d4578636c756465496e636c75646560901b60208083019182526008600052600390529051620006b4917f85aaa47b6dc46495bb8824fad4583769726fea36efd831a35556690b830a8fbe91620009c7565b5060408051808201909152600980825268109b1858dadb1a5cdd60ba1b60208084019182526000929092526003909152905162000713917f8a8dc4e5242ea8b1ab1d60606dae757e6c2cca9f92a2cced9f72c19960bcb45891620009c7565b5050600580546001600160a01b038085166001600160a01b031992831617909255601b805492861692909116821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200077a57600080fd5b505afa1580156200078f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007b5919062000a8a565b6005546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b1580156200080257600080fd5b505af115801562000817573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200083d919062000a8a565b601c80546001600160a01b03199081166001600160a01b03938416178255306000818152600b60209081526040808320601b5488168452825280832060001990558554601d805460018181019092557f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f018054928a169288169290921790915560238054610100600160a81b0319166101008e8b16021790556025805487168a8a1617905533808552600c808552838620805460ff199081168517909155600d808752858820805483168617905599548b168752600e80875285882080548316861790559787528487208054821685179055908552838620805482168417905597845282852080548916831790556006549098168452938252808320805490961690931790945560178054841686179055601880549093168517909255600854848352600a8452818320819055905190815283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050505062000ccc565b828054620009d59062000c5b565b90600052602060002090601f016020900481019282620009f9576000855562000a44565b82601f1062000a1457805160ff191683800117855562000a44565b8280016001018555821562000a44579182015b8281111562000a4457825182559160200191906001019062000a27565b5062000a5292915062000a56565b5090565b5b8082111562000a52576000815560010162000a57565b80516001600160a01b038116811462000a8557600080fd5b919050565b60006020828403121562000a9d57600080fd5b62000aa88262000a6d565b9392505050565b6000806000806080858703121562000ac657600080fd5b62000ad18562000a6d565b935062000ae16020860162000a6d565b925062000af16040860162000a6d565b915062000b016060860162000a6d565b905092959194509250565b60008262000b2a57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111562000b7057816000190482111562000b545762000b5462000cb6565b8085161562000b6257918102915b93841c939080029062000b34565b509250929050565b600062000aa860ff84168360008262000b945750600162000c33565b8162000ba35750600062000c33565b816001811462000bbc576002811462000bc75762000be7565b600191505062000c33565b60ff84111562000bdb5762000bdb62000cb6565b50506001821b62000c33565b5060208310610133831016604e8410600b841016171562000c0c575081810a62000c33565b62000c18838362000b2f565b806000190482111562000c2f5762000c2f62000cb6565b0290505b92915050565b600081600019048311821515161562000c565762000c5662000cb6565b500290565b600181811c9082168062000c7057607f821691505b6020821081141562000c9257634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141562000caf5762000caf62000cb6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b614aa68062000cdc6000396000f3fe60806040526004361061039a5760003560e01c806386f6c3c1116101dc578063ca33e64c11610102578063f0fc6bca116100a0578063f40cc79a1161006f578063f40cc79a14610ae8578063f708a64f14610afc578063f84ba65d14610b1c578063f887ea4014610b3c57600080fd5b8063f0fc6bca14610a73578063f1f3bca314610a88578063f2fde38b14610aa8578063f3a54f2c14610ac857600080fd5b8063dd62ed3e116100dc578063dd62ed3e146109cd578063df20fd4914610a13578063e75cae7914610a33578063e96fada214610a5357600080fd5b8063ca33e64c14610978578063d51ed1c814610998578063d806d12f146109b857600080fd5b8063a4b45c001161017a578063b91ac78811610149578063b91ac78814610902578063bf56b37114610922578063c2b7bbb614610938578063c41235a61461095857600080fd5b8063a4b45c001461088d578063a9059cbb146108ad578063af05cf93146108cd578063b210b06d146108ed57600080fd5b806395d89b41116101b657806395d89b4114610801578063971563fc1461082d5780639d1944f51461084d578063a0e384921461086d57600080fd5b806386f6c3c11461078f578063893d20e8146107af5780638da5cb5b146107e157600080fd5b80632d48e896116102c15780635c85974f1161025f57806370a082311161022e57806370a08231146107035780637d1db4a5146107395780638032eccb1461074f5780638101cae31461076f57600080fd5b80635c85974f14610682578063658d4b7f146106a25780636a6e3cbe146106c25780636ddd1713146106e257600080fd5b806339e67c8a1161029b57806339e67c8a14610608578063571ac8b01461062857806357b78541146106485780635abe67111461066857600080fd5b80632d48e8961461059d5780632f54bf6e146105bd578063313ce567146105ec57600080fd5b806318160ddd11610339578063201e799111610308578063201e7991146105285780632375ce401461054857806323b872dd146105685780632b112e491461058857600080fd5b806318160ddd146104b35780631ad6084f146104c85780631e8f5283146104e85780631efe9f651461050857600080fd5b806306fdde031161037557806306fdde031461040657806307858b0214610443578063095ea7b3146104635780631161ae391461049357600080fd5b806293dc14146103a65780630445b667146103bd57806306fbdcd8146103e657600080fd5b366103a157005b600080fd5b3480156103b257600080fd5b506103bb610b5c565b005b3480156103c957600080fd5b506103d360265481565b6040519081526020015b60405180910390f35b3480156103f257600080fd5b506103d3610401366004614233565b610c43565b34801561041257600080fd5b5060408051808201909152600b81526a2237b3b2902a3cb1b7b7b760a91b60208201525b6040516103dd91906146e5565b34801561044f57600080fd5b506103bb61045e366004614233565b610c6b565b34801561046f57600080fd5b5061048361047e3660046141cc565b610d4d565b60405190151581526020016103dd565b34801561049f57600080fd5b506104836104ae36600461432d565b610dba565b3480156104bf57600080fd5b506008546103d3565b3480156104d457600080fd5b506103bb6104e3366004614094565b610dce565b3480156104f457600080fd5b506103bb61050336600461417c565b610fd4565b34801561051457600080fd5b506103bb610523366004613ffd565b611120565b34801561053457600080fd5b506103bb61054336600461432d565b6111eb565b34801561055457600080fd5b506103bb61056336600461434f565b61129f565b34801561057457600080fd5b50610483610583366004614053565b611378565b34801561059457600080fd5b506103d361143a565b3480156105a957600080fd5b506103bb6105b836600461432d565b61148c565b3480156105c957600080fd5b506104836105d8366004613ffd565b6000546001600160a01b0391821691161490565b3480156105f857600080fd5b50604051600981526020016103dd565b34801561061457600080fd5b506103bb6106233660046142ca565b6115a3565b34801561063457600080fd5b50610483610643366004613ffd565b611651565b34801561065457600080fd5b5061048361066336600461414a565b61165f565b34801561067457600080fd5b506023546104839060ff1681565b34801561068e57600080fd5b506103bb61069d3660046142ca565b6116a5565b3480156106ae57600080fd5b506103bb6106bd36600461411c565b61176f565b3480156106ce57600080fd5b506103bb6106dd3660046142e3565b611855565b3480156106ee57600080fd5b5060255461048390600160a01b900460ff1681565b34801561070f57600080fd5b506103d361071e366004613ffd565b6001600160a01b03166000908152600a602052604090205490565b34801561074557600080fd5b506103d360095481565b34801561075b57600080fd5b5061048361076a366004614233565b61196c565b34801561077b57600080fd5b506103bb61078a36600461417c565b6119ab565b34801561079b57600080fd5b506103bb6107aa3660046143a9565b611b3c565b3480156107bb57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103dd565b3480156107ed57600080fd5b506000546107c9906001600160a01b031681565b34801561080d57600080fd5b5060408051808201909152600381526244545960e81b6020820152610436565b34801561083957600080fd5b506103bb610848366004614270565b611cbe565b34801561085957600080fd5b506103bb6108683660046142ca565b611e49565b34801561087957600080fd5b506103bb61088836600461411c565b611f07565b34801561089957600080fd5b506103bb6108a836600461401a565b611fed565b3480156108b957600080fd5b506104836108c83660046141cc565b6120c4565b3480156108d957600080fd5b506103bb6108e8366004614094565b6120d1565b3480156108f957600080fd5b506103bb61227f565b34801561090e57600080fd5b506107c961091d3660046142ca565b612341565b34801561092e57600080fd5b506103d3601e5481565b34801561094457600080fd5b506103bb610953366004613ffd565b61236b565b34801561096457600080fd5b5061048361097336600461417c565b612466565b34801561098457600080fd5b506017546107c9906001600160a01b031681565b3480156109a457600080fd5b506103d36109b33660046142ca565b6124bb565b3480156109c457600080fd5b506103d36124ff565b3480156109d957600080fd5b506103d36109e836600461401a565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b348015610a1f57600080fd5b506103bb610a2e366004614215565b612574565b348015610a3f57600080fd5b506103d3610a4e366004614233565b61263f565b348015610a5f57600080fd5b506018546107c9906001600160a01b031681565b348015610a7f57600080fd5b506103bb61268a565b348015610a9457600080fd5b506103d3610aa33660046141f8565b6126f4565b348015610ab457600080fd5b506103bb610ac3366004613ffd565b61275d565b348015610ad457600080fd5b506103bb610ae33660046141f8565b61287a565b348015610af457600080fd5b5060006107c9565b348015610b0857600080fd5b506103bb610b1736600461411c565b612936565b348015610b2857600080fd5b506103bb610b3736600461411c565b612ada565b348015610b4857600080fd5b50601b546107c9906001600160a01b031681565b600260008190526004602052600080516020614a518339815191525460ff1615610ba15760405162461bcd60e51b8152600401610b989061474d565b60405180910390fd5b610bab338261165f565b60036000836009811115610bc157610bc161492c565b8152602001908152602001600020604051602001610bdf9190614512565b60405160208183030381529060405290610c0c5760405162461bcd60e51b8152600401610b9891906146e5565b50601d805480610c1e57610c1e614942565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000600282604051610c55919061446c565b9081526020016040518091039020549050919050565b610c748161263f565b4211610cd65760405162461bcd60e51b815260206004820152602b60248201527f5065726d697373696f6e206973206c6f636b656420756e74696c20746865206560448201526a3c3834b93c903a34b6b29760a91b6064820152608401610b98565b6000600282604051610ce8919061446c565b9081526040805191829003602090810183205460008181526004909252919020805460ff1916905591507ffc8b383b99ea2b22b71f1093a47597b46df7078bee32a803a3bdd4a206723b8890610d4190849084906146f8565b60405180910390a15050565b336000818152600b602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610da89086815260200190565b60405180910390a35060015b92915050565b600082610dc6836124bb565b119392505050565b6004600081905260208190527f1a1e6821cde7d0159c0d293177871e09677b4e42307c7db3ba94f8648a5a050f5460ff1615610e1c5760405162461bcd60e51b8152600401610b989061474d565b610e26338261165f565b60036000836009811115610e3c57610e3c61492c565b8152602001908152602001600020604051602001610e5a9190614512565b60405160208183030381529060405290610e875760405162461bcd60e51b8152600401610b9891906146e5565b506000546001600160a01b0385811691161415610ee05760405162461bcd60e51b815260206004820152601760248201527621b0b713ba103ab730baba3437b934bd329037bbb732b960491b6044820152606401610b98565b60005b82811015610fcd5760006002858584818110610f0157610f01614958565b9050602002810190610f1391906147b8565b604051610f2192919061445c565b9081526040805160209281900383019020546001600160a01b0389166000908152600184528281208282529093529120805460ff1916905590507fb26499039c739e76d3891f0102d9af263029408ce80bd90b963ad702b35b5e1186868685818110610f8f57610f8f614958565b9050602002810190610fa191906147b8565b84604051610fb29493929190614632565b60405180910390a15080610fc5816148fb565b915050610ee3565b5050505050565b6003600081905260046020527f2e174c10e159ea99b867ce3205125c24a42d128804e4070ed6fcc8cc98166aa05460ff16156110225760405162461bcd60e51b8152600401610b989061474d565b61102c338261165f565b600360008360098111156110425761104261492c565b81526020019081526020016000206040516020016110609190614512565b6040516020818303038152906040529061108d5760405162461bcd60e51b8152600401610b9891906146e5565b5060006002836040516110a0919061446c565b908152604080519182900360209081018320546001600160a01b0388166000908152600180845284822083835290935292909220805460ff1916909117905591507f51ff6835511b7f0d6d0df8f2dcc2c818d6eb8d2817b006ff65749f283afec643906111129086908690859061467c565b60405180910390a150505050565b600260008190526004602052600080516020614a518339815191525460ff161561115c5760405162461bcd60e51b8152600401610b989061474d565b611166338261165f565b6003600083600981111561117c5761117c61492c565b815260200190815260200160002060405160200161119a9190614512565b604051602081830303815290604052906111c75760405162461bcd60e51b8152600401610b9891906146e5565b5050602580546001600160a01b0319166001600160a01b0392909216919091179055565b600260008190526004602052600080516020614a518339815191525460ff16156112275760405162461bcd60e51b8152600401610b989061474d565b611231338261165f565b600360008360098111156112475761124761492c565b81526020019081526020016000206040516020016112659190614512565b604051602081830303815290604052906112925760405162461bcd60e51b8152600401610b9891906146e5565b5050601991909155601a55565b600260008190526004602052600080516020614a518339815191525460ff16156112db5760405162461bcd60e51b8152600401610b989061474d565b6112e5338261165f565b600360008360098111156112fb576112fb61492c565b81526020019081526020016000206040516020016113199190614512565b604051602081830303815290604052906113465760405162461bcd60e51b8152600401610b9891906146e5565b506003611353848661484a565b1115801561136057508284115b61136957600080fd5b50601f92909255602055602255565b6001600160a01b0383166000908152600b6020908152604080832033845290915281205460001914611425576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600b82528381203382529091529190912054611400918490612bc0565b6001600160a01b0385166000908152600b602090815260408083203384529091529020555b611430848484612bfa565b90505b9392505050565b6007546001600160a01b03166000908152600a6020526040812054611487906006546001600160a01b03166000908152600a60205260409020546114819060085490613045565b90613045565b905090565b600260008190526004602052600080516020614a518339815191525460ff16156114c85760405162461bcd60e51b8152600401610b989061474d565b6114d2338261165f565b600360008360098111156114e8576114e861492c565b81526020019081526020016000206040516020016115069190614512565b604051602081830303815290604052906115335760405162461bcd60e51b8152600401610b9891906146e5565b506023546040516316a4744b60e11b815260048101859052602481018490526101009091046001600160a01b031690632d48e896906044015b600060405180830381600087803b15801561158657600080fd5b505af115801561159a573d6000803e3d6000fd5b50505050505050565b600260008190526004602052600080516020614a518339815191525460ff16156115df5760405162461bcd60e51b8152600401610b989061474d565b6115e9338261165f565b600360008360098111156115ff576115ff61492c565b815260200190815260200160002060405160200161161d9190614512565b6040516020818303038152906040529061164a5760405162461bcd60e51b8152600401610b9891906146e5565b5050601e55565b6000610db482600019610d4d565b6001600160a01b03821660009081526001602052604081208183600981111561168a5761168a61492c565b815260208101919091526040016000205460ff169392505050565b600260008190526004602052600080516020614a518339815191525460ff16156116e15760405162461bcd60e51b8152600401610b989061474d565b6116eb338261165f565b600360008360098111156117015761170161492c565b815260200190815260200160002060405160200161171f9190614512565b6040516020818303038152906040529061174c5760405162461bcd60e51b8152600401610b9891906146e5565b506107d060085461175d919061484a565b82101561176957600080fd5b50600955565b6008600081905260046020527f2645749a946633740611cfc8178319f0958659d6922e4bf7e3a08b44789f53a45460ff16156117bd5760405162461bcd60e51b8152600401610b989061474d565b6117c7338261165f565b600360008360098111156117dd576117dd61492c565b81526020019081526020016000206040516020016117fb9190614512565b604051602081830303815290604052906118285760405162461bcd60e51b8152600401610b9891906146e5565b50506001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6001600081905260046020527fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe055460ff16156118a35760405162461bcd60e51b8152600401610b989061474d565b6118ad338261165f565b600360008360098111156118c3576118c361492c565b81526020019081526020016000206040516020016118e19190614512565b6040516020818303038152906040529061190e5760405162461bcd60e51b8152600401610b9891906146e5565b506006546119269084906001600160a01b0316613087565b811561196757426021556022546040519081527f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a9060200160405180910390a15b505050565b600060046000600284604051611982919061446c565b908152604080516020928190038301902054835290820192909252016000205460ff1692915050565b6004600081905260208190527f1a1e6821cde7d0159c0d293177871e09677b4e42307c7db3ba94f8648a5a050f5460ff16156119f95760405162461bcd60e51b8152600401610b989061474d565b611a03338261165f565b60036000836009811115611a1957611a1961492c565b8152602001908152602001600020604051602001611a379190614512565b60405160208183030381529060405290611a645760405162461bcd60e51b8152600401610b9891906146e5565b506000546001600160a01b0384811691161415611abd5760405162461bcd60e51b815260206004820152601760248201527621b0b713ba103ab730baba3437b934bd329037bbb732b960491b6044820152606401610b98565b6000600283604051611acf919061446c565b908152604080519182900360209081018320546001600160a01b038816600090815260018352838120828252909252919020805460ff1916905591507fb26499039c739e76d3891f0102d9af263029408ce80bd90b963ad702b35b5e11906111129086908690859061467c565b600260008190526004602052600080516020614a518339815191525460ff1615611b785760405162461bcd60e51b8152600401610b989061474d565b611b82338261165f565b60036000836009811115611b9857611b9861492c565b8152602001908152602001600020604051602001611bb69190614512565b60405160208183030381529060405290611be35760405162461bcd60e51b8152600401610b9891906146e5565b506010879055601186905560128590556013849055611c0e84611c0887818b8b61329d565b9061329d565b60145560168390556015829055611c26600a8461484a565b6014541115611c6a5760405162461bcd60e51b815260206004820152601060248201526f084eaf240cccaca40e8dede40d0d2ced60831b6044820152606401610b98565b6005601654611c79919061484a565b601554111561159a5760405162461bcd60e51b81526020600482015260116024820152700a6cad8d840cccaca40e8dede40d0d2ced607b1b6044820152606401610b98565b6007600081905260046020527fbeb3bad75134cb432e5707980e3245c52c5998a1125ee30f2f0dbf3925b1e5515460ff1615611d0c5760405162461bcd60e51b8152600401610b989061474d565b611d16338261165f565b60036000836009811115611d2c57611d2c61492c565b8152602001908152602001600020604051602001611d4a9190614512565b60405160208183030381529060405290611d775760405162461bcd60e51b8152600401610b9891906146e5565b506000600284604051611d8a919061446c565b9081526040519081900360200190205490506000611da8844261481e565b6040805180820182526001815267ffffffffffffffff83811660208084019182526000888152600490915284902092518354915168ffffffffffffffffff1990921690151568ffffffffffffffff001916176101009190921602179055519091507f1a64a9fcf40ce1b5dcb813e1f2ef6c6f70310b51c853865d4bfe7ca8f37d854f90611e3a9087908590859061471a565b60405180910390a15050505050565b600260008190526004602052600080516020614a518339815191525460ff1615611e855760405162461bcd60e51b8152600401610b989061474d565b611e8f338261165f565b60036000836009811115611ea557611ea561492c565b8152602001908152602001600020604051602001611ec39190614512565b60405160208183030381529060405290611ef05760405162461bcd60e51b8152600401610b9891906146e5565b50620f4240821115611f0157600080fd5b50602455565b6009600081905260046020527f4ad5a04d53b5856f318545bb721f67d3f6d0a5a999f25eec7e20eaeb4c47b9335460ff1615611f555760405162461bcd60e51b8152600401610b989061474d565b611f5f338261165f565b60036000836009811115611f7557611f7561492c565b8152602001908152602001600020604051602001611f939190614512565b60405160208183030381529060405290611fc05760405162461bcd60e51b8152600401610b9891906146e5565b50506001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b600260008190526004602052600080516020614a518339815191525460ff16156120295760405162461bcd60e51b8152600401610b989061474d565b612033338261165f565b600360008360098111156120495761204961492c565b81526020019081526020016000206040516020016120679190614512565b604051602081830303815290604052906120945760405162461bcd60e51b8152600401610b9891906146e5565b5050601780546001600160a01b039384166001600160a01b03199182161790915560188054929093169116179055565b6000611433338484612bfa565b6003600081905260046020527f2e174c10e159ea99b867ce3205125c24a42d128804e4070ed6fcc8cc98166aa05460ff161561211f5760405162461bcd60e51b8152600401610b989061474d565b612129338261165f565b6003600083600981111561213f5761213f61492c565b815260200190815260200160002060405160200161215d9190614512565b6040516020818303038152906040529061218a5760405162461bcd60e51b8152600401610b9891906146e5565b5060005b82811015610fcd57600060028585848181106121ac576121ac614958565b90506020028101906121be91906147b8565b6040516121cc92919061445c565b9081526040805160209281900383019020546001600160a01b0389166000908152600180855283822083835290945291909120805460ff191690921790915590507f51ff6835511b7f0d6d0df8f2dcc2c818d6eb8d2817b006ff65749f283afec6438686868581811061224157612241614958565b905060200281019061225391906147b8565b846040516122649493929190614632565b60405180910390a15080612277816148fb565b91505061218e565b6001600081905260046020527fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe055460ff16156122cd5760405162461bcd60e51b8152600401610b989061474d565b6122d7338261165f565b600360008360098111156122ed576122ed61492c565b815260200190815260200160002060405160200161230b9190614512565b604051602081830303815290604052906123385760405162461bcd60e51b8152600401610b9891906146e5565b50506000602155565b601d818154811061235157600080fd5b6000918252602090912001546001600160a01b0316905081565b600260008190526004602052600080516020614a518339815191525460ff16156123a75760405162461bcd60e51b8152600401610b989061474d565b6123b1338261165f565b600360008360098111156123c7576123c761492c565b81526020019081526020016000206040516020016123e59190614512565b604051602081830303815290604052906124125760405162461bcd60e51b8152600401610b9891906146e5565b5050601d80546001810182556000919091527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f0180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382166000908152600160205260408082209051829060029061249190869061446c565b908152604080516020928190038301902054835290820192909252016000205460ff169392505050565b6000610db46124c861143a565b601c546001600160a01b03166000908152600a60205260409020546124f9906124f29060026132fc565b85906132fc565b9061337b565b600080601554905060006125244261148160225460215461329d90919063ffffffff16565b90506000612547836114816020546124f9601f54886132fc90919063ffffffff16565b905061256c6125656022546124f985856132fc90919063ffffffff16565b849061329d565b935050505090565b600260008190526004602052600080516020614a518339815191525460ff16156125b05760405162461bcd60e51b8152600401610b989061474d565b6125ba338261165f565b600360008360098111156125d0576125d061492c565b81526020019081526020016000206040516020016125ee9190614512565b6040516020818303038152906040529061261b5760405162461bcd60e51b8152600401610b9891906146e5565b505060258054921515600160a01b0260ff60a01b1990931692909217909155602655565b600060046000600284604051612655919061446c565b9081526040805160209281900383019020548352908201929092520160002054610100900467ffffffffffffffff1692915050565b602360019054906101000a90046001600160a01b03166001600160a01b031663f0fc6bca6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156126da57600080fd5b505af11580156126ee573d6000803e3d6000fd5b50505050565b600043601e5460016127069190614806565b1061271957601654610db4906001613045565b81801561273b57504261273960225460215461329d90919063ffffffff16565b115b1561274857610db46124ff565b8161275557601454610db4565b505060155490565b6000546001600160a01b031633146127ad5760405162461bcd60e51b815260206004820152601360248201527227bbb732b939b434b8103932b8bab4b932b21760691b6044820152606401610b98565b600080546001600160a01b038381166001600160a01b0319831617835516905b600a811015612835576001600160a01b0380831660009081526001602081815260408084208685528252808420805460ff199081169091558454909516845282825280842086855290915290912080549092161790558061282d816148fb565b9150506127cd565b50600054604080516001600160a01b03808516825290921660208301527f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09101610d41565b600260008190526004602052600080516020614a518339815191525460ff16156128b65760405162461bcd60e51b8152600401610b989061474d565b6128c0338261165f565b600360008360098111156128d6576128d661492c565b81526020019081526020016000206040516020016128f49190614512565b604051602081830303815290604052906129215760405162461bcd60e51b8152600401610b9891906146e5565b50506023805460ff1916911515919091179055565b6008600081905260046020527f2645749a946633740611cfc8178319f0958659d6922e4bf7e3a08b44789f53a45460ff16156129845760405162461bcd60e51b8152600401610b989061474d565b61298e338261165f565b600360008360098111156129a4576129a461492c565b81526020019081526020016000206040516020016129c29190614512565b604051602081830303815290604052906129ef5760405162461bcd60e51b8152600401610b9891906146e5565b506001600160a01b0383163014801590612a175750601c546001600160a01b03848116911614155b612a2057600080fd5b6001600160a01b0383166000908152600e60205260409020805460ff19168315801591909117909155612a8c57602354604051630a5b654b60e11b81526001600160a01b03858116600483015260006024830152610100909204909116906314b6ca969060440161156c565b6023546001600160a01b038481166000818152600a602052604090819020549051630a5b654b60e11b81526004810192909252602482015261010090920416906314b6ca969060440161156c565b6008600081905260046020527f2645749a946633740611cfc8178319f0958659d6922e4bf7e3a08b44789f53a45460ff1615612b285760405162461bcd60e51b8152600401610b989061474d565b612b32338261165f565b60036000836009811115612b4857612b4861492c565b8152602001908152602001600020604051602001612b669190614512565b60405160208183030381529060405290612b935760405162461bcd60e51b8152600401610b9891906146e5565b50506001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b60008184841115612be45760405162461bcd60e51b8152600401610b9891906146e5565b506000612bf1848661488b565b95945050505050565b6001600160a01b0383166000908152600f602052604081205460ff1615612c5c5760405162461bcd60e51b81526020600482015260166024820152751059191c995cdcc81a5cc8189b1858dadb1a5cdd195960521b6044820152606401610b98565b60275460ff1615612c7957612c728484846133bd565b9050611433565b612c8384836134a3565b612c8b613510565b15612c9857612c98613566565b601e54158015612cb55750601c546001600160a01b038481169116145b15612ce4576001600160a01b0384166000908152600a6020526040902054612cdc57600080fd5b612ce4613a6c565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600a9091529190912054612d36918490612bc0565b6001600160a01b0385166000908152600a6020526040812091909155612d5c8585613aac565b9050600081612d6b5783612d76565b612d76868686613c02565b6001600160a01b0386166000908152600a6020526040902054909150612d9c908261329d565b6001600160a01b038087166000908152600a60209081526040808320949094559189168152600e909152205460ff16612e45576023546001600160a01b038781166000818152600a602052604090819020549051630a5b654b60e11b81526004810192909252602482015261010090920416906314b6ca9690604401600060405180830381600087803b158015612e3257600080fd5b505af1925050508015612e43575060015b505b6001600160a01b0385166000908152600e602052604090205460ff16612edb576023546001600160a01b038681166000818152600a602052604090819020549051630a5b654b60e11b81526004810192909252602482015261010090920416906314b6ca9690604401600060405180830381600087803b158015612ec857600080fd5b505af1925050508015612ed9575060015b505b602354602480546040516001624d3b8760e01b0319815260048101919091526101009092046001600160a01b03169163ffb2c4799101600060405180830381600087803b158015612f2b57600080fd5b505af1925050508015612f3c575060015b50818015612f505750612f4e85613e96565b155b15612fec576025546001600160a01b038681166000908152600a60205260409020549116906334df40f6908790612f8561143a565b6040516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b158015612fd357600080fd5b505af1158015612fe7573d6000803e3d6000fd5b505050505b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161303191815260200190565b60405180910390a350600195945050505050565b600061143383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612bc0565b6027805460ff19166001179055604080516002808252606082018352600092602083019080368337505060055482519293506001600160a01b0316918391506000906130d5576130d5614958565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061310957613109614958565b6001600160a01b039283166020918202929092010152601b5460405163b6f9de9560e01b815291169063b6f9de9590859061314f906000908690889042906004016146b0565b6000604051808303818588803b15801561316857600080fd5b505af19350505050801561317a575060015b61324d57613186614984565b806308c379a014156131dd575061319b6149a0565b806131a657506131df565b806040516020016131b79190614488565b60408051601f198184030181529082905262461bcd60e51b8252610b98916004016146e5565b505b60405162461bcd60e51b815260206004820152603860248201527f4275796261636b206661696c656420776974686f757420616e206572726f722060448201527f6d6573736167652066726f6d2070616e63616b655377617000000000000000006064820152608401610b98565b604080518481526001600160a01b03841660208201527fe27ecc9c85b6367f7abddc4723456b31bb75434354f83adc03236515846f31e1910160405180910390a150506027805460ff1916905550565b6000806132aa8385614806565b9050838110156114335760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b98565b60008261330b57506000610db4565b6000613317838561486c565b905082613324858361484a565b146114335760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b98565b600061143383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613f5b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600a9091529182205461340e918490612bc0565b6001600160a01b038086166000908152600a6020526040808220939093559085168152205461343d908361329d565b6001600160a01b038085166000818152600a602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906134919086815260200190565b60405180910390a35060019392505050565b600954811115806134cc57506001600160a01b0382166000908152600d602052604090205460ff165b61350c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b98565b5050565b601c546000906001600160a01b03163314801590613531575060275460ff16155b80156135465750602554600160a01b900460ff165b8015611487575050602654306000908152600a6020526040902054101590565b6027805460ff19166001179055601954601a5460009161358591610dba565b61359157601054613594565b60005b905060006135b860026124f96014546124f9866026546132fc90919063ffffffff16565b905060006135d18260265461304590919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061360b5761360b614958565b6001600160a01b03928316602091820292909201015260055482519116908290600190811061363c5761363c614958565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b81524792919091169063791ac9479061368690869060009087903090429060040161477c565b600060405180830381600087803b1580156136a057600080fd5b505af19250505080156136b1575060015b6137cb576136bd614984565b806308c379a0141561373757506136d26149a0565b806136dd5750613739565b7fc41a20ad8c23d3903584975786330c6ec73ccfcc657629f10237b792268b0e028160405160200161370f91906144cd565b60408051601f1981840301815290829052613729916146e5565b60405180910390a150613a5b565b505b7fc41a20ad8c23d3903584975786330c6ec73ccfcc657629f10237b792268b0e026040516137be9060208082526039908201527f537761704261636b206661696c656420776974686f757420616e206572726f7260408201527f206d6573736167652066726f6d2070616e63616b655377617000000000000000606082015260800190565b60405180910390a1613a5b565b60006137d74783613045565b905060006137f26137e988600261337b565b60145490613045565b9050600061380760026124f98481878d6132fc565b90506000613824836124f9601254876132fc90919063ffffffff16565b90506000613841846124f9601354886132fc90919063ffffffff16565b9050602360019054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561389357600080fd5b505af1935050505080156138a5575060015b506018546040516001600160a01b03909116906175309083906000818181858888f193505050503d80600081146138f8576040519150601f19603f3d011682016040523d82523d6000602084013e6138fd565b606091505b505089159050613a2257601b5460175460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b15801561397257600080fd5b505af1935050505080156139a3575060408051601f3d908101601f191682019092526139a09181019061437b565b60015b6139e55760408051600080825260208201527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506910160405180910390a1613a22565b5050604080518b8152602081018690527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b6040518881527fb39214ef4f33ea2d9d329fb67a4f17e7588bf6e00ed15a7967137ba819697a279060200160405180910390a150505050505b50506027805460ff19169055505050565b43601e819055604080519182524260208301527f87dcd6626ffde0faf682a10e7b64aff36ea73a5470d5fa6cc7ebd372e4b19001910160405180910390a1565b6001600160a01b0382166000908152600c602052604081205460ff1680613aeb57506001600160a01b0382166000908152600c602052604090205460ff165b80613af65750601e54155b15613b0357506000610db4565b6000601d805480602002602001604051908101604052809291908181526020018280548015613b5b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613b3d575b5050505050905060005b8151811015613bf357818181518110613b8057613b80614958565b60200260200101516001600160a01b0316856001600160a01b03161480613bd15750818181518110613bb457613bb4614958565b60200260200101516001600160a01b0316846001600160a01b0316145b15613be157600192505050610db4565b80613beb816148fb565b915050613b65565b505060235460ff169392505050565b600080613c0e84613e96565b90506000613c2b6016546124f9613c24856126f4565b87906132fc565b60255460405163f4562c9360e01b81526001600160a01b03898116600483015288811660248301528515156044830152606482018890526084820184905292935091169063f4562c939060a4016040805180830381600087803b158015613c9157600080fd5b505af1925050508015613cc1575060408051601f3d908101601f19168201909252613cbe91810190614308565b60015b613dc857613ccd614984565b806308c379a01415613d475750613ce26149a0565b80613ced5750613d49565b7f78f1f92df68af536dd2bdd4569b5ba168f1977d2c44c17c5ec942c9090c1523281604051602001613d1f91906145ed565b60408051601f1981840301815290829052613d39916146e5565b60405180910390a150613e0f565b505b7f78f1f92df68af536dd2bdd4569b5ba168f1977d2c44c17c5ec942c9090c15232604051613dbb906020808252602a908201527f5375706572506f776572206661696c656420776974686f757420616e206572726040820152696f72206d65737361676560b01b606082015260800190565b60405180910390a1613e0f565b828214613e0c5760408051848152602081018490527f03df8e09298dd09600ef7c82f89690f1879d5c7ac24fda78265aa37576d03a14910160405180910390a18192505b50505b306000908152600a6020526040902054613e29908261329d565b306000818152600a6020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90613e7a9085815260200190565b60405180910390a3613e8c8482613045565b9695505050505050565b600080601d805480602002602001604051908101604052809291908181526020018280548015613eef57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613ed1575b5050505050905060005b8151811015613f5157818181518110613f1457613f14614958565b60200260200101516001600160a01b0316846001600160a01b03161415613f3f575060019392505050565b80613f49816148fb565b915050613ef9565b5060009392505050565b60008183613f7c5760405162461bcd60e51b8152600401610b9891906146e5565b506000612bf1848661484a565b600082601f830112613f9a57600080fd5b813567ffffffffffffffff811115613fb457613fb461496e565b604051613fcb601f8301601f1916602001826148ce565b818152846020838601011115613fe057600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561400f57600080fd5b813561143381614a2a565b6000806040838503121561402d57600080fd5b823561403881614a2a565b9150602083013561404881614a2a565b809150509250929050565b60008060006060848603121561406857600080fd5b833561407381614a2a565b9250602084013561408381614a2a565b929592945050506040919091013590565b6000806000604084860312156140a957600080fd5b83356140b481614a2a565b9250602084013567ffffffffffffffff808211156140d157600080fd5b818601915086601f8301126140e557600080fd5b8135818111156140f457600080fd5b8760208260051b850101111561410957600080fd5b6020830194508093505050509250925092565b6000806040838503121561412f57600080fd5b823561413a81614a2a565b9150602083013561404881614a42565b6000806040838503121561415d57600080fd5b823561416881614a2a565b91506020830135600a811061404857600080fd5b6000806040838503121561418f57600080fd5b823561419a81614a2a565b9150602083013567ffffffffffffffff8111156141b657600080fd5b6141c285828601613f89565b9150509250929050565b600080604083850312156141df57600080fd5b82356141ea81614a2a565b946020939093013593505050565b60006020828403121561420a57600080fd5b813561143381614a42565b6000806040838503121561422857600080fd5b82356141ea81614a42565b60006020828403121561424557600080fd5b813567ffffffffffffffff81111561425c57600080fd5b61426884828501613f89565b949350505050565b6000806040838503121561428357600080fd5b823567ffffffffffffffff8082111561429b57600080fd5b6142a786838701613f89565b93506020850135915080821682146142be57600080fd5b50809150509250929050565b6000602082840312156142dc57600080fd5b5035919050565b600080604083850312156142f657600080fd5b82359150602083013561404881614a42565b6000806040838503121561431b57600080fd5b82519150602083015161404881614a42565b6000806040838503121561434057600080fd5b50508035926020909101359150565b60008060006060848603121561436457600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561439057600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c087890312156143c257600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600081518084526020808501945080840160005b838110156144255781516001600160a01b031687529582019590820190600101614400565b509495945050505050565b600081518084526144488160208601602086016148a2565b601f01601f19169290920160200192915050565b8183823760009101908152919050565b6000825161447e8184602087016148a2565b9190910192915050565b7f4275796261636b206661696c65642077697468206572726f72200000000000008152600082516144c081601a8501602087016148a2565b91909101601a0192915050565b7f537761704261636b206661696c65642077697468206572726f7220000000000081526000825161450581601b8501602087016148a2565b91909101601b0192915050565b7f4e6f7420617574686f72697a65642e20596f75206e656564207468652070657281526000602067036b4b9b9b4b7b7160c51b8184015260286000855481600182811c91508083168061456657607f831692505b86831081141561458457634e487b7160e01b85526022600452602485fd5b80801561459857600181146145ad576145de565b60ff1985168a880152838a01870195506145de565b60008b81526020902060005b858110156145d45781548c82018a01529084019089016145b9565b505086848b010195505b50939998505050505050505050565b7f5375706572506f776572206661696c65642077697468206572726f722000000081526000825161462581601d8501602087016148a2565b91909101601d0192915050565b6001600160a01b038516815260606020820181905281018390528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b6001600160a01b03841681526060602082018190526000906146a090830185614430565b9050826040830152949350505050565b8481526080602082015260006146c960808301866143ec565b6001600160a01b03949094166040830152506060015292915050565b6020815260006114336020830184614430565b60408152600061470b6040830185614430565b90508260208301529392505050565b60608152600061472d6060830186614430565b905083602083015267ffffffffffffffff83166040830152949350505050565b6020808252601590820152742832b936b4b9b9b4b7b71034b9903637b1b5b2b21760591b604082015260600190565b85815284602082015260a06040820152600061479b60a08301866143ec565b6001600160a01b0394909416606083015250608001529392505050565b6000808335601e198436030181126147cf57600080fd5b83018035915067ffffffffffffffff8211156147ea57600080fd5b6020019150368190038213156147ff57600080fd5b9250929050565b6000821982111561481957614819614916565b500190565b600067ffffffffffffffff80831681851680830382111561484157614841614916565b01949350505050565b60008261486757634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561488657614886614916565b500290565b60008282101561489d5761489d614916565b500390565b60005b838110156148bd5781810151838201526020016148a5565b838111156126ee5750506000910152565b601f8201601f1916810167ffffffffffffffff811182821017156148f4576148f461496e565b6040525050565b600060001982141561490f5761490f614916565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600060033d111561499d5760046000803e5060005160e01c5b90565b600060443d10156149ae5790565b6040516003193d81016004833e81513d67ffffffffffffffff81602484011181841117156149de57505050505090565b82850191508151818111156149f65750505050505090565b843d8701016020828501011115614a105750505050505090565b614a1f602082860101876148ce565b509095945050505050565b6001600160a01b0381168114614a3f57600080fd5b50565b8015158114614a3f57600080fdfe91da3fd0782e51c6b3986e9e672fd566868e71f3dbc2d6c2cd6fbb3e361af2a7a26469706673582212207e7ab34c1ec5345cb5c2e684eefee855567fe4164e2fdc73d84f72aff48846de64736f6c63430008060033000000000000000000000000fdb00d007c4fe2ef7dbae1781f6d6387acac94b400000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c00000000000000000000000034fcc8298d0c9e7ca6f6739dca186222a1d3ec1b

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

000000000000000000000000fdb00d007c4fe2ef7dbae1781f6d6387acac94b400000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c00000000000000000000000034fcc8298d0c9e7ca6f6739dca186222a1d3ec1b

-----Decoded View---------------
Arg [0] : _dividentDistributor (address): 0xfdb00d007c4fe2ef7dbae1781f6d6387acac94b4
Arg [1] : pancakeExchange (address): 0x10ed43c718714eb63d5aa57b78b54704e256024e
Arg [2] : _WBNB (address): 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c
Arg [3] : _nftSuperPower (address): 0x34fcc8298d0c9e7ca6f6739dca186222a1d3ec1b

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000fdb00d007c4fe2ef7dbae1781f6d6387acac94b4
Arg [1] : 00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e
Arg [2] : 000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c
Arg [3] : 00000000000000000000000034fcc8298d0c9e7ca6f6739dca186222a1d3ec1b


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