Contract 0x52941a733F7bAb6E52d5C8f2045c9D9D9eA246Ff

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xc12151356688d81ac526b06f25415deb65744d5e9ba5cc524be0ba10c70cc475Approve147395482022-01-27 19:32:451 day 2 hrs ago0x4e2474c8ab09e7b331e442c57b318c467c89fad2 IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.00022247
0x0d9febbc430bde2486554a0ae7614d24a02c5f1b2c93e3ab48ccca967e64c2f5Approve147349562022-01-27 15:43:091 day 5 hrs ago0xd45d9d2961843fec3e0a43d5323a4082255f003a IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.00022247
0x346b99d1bd264ff48dac47a821ea4e62460c054e694aabc8430f5d4470e27bddApprove147338582022-01-27 14:47:591 day 6 hrs ago0x5058385c48325f8cdecdb842629854e5d45435ef IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.00022247
0xa2ff1e00e442639f6552beadb1f09beb9f121eb8bc050b92f119a308cadc4247Transfer147263212022-01-27 8:30:211 day 13 hrs ago0xfa9918d8a720bd5fc719353fccd11eb87b45bd23 IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.001653685
0x2e13f009d2cf9d90be9dcf5df68c9c607a3d533d2260f21b467b593bd828bb37Transfer147262982022-01-27 8:29:121 day 13 hrs ago0x78b4a8e81dc2228e416be29e2974ab1bb2803d81 IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.004903535
0xb3fc1577211998ddd8821454c3de35017bf376ebb79939dc4064f3f9bcdc1be3Approve147229802022-01-27 5:41:291 day 15 hrs ago0x9dea9ff22f576961a2728dc7d5f5e9cf5e7fc1a5 IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.000072775
0x878ab97689d69fdefae1e808f1664b4f6131bbb73a171874308241045b4c9a26Approve147229582022-01-27 5:40:231 day 15 hrs ago0x9dea9ff22f576961a2728dc7d5f5e9cf5e7fc1a5 IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.00022247
0xfdf9932c6af11dd3c3a4834ca81518f9942e794b168f48f318d647f93e727ebaApprove147163512022-01-27 0:09:471 day 21 hrs ago0xe1b8538e52955c1e93636db59161f94a27bf856f IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.00022247
0x875a355a84e5280a92196ee3bd05b36ca0b41bce561d1061ae9f3140269a541eTransfer147162222022-01-27 0:03:201 day 21 hrs ago0xd64a3dd3093359cb5b952b8c2dc3ec926a9a169c IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.002031245
0xdef59bbeb49b47c091ad699e37deded73d9eaec9fab9f333f54d4e6a977178e8Transfer147003222022-01-26 10:43:492 days 10 hrs ago0xa35ac169dfa4bc21c304867da5c6221a0c17590f IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.00247827
0xdbe9d71bd40256834debed62bc1e07f1b7dd0325ebf078685d4a88591b5a031aTransfer146763602022-01-25 14:43:543 days 6 hrs ago0xa50e3379d102f20d9aa31c4bb9f567ba713a0277 IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.0022231
0xdb6e75572797d8d1eb733a2ecab1335a3fa41a56f07509713b35911591d113e4Approve146735762022-01-25 12:24:403 days 9 hrs ago0xd21c7bc5af33ba66ddc319aeb5724370b28a5e99 IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.00012455
0xa9c6e0defe280ba677a43e0a6391a5b8b9a2d6b07da79a9983cf519a7623158cApprove146735552022-01-25 12:23:373 days 9 hrs ago0xd21c7bc5af33ba66ddc319aeb5724370b28a5e99 IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.000072775
0x25c6257921984d03beda6c6ed087d04b3d2301e43658e9eb182dab4287175c29Approve146712962022-01-25 10:30:403 days 11 hrs ago0xbf3966ca41504a4a9369b9b631366aa15ff48e2a IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.00022247
0x685badd92f38e7bbbd6c92433e36fa8cea3405fbb2af4da61e35194bf66ab1dbApprove146699532022-01-25 9:23:213 days 12 hrs ago0x3861bbd69e5b89ba189808f790bddf22dd13e310 IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.00022247
0xe547d696f7abcbc0e792671c4074e7d42758287aca0442329c45a05d09ea89d6Approve146657882022-01-25 5:55:033 days 15 hrs ago0xe795ba455d18e8d4393ff371754971312b362aea IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.00022247
0x1763cf333df2fab3760cb9d35a4abae1b5e430eb865727013dd99af6055c5edaApprove146578842022-01-24 23:18:473 days 22 hrs ago0x892beecacc22c41eb7be00a14f2817006bd73bc2 IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.000072775
0x1d8b2877b15429e8297e27c1fd4c75f65a427b167341144b85ca0c753bfbe964Approve146493532022-01-24 16:10:464 days 5 hrs ago0xab0d1246fab11489d50c90fb8363fd47f16c77b4 IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.00022247
0xbc4bb9379b3d2ac4f9328b04346d36446c9f823f9e1be9362580522d1d55a53dTransfer146424982022-01-24 10:27:184 days 11 hrs ago0x3157a39a6a05abf73d94fbc3621d54e51c6660e2 IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.00247836
0xe0316e20213c81f1d9fd69f205bc4aa47cac56021afc8de01ee75e97515a2b68Approve146411722022-01-24 9:20:594 days 12 hrs ago0x1577daa902de220d62097ad44c6f76a7546734ff IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.00022247
0x76be59bbd62eaee663e4935aa3995241e9bcaa9bc7ac0d51e43e8ef7e1776336Approve146299502022-01-23 23:58:254 days 21 hrs ago0x1393a2be26c243fa69a4feb43aacf25e61fe3c6e IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.00022247
0xbbaded2a8ff63f9a1861575a3af19b2da9695b178ff4b1b888220d7d00642106Approve146280722022-01-23 22:24:314 days 23 hrs ago0x22854425e2791a414e9718d78cfdc58dd80aed32 IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.000072775
0x25729778b01ed0d6d8b4209a537d3ae02f605d913808f81e68b9060fa62b1a47Approve146226732022-01-23 17:54:345 days 3 hrs ago0xee047621747b4c9adbc3a72f0a99f8c1893070cf IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.00022247
0xc408d0490135759ca8c6294b7bb91020d1121cda3ea70d3cd8220b833b63bb9aTransfer146211342022-01-23 16:37:375 days 5 hrs ago0x07c9757e98e73e16b14402f894f94f583a5a0331 IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.00504678
0x181591ebd42c1b696da59c2022c8e17cd4dce6040808ace7ff81be2eb0ad729aApprove146166472022-01-23 12:52:445 days 8 hrs ago0x1d5c985bf8d9ad0aa8f6aa8f6bb245dddcaf37b1 IN  0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0 BNB0.00022247
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xf47e9b69b08b9a4e719ae2cc7ede4c562e8203fa220109ed9a136b63c36b9824147613082022-01-28 13:45:067 hrs 55 mins ago 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0x4e972415e918e1f8daf490067ccf3bef593ecac50.053719102192096737 BNB
0xf47e9b69b08b9a4e719ae2cc7ede4c562e8203fa220109ed9a136b63c36b9824147613082022-01-28 13:45:067 hrs 55 mins ago 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff 0x11ac188b5aa890026e084aac0d0fc6d4d11789330.18801685767233858 BNB
0xf47e9b69b08b9a4e719ae2cc7ede4c562e8203fa220109ed9a136b63c36b9824147613082022-01-28 13:45:067 hrs 55 mins ago PancakeSwap: Router v2 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0.349174164248628792 BNB
0x2e13f009d2cf9d90be9dcf5df68c9c607a3d533d2260f21b467b593bd828bb37147262982022-01-27 8:29:121 day 13 hrs ago 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0x4e972415e918e1f8daf490067ccf3bef593ecac50.055665431764551155 BNB
0x2e13f009d2cf9d90be9dcf5df68c9c607a3d533d2260f21b467b593bd828bb37147262982022-01-27 8:29:121 day 13 hrs ago 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff 0x11ac188b5aa890026e084aac0d0fc6d4d11789330.194829011175929042 BNB
0x2e13f009d2cf9d90be9dcf5df68c9c607a3d533d2260f21b467b593bd828bb37147262982022-01-27 8:29:121 day 13 hrs ago PancakeSwap: Router v2 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0.361825306469582508 BNB
0xc408d0490135759ca8c6294b7bb91020d1121cda3ea70d3cd8220b833b63bb9a146211342022-01-23 16:37:375 days 5 hrs ago 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0x4e972415e918e1f8daf490067ccf3bef593ecac50.053030379776257014 BNB
0xc408d0490135759ca8c6294b7bb91020d1121cda3ea70d3cd8220b833b63bb9a146211342022-01-23 16:37:375 days 5 hrs ago 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff 0x11ac188b5aa890026e084aac0d0fc6d4d11789330.185606329216899549 BNB
0xc408d0490135759ca8c6294b7bb91020d1121cda3ea70d3cd8220b833b63bb9a146211342022-01-23 16:37:375 days 5 hrs ago PancakeSwap: Router v2 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0.344697468545670591 BNB
0x9839711694850eb49949cf6fe84330b5f192f03a147d73f85fab0e654520f80f145583342022-01-21 12:08:297 days 9 hrs ago 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0x4e972415e918e1f8daf490067ccf3bef593ecac50.054567990895681341 BNB
0x9839711694850eb49949cf6fe84330b5f192f03a147d73f85fab0e654520f80f145583342022-01-21 12:08:297 days 9 hrs ago 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff 0x11ac188b5aa890026e084aac0d0fc6d4d11789330.190987968134884695 BNB
0x9839711694850eb49949cf6fe84330b5f192f03a147d73f85fab0e654520f80f145583342022-01-21 12:08:297 days 9 hrs ago PancakeSwap: Router v2 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0.35469194082192872 BNB
0x1705cff2db5fca3152e818cac87d30d590233b50c229c163551fdb4761f3a017145560852022-01-21 10:16:007 days 11 hrs ago 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0x4e972415e918e1f8daf490067ccf3bef593ecac50.054862347240779505 BNB
0x1705cff2db5fca3152e818cac87d30d590233b50c229c163551fdb4761f3a017145560852022-01-21 10:16:007 days 11 hrs ago 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff 0x11ac188b5aa890026e084aac0d0fc6d4d11789330.19201821534272827 BNB
0x1705cff2db5fca3152e818cac87d30d590233b50c229c163551fdb4761f3a017145560852022-01-21 10:16:007 days 11 hrs ago PancakeSwap: Router v2 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0.356605257065066788 BNB
0x16d09b574bcda3cacb04a1794398523ece5f635df9f3cfb9aebe0244c1cc905c145395172022-01-20 20:26:138 days 1 hr ago 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0x4e972415e918e1f8daf490067ccf3bef593ecac50.054992360794705142 BNB
0x16d09b574bcda3cacb04a1794398523ece5f635df9f3cfb9aebe0244c1cc905c145395172022-01-20 20:26:138 days 1 hr ago 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff 0x11ac188b5aa890026e084aac0d0fc6d4d11789330.192473262781467999 BNB
0x16d09b574bcda3cacb04a1794398523ece5f635df9f3cfb9aebe0244c1cc905c145395172022-01-20 20:26:138 days 1 hr ago PancakeSwap: Router v2 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0.357450345165583428 BNB
0x30db7887dbd76d4b992a17623804496a209c0392844515c5766c37d88b1b4817144632682022-01-18 4:27:3510 days 17 hrs ago 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0x4e972415e918e1f8daf490067ccf3bef593ecac50.059982742415072566 BNB
0x30db7887dbd76d4b992a17623804496a209c0392844515c5766c37d88b1b4817144632682022-01-18 4:27:3510 days 17 hrs ago 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff 0x11ac188b5aa890026e084aac0d0fc6d4d11789330.209939598452753984 BNB
0x30db7887dbd76d4b992a17623804496a209c0392844515c5766c37d88b1b4817144632682022-01-18 4:27:3510 days 17 hrs ago PancakeSwap: Router v2 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0.389887825697971685 BNB
0x224d32b6c052880c25f4cd33a1d1614a01e017a00bf1bf9efb8359992ae49e73143787962022-01-15 5:37:0513 days 16 hrs ago 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0x4e972415e918e1f8daf490067ccf3bef593ecac50.061210742165370566 BNB
0x224d32b6c052880c25f4cd33a1d1614a01e017a00bf1bf9efb8359992ae49e73143787962022-01-15 5:37:0513 days 16 hrs ago 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff 0x11ac188b5aa890026e084aac0d0fc6d4d11789330.214237597578796983 BNB
0x224d32b6c052880c25f4cd33a1d1614a01e017a00bf1bf9efb8359992ae49e73143787962022-01-15 5:37:0513 days 16 hrs ago PancakeSwap: Router v2 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0.397869824074908683 BNB
0xa1a1212d598f4a424a73c0eac18efbaeb4c09096ce03e9922175a41ad1293ded142726832022-01-11 13:01:5917 days 8 hrs ago 0x52941a733f7bab6e52d5c8f2045c9d9d9ea246ff0x4e972415e918e1f8daf490067ccf3bef593ecac50.061374426305849144 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ShibaWatch

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-10-14
*/

/*

░██████╗██╗░░██╗██╗██████╗░░█████╗░░██╗░░░░░░░██╗░█████╗░████████╗░█████╗░██╗░░██╗
██╔════╝██║░░██║██║██╔══██╗██╔══██╗░██║░░██╗░░██║██╔══██╗╚══██╔══╝██╔══██╗██║░░██║
╚█████╗░███████║██║██████╦╝███████║░╚██╗████╗██╔╝███████║░░░██║░░░██║░░╚═╝███████║
░╚═══██╗██╔══██║██║██╔══██╗██╔══██║░░████╔═████║░██╔══██║░░░██║░░░██║░░██╗██╔══██║
██████╔╝██║░░██║██║██████╦╝██║░░██║░░╚██╔╝░╚██╔╝░██║░░██║░░░██║░░░╚█████╔╝██║░░██║
╚═════╝░╚═╝░░╚═╝╚═╝╚═════╝░╚═╝░░╚═╝░░░╚═╝░░░╚═╝░░╚═╝░░╚═╝░░░╚═╝░░░░╚════╝░╚═╝░░╚═╝
An EvergrowCoin fork, all credits go to them for these wonderful tokenomics

ShibaWatch has an upcoming platform which features new coin listings, audit, KYC, staking/lending, NFT marketplace and more.
- Hyperdeflationary - Buyback - BUSD Rewards - Burn

https://t.me/shibawatchofficial
https://www..shibawatch.net
*/

//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;



/**
 * SAFEMATH LIBRARY
 */
library SafeMath {
    
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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);
}

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

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

    /**
     * Function modifier to require caller to be authorized
     */
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    /**
     * Authorize address. Owner only
     */
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    /**
     * Remove address' authorization. Owner only
     */
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

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

    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

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;
}

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;
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address _token;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }

    IBEP20 BUSD = IBEP20(0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56);
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    IDEXRouter router;

    address[] shareholders;
    mapping (address => uint256) shareholderIndexes;
    mapping (address => uint256) shareholderClaims;

    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;

    uint256 public minPeriod = 1 hours;
    uint256 public minDistribution = 1 * (10 ** 18);

    uint256 currentIndex;

    bool initialized;
    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }

    constructor (address _router) {
        router = _router != address(0)
        ? IDEXRouter(_router)
        : IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        _token = msg.sender;
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external override onlyToken {
        minPeriod = _minPeriod;
        minDistribution = _minDistribution;
    }

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() external payable override onlyToken {
        uint256 balanceBefore = BUSD.balanceOf(address(this));

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

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amount = BUSD.balanceOf(address(this)).sub(balanceBefore);

        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }

    function process(uint256 gas) external override onlyToken {
        uint256 shareholderCount = shareholders.length;

        if(shareholderCount == 0) { return; }

        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        uint256 iterations = 0;

        while(gasUsed < gas && iterations < shareholderCount) {
            if(currentIndex >= shareholderCount){
                currentIndex = 0;
            }

            if(shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }

    function shouldDistribute(address shareholder) internal view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp
        && getUnpaidEarnings(shareholder) > minDistribution;
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            BUSD.transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }

    function claimDividend() external {
        distributeDividend(msg.sender);
    }

    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
}

contract ShibaWatch is IBEP20, Auth {
    using SafeMath for uint256;

    uint256 public constant MASK = type(uint128).max;
    address BUSD = 0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56;
    address public WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    address DEAD_NON_CHECKSUM = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "Shiba Watch";
    string constant _symbol = "SHIBAW";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1_000_000_000_000_000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply.div(100); // 0.25%

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

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

    uint256 liquidityFee = 200;
    uint256 buybackFee = 200;
    uint256 reflectionFee = 700;
    uint256 marketingFee = 100;
    uint256 totalFee = liquidityFee+buybackFee+reflectionFee+marketingFee;
    uint256 feeDenominator = 10000;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;

    uint256 targetLiquidity = 25;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    uint256 public launchedAtTimestamp;

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

    bool public autoBuybackEnabled = false;
    mapping (address => bool) buyBacker;
    uint256 autoBuybackCap;
    uint256 autoBuybackAccumulator;
    uint256 autoBuybackAmount;
    uint256 autoBuybackBlockPeriod;
    uint256 autoBuybackBlockLast;

    DividendDistributor distributor;
    address public distributorAddress;

    uint256 distributorGas = 500000;

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

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        pair = IDEXFactory(router.factory()).createPair(WBNB, address(this));
        _allowances[address(this)][address(router)] = _totalSupply;
        WBNB = router.WETH();
        distributor = new DividendDistributor(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        distributorAddress = address(distributor);

        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[msg.sender] = true;
        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;
        buyBacker[msg.sender] = true;

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = msg.sender;

        approve(0x10ED43C718714eb63d5aA57B78B54704E256024E, _totalSupply);
        approve(address(pair), _totalSupply);
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _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; }
    modifier onlyBuybacker() { require(buyBacker[msg.sender] == true, ""); _; }
    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, _totalSupply);
    }

    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] != _totalSupply){
            _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) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        checkTxLimit(sender, amount);
        //
        if(shouldSwapBack()){ swapBack(); }
        if(shouldAutoBuyback()){ triggerAutoBuyback(); }

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

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

        uint256 amountReceived = shouldTakeFee(sender) ? 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 {}

        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) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function getTotalFee(bool selling) public view returns (uint256) {
        if(launchedAt + 1 >= block.number){ return feeDenominator.sub(1); }
        if(selling){ return getMultipliedFee(); }
        return totalFee;
    }

    function getMultipliedFee() public view returns (uint256) {
        if (launchedAtTimestamp + 1 days > block.timestamp) {
            return totalFee.mul(18000).div(feeDenominator);
        } else if (buybackMultiplierTriggeredAt.add(buybackMultiplierLength) > block.timestamp) {
            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));
        }
        return totalFee;
    }

    function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(getTotalFee(receiver == pair)).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

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

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).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;

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

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

        uint256 totalBNBFee = totalFee.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).transfer(amountBNBMarketing);
            
        

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

    function shouldAutoBuyback() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && autoBuybackEnabled
        && autoBuybackBlockLast + autoBuybackBlockPeriod <= block.number // After N blocks from last buyback
        && address(this).balance >= autoBuybackAmount;
    }

    function triggerZeusBuyback(uint256 amount, bool triggerBuybackMultiplier) external authorized {
        buyTokens(amount, DEAD);
        if(triggerBuybackMultiplier){
            buybackMultiplierTriggeredAt = block.timestamp;
            emit BuybackMultiplierActive(buybackMultiplierLength);
        }
    }

    function clearBuybackMultiplier() external authorized {
        buybackMultiplierTriggeredAt = 0;
    }

    function triggerAutoBuyback() internal {
        buyTokens(autoBuybackAmount, DEAD);
        autoBuybackBlockLast = block.number;
        autoBuybackAccumulator = autoBuybackAccumulator.add(autoBuybackAmount);
        if(autoBuybackAccumulator > autoBuybackCap){ autoBuybackEnabled = false; }
    }

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

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function setAutoBuybackSettings(bool _enabled, uint256 _cap, uint256 _amount, uint256 _period) external authorized {
        autoBuybackEnabled = _enabled;
        autoBuybackCap = _cap;
        autoBuybackAccumulator = 0;
        autoBuybackAmount = _amount;
        autoBuybackBlockPeriod = _period;
        autoBuybackBlockLast = block.number;
    }

    function setBuybackMultiplierSettings(uint256 numerator, uint256 denominator, uint256 length) external authorized {
        require(numerator / denominator <= 2 && numerator > denominator);
        buybackMultiplierNumerator = numerator;
        buybackMultiplierDenominator = denominator;
        buybackMultiplierLength = length;
    }

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

    function launch() public authorized {
        require(launchedAt == 0, "Already launched boi");
        launchedAt = block.number;
        launchedAtTimestamp = block.timestamp;
    }

    function setTxLimit(uint256 amount) external authorized {
        require(amount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    }

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

    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external authorized {
        isTxLimitExempt[holder] = exempt;
    }

    function setFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        buybackFee = _buybackFee;
        reflectionFee = _reflectionFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_buybackFee).add(_reflectionFee).add(_marketingFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/5); //20% max
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver) external authorized {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorized {
        distributor.setDistributionCriteria(_minPeriod, _minDistribution);
    }

    function setDistributorSettings(uint256 gas) external authorized {
        require(gas < 750000);
        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(pair).mul(2)).div(getCirculatingSupply());
    }

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

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);
    event BuybackMultiplierActive(uint256 duration);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":"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":"duration","type":"uint256"}],"name":"BuybackMultiplierActive","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","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"},{"inputs":[],"name":"MASK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WBNB","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoBuybackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"clearBuybackMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distributorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","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":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAtTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_cap","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"}],"name":"setAutoBuybackSettings","outputs":[],"stateMutability":"nonpayable","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"}],"name":"setFees","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":"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":"triggerZeusBuyback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031990811673e9e7cea3dedca5984780bafc599bd69add087d561790915560038054821673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c17905560048054821661dead9081179091556005805483169055600680549092161790556200007a6009600a62000661565b6200008d9066038d7ea4c6800062000720565b600755620000ad60646007546200051660201b6200132b1790919060201c565b60085560c8600e5560c8600f556102bc6010556064601155601154601054600f54600e54620000dd9190620005da565b620000e99190620005da565b620000f59190620005da565b60125561271060135560196016556064601781905560c8601c55601d55610708601f556020805460ff199081169091556207a120602955602a805490911660011790556007546200014a906107d090620005f5565b602b553480156200015a57600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155601880547310ed43c718714eb63d5aa57b78b54704e256024e931683179055825163c45a015560e01b81529251919263c45a01559260048083019392829003018186803b158015620001dc57600080fd5b505afa158015620001f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002179190620005a8565b6003546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b1580156200026457600080fd5b505af115801562000279573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029f9190620005a8565b601980546001600160a01b0319166001600160a01b03928316179055600754306000908152600a6020908152604080832060188054871685529083529281902093909355905482516315ab88c960e31b8152925193169263ad5c4648926004808201939291829003018186803b1580156200031957600080fd5b505afa1580156200032e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003549190620005a8565b600380546001600160a01b0319166001600160a01b03929092169190911790556040517310ed43c718714eb63d5aa57b78b54704e256024e9062000398906200059a565b6001600160a01b039091168152602001604051809103906000f080158015620003c5573d6000803e3d6000fd5b50602780546001600160a01b039283166001600160a01b03199182168117909255602880548216909217909155336000818152600b60209081526040808320805460ff199081166001908117909255600c8452828520805482168317905560195488168552600d84528285208054821683179055308552828520805482168317905560045490971684528184208054881682179055848452602190925290912080549094161790925560148054821683179055601580549091169091179055600754620004a8907310ed43c718714eb63d5aa57b78b54704e256024e906200052d565b50601954600754620004c4916001600160a01b0316906200052d565b5060075433600081815260096020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000758565b6000620005248284620005f5565b90505b92915050565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590620005899086815260200190565b60405180910390a350600192915050565b610e5880620029c483390190565b600060208284031215620005bb57600080fd5b81516001600160a01b0381168114620005d357600080fd5b9392505050565b60008219821115620005f057620005f062000742565b500190565b6000826200061357634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620006595781600019048211156200063d576200063d62000742565b808516156200064b57918102915b93841c93908002906200061d565b509250929050565b60006200052460ff8416836000826200067d5750600162000527565b816200068c5750600062000527565b8160018114620006a55760028114620006b057620006d0565b600191505062000527565b60ff841115620006c457620006c462000742565b50506001821b62000527565b5060208310610133831016604e8410600b8410161715620006f5575081810a62000527565b62000701838362000618565b806000190482111562000718576200071862000742565b029392505050565b60008160001904831182151516156200073d576200073d62000742565b500290565b634e487b7160e01b600052601160045260246000fd5b61225c80620007686000396000f3fe6080604052600436106102b25760003560e01c806395d89b4111610175578063d806d12f116100dc578063f1f3bca311610095578063f708a64f1161006f578063f708a64f146108a1578063f84ba65d146108c1578063f887ea40146108e1578063fe9fbb801461090157600080fd5b8063f1f3bca314610841578063f2fde38b14610861578063f5cfec0a1461088157600080fd5b8063d806d12f14610762578063dd62ed3e14610777578063df20fd49146107bd578063e91f214e146107dd578063e96fada214610801578063f0b37c041461082157600080fd5b8063b210b06d1161012e578063b210b06d146106c1578063b6a5d7de146106d6578063bf56b371146106f6578063c6d2577d1461070c578063ca33e64c14610722578063d51ed1c81461074257600080fd5b806395d89b41146105f25780639d1944f514610621578063a4b45c0014610641578063a51af4c514610661578063a8aa1b3114610681578063a9059cbb146106a157600080fd5b80632d48e89611610219578063658d4b7f116101d2578063658d4b7f1461051a5780636ddd17131461053a57806370a08231146105545780637d1db4a51461058a578063893d20e8146105a05780638dd95002146105d257600080fd5b80632d48e896146104555780632f54bf6e14610475578063313ce567146104a45780633bb8a8d4146104c0578063571ac8b0146104da5780635c85974f146104fa57600080fd5b80631161ae391161026b5780631161ae39146103ab57806318160ddd146103cb578063201e7991146103e05780632375ce401461040057806323b872dd146104205780632b112e491461044057600080fd5b806301339c21146102be5780630445b667146102d5578063048c7baf146102fe57806304a66b481461031e57806306fdde031461033e578063095ea7b31461037b57600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610921565b005b3480156102e157600080fd5b506102eb602b5481565b6040519081526020015b60405180910390f35b34801561030a57600080fd5b506102d3610319366004611ef7565b6109a0565b34801561032a57600080fd5b506102d3610339366004611fe8565b6109ee565b34801561034a57600080fd5b5060408051808201909152600b81526a0a6d0d2c4c240aec2e8c6d60ab1b60208201525b6040516102f5919061209c565b34801561038757600080fd5b5061039b610396366004611e94565b610a64565b60405190151581526020016102f5565b3480156103b757600080fd5b5061039b6103c6366004611f6c565b610ad0565b3480156103d757600080fd5b506007546102eb565b3480156103ec57600080fd5b506102d36103fb366004611f6c565b610ae4565b34801561040c57600080fd5b506102d361041b366004611f8e565b610b14565b34801561042c57600080fd5b5061039b61043b366004611e1e565b610b69565b34801561044c57600080fd5b506102eb610c2d565b34801561046157600080fd5b506102d3610470366004611f6c565b610c7f565b34801561048157600080fd5b5061039b610490366004611dc8565b6000546001600160a01b0391821691161490565b3480156104b057600080fd5b50604051600981526020016102f5565b3480156104cc57600080fd5b5060205461039b9060ff1681565b3480156104e657600080fd5b5061039b6104f5366004611dc8565b610d0e565b34801561050657600080fd5b506102d3610515366004611f30565b610d22565b34801561052657600080fd5b506102d3610535366004611e5f565b610d68565b34801561054657600080fd5b50602a5461039b9060ff1681565b34801561056057600080fd5b506102eb61056f366004611dc8565b6001600160a01b031660009081526009602052604090205490565b34801561059657600080fd5b506102eb60085481565b3480156105ac57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102f5565b3480156105de57600080fd5b506003546105ba906001600160a01b031681565b3480156105fe57600080fd5b5060408051808201909152600681526553484942415760d01b602082015261036e565b34801561062d57600080fd5b506102d361063c366004611f30565b610db8565b34801561064d57600080fd5b506102d361065c366004611de5565b610df1565b34801561066d57600080fd5b506028546105ba906001600160a01b031681565b34801561068d57600080fd5b506019546105ba906001600160a01b031681565b3480156106ad57600080fd5b5061039b6106bc366004611e94565b610e44565b3480156106cd57600080fd5b506102d3610e51565b3480156106e257600080fd5b506102d36106f1366004611dc8565b610e7d565b34801561070257600080fd5b506102eb601a5481565b34801561071857600080fd5b506102eb601b5481565b34801561072e57600080fd5b506014546105ba906001600160a01b031681565b34801561074e57600080fd5b506102eb61075d366004611f30565b610ece565b34801561076e57600080fd5b506102eb610f12565b34801561078357600080fd5b506102eb610792366004611de5565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b3480156107c957600080fd5b506102d36107d8366004611edb565b610fe0565b3480156107e957600080fd5b506102eb6fffffffffffffffffffffffffffffffff81565b34801561080d57600080fd5b506015546105ba906001600160a01b031681565b34801561082d57600080fd5b506102d361083c366004611dc8565b61101c565b34801561084d57600080fd5b506102eb61085c366004611ec0565b611067565b34801561086d57600080fd5b506102d361087c366004611dc8565b6110a2565b34801561088d57600080fd5b506102d361089c366004611f49565b611138565b3480156108ad57600080fd5b506102d36108bc366004611e5f565b6111b9565b3480156108cd57600080fd5b506102d36108dc366004611e5f565b6112bd565b3480156108ed57600080fd5b506018546105ba906001600160a01b031681565b34801561090d57600080fd5b5061039b61091c366004611dc8565b61130d565b61092a3361130d565b61094f5760405162461bcd60e51b815260040161094690612111565b60405180910390fd5b601a54156109965760405162461bcd60e51b8152602060048201526014602482015273416c7265616479206c61756e6368656420626f6960601b6044820152606401610946565b43601a5542601b55565b6109a93361130d565b6109c55760405162461bcd60e51b815260040161094690612111565b6020805460ff191694151594909417909355602291909155600060235560245560255543602655565b6109f73361130d565b610a135760405162461bcd60e51b815260040161094690612111565b600e859055600f84905560108390556011829055610a3d82610a3785818989611337565b90611337565b6012556013819055610a5060058261218a565b60125410610a5d57600080fd5b5050505050565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610abf9086815260200190565b60405180910390a350600192915050565b600082610adc83610ece565b119392505050565b610aed3361130d565b610b095760405162461bcd60e51b815260040161094690612111565b601691909155601755565b610b1d3361130d565b610b395760405162461bcd60e51b815260040161094690612111565b6002610b45838561218a565b11158015610b5257508183115b610b5b57600080fd5b601c92909255601d55601f55565b6007546001600160a01b0384166000908152600a60209081526040808320338452909152812054909114610c18576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600a82528381203382529091529190912054610bf3918490611343565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b610c2384848461136f565b90505b9392505050565b6005546001600160a01b0316600090815260096020526040812054610c7a906004546001600160a01b0316600090815260096020526040902054610c74906007549061166c565b9061166c565b905090565b610c883361130d565b610ca45760405162461bcd60e51b815260040161094690612111565b6027546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610cf257600080fd5b505af1158015610d06573d6000803e3d6000fd5b505050505050565b6000610d1c82600754610a64565b92915050565b610d2b3361130d565b610d475760405162461bcd60e51b815260040161094690612111565b6103e8600754610d57919061218a565b811015610d6357600080fd5b600855565b610d713361130d565b610d8d5760405162461bcd60e51b815260040161094690612111565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b610dc13361130d565b610ddd5760405162461bcd60e51b815260040161094690612111565b620b71b08110610dec57600080fd5b602955565b610dfa3361130d565b610e165760405162461bcd60e51b815260040161094690612111565b601480546001600160a01b039384166001600160a01b03199182161790915560158054929093169116179055565b6000610c2633848461136f565b610e5a3361130d565b610e765760405162461bcd60e51b815260040161094690612111565b6000601e55565b6000546001600160a01b03163314610ea75760405162461bcd60e51b8152600401610946906120f1565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000610d1c610edb610c2d565b6019546001600160a01b0316600090815260096020526040902054610f0c90610f05906002611678565b8590611678565b9061132b565b600042601b5462015180610f269190612172565b1115610f4957610c7a601354610f0c61465060125461167890919063ffffffff16565b42610f61601f54601e5461133790919063ffffffff16565b1115610fd9576000610f8442610c74601f54601e5461133790919063ffffffff16565b90506000610fab601254610c74601d54610f0c601c5460125461167890919063ffffffff16565b9050610fd2610fc9601f54610f0c858561167890919063ffffffff16565b60125490611337565b9250505090565b5060125490565b610fe93361130d565b6110055760405162461bcd60e51b815260040161094690612111565b602a805460ff191692151592909217909155602b55565b6000546001600160a01b031633146110465760405162461bcd60e51b8152600401610946906120f1565b6001600160a01b03166000908152600160205260409020805460ff19169055565b600043601a5460016110799190612172565b1061108c57601354610d1c90600161166c565b811561109a57610d1c610f12565b505060125490565b6000546001600160a01b031633146110cc5760405162461bcd60e51b8152600401610946906120f1565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6111413361130d565b61115d5760405162461bcd60e51b815260040161094690612111565b6004546111749083906001600160a01b0316611684565b80156111b55742601e55601f546040519081527f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a9060200160405180910390a15b5050565b6111c23361130d565b6111de5760405162461bcd60e51b815260040161094690612111565b6001600160a01b038216301480159061120557506019546001600160a01b03838116911614155b61120e57600080fd5b6001600160a01b0382166000908152600d60205260409020805460ff1916821580159190911790915561127457602754604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610cd8565b6027546001600160a01b0383811660008181526009602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610cd8565b6112c63361130d565b6112e25760405162461bcd60e51b815260040161094690612111565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6000610c26828461218a565b6000610c268284612172565b600081848411156113675760405162461bcd60e51b8152600401610946919061209c565b505050900390565b602c5460009060ff161561138f5761138884848461178d565b9050610c26565b6113998483611830565b6113a1611899565b156113ae576113ae6118e8565b6113b6611c56565b156113c3576113c3611cb1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260099091529190912054611415918490611343565b6001600160a01b038516600090815260096020908152604080832093909355600b90529081205460ff161561144a5782611455565b611455858585611cf8565b6001600160a01b03851660009081526009602052604090205490915061147b9082611337565b6001600160a01b038086166000908152600960209081526040808320949094559188168152600d909152205460ff1661151f576027546001600160a01b0386811660008181526009602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561150c57600080fd5b505af192505050801561151d575060015b505b6001600160a01b0384166000908152600d602052604090205460ff166115b0576027546001600160a01b0385811660008181526009602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561159d57600080fd5b505af19250505080156115ae575060015b505b6027546029546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916115e89160040190815260200190565b600060405180830381600087803b15801561160257600080fd5b505af1925050508015611613575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161165991815260200190565b60405180910390a3506001949350505050565b6000610c2682846121cb565b6000610c2682846121ac565b602c805460ff19166001179055604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b0316918391506000906116d2576116d26121f8565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611706576117066121f8565b6001600160a01b03928316602091820292909201015260185460405163b6f9de9560e01b815291169063b6f9de9590859061174c90600090869088904290600401612067565b6000604051808303818588803b15801561176557600080fd5b505af1158015611779573d6000803e3d6000fd5b5050602c805460ff19169055505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526009909152918220546117de918490611343565b6001600160a01b03808616600090815260096020526040808220939093559085168152205461180d9083611337565b6001600160a01b0384166000908152600960205260409020555060019392505050565b6008548111158061185957506001600160a01b0382166000908152600c602052604090205460ff165b6111b55760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610946565b6019546000906001600160a01b031633148015906118ba5750602c5460ff16155b80156118c85750602a5460ff165b8015610c7a575050602b5430600090815260096020526040902054101590565b602c805460ff1916600117905560165460175460009161190791610ad0565b61191357600e54611916565b60005b9050600061193a6002610f0c601254610f0c86602b5461167890919063ffffffff16565b9050600061195382602b5461166c90919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061198d5761198d6121f8565b6001600160a01b0392831660209182029290920101526003548251911690829060019081106119be576119be6121f8565b6001600160a01b03928316602091820292909201015260185460405163791ac94760e01b81524792919091169063791ac94790611a08908690600090879030904290600401612136565b600060405180830381600087803b158015611a2257600080fd5b505af1158015611a36573d6000803e3d6000fd5b505050506000611a4f824761166c90919063ffffffff16565b90506000611a6a611a6188600261132b565b6012549061166c565b90506000611a7f6002610f0c8481878d611678565b90506000611a9c83610f0c6010548761167890919063ffffffff16565b90506000611ab984610f0c6011548861167890919063ffffffff16565b9050602760009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015611b0b57600080fd5b505af193505050508015611b1d575060015b506015546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611b58573d6000803e3d6000fd5b508815611c405760185460145460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b158015611bca57600080fd5b505af1158015611bde573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c039190611fba565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050602c805460ff191690555050505050505050565b6019546000906001600160a01b03163314801590611c775750602c5460ff16155b8015611c85575060205460ff165b8015611ca0575043602554602654611c9d9190612172565b11155b8015610c7a57505060245447101590565b602454600454611cca91906001600160a01b0316611684565b43602655602454602354611cdd91611337565b60238190556022541015611cf6576020805460ff191690555b565b6013546019546000918291611d2a9190610f0c90611d23906001600160a01b03898116911614611067565b8690611678565b30600090815260096020526040902054909150611d479082611337565b30600081815260096020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d989085815260200190565b60405180910390a3611daa838261166c565b95945050505050565b80358015158114611dc357600080fd5b919050565b600060208284031215611dda57600080fd5b8135610c268161220e565b60008060408385031215611df857600080fd5b8235611e038161220e565b91506020830135611e138161220e565b809150509250929050565b600080600060608486031215611e3357600080fd5b8335611e3e8161220e565b92506020840135611e4e8161220e565b929592945050506040919091013590565b60008060408385031215611e7257600080fd5b8235611e7d8161220e565b9150611e8b60208401611db3565b90509250929050565b60008060408385031215611ea757600080fd5b8235611eb28161220e565b946020939093013593505050565b600060208284031215611ed257600080fd5b610c2682611db3565b60008060408385031215611eee57600080fd5b611eb283611db3565b60008060008060808587031215611f0d57600080fd5b611f1685611db3565b966020860135965060408601359560600135945092505050565b600060208284031215611f4257600080fd5b5035919050565b60008060408385031215611f5c57600080fd5b82359150611e8b60208401611db3565b60008060408385031215611f7f57600080fd5b50508035926020909101359150565b600080600060608486031215611fa357600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611fcf57600080fd5b8351925060208401519150604084015190509250925092565b600080600080600060a0868803121561200057600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600081518084526020808501945080840160005b8381101561205c5781516001600160a01b031687529582019590820190600101612037565b509495945050505050565b8481526080602082015260006120806080830186612023565b6001600160a01b03949094166040830152506060015292915050565b600060208083528351808285015260005b818110156120c9578581018301518582016040015282016120ad565b818111156120db576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b85815284602082015260a06040820152600061215560a0830186612023565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612185576121856121e2565b500190565b6000826121a757634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156121c6576121c66121e2565b500290565b6000828210156121dd576121dd6121e2565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461222357600080fd5b5056fea26469706673582212205d7359c520e69e01f931f22e43d284c87337098df117c0e9d8d7736bde4647b364736f6c634300080700336080604052600180546001600160a01b031990811673e9e7cea3dedca5984780bafc599bd69add087d56179091556002805490911673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c1790556ec097ce7bc90715b34b9f1000000000600c55610e10600d55670de0b6b3a7640000600e5534801561007d57600080fd5b50604051610e58380380610e5883398101604081905261009c916100f6565b6001600160a01b0381166100c4577310ed43c718714eb63d5aa57b78b54704e256024e6100c6565b805b600380546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610126565b60006020828403121561010857600080fd5b81516001600160a01b038116811461011f57600080fd5b9392505050565b610d23806101356000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610224578063f0fc6bca1461023a578063ffb2c4791461024f578063ffd49c841461026f57600080fd5b8063ce7c2ac2146101af578063d0e30db014610206578063e2d2e2191461020e57600080fd5b80632d48e896116100bb5780632d48e8961461014d5780633a98ef391461016d5780634fab0ae814610183578063997664d71461019957600080fd5b806311ce023d146100e257806314b6ca961461010b57806328fd31981461012d575b600080fd5b3480156100ee57600080fd5b506100f8600c5481565b6040519081526020015b60405180910390f35b34801561011757600080fd5b5061012b610126366004610b16565b610285565b005b34801561013957600080fd5b506100f8610148366004610afb565b6103fd565b34801561015957600080fd5b5061012b610168366004610b94565b610486565b34801561017957600080fd5b506100f860085481565b34801561018f57600080fd5b506100f8600e5481565b3480156101a557600080fd5b506100f860095481565b3480156101bb57600080fd5b506101eb6101ca366004610afb565b60076020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610102565b61012b6104a8565b34801561021a57600080fd5b506100f8600b5481565b34801561023057600080fd5b506100f8600a5481565b34801561024657600080fd5b5061012b6106f5565b34801561025b57600080fd5b5061012b61026a366004610b62565b610700565b34801561027b57600080fd5b506100f8600d5481565b6000546001600160a01b0316331461029c57600080fd5b6001600160a01b038216600090815260076020526040902054156102c3576102c382610800565b6000811180156102e957506001600160a01b038216600090815260076020526040902054155b1561034f57600480546001600160a01b0384166000818152600560205260408120839055600183018455929092527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055610382565b8015801561037457506001600160a01b03821660009081526007602052604090205415155b15610382576103828261092b565b6001600160a01b0382166000908152600760205260409020546008546103b39183916103ad91610a40565b90610a53565b6008556001600160a01b03821660009081526007602052604090208190556103da81610a5f565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b03811660009081526007602052604081205461042257506000919050565b6001600160a01b03821660009081526007602052604081205461044490610a5f565b6001600160a01b038416600090815260076020526040902060010154909150808211610474575060009392505050565b61047e8282610a40565b949350505050565b6000546001600160a01b0316331461049d57600080fd5b600d91909155600e55565b6000546001600160a01b031633146104bf57600080fd5b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561050357600080fd5b505afa158015610517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053b9190610b7b565b6040805160028082526060820183529293506000929091602083019080368337505060025482519293506001600160a01b03169183915060009061058157610581610cd7565b6001600160a01b03928316602091820292909201015260018054835192169183919081106105b1576105b1610cd7565b6001600160a01b03928316602091820292909201015260035460405163b6f9de9560e01b815291169063b6f9de959034906105f790600090869030904290600401610bb6565b6000604051808303818588803b15801561061057600080fd5b505af1158015610624573d6000803e3d6000fd5b50506001546040516370a0823160e01b8152306004820152600094506106b393508692506001600160a01b03909116906370a082319060240160206040518083038186803b15801561067557600080fd5b505afa158015610689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ad9190610b7b565b90610a40565b6009549091506106c39082610a53565b600955600854600c546106ed916106e4916106de9085610a82565b90610a8e565b600b5490610a53565b600b55505050565b6106fe33610800565b565b6000546001600160a01b0316331461071757600080fd5b60045480610723575050565b6000805a905060005b848310801561073a57508381105b156107f95783600f541061074e576000600f555b6107806004600f548154811061076657610766610cd7565b6000918252602090912001546001600160a01b0316610a9a565b156107b7576107b76004600f548154811061079d5761079d610cd7565b6000918252602090912001546001600160a01b0316610800565b6107cc6107c55a8490610a40565b8490610a53565b92505a600f805491935060006107e183610c90565b919050555080806107f190610c90565b91505061072c565b5050505050565b6001600160a01b0381166000908152600760205260409020546108205750565b600061082b826103fd565b9050801561092757600a546108409082610a53565b600a5560015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b15801561089157600080fd5b505af11580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c99190610b40565b506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546108fd9082610a53565b6001600160a01b03831660009081526007602052604090206002810191909155546103da90610a5f565b5050565b6004805461093b90600190610c79565b8154811061094b5761094b610cd7565b60009182526020808320909101546001600160a01b038481168452600590925260409092205460048054929093169291811061098957610989610cd7565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916109d590600190610c79565b815481106109e5576109e5610cd7565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610a1b57610a1b610cc1565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610a4c8284610c79565b9392505050565b6000610a4c8284610c20565b6000610a7c600c546106de600b5485610a8290919063ffffffff16565b92915050565b6000610a4c8284610c5a565b6000610a4c8284610c38565b600d546001600160a01b03821660009081526006602052604081205490914291610ac49190610c20565b108015610a7c5750600e54610ad8836103fd565b1192915050565b80356001600160a01b0381168114610af657600080fd5b919050565b600060208284031215610b0d57600080fd5b610a4c82610adf565b60008060408385031215610b2957600080fd5b610b3283610adf565b946020939093013593505050565b600060208284031215610b5257600080fd5b81518015158114610a4c57600080fd5b600060208284031215610b7457600080fd5b5035919050565b600060208284031215610b8d57600080fd5b5051919050565b60008060408385031215610ba757600080fd5b50508035926020909101359150565b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610c005784516001600160a01b031683529383019391830191600101610bdb565b50506001600160a01b039690961660408501525050506060015292915050565b60008219821115610c3357610c33610cab565b500190565b600082610c5557634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610c7457610c74610cab565b500290565b600082821015610c8b57610c8b610cab565b500390565b6000600019821415610ca457610ca4610cab565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea26469706673582212204f5ed7a36df7a470c4b17e2f49d5f0e5554a474fec3b8c0cd1927129ecf8229e64736f6c63430008070033

Deployed ByteCode Sourcemap

14442:15166:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26605:187;;;;;;;;;;;;;:::i;:::-;;16596:50;;;;;;;;;;;;;;;;;;;9913:25:1;;;9901:2;9886:18;16596:50:0;;;;;;;;25790:359;;;;;;;;;;-1:-1:-1;25790:359:0;;;;;:::i;:::-;;:::i;27572:506::-;;;;;;;;;;-1:-1:-1;27572:506:0;;;;;:::i;:::-;;:::i;18080:80::-;;;;;;;;;;-1:-1:-1;18152:5:0;;;;;;;;;;;;-1:-1:-1;;;18152:5:0;;;;18080:80;;;;;;;:::i;18583:216::-;;;;;;;;;;-1:-1:-1;18583:216:0;;;;;:::i;:::-;;:::i;:::-;;;7028:14:1;;7021:22;7003:41;;6991:2;6976:18;18583:216:0;6863:187:1;29337:150:0;;;;;;;;;;-1:-1:-1;29337:150:0;;;;;:::i;:::-;;:::i;17810:88::-;;;;;;;;;;-1:-1:-1;17883:12:0;;17810:88;;28486:183;;;;;;;;;;-1:-1:-1;28486:183:0;;;;;:::i;:::-;;:::i;26157:342::-;;;;;;;;;;-1:-1:-1;26157:342:0;;;;;:::i;:::-;;:::i;19096:365::-;;;;;;;;;;-1:-1:-1;19096:365:0;;;;;:::i;:::-;;:::i;29012:142::-;;;;;;;;;;;;;:::i;28677:183::-;;;;;;;;;;-1:-1:-1;28677:183:0;;;;;:::i;:::-;;:::i;6338:103::-;;;;;;;;;;-1:-1:-1;6338:103:0;;;;;:::i;:::-;6393:4;6428:5;-1:-1:-1;;;;;6417:16:0;;;6428:5;;6417:16;;6338:103;17904:80;;;;;;;;;;-1:-1:-1;17904:80:0;;15029:1;10931:36:1;;10919:2;10904:18;17904:80:0;10789:184:1;16180:38:0;;;;;;;;;;-1:-1:-1;16180:38:0;;;;;;;;18807:117;;;;;;;;;;-1:-1:-1;18807:117:0;;;;;:::i;:::-;;:::i;26800:145::-;;;;;;;;;;-1:-1:-1;26800:145:0;;;;;:::i;:::-;;:::i;27308:120::-;;;;;;;;;;-1:-1:-1;27308:120:0;;;;;:::i;:::-;;:::i;16559:30::-;;;;;;;;;;-1:-1:-1;16559:30:0;;;;;;;;18331:105;;;;;;;;;;-1:-1:-1;18331:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;18415:18:0;18397:7;18415:18;;;:9;:18;;;;;;;18331:105;15110:51;;;;;;;;;;;;;;;;18166:78;;;;;;;;;;-1:-1:-1;18218:7:0;18236:5;-1:-1:-1;;;;;18236:5:0;18166:78;;;-1:-1:-1;;;;;5425:32:1;;;5407:51;;5395:2;5380:18;18166:78:0;5261:203:1;14639:64:0;;;;;;;;;;-1:-1:-1;14639:64:0;;;;-1:-1:-1;;;;;14639:64:0;;;17990:84;;;;;;;;;;-1:-1:-1;18064:7:0;;;;;;;;;;;;-1:-1:-1;;;18064:7:0;;;;17990:84;;28868:136;;;;;;;;;;-1:-1:-1;28868:136:0;;;;;:::i;:::-;;:::i;28086:228::-;;;;;;;;;;-1:-1:-1;28086:228:0;;;;;:::i;:::-;;:::i;16477:33::-;;;;;;;;;;-1:-1:-1;16477:33:0;;;;-1:-1:-1;;;;;16477:33:0;;;15885:19;;;;;;;;;;-1:-1:-1;15885:19:0;;;;-1:-1:-1;;;;;15885:19:0;;;18932:156;;;;;;;;;;-1:-1:-1;18932:156:0;;;;;:::i;:::-;;:::i;24997:105::-;;;;;;;;;;;;;:::i;6011:94::-;;;;;;;;;;-1:-1:-1;6011:94:0;;;;;:::i;:::-;;:::i;15913:25::-;;;;;;;;;;;;;;;;15945:34;;;;;;;;;;;;;;;;15683:36;;;;;;;;;;-1:-1:-1;15683:36:0;;;;-1:-1:-1;;;;;15683:36:0;;;29162:167;;;;;;;;;;-1:-1:-1;29162:167:0;;;;;:::i;:::-;;:::i;21422:663::-;;;;;;;;;;;;;:::i;18442:133::-;;;;;;;;;;-1:-1:-1;18442:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;18544:19:0;;;18526:7;18544:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;18442:133;28322:156;;;;;;;;;;-1:-1:-1;28322:156:0;;;;;:::i;:::-;;:::i;14520:48::-;;;;;;;;;;-1:-1:-1;14520:48:0;14551:17;14520:48;;15726:35;;;;;;;;;;-1:-1:-1;15726:35:0;;;;-1:-1:-1;;;;;15726:35:0;;;6181:97;;;;;;;;;;-1:-1:-1;6181:97:0;;;;;:::i;:::-;;:::i;21187:227::-;;;;;;;;;;-1:-1:-1;21187:227:0;;;;;:::i;:::-;;:::i;6738:173::-;;;;;;;;;;-1:-1:-1;6738:173:0;;;;;:::i;:::-;;:::i;24673:316::-;;;;;;;;;;-1:-1:-1;24673:316:0;;;;;:::i;:::-;;:::i;26953:347::-;;;;;;;;;;-1:-1:-1;26953:347:0;;;;;:::i;:::-;;:::i;27436:128::-;;;;;;;;;;-1:-1:-1;27436:128:0;;;;;:::i;:::-;;:::i;15854:24::-;;;;;;;;;;-1:-1:-1;15854:24:0;;;;-1:-1:-1;;;;;15854:24:0;;;6512:107;;;;;;;;;;-1:-1:-1;6512:107:0;;;;;:::i;:::-;;:::i;26605:187::-;5896:24;5909:10;5896:12;:24::i;:::-;5888:48;;;;-1:-1:-1;;;5888:48:0;;;;;;;:::i;:::-;;;;;;;;;26660:10:::1;::::0;:15;26652:48:::1;;;::::0;-1:-1:-1;;;26652:48:0;;8946:2:1;26652:48:0::1;::::0;::::1;8928:21:1::0;8985:2;8965:18;;;8958:30;-1:-1:-1;;;9004:18:1;;;8997:50;9064:18;;26652:48:0::1;8744:344:1::0;26652:48:0::1;26724:12;26711:10;:25:::0;26769:15:::1;26747:19;:37:::0;26605:187::o;25790:359::-;5896:24;5909:10;5896:12;:24::i;:::-;5888:48;;;;-1:-1:-1;;;5888:48:0;;;;;;;:::i;:::-;25916:18:::1;:29:::0;;-1:-1:-1;;25916:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;25956:14:::1;:21:::0;;;;-1:-1:-1;25988:22:0::1;:26:::0;26025:17:::1;:27:::0;26063:22:::1;:32:::0;26129:12:::1;26106:20;:35:::0;25790:359::o;27572:506::-;5896:24;5909:10;5896:12;:24::i;:::-;5888:48;;;;-1:-1:-1;;;5888:48:0;;;;;;;:::i;:::-;27736:12:::1;:28:::0;;;27775:10:::1;:24:::0;;;27810:13:::1;:30:::0;;;27851:12:::1;:28:::0;;;27901:69:::1;27866:13:::0;27901:50:::1;27826:14:::0;27901:50;27751:13;27788:11;27901:17:::1;:30::i;:::-;:34:::0;::::1;:50::i;:69::-;27890:8;:80:::0;27981:14:::1;:32:::0;;;28043:16:::1;28058:1;27998:15:::0;28043:16:::1;:::i;:::-;28032:8;;:27;28024:36;;;::::0;::::1;;27572:506:::0;;;;;:::o;18583:216::-;18687:10;18658:4;18675:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;18675:32:0;;;;;;;;;;:41;;;18732:37;18658:4;;18675:32;;18732:37;;;;18710:6;9913:25:1;;9901:2;9886:18;;9767:177;18732:37:0;;;;;;;;-1:-1:-1;18787:4:0;18583:216;;;;:::o;29337:150::-;29417:4;29473:6;29441:29;29461:8;29441:19;:29::i;:::-;:38;;29337:150;-1:-1:-1;;;29337:150:0:o;28486:183::-;5896:24;5909:10;5896:12;:24::i;:::-;5888:48;;;;-1:-1:-1;;;5888:48:0;;;;;;;:::i;:::-;28584:15:::1;:25:::0;;;;28620:26:::1;:41:::0;28486:183::o;26157:342::-;5896:24;5909:10;5896:12;:24::i;:::-;5888:48;;;;-1:-1:-1;;;5888:48:0;;;;;;;:::i;:::-;26317:1:::1;26290:23;26302:11:::0;26290:9;:23:::1;:::i;:::-;:28;;:55;;;;;26334:11;26322:9;:23;26290:55;26282:64;;;::::0;::::1;;26357:26;:38:::0;;;;26406:28:::1;:42:::0;26459:23:::1;:32:::0;26157:342::o;19096:365::-;19251:12;;-1:-1:-1;;;;;19216:19:0;;19196:4;19216:19;;;:11;:19;;;;;;;;19236:10;19216:31;;;;;;;;19196:4;;19216:47;19213:181;;19313:69;;;;;;;;;;;-1:-1:-1;;;19313:69:0;;;;;;;;-1:-1:-1;;;;;19313:19:0;;-1:-1:-1;19313:19:0;;;:11;:19;;;;;19333:10;19313:31;;;;;;;;;;:69;;19349:6;;19313:35;:69::i;:::-;-1:-1:-1;;;;;19279:19:0;;;;;;:11;:19;;;;;;;;19299:10;19279:31;;;;;;;:103;19213:181;19413:40;19427:6;19435:9;19446:6;19413:13;:40::i;:::-;19406:47;;19096:365;;;;;;:::o;29012:142::-;29140:4;;-1:-1:-1;;;;;29140:4:0;29065:7;18415:18;;;:9;:18;;;;;;29092:54;;29119:4;;-1:-1:-1;;;;;29119:4:0;18397:7;18415:18;;;:9;:18;;;;;;29092:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;29085:61;;29012:142;:::o;28677:183::-;5896:24;5909:10;5896:12;:24::i;:::-;5888:48;;;;-1:-1:-1;;;5888:48:0;;;;;;;:::i;:::-;28787:11:::1;::::0;:65:::1;::::0;-1:-1:-1;;;28787:65:0;;::::1;::::0;::::1;10710:25:1::0;;;10751:18;;;10744:34;;;-1:-1:-1;;;;;28787:11:0;;::::1;::::0;:35:::1;::::0;10683:18:1;;28787:65:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;28677:183:::0;;:::o;18807:117::-;18862:4;18886:30;18894:7;18903:12;;18886:7;:30::i;:::-;18879:37;18807:117;-1:-1:-1;;18807:117:0:o;26800:145::-;5896:24;5909:10;5896:12;:24::i;:::-;5888:48;;;;-1:-1:-1;;;5888:48:0;;;;;;;:::i;:::-;26900:4:::1;26885:12;;:19;;;;:::i;:::-;26875:6;:29;;26867:38;;;::::0;::::1;;26916:12;:21:::0;26800:145::o;27308:120::-;5896:24;5909:10;5896:12;:24::i;:::-;5888:48;;;;-1:-1:-1;;;5888:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27392:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;27392:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27308:120::o;28868:136::-;5896:24;5909:10;5896:12;:24::i;:::-;5888:48;;;;-1:-1:-1;;;5888:48:0;;;;;;;:::i;:::-;28958:6:::1;28952:3;:12;28944:21;;;::::0;::::1;;28976:14;:20:::0;28868:136::o;28086:228::-;5896:24;5909:10;5896:12;:24::i;:::-;5888:48;;;;-1:-1:-1;;;5888:48:0;;;;;;;:::i;:::-;28205:21:::1;:46:::0;;-1:-1:-1;;;;;28205:46:0;;::::1;-1:-1:-1::0;;;;;;28205:46:0;;::::1;;::::0;;;28262:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;28086:228::o;18932:156::-;19012:4;19036:44;19050:10;19062:9;19073:6;19036:13;:44::i;24997:105::-;5896:24;5909:10;5896:12;:24::i;:::-;5888:48;;;;-1:-1:-1;;;5888:48:0;;;;;;;:::i;:::-;25093:1:::1;25062:28;:32:::0;24997:105::o;6011:94::-;6393:4;6428:5;-1:-1:-1;;;;;6428:5:0;5735:10;6417:16;5719:38;;;;-1:-1:-1;;;5719:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6071:19:0::1;;::::0;;;6093:4:::1;6071:19;::::0;;;;;;;:26;;-1:-1:-1;;6071:26:0::1;::::0;;::::1;::::0;;6011:94::o;29162:167::-;29230:7;29257:64;29298:22;:20;:22::i;:::-;29280:4;;-1:-1:-1;;;;;29280:4:0;18397:7;18415:18;;;:9;:18;;;;;;29257:36;;29270:22;;29290:1;29270:19;:22::i;:::-;29257:8;;:12;:36::i;:::-;:40;;:64::i;21422:663::-;21471:7;21526:15;21495:19;;21517:6;21495:28;;;;:::i;:::-;:46;21491:561;;;21565:39;21589:14;;21565:19;21578:5;21565:8;;:12;;:19;;;;:::i;21491:561::-;21686:15;21626:57;21659:23;;21626:28;;:32;;:57;;;;:::i;:::-;:75;21622:430;;;21718:21;21742:78;21804:15;21742:57;21775:23;;21742:28;;:32;;:57;;;;:::i;:78::-;21718:102;;21835:19;21857:88;21936:8;;21857:74;21902:28;;21857:40;21870:26;;21857:8;;:12;;:40;;;;:::i;:88::-;21835:110;;21967:73;21980:59;22015:23;;21980:30;21996:13;21980:11;:15;;:30;;;;:::i;:59::-;21967:8;;;:12;:73::i;:::-;21960:80;;;;21422:663;:::o;21622:430::-;-1:-1:-1;22069:8:0;;;21422:663::o;28322:156::-;5896:24;5909:10;5896:12;:24::i;:::-;5888:48;;;;-1:-1:-1;;;5888:48:0;;;;;;;:::i;:::-;28414:11:::1;:22:::0;;-1:-1:-1;;28414:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;28447:13:::1;:23:::0;28322:156::o;6181:97::-;6393:4;6428:5;-1:-1:-1;;;;;6428:5:0;5735:10;6417:16;5719:38;;;;-1:-1:-1;;;5719:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6243:19:0::1;6265:5;6243:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;6243:27:0::1;::::0;;6181:97::o;21187:227::-;21243:7;21284:12;21266:10;;21279:1;21266:14;;;;:::i;:::-;:30;21263:67;;21306:14;;:21;;21325:1;21306:18;:21::i;21263:67::-;21343:7;21340:41;;;21360:18;:16;:18::i;21340:41::-;-1:-1:-1;;21398:8:0;;;21187:227::o;6738:173::-;6393:4;6428:5;-1:-1:-1;;;;;6428:5:0;5735:10;6417:16;5719:38;;;;-1:-1:-1;;;5719:38:0;;;;;;;:::i;:::-;6814:5:::1;:11:::0;;-1:-1:-1;;;;;;6814:11:0::1;-1:-1:-1::0;;;;;6814:11:0;::::1;::::0;;::::1;::::0;;6836:19;;;-1:-1:-1;6836:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;6836:26:0::1;::::0;;::::1;::::0;;;6878:25;;5407:51:1;;;6878:25:0::1;::::0;5380:18:1;6878:25:0::1;;;;;;;6738:173:::0;:::o;24673:316::-;5896:24;5909:10;5896:12;:24::i;:::-;5888:48;;;;-1:-1:-1;;;5888:48:0;;;;;;;:::i;:::-;24797:4:::1;::::0;24779:23:::1;::::0;24789:6;;-1:-1:-1;;;;;24797:4:0::1;24779:9;:23::i;:::-;24816:24;24813:169;;;24887:15;24856:28;:46:::0;24946:23:::1;::::0;24922:48:::1;::::0;9913:25:1;;;24922:48:0::1;::::0;9901:2:1;9886:18;24922:48:0::1;;;;;;;24813:169;24673:316:::0;;:::o;26953:347::-;5896:24;5909:10;5896:12;:24::i;:::-;5888:48;;;;-1:-1:-1;;;5888:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27050:23:0;::::1;27068:4;27050:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;27087:4:0::1;::::0;-1:-1:-1;;;;;27077:14:0;;::::1;27087:4:::0;::::1;27077:14;;27050:41;27042:50;;;::::0;::::1;;-1:-1:-1::0;;;;;27103:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;27103:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;27147:146:::1;;27172:11;::::0;:31:::1;::::0;-1:-1:-1;;;27172:31:0;;-1:-1:-1;;;;;5885:32:1;;;27172:31:0::1;::::0;::::1;5867:51:1::0;27172:11:0::1;5934:18:1::0;;;5927:34;27172:11:0;;::::1;::::0;:20:::1;::::0;5840:18:1;;27172:31:0::1;5685:282:1::0;27147:146:0::1;27234:11;::::0;-1:-1:-1;;;;;27263:17:0;;::::1;27234:11;27263:17:::0;;;:9:::1;:17;::::0;;;;;;;27234:47;;-1:-1:-1;;;27234:47:0;;::::1;::::0;::::1;5867:51:1::0;;;;5934:18;;;5927:34;27234:11:0;::::1;::::0;:20:::1;::::0;5840:18:1;;27234:47:0::1;5685:282:1::0;27436:128:0;5896:24;5909:10;5896:12;:24::i;:::-;5888:48;;;;-1:-1:-1;;;5888:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27524:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;27524:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27436:128::o;6512:107::-;-1:-1:-1;;;;;6592:19:0;6568:4;6592:19;;;:14;:19;;;;;;;;;6512:107::o;3613:98::-;3671:7;3698:5;3702:1;3698;:5;:::i;3295:98::-;3353:7;3380:5;3384:1;3380;:5;:::i;3825:206::-;3911:7;3972:12;3964:6;;;;3956:29;;;;-1:-1:-1;;;3956:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;4007:5:0;;;3825:206::o;19469:1074::-;19581:6;;19561:4;;19581:6;;19578:63;;;19597:41;19612:6;19620:9;19631:6;19597:14;:41::i;:::-;19590:48;;;;19578:63;19653:28;19666:6;19674;19653:12;:28::i;:::-;19707:16;:14;:16::i;:::-;19704:35;;;19726:10;:8;:10::i;:::-;19752:19;:17;:19::i;:::-;19749:48;;;19774:20;:18;:20::i;:::-;19932:53;;;;;;;;;;;-1:-1:-1;;;19932:53:0;;;;;;;;-1:-1:-1;;;;;19932:17:0;;-1:-1:-1;19932:17:0;;;:9;:17;;;;;;;;:53;;19954:6;;19932:21;:53::i;:::-;-1:-1:-1;;;;;19912:17:0;;;;;;:9;:17;;;;;;;;:73;;;;21152:11;:19;;;;;;;;21151:20;20023:67;;20084:6;20023:67;;;20047:34;20055:6;20063:9;20074:6;20047:7;:34::i;:::-;-1:-1:-1;;;;;20126:20:0;;;;;;:9;:20;;;;;;19998:92;;-1:-1:-1;20126:40:0;;19998:92;20126:24;:40::i;:::-;-1:-1:-1;;;;;20103:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;20183:24;;;;;:16;:24;;;;;;;20179:96;;20214:11;;-1:-1:-1;;;;;20243:17:0;;;20214:11;20243:17;;;:9;:17;;;;;;;;20214:47;;-1:-1:-1;;;20214:47:0;;;;;5867:51:1;;;;5934:18;;;5927:34;20214:11:0;;;:20;;5840:18:1;;20214:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20210:63;;-1:-1:-1;;;;;20289:27:0;;;;;;:16;:27;;;;;;;;20285:105;;20323:11;;-1:-1:-1;;;;;20355:20:0;;;20323:11;20355:20;;;:9;:20;;;;;;;;20323:53;;-1:-1:-1;;;20323:53:0;;;;;5867:51:1;;;;5934:18;;;5927:34;20323:11:0;;;:20;;5840:18:1;;20323:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20319:69;;20406:11;;20426:14;;20406:35;;-1:-1:-1;;;;;;20406:35:0;;-1:-1:-1;;;;;20406:11:0;;;;:19;;:35;;;;9913:25:1;;;9901:2;9886:18;;9767:177;20406:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20402:51;20487:9;-1:-1:-1;;;;;20470:43:0;20479:6;-1:-1:-1;;;;;20470:43:0;;20498:14;20470:43;;;;9913:25:1;;9901:2;9886:18;;9767:177;20470:43:0;;;;;;;;-1:-1:-1;20531:4:0;;19469:1074;-1:-1:-1;;;;19469:1074:0:o;3401:98::-;3459:7;3486:5;3490:1;3486;:5;:::i;3507:98::-;3565:7;3592:5;3596:1;3592;:5;:::i;25421:361::-;16703:6;:13;;-1:-1:-1;;16703:13:0;16712:4;16703:13;;;25521:16:::1;::::0;;25535:1:::1;25521:16:::0;;;;;::::1;::::0;;-1:-1:-1;;25521:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;25558:4:0::1;::::0;25548:7;;;;-1:-1:-1;;;;;;25558:4:0::1;::::0;25548:7;;-1:-1:-1;25558:4:0::1;::::0;25548:7:::1;;;;:::i;:::-;;;;;;:14;-1:-1:-1::0;;;;;25548:14:0::1;;;-1:-1:-1::0;;;;;25548:14:0::1;;;::::0;::::1;25591:4;25573;25578:1;25573:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;25573:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;25609:6:::1;::::0;:165:::1;::::0;-1:-1:-1;;;25609:165:0;;:6;::::1;::::0;:57:::1;::::0;25674:6;;25609:165:::1;::::0;:6:::1;::::0;25712:4;;25731:2;;25748:15:::1;::::0;25609:165:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;16721:6:0;:14;;-1:-1:-1;;16721:14:0;;;-1:-1:-1;;;;;;25421:361:0:o;20551:332::-;20681:53;;;;;;;;;;;-1:-1:-1;;;20681:53:0;;;;;;;;-1:-1:-1;;;;;20681:17:0;;20644:4;20681:17;;;:9;:17;;;;;;;:53;;20703:6;;20681:21;:53::i;:::-;-1:-1:-1;;;;;20661:17:0;;;;;;;:9;:17;;;;;;:73;;;;20768:20;;;;;;;:32;;20793:6;20768:24;:32::i;:::-;-1:-1:-1;;;;;20745:20:0;;;;;;:9;:20;;;;;:55;-1:-1:-1;20871:4:0;20551:332;;;;;:::o;20891:166::-;20988:12;;20978:6;:22;;:49;;;-1:-1:-1;;;;;;21004:23:0;;;;;;:15;:23;;;;;;;;20978:49;20970:79;;;;-1:-1:-1;;;20970:79:0;;8600:2:1;20970:79:0;;;8582:21:1;8639:2;8619:18;;;8612:30;-1:-1:-1;;;8658:18:1;;;8651:47;8715:18;;20970:79:0;8398:341:1;22473:197:0;22560:4;;22522;;-1:-1:-1;;;;;22560:4:0;22546:10;:18;;;;:38;;-1:-1:-1;22578:6:0;;;;22577:7;22546:38;:62;;;;-1:-1:-1;22597:11:0;;;;22546:62;:116;;;;-1:-1:-1;;22649:13:0;;22639:4;22621:24;;;;:9;:24;;;;;;:41;;;22473:197::o;22678:1661::-;16703:6;:13;;-1:-1:-1;;16703:13:0;16712:4;16703:13;;;22773:15:::1;::::0;22790:26:::1;::::0;16703:6;;22757:60:::1;::::0;:15:::1;:60::i;:::-;:79;;22824:12;;22757:79;;;22820:1;22757:79;22727:109;;22847:23;22873:59;22930:1;22873:52;22916:8;;22873:38;22891:19;22873:13;;:17;;:38;;;;:::i;:59::-;22847:85;;22943:20;22966:34;22984:15;22966:13;;:17;;:34;;;;:::i;:::-;23037:16;::::0;;23051:1:::1;23037:16:::0;;;;;::::1;::::0;;22943:57;;-1:-1:-1;23013:21:0::1;::::0;23037:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;23037:16:0::1;23013:40;;23082:4;23064;23069:1;23064:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23064:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;23108:4:::1;::::0;23098:7;;23108:4;::::1;::::0;23098;;23108;;23098:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;23098:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;23181:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;23181:188:0;;23147:21:::1;::::0;23181:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;23253:12;;23123:21:::1;::::0;23296:4;;23323::::1;::::0;23343:15:::1;::::0;23181:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23382:17;23402:40;23428:13;23402:21;:25;;:40;;;;:::i;:::-;23382:60:::0;-1:-1:-1;23455:19:0::1;23477:40;23490:26;:19:::0;23514:1:::1;23490:23;:26::i;:::-;23477:8;::::0;;:12:::1;:40::i;:::-;23455:62:::0;-1:-1:-1;23530:26:0::1;23559:58;23615:1;23559:51;23455:62:::0;23559:51;:9;23573:19;23559:13:::1;:34::i;:58::-;23530:87;;23628:27;23658:45;23691:11;23658:28;23672:13;;23658:9;:13;;:28;;;;:::i;:45::-;23628:75;;23714:26;23743:44;23775:11;23743:27;23757:12;;23743:9;:13;;:27;;;;:::i;:44::-;23714:73;;23804:11;;;;;;;;;-1:-1:-1::0;;;;;23804:11:0::1;-1:-1:-1::0;;;;;23804:19:0::1;;23831;23804:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;23800:65:::0;23883:20:::1;::::0;23875:58:::1;::::0;-1:-1:-1;;;;;23883:20:0;;::::1;::::0;23875:58;::::1;;;::::0;23914:18;;23883:20:::1;23875:58:::0;23883:20;23875:58;23914:18;23883:20;23875:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;23973:19:0;;23970:362:::1;;24008:6;::::0;24182:21:::1;::::0;24008:244:::1;::::0;-1:-1:-1;;;24008:244:0;;24084:4:::1;24008:244;::::0;::::1;6592:34:1::0;6642:18;;;6635:34;;;24008:6:0::1;6685:18:1::0;;;6678:34;;;6728:18;;;6721:34;-1:-1:-1;;;;;24182:21:0;;::::1;6771:19:1::0;;;6764:44;24222:15:0::1;6824:19:1::0;;;6817:35;24008:6:0;::::1;::::0;:22:::1;::::0;24038:18;;6526:19:1;;24008:244:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;24272:48:0::1;::::0;;10710:25:1;;;10766:2;10751:18;;10744:34;;;24272:48:0::1;::::0;-1:-1:-1;10683:18:1;24272:48:0::1;;;;;;;23970:362;-1:-1:-1::0;;16721:6:0;:14;;-1:-1:-1;;16721:14:0;;;-1:-1:-1;;;;;;;;22678:1661:0:o;24347:318::-;24437:4;;24399;;-1:-1:-1;;;;;24437:4:0;24423:10;:18;;;;:38;;-1:-1:-1;24455:6:0;;;;24454:7;24423:38;:69;;;;-1:-1:-1;24474:18:0;;;;24423:69;:143;;;;;24554:12;24528:22;;24505:20;;:45;;;;:::i;:::-;:61;;24423:143;:234;;;;-1:-1:-1;;24640:17:0;;24615:21;:42;;;24347:318::o;25110:303::-;25170:17;;25189:4;;25160:34;;25170:17;-1:-1:-1;;;;;25189:4:0;25160:9;:34::i;:::-;25228:12;25205:20;:35;25303:17;;25276:22;;:45;;:26;:45::i;:::-;25251:22;:70;;;25360:14;;-1:-1:-1;25332:74:0;;;25377:18;:26;;-1:-1:-1;;25377:26:0;;;25332:74;25110:303::o;22093:372::-;22264:14;;22253:4;;22178:7;;;;22218:61;;22264:14;22218:41;;22229:29;;-1:-1:-1;;;;;22241:16:0;;;22253:4;;22241:16;22229:11;:29::i;:::-;22218:6;;:10;:41::i;:61::-;22337:4;22319:24;;;;:9;:24;;;;;;22198:81;;-1:-1:-1;22319:39:0;;22198:81;22319:28;:39::i;:::-;22310:4;22292:24;;;;:9;:24;;;;;;;:66;;;;22374:42;;-1:-1:-1;;;;;22374:42:0;;;;;;;22406:9;9913:25:1;;9901:2;9886:18;;9767:177;22374:42:0;;;;;;;;22436:21;:6;22447:9;22436:10;:21::i;:::-;22429:28;22093:372;-1:-1:-1;;;;;22093:372:0:o;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:52;;;307:1;304;297:12;259:52;346:9;333:23;365:31;390:5;365:31;:::i;691:388::-;759:6;767;820:2;808:9;799:7;795:23;791:32;788:52;;;836:1;833;826:12;788:52;875:9;862:23;894:31;919:5;894:31;:::i;:::-;944:5;-1:-1:-1;1001:2:1;986:18;;973:32;1014:33;973:32;1014:33;:::i;:::-;1066:7;1056:17;;;691:388;;;;;:::o;1084:456::-;1161:6;1169;1177;1230:2;1218:9;1209:7;1205:23;1201:32;1198:52;;;1246:1;1243;1236:12;1198:52;1285:9;1272:23;1304:31;1329:5;1304:31;:::i;:::-;1354:5;-1:-1:-1;1411:2:1;1396:18;;1383:32;1424:33;1383:32;1424:33;:::i;:::-;1084:456;;1476:7;;-1:-1:-1;;;1530:2:1;1515:18;;;;1502:32;;1084:456::o;1545:315::-;1610:6;1618;1671:2;1659:9;1650:7;1646:23;1642:32;1639:52;;;1687:1;1684;1677:12;1639:52;1726:9;1713:23;1745:31;1770:5;1745:31;:::i;:::-;1795:5;-1:-1:-1;1819:35:1;1850:2;1835:18;;1819:35;:::i;:::-;1809:45;;1545:315;;;;;:::o;1865:::-;1933:6;1941;1994:2;1982:9;1973:7;1969:23;1965:32;1962:52;;;2010:1;2007;2000:12;1962:52;2049:9;2036:23;2068:31;2093:5;2068:31;:::i;:::-;2118:5;2170:2;2155:18;;;;2142:32;;-1:-1:-1;;;1865:315:1:o;2185:180::-;2241:6;2294:2;2282:9;2273:7;2269:23;2265:32;2262:52;;;2310:1;2307;2300:12;2262:52;2333:26;2349:9;2333:26;:::i;2370:248::-;2435:6;2443;2496:2;2484:9;2475:7;2471:23;2467:32;2464:52;;;2512:1;2509;2502:12;2464:52;2535:26;2551:9;2535:26;:::i;2623:385::-;2706:6;2714;2722;2730;2783:3;2771:9;2762:7;2758:23;2754:33;2751:53;;;2800:1;2797;2790:12;2751:53;2823:26;2839:9;2823:26;:::i;:::-;2813:36;2896:2;2881:18;;2868:32;;-1:-1:-1;2947:2:1;2932:18;;2919:32;;2998:2;2983:18;2970:32;;-1:-1:-1;2623:385:1;-1:-1:-1;;;2623:385:1:o;3013:180::-;3072:6;3125:2;3113:9;3104:7;3100:23;3096:32;3093:52;;;3141:1;3138;3131:12;3093:52;-1:-1:-1;3164:23:1;;3013:180;-1:-1:-1;3013:180:1:o;3198:248::-;3263:6;3271;3324:2;3312:9;3303:7;3299:23;3295:32;3292:52;;;3340:1;3337;3330:12;3292:52;3376:9;3363:23;3353:33;;3405:35;3436:2;3425:9;3421:18;3405:35;:::i;3451:248::-;3519:6;3527;3580:2;3568:9;3559:7;3555:23;3551:32;3548:52;;;3596:1;3593;3586:12;3548:52;-1:-1:-1;;3619:23:1;;;3689:2;3674:18;;;3661:32;;-1:-1:-1;3451:248:1:o;3704:316::-;3781:6;3789;3797;3850:2;3838:9;3829:7;3825:23;3821:32;3818:52;;;3866:1;3863;3856:12;3818:52;-1:-1:-1;;3889:23:1;;;3959:2;3944:18;;3931:32;;-1:-1:-1;4010:2:1;3995:18;;;3982:32;;3704:316;-1:-1:-1;3704:316:1:o;4025:306::-;4113:6;4121;4129;4182:2;4170:9;4161:7;4157:23;4153:32;4150:52;;;4198:1;4195;4188:12;4150:52;4227:9;4221:16;4211:26;;4277:2;4266:9;4262:18;4256:25;4246:35;;4321:2;4310:9;4306:18;4300:25;4290:35;;4025:306;;;;;:::o;4336:454::-;4431:6;4439;4447;4455;4463;4516:3;4504:9;4495:7;4491:23;4487:33;4484:53;;;4533:1;4530;4523:12;4484:53;-1:-1:-1;;4556:23:1;;;4626:2;4611:18;;4598:32;;-1:-1:-1;4677:2:1;4662:18;;4649:32;;4728:2;4713:18;;4700:32;;-1:-1:-1;4779:3:1;4764:19;4751:33;;-1:-1:-1;4336:454:1;-1:-1:-1;4336:454:1:o;4795:461::-;4848:3;4886:5;4880:12;4913:6;4908:3;4901:19;4939:4;4968:2;4963:3;4959:12;4952:19;;5005:2;4998:5;4994:14;5026:1;5036:195;5050:6;5047:1;5044:13;5036:195;;;5115:13;;-1:-1:-1;;;;;5111:39:1;5099:52;;5171:12;;;;5206:15;;;;5147:1;5065:9;5036:195;;;-1:-1:-1;5247:3:1;;4795:461;-1:-1:-1;;;;;4795:461:1:o;7281:510::-;7552:6;7541:9;7534:25;7595:3;7590:2;7579:9;7575:18;7568:31;7515:4;7616:57;7668:3;7657:9;7653:19;7645:6;7616:57;:::i;:::-;-1:-1:-1;;;;;7709:32:1;;;;7704:2;7689:18;;7682:60;-1:-1:-1;7773:2:1;7758:18;7751:34;7608:65;7281:510;-1:-1:-1;;7281:510:1:o;7796:597::-;7908:4;7937:2;7966;7955:9;7948:21;7998:6;7992:13;8041:6;8036:2;8025:9;8021:18;8014:34;8066:1;8076:140;8090:6;8087:1;8084:13;8076:140;;;8185:14;;;8181:23;;8175:30;8151:17;;;8170:2;8147:26;8140:66;8105:10;;8076:140;;;8234:6;8231:1;8228:13;8225:91;;;8304:1;8299:2;8290:6;8279:9;8275:22;8271:31;8264:42;8225:91;-1:-1:-1;8377:2:1;8356:15;-1:-1:-1;;8352:29:1;8337:45;;;;8384:2;8333:54;;7796:597;-1:-1:-1;;;7796:597:1:o;9093:329::-;9295:2;9277:21;;;9334:1;9314:18;;;9307:29;-1:-1:-1;;;9367:2:1;9352:18;;9345:36;9413:2;9398:18;;9093:329::o;9427:335::-;9629:2;9611:21;;;9668:2;9648:18;;;9641:30;-1:-1:-1;;;9702:2:1;9687:18;;9680:41;9753:2;9738:18;;9427:335::o;9949:582::-;10248:6;10237:9;10230:25;10291:6;10286:2;10275:9;10271:18;10264:34;10334:3;10329:2;10318:9;10314:18;10307:31;10211:4;10355:57;10407:3;10396:9;10392:19;10384:6;10355:57;:::i;:::-;-1:-1:-1;;;;;10448:32:1;;;;10443:2;10428:18;;10421:60;-1:-1:-1;10512:3:1;10497:19;10490:35;10347:65;9949:582;-1:-1:-1;;;9949:582:1:o;10978:128::-;11018:3;11049:1;11045:6;11042:1;11039:13;11036:39;;;11055:18;;:::i;:::-;-1:-1:-1;11091:9:1;;10978:128::o;11111:217::-;11151:1;11177;11167:132;;11221:10;11216:3;11212:20;11209:1;11202:31;11256:4;11253:1;11246:15;11284:4;11281:1;11274:15;11167:132;-1:-1:-1;11313:9:1;;11111:217::o;11333:168::-;11373:7;11439:1;11435;11431:6;11427:14;11424:1;11421:21;11416:1;11409:9;11402:17;11398:45;11395:71;;;11446:18;;:::i;:::-;-1:-1:-1;11486:9:1;;11333:168::o;11506:125::-;11546:4;11574:1;11571;11568:8;11565:34;;;11579:18;;:::i;:::-;-1:-1:-1;11616:9:1;;11506:125::o;11636:127::-;11697:10;11692:3;11688:20;11685:1;11678:31;11728:4;11725:1;11718:15;11752:4;11749:1;11742:15;11768:127;11829:10;11824:3;11820:20;11817:1;11810:31;11860:4;11857:1;11850:15;11884:4;11881:1;11874:15;12032:131;-1:-1:-1;;;;;12107:31:1;;12097:42;;12087:70;;12153:1;12150;12143:12;12087:70;12032:131;:::o

Swarm Source

ipfs://4f5ed7a36df7a470c4b17e2f49d5f0e5554a474fec3b8c0cd1927129ecf8229e
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.