Contract 0x5f2ab5f28dbdfaf0f7fe8e79645be9eb1ad05b5f 1

 

Contract Overview

Genius Boy: AE369 Token
Balance:
0.213615325962455258 BNB

BNB Value:
$125.19 (@ $586.06/BNB)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x5aa6b8ff2e04ab3b2c097c2db5fb712697763f70a0fe28e9f22066801510b720Approve132551672021-12-06 22:19:5210 hrs 21 mins ago0x6554ab07ea9f8688d6b2b3857ce3adb22c3079d1 IN  Genius Boy: AE369 Token0 BNB0.000267426
0x4171d3a7add681a65740f9e671126edbccc9133e821934381912ffa5bbc15b1bApprove131989622021-12-04 22:16:202 days 10 hrs ago0x97c52dcc94befcaed65a33e576e1cabf72841663 IN  Genius Boy: AE369 Token0 BNB0.000267426
0x700cede0476f3714aedd85d4134c7abb7c6ccb8afa63decc06c74dee6a1e339cTransfer131697722021-12-03 21:37:193 days 11 hrs ago0xa99672079bf1fe65ff3a3804d6e115070d9b3c50 IN  Genius Boy: AE369 Token0 BNB0.00062392
0x1f091a1480345f521366518cba69edac6ab6b5bbe6980ec6e9f7b89e971c8586Set_Wallet_AE369131658442021-12-03 18:20:133 days 14 hrs agoGenius Boy: Deployer IN  Genius Boy: AE369 Token0 BNB0.000355815
0x26bf7ccdb37d6b34072a90178068e86098c424336e8fbcaf4e0954d0678ad9c0Approve130980922021-12-01 7:19:046 days 1 hr ago0x6f08f559dfa7bc51afc74b8a7eccae15463a22d9 IN  Genius Boy: AE369 Token0 BNB0.000222855
0x3a1b1f6c193aeb280b2f6011876d616d9fffbc1c011fd44cd619be1247df5352Approve130943602021-12-01 4:08:526 days 4 hrs ago0x7915c0a41b5eb3752b56e04989cf3d056ffead5c IN  Genius Boy: AE369 Token0 BNB0.000222855
0x31609579360f350a31fa2430ad09991a3e98b12bbae3c33291cc14823ef30a63Approve130931682021-12-01 3:02:346 days 5 hrs ago0xdbffa99d831efefc6fdb1e9f50ce52ff487a7dca IN  Genius Boy: AE369 Token0 BNB0.000124935
0x1032efafe68310fa3b394252273a9134a19bba64e0bc29486c551110bfaa41c4Approve130920112021-12-01 2:01:276 days 6 hrs ago0xdbffa99d831efefc6fdb1e9f50ce52ff487a7dca IN  Genius Boy: AE369 Token0 BNB0.00007297
0xf1317de47a37d25ea91f8c0b89d71aadfd2812db6a3b57f6cf804523de1b5d34Approve130767242021-11-30 12:46:286 days 19 hrs ago0xf7a420ff0782ea3de0c1217d7e7fb60dbba41ec0 IN  Genius Boy: AE369 Token0 BNB0.000222855
0x435bedb8d36db01a3afdefbd99329aacba386b9d44571b8f25320ac49c6c6157Approve130536652021-11-29 16:00:047 days 16 hrs ago0xc1546d8d78f987290acf1c88704cb5ff7b610428 IN  Genius Boy: AE369 Token0 BNB0.000222855
0x9fb775f663e8c4d7af5dc0d8566d48fa26a03174561e2f0d72edcbcbdbd823d9Approve130352172021-11-28 22:54:578 days 9 hrs ago0x587c4bf46ffd1d4f81016e47209961e37a41cc51 IN  Genius Boy: AE369 Token0 BNB0.000222855
0xb5b3b20f4772bcea1af07974c0b41de4cd1eaea570dfd0c780b6e7fa81cb8095Transfer130327772021-11-28 20:45:098 days 11 hrs ago0xb8276e3fc6b1937018cf394f8d883f270c6e4585 IN  Genius Boy: AE369 Token0 BNB0.00062392
0x49c9d065266df552e709de0521b4b4e9263236356d2c9d4b5df39351724395e7Approve130129952021-11-28 3:01:189 days 5 hrs ago0x07451b4166b37d17288aba52f1f98619e48a957d IN  Genius Boy: AE369 Token0 BNB0.000267426
0x275db4da675cf5e0e0573ad4b86e01c66a675f7e5b622ac4d33cc58f719e9b7eApprove130094092021-11-27 23:46:079 days 8 hrs ago0x13584d95ad2569a6fa32b75c9ea86421f76bcc70 IN  Genius Boy: AE369 Token0 BNB0.000222855
0x82923daa0acf4e7a289f59834f0a3cfc9051dd9b127c14e217da4611555c5c63Approve130054842021-11-27 20:21:359 days 12 hrs ago0x3a22d158b270fb917d5c45f8de633d8ac6cd8af4 IN  Genius Boy: AE369 Token0 BNB0.000222855
0xeb1a750dd569f4ba84db7ec5fe73f9af277b1cc00af61eaa3bed43f549411775Approve130014232021-11-27 16:42:079 days 15 hrs ago0xa99672079bf1fe65ff3a3804d6e115070d9b3c50 IN  Genius Boy: AE369 Token0 BNB0.000222855
0xc922790b4206dfcd20ee9dee3a277fbc4510b59859b7c8c5e1adb64249eb5ca2Approve129997452021-11-27 15:13:009 days 17 hrs ago0x308d4c29711d9e28a93bf68533c8284fe95f9540 IN  Genius Boy: AE369 Token0 BNB0.000222855
0x18b94991d81fa4718feed629ae7ac2c0d412ce565917be3a94d98e4b707f1311Approve129832762021-11-27 0:20:0110 days 8 hrs ago0x8729fcbed56ead61b2a5ec5b02299ab1ee334c0d IN  Genius Boy: AE369 Token0 BNB0.000222855
0xfc3accb12c5634f99fc51f015e2ed9fa91a697a1916cc2ff9bcf65abacd1463fApprove129784072021-11-26 20:04:4910 days 12 hrs ago0x7a524cc43cfe8172319c3d4e4a4f1a4aec73df4d IN  Genius Boy: AE369 Token0 BNB0.000222855
0xc8c27361f05b581419f48cd8106b3a1d017565daf8b5358bcb8cc1717407370aApprove129251372021-11-24 19:14:4612 days 13 hrs ago0x28d889f595720792e3ca53e51ce9a16f37aadd7a IN  Genius Boy: AE369 Token0 BNB0.000222855
0x6aa78181424b9b080a124fa199c3f1a28bf6ed95bc30306dc7a7e0bc8bef294dApprove129155052021-11-24 10:50:2612 days 21 hrs ago0x308ed751e15c7dc8d2b11e698cd10c11e2aa5d41 IN  Genius Boy: AE369 Token0 BNB0.000222855
0x0da1fe6762ee66079ff956fd175dc2bb3570de3ab7e668fcfebe64f297d4e377Approve128962232021-11-23 18:01:3313 days 14 hrs ago0x489c93a768d5b49fc3a29a653720437d3c5a1fdc IN  Genius Boy: AE369 Token0 BNB0.000222855
0x3a690cf52a0bad9582b27236d2193405a398b3ff8a8129b899a205fc1b400c6aApprove128866002021-11-23 9:33:1913 days 23 hrs ago0x9e6b233ee26d8a28fbacb4eb1761a918e00859f0 IN  Genius Boy: AE369 Token0 BNB0.00007297
0x25b6b230b667e18875d1508ad9fbda42c822a9ff8f18ac6d738a1e008d09f3f5Approve128853122021-11-23 8:25:4814 days 15 mins ago0x07b0b7088053d2f54db004e0c5937c8505fbde1d IN  Genius Boy: AE369 Token0 BNB0.000311997
0x2e51ab7cb77baf1e06e1d5f5e4c8cb8e69e8239e0a55006fa8751d11e2bb7bebApprove128746532021-11-22 23:20:5914 days 9 hrs ago0x11bea09b26bd779165c7187d25da0bf9d66a60a7 IN  Genius Boy: AE369 Token0 BNB0.00007297
[ Download CSV Export 

OVERVIEW

Genius Boy (Æ369) is a BSC BEP 20 token created by Gentokens. Tokenomics: 2% Reflection, 5% Auto Liquidity, 8% Marketing.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x1072a77e162e562a79b209dc50fe45f444014374321b53650539f66f438bfc83130943952021-12-01 4:10:476 days 4 hrs ago Genius Boy: AE369 TokenGenius Boy: Deployer0.356780988934020559 BNB
0x1072a77e162e562a79b209dc50fe45f444014374321b53650539f66f438bfc83130943952021-12-01 4:10:476 days 4 hrs ago PancakeSwap: Router v2 Genius Boy: AE369 Token0.018896082664586308 BNB
0x1072a77e162e562a79b209dc50fe45f444014374321b53650539f66f438bfc83130943952021-12-01 4:10:476 days 4 hrs ago Genius Boy: AE369 Token PancakeSwap: Router v20.039642332103780063 BNB
0x1072a77e162e562a79b209dc50fe45f444014374321b53650539f66f438bfc83130943952021-12-01 4:10:476 days 4 hrs ago PancakeSwap: Router v2 Genius Boy: AE369 Token0.396423321037800622 BNB
0xf562cedbebda957d324bc6c7ab2f614c6a3128da1e8b94714e1127c001b2b899130352462021-11-28 22:56:248 days 9 hrs ago Genius Boy: AE369 TokenGenius Boy: Deployer0.42486763610309452 BNB
0xf562cedbebda957d324bc6c7ab2f614c6a3128da1e8b94714e1127c001b2b899130352462021-11-28 22:56:248 days 9 hrs ago PancakeSwap: Router v2 Genius Boy: AE369 Token0.022520701154637247 BNB
0xf562cedbebda957d324bc6c7ab2f614c6a3128da1e8b94714e1127c001b2b899130352462021-11-28 22:56:248 days 9 hrs ago Genius Boy: AE369 Token PancakeSwap: Router v20.047207515122566058 BNB
0xf562cedbebda957d324bc6c7ab2f614c6a3128da1e8b94714e1127c001b2b899130352462021-11-28 22:56:248 days 9 hrs ago PancakeSwap: Router v2 Genius Boy: AE369 Token0.472075151225660578 BNB
0x83d78d851cd27eace659ad2e906a5b2370e7ae5eb7868fe514e339d50a75daa9129575642021-11-26 0:19:2011 days 8 hrs ago Genius Boy: AE369 TokenGenius Boy: Deployer0.45126782197817263 BNB
0x83d78d851cd27eace659ad2e906a5b2370e7ae5eb7868fe514e339d50a75daa9129575642021-11-26 0:19:2011 days 8 hrs ago PancakeSwap: Router v2 Genius Boy: AE369 Token0.023927404109978377 BNB
0x83d78d851cd27eace659ad2e906a5b2370e7ae5eb7868fe514e339d50a75daa9129575642021-11-26 0:19:2011 days 8 hrs ago Genius Boy: AE369 Token PancakeSwap: Router v20.050140869108685848 BNB
0x83d78d851cd27eace659ad2e906a5b2370e7ae5eb7868fe514e339d50a75daa9129575642021-11-26 0:19:2011 days 8 hrs ago PancakeSwap: Router v2 Genius Boy: AE369 Token0.501408691086858478 BNB
0x6a5f1f2133a28f07d4da3163d5ab209035fcafbfe42094bc3857a22be3f20a67128853552021-11-23 8:28:0214 days 13 mins ago Genius Boy: AE369 TokenGenius Boy: Deployer0.512189724596387922 BNB
0x6a5f1f2133a28f07d4da3163d5ab209035fcafbfe42094bc3857a22be3f20a67128853552021-11-23 8:28:0214 days 13 mins ago PancakeSwap: Router v2 Genius Boy: AE369 Token0.027175787704383332 BNB
0x6a5f1f2133a28f07d4da3163d5ab209035fcafbfe42094bc3857a22be3f20a67128853552021-11-23 8:28:0214 days 13 mins ago Genius Boy: AE369 Token PancakeSwap: Router v20.056909969399598659 BNB
0x6a5f1f2133a28f07d4da3163d5ab209035fcafbfe42094bc3857a22be3f20a67128853552021-11-23 8:28:0214 days 13 mins ago PancakeSwap: Router v2 Genius Boy: AE369 Token0.569099693995986581 BNB
0x73406c8d84bc3555e6e6672ea45043a591f300221ceb10a5dcab051f23dfb289128406922021-11-21 18:22:4515 days 14 hrs ago Genius Boy: AE369 TokenGenius Boy: Deployer0.59099099940508944 BNB
0x73406c8d84bc3555e6e6672ea45043a591f300221ceb10a5dcab051f23dfb289128406922021-11-21 18:22:4515 days 14 hrs ago PancakeSwap: Router v2 Genius Boy: AE369 Token0.024837739459690965 BNB
0x73406c8d84bc3555e6e6672ea45043a591f300221ceb10a5dcab051f23dfb289128406922021-11-21 18:22:4515 days 14 hrs ago Genius Boy: AE369 Token PancakeSwap: Router v20.051390521687399082 BNB
0x73406c8d84bc3555e6e6672ea45043a591f300221ceb10a5dcab051f23dfb289128406922021-11-21 18:22:4515 days 14 hrs ago PancakeSwap: Router v2 Genius Boy: AE369 Token0.642381521092488522 BNB
0x4212bbec42af9d77952d11e34678f6378b12c98a2e5f8c07d20be5ff131cf1ae128038322021-11-20 10:44:0316 days 21 hrs ago Genius Boy: AE369 TokenGenius Boy: Deployer0.597959558004072631 BNB
0x4212bbec42af9d77952d11e34678f6378b12c98a2e5f8c07d20be5ff131cf1ae128038322021-11-20 10:44:0316 days 21 hrs ago PancakeSwap: Router v2 Genius Boy: AE369 Token0.025132437891873038 BNB
0x4212bbec42af9d77952d11e34678f6378b12c98a2e5f8c07d20be5ff131cf1ae128038322021-11-20 10:44:0316 days 21 hrs ago Genius Boy: AE369 Token PancakeSwap: Router v20.051996483304701968 BNB
0x4212bbec42af9d77952d11e34678f6378b12c98a2e5f8c07d20be5ff131cf1ae128038322021-11-20 10:44:0316 days 21 hrs ago PancakeSwap: Router v2 Genius Boy: AE369 Token0.649956041308774599 BNB
0x77738b2ac0ec3cddea10b94e58f7e3b228127660d358f423ab7b8426b3439d8c127524872021-11-18 13:59:4818 days 18 hrs ago Genius Boy: AE369 TokenGenius Boy: Deployer0.586680773066694128 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AE369

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 9999 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

//  SPDX-License-Identifier: Unlicensed

/*

Welcome to Genius Boy Æ369 (You can call me Ash!)

For as long as he can remember, Genius Boy has always
dreamed of putting his precious Æ369 token on the moon.

But tokens can’t get to the moon all by themselves. 

At just 8 years old, even Genius Boy knows that tokens need marketing. 

Returning his treasured copy of the Encyclopaedia Britannica
to his bedside table, Genius Boy closed his heavy eyelids
and settled into a deep slumber.

A smile spread across his face, as he began to dream of an
incredible journey.

A journey that would take him from his humble beginnings
in SunnyVale, Pretoria all the way to Silicon Valley...and then...
on to the moon...

...and who knows, maybe one day, even Mars!

Æ369 is much more than a token, it’s an adventure of discovery. 

Can you help Genius Boy put his token on the Moon! 

Visit our website to find out more!

The Genius Boy mobile game helps the token in two really valuable ways. 

It has micro transactions, some of the profits of these
will be used to buy, and then burn, Æ369 tokens.

That’s a pretty awesome bonus for any token.

But the real benefit of the game is the person it targets...

Genius Boy is about the life of Elon Musk. It champions all of
his greatest achievements, in a very complimentary way. The game
is full of easter eggs designed to make Elon smile :) 

Even the name itself was hand-picked to grab his attention.
Elon’s mother used to call Elon “Genius Boy” when he was little.

The token symbol also has special meaning for Elon, as well as
any fan of Nikola Tesla.

We are doing all of this with one goal in mind, to get Elon’s
attention. So that maybe one day, he will play our game,
love it and maybe even become addicted to it.

As Elon becomes aware of our project we hope that he tweets
about our token. And we all know what happens when Elon Tweets!
It will put Æ369 on the moon! 

So buy some Æ369 today, HODL onto it for dear life, and while
you wait for Elon’s Tweet, download and play the Genius Boy game...
you might even win a Tesla!!! 

Visit our website to find out more!


Website:  https:// geniusboy.cc/
Telegram:  https://t.me/GeniusBoy_AE369
Twitter:  https://twitter.com/GeniusBoy369


Created by GenTokens
https:// gentokens.com/

Special thanks to...

    Pavel
    Piotr
    Savage Wolf
    Thomas
    Nick
    CryptoBear
    Spinel
    Combat Medic
    Nanithefk
    Crypto Wolf
    Ryan



Launch Tokenomics

3% Liquidity
10% Marketing
2% Reflection

Tokenomics will be adjusted over time to help the token grow. 
Reflections will be increased post launch.

Contract by GEN
https://gentokens.com/


 */

pragma solidity ^0.8.6;


interface IERC20 {
    
    function totalSupply() external view returns (uint256);
    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);
}

library SafeMath {
    

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



abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

// On June 28th 1971 the world become a better place when Genius Boy was born in Pretoria, South Africa.

library Address {
    
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }


    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

// Genius Boy is most famous for starting Tesla Motors and SpaceX but was also the co-founder of PayPal, which made his mom very proud. I want a Tesla, they're great!

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = 0x23ADAE3696621f58eF8D846423A15B0002FAEeBA; // AE369 Wallet
        emit OwnershipTransferred(address(0), _owner);
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

// Genius Boy has a cameo in Iron Man! Did you spot him? I didn't, but I've not seen it :( 

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }


    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

// Like Steve Jobs, (No Steve, that's not the end of the sentence!) Genius Boy's official annual salary for Tesla Motors is only $1.

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    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 removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

// When he was 12 (that's 4 years into the future!), Genius Boy wrote a cool computer game called Blastar, he sold it he sold for $500. His mother will be very proud when this happens! 

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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

// Genius Boy won't become an America citizen until 2002! By then he will be 31 years old! Not a boy at all!! 

contract AE369 is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    
    // _isBlacklisted = Can not buy or sell or transfer tokens at all 
    mapping (address => bool) public _isBlacklisted;
    
    

    /*

    Lock Settings Feature - Keeping you safe!

    lockSettings is a bool that is set to false on deployment. 
    In order to change certain functions lockSettings must be false.
    lockSettings can be set to true, but it can never be set back to false!
    When lockSettings is set to true, certain functions can not be changed. 

    They are locked!

    In this contract lockSettings is used to remove the requirement to hold GEN, 
    ensuring that this restrictions can never be put back in place once
    lockSettings is set to true.

    lockSettings is a public boolean and anybody can see the current status.

    */

    bool public lockSettings = false;

    function safeLaunch_lock_settings() public onlyOwner {
        lockSettings = true;
    } 
    

// Genius Boy studied physics at Stanford University! But only for 2 days, and he was too young to join in any campus parties! 


    address[] private _excluded;
    address payable private Wallet_AE369 = payable(0x23ADAE3696621f58eF8D846423A15B0002FAEeBA);


    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 1000000000 * 10**6 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    string private _name = "Genius Boy";
    string private _symbol = "AE369";
    uint8 private _decimals = 9;


    // 30 mins Pre-Public launch on the GenTokens LaunchPad. 5T GEN/2 required to purchase before public launch.
    IERC20 GEN1 = IERC20(0xd4294c0f64eBA74089315D4b0278698f7181037e);
    IERC20 GEN2 = IERC20(0x9973885595Cf0C17accD7E46f96dbd937A7E627C);
    IERC20 MBD = IERC20(0xC05244af69120934Dd93787E3fE9a4c37c01fA0a);
     
    // need to hold about 0.2 bnb of GEN or GEN2 to be able to buy on day one
    uint256 public howMuchGEN1 = 5000000 * 10**6 * 10**9; 
    uint256 public howMuchGEN2 = 5000000 * 10**6 * 10**9; 

    // Hold GEN/2 in order to purchase
    bool public bringOutYourGEN = false; 

    // Change required amount of GEN/2 in order to buy early
    function gen_checkYourGEN(uint256 gen1Needed) external onlyOwner() {
        howMuchGEN1 = gen1Needed;
    }
    function gen_checkYourGEN2(uint256 gen2Needed) external onlyOwner() {
        howMuchGEN2 = gen2Needed;
    }

// Ever one to make his mom proud, Genius Boy created a new business called Zip2, which he will sell in 1999 for $307 million! Genius Boy FTW!!

    // People that are exempt from needing to hold GEN/2 when buying early
    mapping (address => bool) public putYourGenAway;

    // Wallet address does not need to hold GEN
    function gen_youDontNeedGEN(address account) public onlyOwner {
        putYourGenAway[account] = true;
    }

    // Wallet address needs to hold GEN/2 to buy early
    function gen_youDoNeedGEN(address account) public onlyOwner {
        putYourGenAway[account] = false;
    }

    // Toggle on/off "Need to be holding GEN/2 to buy" - Turn off at public launch phase
    function gen_onlyGenHolders(bool needGen) public onlyOwner {
        require(!lockSettings, "This function can not be updated, it is locked!");
        bringOutYourGEN = needGen;
    }

    // Update GEN address (for testnet)
    function gen_useTestTokenGEN1(address dummyGen1) external onlyOwner(){
        GEN1 = IERC20(dummyGen1);
    }
    // Update GEN2 address (for testnet)
    function gen_useTestTokenGEN2(address dummyGen2) external onlyOwner(){
        GEN2 = IERC20(dummyGen2);
    }

   
// In 1999, Genius Boy co-founded X.com (which later became PayPal), then sold it to eBay for more money than I've ever seen! He's a very clever boy!

    /*

    FEES 

    */


    // fees at launch - reflection will be increased post launch
    uint256 public _FeeReflection = 2;
    uint256 public _FeeLiquidity = 3; 
    uint256 public _FeeMarketing = 10; 


    // Dev tokens fee - may be used later! 
    uint256 public _FeeDevTokens = 0; 



    // 'previous fees' are used when removing and restoring fees
    uint256 private _previousFeeReflection = _FeeReflection;
    uint256 private _previousFeeLiquidity = _FeeLiquidity;
    uint256 private _previousFeeMarketing = _FeeMarketing;
    uint256 private _previousFeeDevTokens = _FeeDevTokens;


    // used to process fees in one calculation to reduce gas and avoid 'too deep in the stack' errors
    uint256 private _liquidityAndPromoFee = _FeeLiquidity+_FeeMarketing;
    
    // Shows the total amount of fees as a percent
    // NOTE: because solidity does not support decimals, this figure is only accurate if all fees add up to a whole number!
    uint256 public _FeesTotal = _FeeLiquidity+_FeeMarketing+_FeeDevTokens+_FeeReflection;


// Genius Boy is so clever that he regularly breaks the rules of maths! His Tesla Model S was awarded a safety score of 5.4 out of 5! That's VERY safe!

    // max wallet holding - set to 3% at launch
    uint256 public _maxWalletToken = _tTotal.mul(3).div(100);

    // max transaction amount - Set to 0 at launch, increased to 3% after airdrop and adding liquidity
    uint256 public _maxTxAmount = 0;

    // this is the number of tokens to accumulate before adding liquidity or taking the promotion fee
    // amount (in tokens) at launch set to 1% of total supply - 1% at launch
    uint256 public _numTokensSellToAddToLiquidity = 10000000 * 10**6 * 10**9;
    

// Genius Boy is the only person ever to send a car into space! That's pretty damned epic!! 
                            

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = false;
    
    

    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

// Genius Boy is a frugal explorer, he reduced the cost of travelling to the ISS from $1 billion per mission to just $60 million.
    
    constructor () {
        _rOwned[owner()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E);


        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[Wallet_AE369] = true; 
        

        // don't need to hold GEN
        putYourGenAway[owner()] = true;
        putYourGenAway[address(this)] = true;
        putYourGenAway[Wallet_AE369] = true; 
        
        emit Transfer(address(0), owner(), _tTotal);
    }

// Genius Boy loves Star Wars! So he named his cool rocket after the Millennium Falcon! (I used to have one of those when I was Genius Boy's age!)

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

// Genius Boy has signed the Giving Pledge, a pledge that promises to donate loads of money to people that need it :) He's a really generous boy!

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }

    // shall we make it fair? Let everybody have a go at getting in cheap? yes. yes we will. 
    bool public slowFairBuys = true;
    uint8 public justChillFor = 4;
    mapping (address => uint) private stillWaiting;

    // slow it down and make it fair, restrict buying in seconds
    function sefeLaunch_keepCalmAndBuySlowly(bool setBool, uint8 numSeconds) public onlyOwner {
        slowFairBuys = setBool;
        justChillFor = numSeconds;
    }

// Remember that really cool submarine Lotus Esprit in The Spy Who Loved Me? Yes, Genius Boy owns that!! Wow!!! Just WOW! That's better than a flying Tesla!! 

    function deliver(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");
        (uint256 rAmount,,,,,,) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rTotal = _rTotal.sub(rAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount,,,,,,) = _getValues(tAmount);
            return rAmount;
        } else {
            (,uint256 rTransferAmount,,,,,) = _getValues(tAmount);
            return rTransferAmount;
        }
    }


// In 2013, Genius Boy will be named Fortune's "Business boy of the Year", I bet his mom can't wait!


    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function excludeFromReward(address account) public onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is already included");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }
        function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tDev) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);        
        _takeLiquidity(tLiquidity);
        _takeDev(tDev);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    
   
    
    // set a wallet address so that it does not have to pay transaction fees
    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    // set a wallet address so that it has to pay transaction fees
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }
    
    // set the number of tokens required to activate auto-liquidity and promotion wallet payout
    function process_setNumTokensSellToAddToLiquidity(uint256 numTokensSellToAddToLiquidity) external onlyOwner() {
        _numTokensSellToAddToLiquidity = numTokensSellToAddToLiquidity;
    }














    // set the fee that is automatically distributed to all holders (reflection) 
    function fees_setFeeReflectionPercent(uint256 FeeReflection) external onlyOwner() {
        _FeeReflection = FeeReflection;
    }

    // set fee for the giveaway and manual burn wallet 
    function fees_setFeeDevTokensPercent(uint256 FeeDevTokens) external onlyOwner() {
        _FeeDevTokens = FeeDevTokens;
    }






    // set fee for auto liquidity
    function fees_setFee_Liquidity(uint256 FeeLiquidity) external onlyOwner() {
        _FeeLiquidity = FeeLiquidity;
        _FeesTotal = _FeeLiquidity+_FeeMarketing+_FeeDevTokens+_FeeReflection;
        _liquidityAndPromoFee = _FeeLiquidity+_FeeMarketing;
    }
    
    // set fee for the marketing
    function fees_setFee_Marketing(uint256 FeeMarketing) external onlyOwner() {
        _FeeMarketing = FeeMarketing;
        _FeesTotal = _FeeLiquidity+_FeeMarketing+_FeeDevTokens+_FeeReflection;
        _liquidityAndPromoFee = _FeeLiquidity+_FeeMarketing;
    }
    
    // set fee for the reflection
    function fees_setFee_Reflection(uint256 FeeReflection) external onlyOwner() {
        _FeeReflection = FeeReflection;
        _FeesTotal = _FeeLiquidity+_FeeMarketing+_FeeDevTokens+_FeeReflection;
        _liquidityAndPromoFee = _FeeLiquidity+_FeeMarketing;
    }
    
    // set fee for the dev tokens
    function fees_setFee_DevTokens(uint256 FeeDevTokens) external onlyOwner() {
        _FeeDevTokens = FeeDevTokens;
        _FeesTotal = _FeeLiquidity+_FeeMarketing+_FeeDevTokens+_FeeReflection;
        _liquidityAndPromoFee = _FeeLiquidity+_FeeMarketing;
    }


    // changing wallets 

    function Set_Wallet_AE369(address payable wallet) public onlyOwner() {
        Wallet_AE369 = wallet;
        _isExcludedFromFee[Wallet_AE369] = true;
        putYourGenAway[Wallet_AE369] = true;
    }










    
    // toggle on and off to activate auto liquidity and the promo wallet 
    function process_setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }
    
    // receive BNB from PCS Router
    receive() external payable {}

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }









    /*

    SafeLaunch Features - Blacklist functions

    Blacklist - This is used to block a person from buying - known bot users are added to this
    list prior to launch. We also check for people using snipe bots on the contract before we
    add liquidity and block these wallets. We like all of our buys to be natural and fair!

    */

    
    // Blacklist - Block people from buying - used for known bots (ADD - COMMA SEPARATE MULTIPLE WALLETS)
    function safeLaunch_Blacklist_ADD(address[] calldata addresses) external onlyOwner {
      for (uint256 i; i < addresses.length; ++i) {
        _isBlacklisted[addresses[i]] = true;
      }
    }

    
    // Blacklist - Block people from buying - used for known bots (REMOVE - COMMA SEPARATE MULTIPLE WALLETS)
    function safeLaunch_Blacklist_REMOVE(address[] calldata addresses) external onlyOwner {
      for (uint256 i; i < addresses.length; ++i) {
        _isBlacklisted[addresses[i]] = false;
      }
    }
    
   
    // set the Max transaction amount (percent of total supply)
    function safeLaunch_setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(
            10**2
        );
    }
    
    // set the Max transaction amount (in tokens)
     function safeLaunch_setMaxTxTokens(uint256 maxTxTokens) external onlyOwner() {
        _maxTxAmount = maxTxTokens;
    }
    
    
    
    // settting the maximum permitted wallet holding (percent of total supply)
     function safeLaunch_setMaxWalletPercent(uint256 maxWallPercent) external onlyOwner() {
        _maxWalletToken = _tTotal.mul(maxWallPercent).div(
            10**2
        );
    }
    
    // settting the maximum permitted wallet holding (in tokens)
     function safeLaunch_setMaxWalletTokens(uint256 maxWallTokens) external onlyOwner() {
        _maxWalletToken = maxWallTokens;
    }
    
    






    







    
   
    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tDev) = _getTValues(tAmount);
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, tDev, _getRate());
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tLiquidity, tDev);
    }

    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256) {
        uint256 tFee = calculateFeeReflection(tAmount);
        uint256 tLiquidity = calculateLiquidityAndPromoFee(tAmount);
        uint256 tDev = calculateFeeDevTokens(tAmount);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tLiquidity).sub(tDev);
        return (tTransferAmount, tFee, tLiquidity, tDev);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tLiquidity, uint256 tDev, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rLiquidity = tLiquidity.mul(currentRate);
        uint256 rDev = tDev.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rLiquidity).sub(rDev);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
    
    function _takeLiquidity(uint256 tLiquidity) private {
        uint256 currentRate =  _getRate();
        uint256 rLiquidity = tLiquidity.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity);
        if(_isExcluded[address(this)])
            _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity);
    }
    
    function _takeDev(uint256 tDev) private {
        uint256 currentRate =  _getRate();
        uint256 rDev = tDev.mul(currentRate);
        _rOwned[Wallet_AE369] = _rOwned[Wallet_AE369].add(rDev);
        if(_isExcluded[Wallet_AE369])
            _tOwned[Wallet_AE369] = _tOwned[Wallet_AE369].add(tDev);
    }
    
    function calculateFeeReflection(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_FeeReflection).div(
            10**2
        );
    }

    function calculateFeeDevTokens(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_FeeDevTokens).div(
            10**2
        );
    }

    function calculateLiquidityAndPromoFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_liquidityAndPromoFee).div(
            10**2
        );
    }
    
    function removeAllFee() private {
        if(_FeeReflection == 0 && _FeeDevTokens == 0 && _FeeLiquidity == 0 && _FeeMarketing == 0) return;

        _previousFeeReflection = _FeeReflection;
        _previousFeeDevTokens = _FeeDevTokens;
        _previousFeeLiquidity = _FeeLiquidity;
        _previousFeeMarketing = _FeeMarketing;
        
        _FeeReflection = 0;
        _FeeDevTokens = 0;
        _FeeLiquidity = 0;
        _FeeMarketing = 0;

        _FeesTotal = 0;
        _liquidityAndPromoFee = 0;

    }
    
    function restoreAllFee() private {

         _FeeReflection = _previousFeeReflection;
         _FeeDevTokens = _previousFeeDevTokens;
         _FeeLiquidity = _previousFeeLiquidity;
         _FeeMarketing = _previousFeeMarketing;

         _FeesTotal = _FeeLiquidity+_FeeMarketing+_FeeDevTokens+_FeeReflection;
         _liquidityAndPromoFee = _FeeLiquidity+_FeeMarketing;

    }
    




    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "Nope, can't do that. Sorry, the owner is... dead!");
        require(spender != address(0), "No puedo hacer esta, disculpa.");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        
        
        // limits the amount of tokens that each person can buy - launch limit is 3% of total supply!
        if (to != owner() && from != owner() && to != address(this) && to != address(0x000000000000000000000000000000000000dEaD) && to != uniswapV2Pair){
            uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletToken,"You are trying to buy over the max limit... Who do you think you are? Jeff Bezos??");}
        
      
        // blacklisted addreses can not buy! If you have ever used a bot, or scammed anybody, then you're wallet address will probably be blacklisted
        require(!_isBlacklisted[from] && !_isBlacklisted[to], "Nope. Not gunna happen. This address is blacklisted");
        require(from != address(0), "from 0 address");
        require(to != address(0), "to 0 address");
        require(amount > 0, "no tokens, just burning gas");


        // must wait 4 seconds between buys
        if (from == uniswapV2Pair &&
            slowFairBuys &&
            !_isExcludedFromFee[to] &&
            to != address(this)  && 
            to != address(0x000000000000000000000000000000000000dEaD)) {
            require(stillWaiting[to] < block.timestamp,"You buy so fast! Relax, buy sloooowly, give other people a chance for a few seconds.");
            stillWaiting[to] = block.timestamp + justChillFor;
        }

     
        // Dude, where's your GEN? Didn't you get the memo? You need some GEN!
         if(bringOutYourGEN)
                {require(putYourGenAway[to]
                    || GEN1.balanceOf(to) >= howMuchGEN1 || GEN2.balanceOf(to) >= howMuchGEN2 || MBD.balanceOf(to) >= 1
                    ,"To buy this early you need to hold some GEN or MBD. Pop back in 30 mins, or buy some GEN!");}
           


        
        // limit the maximum number of tokens that can be bought or sold in one transaction
        if(from != owner() && to != owner())
            require(amount <= _maxTxAmount, "Easy there tiger! Put your fat wallet away, that's too much!");



        uint256 contractTokenBalance = balanceOf(address(this));
        
        if(contractTokenBalance >= _maxTxAmount)
        {
            contractTokenBalance = _maxTxAmount;
        }
        
        bool overMinTokenBalance = contractTokenBalance >= _numTokensSellToAddToLiquidity;
        if (
            overMinTokenBalance &&
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled
        ) {
            contractTokenBalance = _numTokensSellToAddToLiquidity;
            swapAndLiquify(contractTokenBalance);
        }
        
        bool takeFee = true;
        
         
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }
    
     function sendToWallet(address payable wallet, uint256 amount) private {
            wallet.transfer(amount);
        }


    function precDiv(uint a, uint b, uint precision) internal pure returns ( uint) {
     return a*(10**precision)/b;
         
    } 













     function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {


       uint256 splitPromo = 0;
       uint256 tokensToPromo = 0;
       uint256 promoBNB = 0;
       uint256 lpBNB = 0;
       

        // Processing tokens into BNB, adding liquidity and sending marketing BNB to wallet
        if (_FeeMarketing != 0 && _FeeLiquidity != 0){


            // Calculate the correct ratio splits for marketing an dauto liquidity
            splitPromo = precDiv(_FeeMarketing,_liquidityAndPromoFee,2);
            tokensToPromo = contractTokenBalance*splitPromo/100;


        uint256 tokenstoLP = contractTokenBalance-tokensToPromo;
        uint256 firstHalf = tokenstoLP.div(2);
        uint256 secondHalf = tokenstoLP.sub(firstHalf);

        uint256 swapTotal = firstHalf+tokensToPromo;

        uint256 balanceBeforeSwap = address(this).balance;
        swapTokensForEth(swapTotal);
        // what did we get?
        uint256 totalBNB = address(this).balance - balanceBeforeSwap;

        // Split the BNB
        promoBNB = totalBNB*splitPromo/100;
        lpBNB = totalBNB-promoBNB;

        // Add the liquidity
        addLiquidity(secondHalf, lpBNB);
        emit SwapAndLiquify(firstHalf, lpBNB, secondHalf);

        // send BNB to marketing wallet
        sendToWallet(Wallet_AE369, promoBNB);

    }


// Genius Boy loves speed! So he invented the HyperLoop! A person in a pod, in a tube, that moves faster than a bullet train! 


        // Processing the auto-liquidity if there are no marketing or developer fees
        if (_FeeMarketing == 0 && _FeeLiquidity != 0){

        uint256 firstHalf = contractTokenBalance.div(2);
        uint256 secondHalf = contractTokenBalance.sub(firstHalf);
        uint256 balanceBeforeSwap = address(this).balance;
        swapTokensForEth(firstHalf);
        // what did we get?
        uint256 liqBNB = address(this).balance - balanceBeforeSwap;
        // Add the liquidity
        addLiquidity(secondHalf, liqBNB);
        emit SwapAndLiquify(firstHalf, liqBNB, secondHalf);

    }
        // Processing the marketing and developer fees if there is no auto-liquidity
        if (_FeeMarketing != 0 && _FeeLiquidity == 0){

        uint256 balanceBeforeSwap = address(this).balance;
        swapTokensForEth(contractTokenBalance);
        // what did we get?
        uint256 marketingBNB = address(this).balance - balanceBeforeSwap;

        // send BNB to marketing wallet
        sendToWallet(Wallet_AE369, marketingBNB);


    }
    }


    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, 
            0, 
            owner(),
            block.timestamp
        );
    }    
    
    // manually purge tokens from contract, swap to bnb and send to promo wallet
    function process_TokensFromContract(address payable wallet, uint256 tokenAmount) public onlyOwner {
        uint256 tokensOnWallet = balanceOf(address(this));
        if (tokenAmount > tokensOnWallet) {tokenAmount = tokensOnWallet;}
        uint256 balanceBefore = address(this).balance;
        swapTokensForEth(tokenAmount);
        uint256 balanceToSend = address(this).balance - balanceBefore;
        sendToWallet(wallet, balanceToSend);
    }

    // manually purge BNB from contract to promo wallet
    function process_BNBFromContract(address payable wallet,uint256 bnbAmount) public onlyOwner {
        uint256 contractBNB = address(this).balance;
        if (contractBNB > 0) {
        if (bnbAmount > contractBNB) {bnbAmount = contractBNB;}
        sendToWallet(wallet, bnbAmount);
    }
    }

    // Manual 'swapAndLiquify' Trigger (Helps to reduce the red on the chart)
    function process_Purge_SwapAndLiquify_Now (uint256 tokensToLiquify) public onlyOwner {

        uint256 tokensOnContract = balanceOf(address(this));
        if(tokensToLiquify > tokensOnContract){tokensToLiquify = tokensOnContract;}
        swapAndLiquify(tokensToLiquify);

    }

// Genius Boy wants to be burried on Mars... But we hope he evolves into a cyborg that lives forever! So he keeps making cool things!

    function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private {
        
         
        
        if(!takeFee)
            removeAllFee();
        
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
        
        if(!takeFee)
            restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tDev) = _getValues(tAmount);
                
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeLiquidity(tLiquidity);
        _takeDev(tDev);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tDev) = _getValues(tAmount);
        
        
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);           
        _takeLiquidity(tLiquidity);
        _takeDev(tDev);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tDev) = _getValues(tAmount);
       
       
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);   
        _takeLiquidity(tLiquidity);
        _takeDev(tDev);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }


    
    

}





/*



                           *     .--.
                                / /  `
               +               | |
                      '         \ \__,
                  *          +   '--'  *
                      +   /\
         +              .'  '.   *
                *      /======\      +
                      ;:.  _   ;
                      |:. (_)  |
                      |:.  _   |
            +         |:. (_)  |          *
                      ;:.      ;
                    .' \:.    / `.
                   / .-'':._.'`-. \
                   |/    /||\    \|
  GeniusBoy Æ369 _..--"""````"""--.._ To the moon!
           _.-'``                    ``'-._
         -'                                '-




*/




























// Creating by GEN - https://gentokens.com/

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":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":[{"internalType":"address payable","name":"wallet","type":"address"}],"name":"Set_Wallet_AE369","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_FeeDevTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_FeeLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_FeeMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_FeeReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_FeesTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bringOutYourGEN","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"FeeDevTokens","type":"uint256"}],"name":"fees_setFeeDevTokensPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"FeeReflection","type":"uint256"}],"name":"fees_setFeeReflectionPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"FeeDevTokens","type":"uint256"}],"name":"fees_setFee_DevTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"FeeLiquidity","type":"uint256"}],"name":"fees_setFee_Liquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"FeeMarketing","type":"uint256"}],"name":"fees_setFee_Marketing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"FeeReflection","type":"uint256"}],"name":"fees_setFee_Reflection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gen1Needed","type":"uint256"}],"name":"gen_checkYourGEN","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gen2Needed","type":"uint256"}],"name":"gen_checkYourGEN2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"needGen","type":"bool"}],"name":"gen_onlyGenHolders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"dummyGen1","type":"address"}],"name":"gen_useTestTokenGEN1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"dummyGen2","type":"address"}],"name":"gen_useTestTokenGEN2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"gen_youDoNeedGEN","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"gen_youDontNeedGEN","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"howMuchGEN1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"howMuchGEN2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"justChillFor","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockSettings","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"wallet","type":"address"},{"internalType":"uint256","name":"bnbAmount","type":"uint256"}],"name":"process_BNBFromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokensToLiquify","type":"uint256"}],"name":"process_Purge_SwapAndLiquify_Now","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"wallet","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"process_TokensFromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numTokensSellToAddToLiquidity","type":"uint256"}],"name":"process_setNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"process_setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"putYourGenAway","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"safeLaunch_Blacklist_ADD","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"safeLaunch_Blacklist_REMOVE","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"safeLaunch_lock_settings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"safeLaunch_setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxTokens","type":"uint256"}],"name":"safeLaunch_setMaxTxTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"safeLaunch_setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallTokens","type":"uint256"}],"name":"safeLaunch_setMaxWalletTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"setBool","type":"bool"},{"internalType":"uint8","name":"numSeconds","type":"uint8"}],"name":"sefeLaunch_keepCalmAndBuySlowly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"slowFairBuys","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526007805460ff19169055600980546001600160a01b0319167323adae3696621f58ef8d846423a15b0002faeeba17905569d3c21bcecceda1000000600a819055620000529060001962000761565b62000060906000196200070a565b600b5560408051808201909152600a8082526947656e69757320426f7960b01b60209092019182526200009691600d91620005e5565b5060408051808201909152600580825264414533363960d81b6020909201918252620000c591600e91620005e5565b50600f805474d4294c0f64eba74089315d4b0278698f7181037e096001600160a81b0319909116179055601080546001600160a01b0319908116739973885595cf0c17accd7e46f96dbd937a7e627c179091556011805490911673c05244af69120934dd93787e3fe9a4c37c01fa0a17905569010f0cf064dd5920000060128190556013556014805460ff191690556002601681905560036017819055600a601881905560006019819055601a93909355601b829055601c819055601d92909255620001929190620006b6565b601e55601654601954601854601754620001ad9190620006b6565b620001b99190620006b6565b620001c59190620006b6565b601f55620001ff6064620001eb6003600a54620005c260201b620026e71790919060201c565b620005d760201b620026f31790919060201c565b602055600060215569021e19e0c9bab24000006022556023805463ffffff00191663040100001790553480156200023557600080fd5b50600080546001600160a01b0319167323adae3696621f58ef8d846423a15b0002faeeba90811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600b5460016000620002a36000546001600160a01b031690565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555060007310ed43c718714eb63d5aa57b78b54704e256024e9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031a57600080fd5b505afa1580156200032f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035591906200068b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200039e57600080fd5b505afa158015620003b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d991906200068b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200042257600080fd5b505af115801562000437573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045d91906200068b565b6001600160601b0319606091821b811660a0529082901b16608052600160046000620004916000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526004909352818320805485166001908117909155600954909116835290822080549093168117909255601590620005016000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260159093528183208054851660019081179091556009549091168352912080549092161790556200056b6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620005b391815260200190565b60405180910390a350620007a4565b6000620005d08284620006e8565b9392505050565b6000620005d08284620006d1565b828054620005f39062000724565b90600052602060002090601f01602090048101928262000617576000855562000662565b82601f106200063257805160ff191683800117855562000662565b8280016001018555821562000662579182015b828111156200066257825182559160200191906001019062000645565b506200067092915062000674565b5090565b5b8082111562000670576000815560010162000675565b6000602082840312156200069e57600080fd5b81516001600160a01b0381168114620005d057600080fd5b60008219821115620006cc57620006cc62000778565b500190565b600082620006e357620006e36200078e565b500490565b600081600019048311821515161562000705576200070562000778565b500290565b6000828210156200071f576200071f62000778565b500390565b600181811c908216806200073957607f821691505b602082108114156200075b57634e487b7160e01b600052602260045260246000fd5b50919050565b6000826200077357620007736200078e565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b60805160601c60a05160601c61468e620008086000396000818161081f01528181612ab101528181612d540152613262015260008181610590015281816127560152818161281e01528181612873015281816139db0152613a02015261468e6000f3fe6080604052600436106104695760003560e01c806370a0823111610243578063a02e0a2911610143578063d64e430a116100bb578063eb9533e81161008a578063f2fde38b1161006f578063f2fde38b14610d09578063fcdc3fa714610d29578063fcead81314610d5957600080fd5b8063eb9533e814610cd4578063f214f3f014610ce957600080fd5b8063d64e430a14610c2e578063dd62ed3e14610c4e578063deab138414610c94578063ea2f0b3714610cb457600080fd5b8063b12bfd2411610112578063b43d40ff116100f7578063b43d40ff14610bd4578063b769626314610bf4578063bc142fa514610c1457600080fd5b8063b12bfd2414610b9e578063b3f22ce314610bbe57600080fd5b8063a02e0a2914610b28578063a457c2d714610b3e578063a9059cbb14610b5e578063aa8f127914610b7e57600080fd5b806386af6128116101d657806395d89b41116101a5578063983002b81161018a578063983002b814610adc57806399e3b97214610afc5780639d3f796514610b1257600080fd5b806395d89b4114610aa7578063963ec6ab14610abc57600080fd5b806386af612814610a1057806388f8202014610a305780638b5b765814610a695780638da5cb5b14610a8957600080fd5b806376f305331161021257806376f30533146109ae57806378109e54146109c45780637d1db4a5146109da5780637f114c87146109f057600080fd5b806370a0823114610939578063715018a614610959578063715f039a1461096e5780637331dff51461098e57600080fd5b806331447ff3116103695780634549b039116102e15780634e19f936116102b057806352390c021161029557806352390c02146108c05780635342acb4146108e0578063573653951461091957600080fd5b80634e19f936146108805780634f2e4719146108a057600080fd5b80634549b039146107ed57806349bd5a5e1461080d5780634a74bb02146108415780634d86d8781461086057600080fd5b80633bd5d1731161033857806341cb48571161031d57806341cb485714610793578063433144bf146107b3578063437823ec146107cd57600080fd5b80633bd5d173146107535780633d32ca671461077357600080fd5b806331447ff3146106dd578063326a9acf146106f35780633685d41914610713578063395093511461073357600080fd5b806318160ddd116103fc57806320bd64e7116103cb578063286f0420116103b0578063286f0420146106855780632d838119146106a5578063313ce567146106c557600080fd5b806320bd64e71461064557806323b872dd1461066557600080fd5b806318160ddd146105ca5780631a7ed657146105df5780631cdd3be3146105ff5780631d1202ad1461062f57600080fd5b80631170756911610438578063117075691461051257806313114a9d1461053657806315011c101461054b5780631694505e1461057e57600080fd5b806306fdde031461047557806308c38656146104a057806308eb4895146104c2578063095ea7b3146104e257600080fd5b3661047057005b600080fd5b34801561048157600080fd5b5061048a610d79565b604051610497919061429f565b60405180910390f35b3480156104ac57600080fd5b506104c06104bb366004614071565b610e0b565b005b3480156104ce57600080fd5b506104c06104dd3660046140ab565b610ea9565b3480156104ee57600080fd5b506105026104fd3660046140ab565b610f45565b6040519015158152602001610497565b34801561051e57600080fd5b50610528601f5481565b604051908152602001610497565b34801561054257600080fd5b50600c54610528565b34801561055757600080fd5b5060235461056c906301000000900460ff1681565b60405160ff9091168152602001610497565b34801561058a57600080fd5b506105b27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610497565b3480156105d657600080fd5b50600a54610528565b3480156105eb57600080fd5b506104c06105fa366004614071565b610f5c565b34801561060b57600080fd5b5061050261061a366004614071565b60066020526000908152604090205460ff1681565b34801561063b57600080fd5b5061052860185481565b34801561065157600080fd5b506104c06106603660046141c6565b610ff0565b34801561067157600080fd5b50610502610680366004614110565b6110d6565b34801561069157600080fd5b506104c06106a0366004614213565b61113f565b3480156106b157600080fd5b506105286106c0366004614213565b6111e0565b3480156106d157600080fd5b50600f5460ff1661056c565b3480156106e957600080fd5b5061052860125481565b3480156106ff57600080fd5b506104c061070e366004614151565b611277565b34801561071f57600080fd5b506104c061072e366004614071565b611346565b34801561073f57600080fd5b5061050261074e3660046140ab565b61155d565b34801561075f57600080fd5b506104c061076e366004614213565b611593565b34801561077f57600080fd5b506104c061078e366004614071565b611690565b34801561079f57600080fd5b506104c06107ae3660046140ab565b61170b565b3480156107bf57600080fd5b506014546105029060ff1681565b3480156107d957600080fd5b506104c06107e8366004614071565b611782565b3480156107f957600080fd5b50610528610808366004614245565b611800565b34801561081957600080fd5b506105b27f000000000000000000000000000000000000000000000000000000000000000081565b34801561084d57600080fd5b5060235461050290610100900460ff1681565b34801561086c57600080fd5b506104c061087b366004614213565b61188f565b34801561088c57600080fd5b506104c061089b366004614213565b611902565b3480156108ac57600080fd5b506104c06108bb366004614213565b611982565b3480156108cc57600080fd5b506104c06108db366004614071565b6119fc565b3480156108ec57600080fd5b506105026108fb366004614071565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561092557600080fd5b506104c0610934366004614213565b611b97565b34801561094557600080fd5b50610528610954366004614071565b611bf6565b34801561096557600080fd5b506104c0611c55565b34801561097a57600080fd5b506104c0610989366004614213565b611d11565b34801561099a57600080fd5b506104c06109a9366004614213565b611d70565b3480156109ba57600080fd5b5061052860195481565b3480156109d057600080fd5b5061052860205481565b3480156109e657600080fd5b5061052860215481565b3480156109fc57600080fd5b506104c0610a0b366004614071565b611dcf565b348015610a1c57600080fd5b506104c0610a2b366004614213565b611e9a565b348015610a3c57600080fd5b50610502610a4b366004614071565b6001600160a01b031660009081526005602052604090205460ff1690565b348015610a7557600080fd5b506104c0610a84366004614213565b611f0d565b348015610a9557600080fd5b506000546001600160a01b03166105b2565b348015610ab357600080fd5b5061048a611f7f565b348015610ac857600080fd5b506104c0610ad7366004614213565b611f8e565b348015610ae857600080fd5b506104c0610af73660046141e1565b611fed565b348015610b0857600080fd5b5061052860175481565b348015610b1e57600080fd5b5061052860165481565b348015610b3457600080fd5b5061052860135481565b348015610b4a57600080fd5b50610502610b593660046140ab565b6120b2565b348015610b6a57600080fd5b50610502610b793660046140ab565b612101565b348015610b8a57600080fd5b506023546105029062010000900460ff1681565b348015610baa57600080fd5b506104c0610bb9366004614213565b61210e565b348015610bca57600080fd5b5061052860225481565b348015610be057600080fd5b506104c0610bef366004614213565b61216d565b348015610c0057600080fd5b506104c0610c0f366004614151565b6121e9565b348015610c2057600080fd5b506007546105029060ff1681565b348015610c3a57600080fd5b506104c0610c49366004614213565b6122b3565b348015610c5a57600080fd5b50610528610c693660046140d7565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610ca057600080fd5b506104c0610caf3660046141c6565b612312565b348015610cc057600080fd5b506104c0610ccf366004614071565b6123dd565b348015610ce057600080fd5b506104c0612458565b348015610cf557600080fd5b506104c0610d04366004614213565b6124c1565b348015610d1557600080fd5b506104c0610d24366004614071565b612520565b348015610d3557600080fd5b50610502610d44366004614071565b60156020526000908152604090205460ff1681565b348015610d6557600080fd5b506104c0610d74366004614071565b612669565b6060600d8054610d88906144f7565b80601f0160208091040260200160405190810160405280929190818152602001828054610db4906144f7565b8015610e015780601f10610dd657610100808354040283529160200191610e01565b820191906000526020600020905b815481529060010190602001808311610de457829003601f168201915b5050505050905090565b6000546001600160a01b03163314610e6a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600f80546001600160a01b03909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b6000546001600160a01b03163314610f035760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b6000610f0e30611bf6565b905080821115610f1c578091505b47610f26836126ff565b6000610f3282476144e0565b9050610f3e85826128e7565b5050505050565b6000610f5233848461291d565b5060015b92915050565b6000546001600160a01b03163314610fb65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b601080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461104a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b60075460ff16156110c35760405162461bcd60e51b815260206004820152602f60248201527f546869732066756e6374696f6e2063616e206e6f74206265207570646174656460448201527f2c206974206973206c6f636b65642100000000000000000000000000000000006064820152608401610e61565b6014805460ff1916911515919091179055565b60006110e3848484612a50565b61113584336111308560405180606001604052806028815260200161460c602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190613314565b61291d565b5060019392505050565b6000546001600160a01b031633146111995760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b60168190556019546018546017548392916111b391614383565b6111bd9190614383565b6111c79190614383565b601f556018546017546111da9190614383565b601e5550565b6000600b5482111561125a5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e73000000000000000000000000000000000000000000006064820152608401610e61565b6000611264613340565b905061127083826126f3565b9392505050565b6000546001600160a01b031633146112d15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b60005b81811015611341576000600660008585858181106112f4576112f46145c4565b90506020020160208101906113099190614071565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561133a8161454b565b90506112d4565b505050565b6000546001600160a01b031633146113a05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b6001600160a01b03811660009081526005602052604090205460ff166114085760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610e61565b60005b60085481101561155957816001600160a01b031660088281548110611432576114326145c4565b6000918252602090912001546001600160a01b03161415611547576008805461145d906001906144e0565b8154811061146d5761146d6145c4565b600091825260209091200154600880546001600160a01b039092169183908110611499576114996145c4565b600091825260208083209190910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff19169055600880548061150957611509614595565b600082815260209020810160001990810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690550190555050565b806115518161454b565b91505061140b565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610f529185906111309086613363565b3360008181526005602052604090205460ff16156116195760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201527f6869732066756e6374696f6e00000000000000000000000000000000000000006064820152608401610e61565b60006116248361336f565b5050506001600160a01b038616600090815260016020526040902054939450611652939250849150506133ca565b6001600160a01b038316600090815260016020526040902055600b5461167890826133ca565b600b55600c546116889084613363565b600c55505050565b6000546001600160a01b031633146116ea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b6001600160a01b03166000908152601560205260409020805460ff19169055565b6000546001600160a01b031633146117655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b4780156113415780821115611778578091505b61134183836128e7565b6000546001600160a01b031633146117dc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600a548311156118545760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610e61565b816118745760006118648461336f565b50949650610f5695505050505050565b600061187f8461336f565b50939650610f5695505050505050565b6000546001600160a01b031633146118e95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b60188190556016546019546017546111b3908490614383565b6000546001600160a01b0316331461195c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b61197c606461197683600a546126e790919063ffffffff16565b906126f3565b60215550565b6000546001600160a01b031633146119dc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b6119f6606461197683600a546126e790919063ffffffff16565b60205550565b6000546001600160a01b03163314611a565760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b6001600160a01b03811660009081526005602052604090205460ff1615611abf5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610e61565b6001600160a01b03811660009081526001602052604090205415611b19576001600160a01b038116600090815260016020526040902054611aff906111e0565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b6000546001600160a01b03163314611bf15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b601255565b6001600160a01b03811660009081526005602052604081205460ff1615611c3357506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610f56906111e0565b6000546001600160a01b03163314611caf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6000546001600160a01b03163314611d6b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b601655565b6000546001600160a01b03163314611dca5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b601955565b6000546001600160a01b03163314611e295760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392831690811782556000908152600460209081526040808320805460ff199081166001908117909255945490951683526015909152902080549091169091179055565b6000546001600160a01b03163314611ef45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b601981905560165460185460175483916111b391614383565b6000546001600160a01b03163314611f675760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b60178190556016546019546018546111b39084614383565b6060600e8054610d88906144f7565b6000546001600160a01b03163314611fe85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b602155565b6000546001600160a01b031633146120475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b602380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff1662010000931515939093027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff1692909217630100000060ff9290921691909102179055565b6000610f52338461113085604051806060016040528060258152602001614634602591393360009081526003602090815260408083206001600160a01b038d1684529091529020549190613314565b6000610f52338484612a50565b6000546001600160a01b031633146121685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b602255565b6000546001600160a01b031633146121c75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b60006121d230611bf6565b9050808211156121e0578091505b611559826133d6565b6000546001600160a01b031633146122435760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b60005b8181101561134157600160066000858585818110612266576122666145c4565b905060200201602081019061227b9190614071565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556122ac8161454b565b9050612246565b6000546001600160a01b0316331461230d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b601355565b6000546001600160a01b0316331461236c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b60238054821515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff9091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906123d290831515815260200190565b60405180910390a150565b6000546001600160a01b031633146124375760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146124b25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b6007805460ff19166001179055565b6000546001600160a01b0316331461251b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b602055565b6000546001600160a01b0316331461257a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b6001600160a01b0381166125f65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610e61565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6000546001600160a01b031633146126c35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e61565b6001600160a01b03166000908152601560205260409020805460ff19166001179055565b600061127082846144c1565b6000611270828461439b565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612734576127346145c4565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156127ad57600080fd5b505afa1580156127c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e5919061408e565b816001815181106127f8576127f86145c4565b60200260200101906001600160a01b031690816001600160a01b031681525050612843307f00000000000000000000000000000000000000000000000000000000000000008461291d565b6040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906128b1908590600090869030904290600401614312565b600060405180830381600087803b1580156128cb57600080fd5b505af11580156128df573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611341573d6000803e3d6000fd5b6001600160a01b0383166129995760405162461bcd60e51b815260206004820152603160248201527f4e6f70652c2063616e277420646f20746861742e20536f7272792c207468652060448201527f6f776e65722069732e2e2e2064656164210000000000000000000000000000006064820152608401610e61565b6001600160a01b0382166129ef5760405162461bcd60e51b815260206004820152601e60248201527f4e6f20707565646f20686163657220657374612c2064697363756c70612e00006044820152606401610e61565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b03838116911614801590612a7c57506000546001600160a01b03848116911614155b8015612a9157506001600160a01b0382163014155b8015612aa857506001600160a01b03821661dead14155b8015612ae657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b15612ba2576000612af683611bf6565b602054909150612b068383614383565b1115612ba05760405162461bcd60e51b815260206004820152605260248201527f596f752061726520747279696e6720746f20627579206f76657220746865206d60448201527f6178206c696d69742e2e2e2057686f20646f20796f75207468696e6b20796f7560648201527f206172653f204a6566662042657a6f733f3f0000000000000000000000000000608482015260a401610e61565b505b6001600160a01b03831660009081526006602052604090205460ff16158015612be457506001600160a01b03821660009081526006602052604090205460ff16155b612c565760405162461bcd60e51b815260206004820152603360248201527f4e6f70652e204e6f742067756e6e612068617070656e2e20546869732061646460448201527f7265737320697320626c61636b6c6973746564000000000000000000000000006064820152608401610e61565b6001600160a01b038316612cac5760405162461bcd60e51b815260206004820152600e60248201527f66726f6d203020616464726573730000000000000000000000000000000000006044820152606401610e61565b6001600160a01b038216612d025760405162461bcd60e51b815260206004820152600c60248201527f746f2030206164647265737300000000000000000000000000000000000000006044820152606401610e61565b60008111612d525760405162461bcd60e51b815260206004820152601b60248201527f6e6f20746f6b656e732c206a757374206275726e696e672067617300000000006044820152606401610e61565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316148015612d9b575060235462010000900460ff165b8015612dc057506001600160a01b03821660009081526004602052604090205460ff16155b8015612dd557506001600160a01b0382163014155b8015612dec57506001600160a01b03821661dead14155b15612ed5576001600160a01b0382166000908152602460205260409020544211612ea45760405162461bcd60e51b815260206004820152605460248201527f596f752062757920736f2066617374212052656c61782c2062757920736c6f6f60448201527f6f6f776c792c2067697665206f746865722070656f706c652061206368616e6360648201527f6520666f72206120666577207365636f6e64732e000000000000000000000000608482015260a401610e61565b602354612ebb906301000000900460ff1642614383565b6001600160a01b0383166000908152602460205260409020555b60145460ff161561317e576001600160a01b03821660009081526015602052604090205460ff1680612fa45750601254600f546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152610100909204909116906370a082319060240160206040518083038186803b158015612f6957600080fd5b505afa158015612f7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fa1919061422c565b10155b8061304657506013546010546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152909116906370a082319060240160206040518083038186803b15801561300b57600080fd5b505afa15801561301f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613043919061422c565b10155b806130e657506011546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260019216906370a082319060240160206040518083038186803b1580156130ab57600080fd5b505afa1580156130bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e3919061422c565b10155b61317e5760405162461bcd60e51b815260206004820152605960248201527f546f206275792074686973206561726c7920796f75206e65656420746f20686f60448201527f6c6420736f6d652047454e206f72204d42442e20506f70206261636b20696e2060648201527f3330206d696e732c206f722062757920736f6d652047454e2100000000000000608482015260a401610e61565b6000546001600160a01b038481169116148015906131aa57506000546001600160a01b03838116911614155b15613227576021548111156132275760405162461bcd60e51b815260206004820152603c60248201527f45617379207468657265207469676572212050757420796f757220666174207760448201527f616c6c657420617761792c2074686174277320746f6f206d75636821000000006064820152608401610e61565b600061323230611bf6565b9050602154811061324257506021545b60225481108015908190613259575060235460ff16155b801561329757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b80156132aa5750602354610100900460ff165b156132bd5760225491506132bd826133d6565b6001600160a01b03851660009081526004602052604090205460019060ff16806132ff57506001600160a01b03851660009081526004602052604090205460ff165b15613308575060005b6128df868686846135fe565b600081848411156133385760405162461bcd60e51b8152600401610e61919061429f565b505050900390565b600080600061334d613772565b909250905061335c82826126f3565b9250505090565b60006112708284614383565b60008060008060008060008060008060006133898c6138f4565b935093509350935060008060006133aa8f8787876133a5613340565b613949565b919f509d509b509599509397509195509350505050919395979092949650565b600061127082846144e0565b6023805460ff19166001179055601854600090819081908190158015906133fe575060175415155b1561350a57613413601854601e5460026139ab565b9350606461342185876144c1565b61342b919061439b565b9250600061343984876144e0565b905060006134488260026126f3565b9050600061345683836133ca565b905060006134648784614383565b905047613470826126ff565b600061347c82476144e0565b9050606461348a8b836144c1565b613494919061439b565b97506134a088826144e0565b96506134ac84886139d5565b60408051868152602081018990529081018590527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a1600954613503906001600160a01b0316896128e7565b5050505050505b60185415801561351b575060175415155b156135a557600061352d8660026126f3565b9050600061353b87836133ca565b905047613547836126ff565b600061355382476144e0565b905061355f83826139d5565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a1505050505b601854158015906135b65750601754155b156135ed57476135c5866126ff565b60006135d182476144e0565b6009549091506135ea906001600160a01b0316826128e7565b50505b50506023805460ff19169055505050565b8061360b5761360b613afb565b6001600160a01b03841660009081526005602052604090205460ff16801561364c57506001600160a01b03831660009081526005602052604090205460ff16155b156136615761365c848484613b60565b61375f565b6001600160a01b03841660009081526005602052604090205460ff161580156136a257506001600160a01b03831660009081526005602052604090205460ff165b156136b25761365c848484613ca6565b6001600160a01b03841660009081526005602052604090205460ff161580156136f457506001600160a01b03831660009081526005602052604090205460ff16155b156137045761365c848484613d65565b6001600160a01b03841660009081526005602052604090205460ff16801561374457506001600160a01b03831660009081526005602052604090205460ff165b156137545761365c848484613dbf565b61375f848484613d65565b8061376c5761376c613e48565b50505050565b600b54600a546000918291825b6008548110156138c4578260016000600884815481106137a1576137a16145c4565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061380c57508160026000600884815481106137e5576137e56145c4565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561382257600b54600a54945094505050509091565b613868600160006008848154811061383c5761383c6145c4565b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906133ca565b92506138b06002600060088481548110613884576138846145c4565b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906133ca565b9150806138bc8161454b565b91505061377f565b50600a54600b546138d4916126f3565b8210156138eb57600b54600a549350935050509091565b90939092509050565b600080600080600061390586613e9d565b9050600061391287613eb9565b9050600061391f88613ed5565b905060006139398261393385818d896133ca565b906133ca565b9993985091965094509092505050565b600080808061395889866126e7565b9050600061396689876126e7565b9050600061397489886126e7565b9050600061398289896126e7565b9050600061399682613933858189896133ca565b949d949c50929a509298505050505050505050565b6000826139b983600a614419565b6139c390866144c1565b6139cd919061439b565b949350505050565b613a00307f00000000000000000000000000000000000000000000000000000000000000008461291d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d719823085600080613a476000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015613ac257600080fd5b505af1158015613ad6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f3e9190614271565b601654158015613b0b5750601954155b8015613b175750601754155b8015613b235750601854155b15613b2a57565b60168054601a5560198054601d5560178054601b5560188054601c5560009384905591839055829055819055601f819055601e55565b6000806000806000806000613b748861336f565b9650965096509650965096509650613bba88600260008d6001600160a01b03166001600160a01b03168152602001908152602001600020546133ca90919063ffffffff16565b6001600160a01b038b16600090815260026020908152604080832093909355600190522054613be990886133ca565b6001600160a01b03808c1660009081526001602052604080822093909355908b1681522054613c189087613363565b6001600160a01b038a16600090815260016020526040902055613c3a82613ef1565b613c4381613f79565b613c4d8584614038565b886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051613c9291815260200190565b60405180910390a350505050505050505050565b6000806000806000806000613cba8861336f565b9650965096509650965096509650613d0087600160008d6001600160a01b03166001600160a01b03168152602001908152602001600020546133ca90919063ffffffff16565b6001600160a01b03808c16600090815260016020908152604080832094909455918c16815260029091522054613d369085613363565b6001600160a01b038a16600090815260026020908152604080832093909355600190522054613c189087613363565b6000806000806000806000613d798861336f565b9650965096509650965096509650613be987600160008d6001600160a01b03166001600160a01b03168152602001908152602001600020546133ca90919063ffffffff16565b6000806000806000806000613dd38861336f565b9650965096509650965096509650613e1988600260008d6001600160a01b03166001600160a01b03168152602001908152602001600020546133ca90919063ffffffff16565b6001600160a01b038b16600090815260026020908152604080832093909355600190522054613d0090886133ca565b601a546016819055601d546019819055601b546017819055601c546018819055613e7191614383565b613e7b9190614383565b613e859190614383565b601f55601854601754613e989190614383565b601e55565b6000610f566064611976601654856126e790919063ffffffff16565b6000610f566064611976601e54856126e790919063ffffffff16565b6000610f566064611976601954856126e790919063ffffffff16565b6000613efb613340565b90506000613f0983836126e7565b30600090815260016020526040902054909150613f269082613363565b3060009081526001602090815260408083209390935560059052205460ff16156113415730600090815260026020526040902054613f649084613363565b30600090815260026020526040902055505050565b6000613f83613340565b90506000613f9183836126e7565b6009546001600160a01b0316600090815260016020526040902054909150613fb99082613363565b600980546001600160a01b03908116600090815260016020908152604080832095909555925490911681526005909152205460ff1615611341576009546001600160a01b03166000908152600260205260409020546140189084613363565b6009546001600160a01b0316600090815260026020526040902055505050565b600b5461404590836133ca565b600b55600c546140559082613363565b600c555050565b8035801515811461406c57600080fd5b919050565b60006020828403121561408357600080fd5b8135611270816145f3565b6000602082840312156140a057600080fd5b8151611270816145f3565b600080604083850312156140be57600080fd5b82356140c9816145f3565b946020939093013593505050565b600080604083850312156140ea57600080fd5b82356140f5816145f3565b91506020830135614105816145f3565b809150509250929050565b60008060006060848603121561412557600080fd5b8335614130816145f3565b92506020840135614140816145f3565b929592945050506040919091013590565b6000806020838503121561416457600080fd5b823567ffffffffffffffff8082111561417c57600080fd5b818501915085601f83011261419057600080fd5b81358181111561419f57600080fd5b8660208260051b85010111156141b457600080fd5b60209290920196919550909350505050565b6000602082840312156141d857600080fd5b6112708261405c565b600080604083850312156141f457600080fd5b6141fd8361405c565b9150602083013560ff8116811461410557600080fd5b60006020828403121561422557600080fd5b5035919050565b60006020828403121561423e57600080fd5b5051919050565b6000806040838503121561425857600080fd5b823591506142686020840161405c565b90509250929050565b60008060006060848603121561428657600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156142cc578581018301518582016040015282016142b0565b818111156142de576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156143625784516001600160a01b03168352938301939183019160010161433d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561439657614396614566565b500190565b6000826143d1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600181815b808511156144115781600019048211156143f7576143f7614566565b8085161561440457918102915b93841c93908002906143db565b509250929050565b6000611270838360008261442f57506001610f56565b8161443c57506000610f56565b8160018114614452576002811461445c57614478565b6001915050610f56565b60ff84111561446d5761446d614566565b50506001821b610f56565b5060208310610133831016604e8410600b841016171561449b575081810a610f56565b6144a583836143d6565b80600019048211156144b9576144b9614566565b029392505050565b60008160001904831182151516156144db576144db614566565b500290565b6000828210156144f2576144f2614566565b500390565b600181811c9082168061450b57607f821691505b60208210811415614545577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600060001982141561455f5761455f614566565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6001600160a01b038116811461460857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f27a9d1dbefbc1704e90ed3aa8f31bf1663c7ea3a14fd2d94fa41864416e99da64736f6c63430008060033

Deployed ByteCode Sourcemap

17705:34332:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25475:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21508:112;;;;;;;;;;-1:-1:-1;21508:112:0;;;;;:::i;:::-;;:::i;:::-;;47962:455;;;;;;;;;;-1:-1:-1;47962:455:0;;;;;:::i;:::-;;:::i;26387:161::-;;;;;;;;;;-1:-1:-1;26387:161:0;;;;;:::i;:::-;;:::i;:::-;;;5565:14:1;;5558:22;5540:41;;5528:2;5513:18;26387:161:0;5495:92:1;22935:84:0;;;;;;;;;;;;;;;;;;;13885:25:1;;;13873:2;13858:18;22935:84:0;13840:76:1;27657:87:0;;;;;;;;;;-1:-1:-1;27726:10:0;;27657:87;;27885:29;;;;;;;;;;-1:-1:-1;27885:29:0;;;;;;;;;;;;;;15448:4:1;15436:17;;;15418:36;;15406:2;15391:18;27885:29:0;15373:87:1;23837:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4698:55:1;;;4680:74;;4668:2;4653:18;23837:51:0;4635:125:1;25752:95:0;;;;;;;;;;-1:-1:-1;25832:7:0;;25752:95;;21668:112;;;;;;;;;;-1:-1:-1;21668:112:0;;;;;:::i;:::-;;:::i;18189:47::-;;;;;;;;;;-1:-1:-1;18189:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22127:33;;;;;;;;;;;;;;;;21272:187;;;;;;;;;;-1:-1:-1;21272:187:0;;;;;:::i;:::-;;:::i;26705:313::-;;;;;;;;;;-1:-1:-1;26705:313:0;;;;;:::i;:::-;;:::i;32905:267::-;;;;;;;;;;-1:-1:-1;32905:267:0;;;;;:::i;:::-;;:::i;29319:253::-;;;;;;;;;;-1:-1:-1;29319:253:0;;;;;:::i;:::-;;:::i;25661:83::-;;;;;;;;;;-1:-1:-1;25727:9:0;;;;25661:83;;20057:52;;;;;;;;;;;;;;;;35056:202;;;;;;;;;;-1:-1:-1;35056:202:0;;;;;:::i;:::-;;:::i;29921:479::-;;;;;;;;;;-1:-1:-1;29921:479:0;;;;;:::i;:::-;;:::i;27026:218::-;;;;;;;;;;-1:-1:-1;27026:218:0;;;;;:::i;:::-;;:::i;28379:378::-;;;;;;;;;;-1:-1:-1;28379:378:0;;;;;:::i;:::-;;:::i;21064:110::-;;;;;;;;;;-1:-1:-1;21064:110:0;;;;;:::i;:::-;;:::i;48482:300::-;;;;;;;;;;-1:-1:-1;48482:300:0;;;;;:::i;:::-;;:::i;20219:35::-;;;;;;;;;;-1:-1:-1;20219:35:0;;;;;;;;31192:111;;;;;;;;;;-1:-1:-1;31192:111:0;;;;;:::i;:::-;;:::i;28765:438::-;;;;;;;;;;-1:-1:-1;28765:438:0;;;;;:::i;:::-;;:::i;23895:38::-;;;;;;;;;;;;;;;23968:41;;;;;;;;;;-1:-1:-1;23968:41:0;;;;;;;;;;;32595:263;;;;;;;;;;-1:-1:-1;32595:263:0;;;;;:::i;:::-;;:::i;35340:173::-;;;;;;;;;;-1:-1:-1;35340:173:0;;;;;:::i;:::-;;:::i;35804:184::-;;;;;;;;;;-1:-1:-1;35804:184:0;;;;;:::i;:::-;;:::i;29580:333::-;;;;;;;;;;-1:-1:-1;29580:333:0;;;;;:::i;:::-;;:::i;40598:123::-;;;;;;;;;;-1:-1:-1;40598:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;40686:27:0;40662:4;40686:27;;;:18;:27;;;;;;;;;40598:123;20326:110;;;;;;;;;;-1:-1:-1;20326:110:0;;;;;:::i;:::-;;:::i;25855:198::-;;;;;;;;;;-1:-1:-1;25855:198:0;;;;;:::i;:::-;;:::i;8920:148::-;;;;;;;;;;;;;:::i;31910:131::-;;;;;;;;;;-1:-1:-1;31910:131:0;;;;;:::i;:::-;;:::i;32106:127::-;;;;;;;;;;-1:-1:-1;32106:127:0;;;;;:::i;:::-;;:::i;22217:32::-;;;;;;;;;;;;;;;;23234:56;;;;;;;;;;;;;;;;23403:31;;;;;;;;;;;;;;;;33520:205;;;;;;;;;;-1:-1:-1;33520:205:0;;;;;:::i;:::-;;:::i;33219:263::-;;;;;;;;;;-1:-1:-1;33219:263:0;;;;;:::i;:::-;;:::i;27529:120::-;;;;;;;;;;-1:-1:-1;27529:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;27621:20:0;27597:4;27621:20;;;:11;:20;;;;;;;;;27529:120;32286:263;;;;;;;;;;-1:-1:-1;32286:263:0;;;;;:::i;:::-;;:::i;8604:87::-;;;;;;;;;;-1:-1:-1;8650:7:0;8677:6;-1:-1:-1;;;;;8677:6:0;8604:87;;25566;;;;;;;;;;;;;:::i;35577:122::-;;;;;;;;;;-1:-1:-1;35577:122:0;;;;;:::i;:::-;;:::i;28042:167::-;;;;;;;;;;-1:-1:-1;28042:167:0;;;;;:::i;:::-;;:::i;22087:32::-;;;;;;;;;;;;;;;;22047:33;;;;;;;;;;;;;;;;20117:52;;;;;;;;;;;;;;;;27252:269;;;;;;;;;;-1:-1:-1;27252:269:0;;;;;:::i;:::-;;:::i;26061:167::-;;;;;;;;;;-1:-1:-1;26061:167:0;;;;;:::i;:::-;;:::i;27847:31::-;;;;;;;;;;-1:-1:-1;27847:31:0;;;;;;;;;;;31602:191;;;;;;;;;;-1:-1:-1;31602:191:0;;;;;:::i;:::-;;:::i;23624:72::-;;;;;;;;;;;;;;;;48869:286;;;;;;;;;;-1:-1:-1;48869:286:0;;;;;:::i;:::-;;:::i;34734:198::-;;;;;;;;;;-1:-1:-1;34734:198:0;;;;;:::i;:::-;;:::i;18914:32::-;;;;;;;;;;-1:-1:-1;18914:32:0;;;;;;;;20442:111;;;;;;;;;;-1:-1:-1;20442:111:0;;;;;:::i;:::-;;:::i;26236:143::-;;;;;;;;;;-1:-1:-1;26236:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;26344:18:0;;;26317:7;26344:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;26236:143;33832:179;;;;;;;;;;-1:-1:-1;33832:179:0;;;;;:::i;:::-;;:::i;31383:110::-;;;;;;;;;;-1:-1:-1;31383:110:0;;;;;:::i;:::-;;:::i;18955:91::-;;;;;;;;;;;;;:::i;36067:133::-;;;;;;;;;;-1:-1:-1;36067:133:0;;;;;:::i;:::-;;:::i;9078:244::-;;;;;;;;;;-1:-1:-1;9078:244:0;;;;;:::i;:::-;;:::i;20784:47::-;;;;;;;;;;-1:-1:-1;20784:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20889:111;;;;;;;;;;-1:-1:-1;20889:111:0;;;;;:::i;:::-;;:::i;25475:83::-;25512:13;25545:5;25538:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25475:83;:::o;21508:112::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;;;;;;;;;21588:4:::1;:24:::0;;-1:-1:-1;;;;;21588:24:0;;::::1;;;::::0;;;::::1;::::0;;;::::1;::::0;;21508:112::o;47962:455::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;48071:22:::1;48096:24;48114:4;48096:9;:24::i;:::-;48071:49;;48149:14;48135:11;:28;48131:65;;;48180:14;48166:28;;48131:65;48230:21;48262:29;48279:11:::0;48262:16:::1;:29::i;:::-;48302:21;48326:37;48350:13:::0;48326:21:::1;:37;:::i;:::-;48302:61;;48374:35;48387:6;48395:13;48374:12;:35::i;:::-;48060:357;;;47962:455:::0;;:::o;26387:161::-;26462:4;26479:39;4513:10;26502:7;26511:6;26479:8;:39::i;:::-;-1:-1:-1;26536:4:0;26387:161;;;;;:::o;21668:112::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;21748:4:::1;:24:::0;;;::::1;-1:-1:-1::0;;;;;21748:24:0;;;::::1;::::0;;;::::1;::::0;;21668:112::o;21272:187::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;21351:12:::1;::::0;::::1;;21350:13;21342:73;;;::::0;-1:-1:-1;;;21342:73:0;;12756:2:1;21342:73:0::1;::::0;::::1;12738:21:1::0;12795:2;12775:18;;;12768:30;12834:34;12814:18;;;12807:62;12905:17;12885:18;;;12878:45;12940:19;;21342:73:0::1;12728:237:1::0;21342:73:0::1;21426:15;:25:::0;;-1:-1:-1;;21426:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21272:187::o;26705:313::-;26803:4;26820:36;26830:6;26838:9;26849:6;26820:9;:36::i;:::-;26867:121;26876:6;4513:10;26898:89;26936:6;26898:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26898:19:0;;;;;;:11;:19;;;;;;;;4513:10;26898:33;;;;;;;;;;:37;:89::i;:::-;26867:8;:121::i;:::-;-1:-1:-1;27006:4:0;26705:313;;;;;:::o;32905:267::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;32992:14:::1;:30:::0;;;33074:13:::1;::::0;33060::::1;::::0;33046::::1;::::0;33009;;33074;33046:27:::1;::::0;::::1;:::i;:::-;:41;;;;:::i;:::-;:56;;;;:::i;:::-;33033:10;:69:::0;33151:13:::1;::::0;33137::::1;::::0;:27:::1;::::0;33151:13;33137:27:::1;:::i;:::-;33113:21;:51:::0;-1:-1:-1;32905:267:0:o;29319:253::-;29385:7;29424;;29413;:18;;29405:73;;;;-1:-1:-1;;;29405:73:0;;6713:2:1;29405:73:0;;;6695:21:1;6752:2;6732:18;;;6725:30;6791:34;6771:18;;;6764:62;6862:12;6842:18;;;6835:40;6892:19;;29405:73:0;6685:232:1;29405:73:0;29489:19;29512:10;:8;:10::i;:::-;29489:33;-1:-1:-1;29540:24:0;:7;29489:33;29540:11;:24::i;:::-;29533:31;29319:253;-1:-1:-1;;;29319:253:0:o;35056:202::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;35156:9:::1;35151:100;35167:20:::0;;::::1;35151:100;;;35236:5;35205:14;:28;35220:9;;35230:1;35220:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;35205:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;35205:28:0;:36;;-1:-1:-1;;35205:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;35189:3:::1;::::0;::::1;:::i;:::-;;;35151:100;;;;35056:202:::0;;:::o;29921:479::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;-1:-1:-1;;;;;30003:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;29995:60;;;::::0;-1:-1:-1;;;29995:60:0;;8228:2:1;29995:60:0::1;::::0;::::1;8210:21:1::0;8267:2;8247:18;;;8240:30;8306:29;8286:18;;;8279:57;8353:18;;29995:60:0::1;8200:177:1::0;29995:60:0::1;30071:9;30066:327;30090:9;:16:::0;30086:20;::::1;30066:327;;;30148:7;-1:-1:-1::0;;;;;30132:23:0::1;:9;30142:1;30132:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;30132:12:0::1;:23;30128:254;;;30191:9;30201:16:::0;;:20:::1;::::0;30220:1:::1;::::0;30201:20:::1;:::i;:::-;30191:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;30176:9:::1;:12:::0;;-1:-1:-1;;;;;30191:31:0;;::::1;::::0;30186:1;;30176:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;;::::1;-1:-1:-1::0;;;;;30176:46:0;;::::1;;::::0;;30241:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;30280:11:::1;:20:::0;;;;:28;;-1:-1:-1;;30280:28:0::1;::::0;;30327:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;30327:15:0;;;;;;::::1;::::0;;;;;30066:327:::1;29921:479:::0;:::o;30128:254::-:1;30108:3:::0;::::1;::::0;::::1;:::i;:::-;;;;30066:327;;;;29921:479:::0;:::o;27026:218::-;4513:10;27114:4;27163:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;27163:34:0;;;;;;;;;;27114:4;;27131:83;;27154:7;;27163:50;;27202:10;27163:38;:50::i;28379:378::-;4513:10;28431:14;28480:19;;;:11;:19;;;;;;;;28479:20;28471:77;;;;-1:-1:-1;;;28471:77:0;;13528:2:1;28471:77:0;;;13510:21:1;13567:2;13547:18;;;13540:30;13606:34;13586:18;;;13579:62;13677:14;13657:18;;;13650:42;13709:19;;28471:77:0;13500:234:1;28471:77:0;28560:15;28585:19;28596:7;28585:10;:19::i;:::-;-1:-1:-1;;;;;;;;28633:15:0;;;;;;:7;:15;;;;;;28559:45;;-1:-1:-1;28633:28:0;;:15;-1:-1:-1;28559:45:0;;-1:-1:-1;;28633:19:0;:28::i;:::-;-1:-1:-1;;;;;28615:15:0;;;;;;:7;:15;;;;;:46;28682:7;;:20;;28694:7;28682:11;:20::i;:::-;28672:7;:30;28726:10;;:23;;28741:7;28726:14;:23::i;:::-;28713:10;:36;-1:-1:-1;;;28379:378:0:o;21064:110::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;-1:-1:-1;;;;;21135:23:0::1;21161:5;21135:23:::0;;;:14:::1;:23;::::0;;;;:31;;-1:-1:-1;;21135:31:0::1;::::0;;21064:110::o;48482:300::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;48607:21:::1;48643:15:::0;;48639:136:::1;;48687:11;48675:9;:23;48671:55;;;48713:11;48701:23;;48671:55;48736:31;48749:6;48757:9;48736:12;:31::i;31192:111::-:0;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;-1:-1:-1;;;;;31261:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;31261:34:0::1;31291:4;31261:34;::::0;;31192:111::o;28765:438::-;28855:7;28894;;28883;:18;;28875:62;;;;-1:-1:-1;;;28875:62:0;;8584:2:1;28875:62:0;;;8566:21:1;8623:2;8603:18;;;8596:30;8662:33;8642:18;;;8635:61;8713:18;;28875:62:0;8556:181:1;28875:62:0;28953:17;28948:248;;28988:15;29013:19;29024:7;29013:10;:19::i;:::-;-1:-1:-1;28987:45:0;;-1:-1:-1;29047:14:0;;-1:-1:-1;;;;;;29047:14:0;28948:248;29096:23;29128:19;29139:7;29128:10;:19::i;:::-;-1:-1:-1;29094:53:0;;-1:-1:-1;29162:22:0;;-1:-1:-1;;;;;;29162:22:0;32595:263;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;32680:13:::1;:28:::0;;;32774:14:::1;::::0;32760:13:::1;::::0;32732::::1;::::0;:27:::1;::::0;32696:12;;32732:27:::1;:::i;35340:173::-:0;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;35445:60:::1;35489:5;35445:25;35457:12;35445:7;;:11;;:25;;;;:::i;:::-;:29:::0;::::1;:60::i;:::-;35430:12;:75:::0;-1:-1:-1;35340:173:0:o;35804:184::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;35918:62:::1;35964:5;35918:27;35930:14;35918:7;;:11;;:27;;;;:::i;:62::-;35900:15;:80:::0;-1:-1:-1;35804:184:0:o;29580:333::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;-1:-1:-1;;;;;29663:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;29662:21;29654:61;;;::::0;-1:-1:-1;;;29654:61:0;;7872:2:1;29654:61:0::1;::::0;::::1;7854:21:1::0;7911:2;7891:18;;;7884:30;7950:29;7930:18;;;7923:57;7997:18;;29654:61:0::1;7844:177:1::0;29654:61:0::1;-1:-1:-1::0;;;;;29729:16:0;::::1;29748:1;29729:16:::0;;;:7:::1;:16;::::0;;;;;:20;29726:108:::1;;-1:-1:-1::0;;;;;29805:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;29785:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;29766:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;29726:108:::1;-1:-1:-1::0;;;;;29844:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;29844:27:0::1;29867:4;29844:27:::0;;::::1;::::0;;;29882:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;29580:333::o;20326:110::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;20404:11:::1;:24:::0;20326:110::o;25855:198::-;-1:-1:-1;;;;;25945:20:0;;25921:7;25945:20;;;:11;:20;;;;;;;;25941:49;;;-1:-1:-1;;;;;;25974:16:0;;;;;:7;:16;;;;;;;25855:198::o;25941:49::-;-1:-1:-1;;;;;26028:16:0;;;;;;:7;:16;;;;;;26008:37;;:19;:37::i;8920:148::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;9027:1:::1;9011:6:::0;;8990:40:::1;::::0;-1:-1:-1;;;;;9011:6:0;;::::1;::::0;8990:40:::1;::::0;9027:1;;8990:40:::1;9058:1;9041:19:::0;;;::::1;::::0;;8920:148::o;31910:131::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;32003:14:::1;:30:::0;31910:131::o;32106:127::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;32197:13:::1;:28:::0;32106:127::o;33520:205::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;33600:12:::1;:21:::0;;;::::1;-1:-1:-1::0;;;;;33600:21:0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;33632:32:0;;;:18:::1;:32;::::0;;;;;;;:39;;-1:-1:-1;;33632:39:0;;::::1;-1:-1:-1::0;33632:39:0;;::::1;::::0;;;33697:12;;;;::::1;33682:28:::0;;:14:::1;:28:::0;;;;;:35;;;;::::1;::::0;;::::1;::::0;;33520:205::o;33219:263::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;33304:13:::1;:28:::0;;;33398:14:::1;::::0;33370:13:::1;::::0;33356::::1;::::0;33320:12;;33356:27:::1;::::0;::::1;:::i;32286:263::-:0;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;32371:13:::1;:28:::0;;;32465:14:::1;::::0;32451:13:::1;::::0;32437::::1;::::0;32423:27:::1;::::0;32387:12;32423:27:::1;:::i;25566:87::-:0;25605:13;25638:7;25631:14;;;;;:::i;35577:122::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;35665:12:::1;:26:::0;35577:122::o;28042:167::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;28143:12:::1;:22:::0;;28176:25;;28143:22;;::::1;;::::0;;;::::1;28176:25:::0;;;;;;;28143:22:::1;28176:25:::0;;;::::1;::::0;;;::::1;;::::0;;28042:167::o;27252:269::-;27345:4;27362:129;4513:10;27385:7;27394:96;27433:15;27394:96;;;;;;;;;;;;;;;;;4513:10;27394:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;27394:34:0;;;;;;;;;;;;:38;:96::i;26061:167::-;26139:4;26156:42;4513:10;26180:9;26191:6;26156:9;:42::i;31602:191::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;31723:30:::1;:62:::0;31602:191::o;48869:286::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;48967:24:::1;48994;49012:4;48994:9;:24::i;:::-;48967:51;;49050:16;49032:15;:34;49029:75;;;49086:16;49068:34;;49029:75;49114:31;49129:15;49114:14;:31::i;34734:198::-:0;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;34831:9:::1;34826:99;34842:20:::0;;::::1;34826:99;;;34911:4;34880:14;:28;34895:9;;34905:1;34895:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;34880:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;34880:28:0;:35;;-1:-1:-1;;34880:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;34864:3:::1;::::0;::::1;:::i;:::-;;;34826:99;;20442:111:::0;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;20521:11:::1;:24:::0;20442:111::o;33832:179::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;33917:21:::1;:32:::0;;;::::1;;;;::::0;;;::::1;;::::0;;33965:38:::1;::::0;::::1;::::0;::::1;::::0;33941:8;5565:14:1;5558:22;5540:41;;5528:2;5513:18;;5495:92;33965:38:0::1;;;;;;;;33832:179:::0;:::o;31383:110::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;-1:-1:-1;;;;;31450:27:0::1;31480:5;31450:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;31450:35:0::1;::::0;;31383:110::o;18955:91::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;19019:12:::1;:19:::0;;-1:-1:-1;;19019:19:0::1;19034:4;19019:19;::::0;;18955:91::o;36067:133::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;36161:15:::1;:31:::0;36067:133::o;9078:244::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;-1:-1:-1;;;;;9167:22:0;::::1;9159:73;;;::::0;-1:-1:-1;;;9159:73:0;;7124:2:1;9159:73:0::1;::::0;::::1;7106:21:1::0;7163:2;7143:18;;;7136:30;7202:34;7182:18;;;7175:62;7273:8;7253:18;;;7246:36;7299:19;;9159:73:0::1;7096:228:1::0;9159:73:0::1;9269:6;::::0;;9248:38:::1;::::0;-1:-1:-1;;;;;9248:38:0;;::::1;::::0;9269:6;::::1;::::0;9248:38:::1;::::0;::::1;9297:6;:17:::0;;;::::1;-1:-1:-1::0;;;;;9297:17:0;;;::::1;::::0;;;::::1;::::0;;9078:244::o;20889:111::-;8650:7;8677:6;-1:-1:-1;;;;;8677:6:0;4513:10;8737:23;8729:68;;;;-1:-1:-1;;;8729:68:0;;10721:2:1;8729:68:0;;;10703:21:1;;;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;10851:18;;8729:68:0;10693:182:1;8729:68:0;-1:-1:-1;;;;;20962:23:0::1;;::::0;;;:14:::1;:23;::::0;;;;:30;;-1:-1:-1;;20962:30:0::1;20988:4;20962:30;::::0;;20889:111::o;3744:98::-;3802:7;3829:5;3833:1;3829;:5;:::i;3854:98::-;3912:7;3939:5;3943:1;3939;:5;:::i;47022:472::-;47112:16;;;47126:1;47112:16;;;;;;;;47088:21;;47112:16;;;;;;;;;;-1:-1:-1;47112:16:0;47088:40;;47157:4;47139;47144:1;47139:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;47139:23:0;;;-1:-1:-1;;;;;47139:23:0;;;;;47183:15;-1:-1:-1;;;;;47183:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;47173:4;47178:1;47173:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;47173:32:0;;;-1:-1:-1;;;;;47173:32:0;;;;;47216:62;47233:4;47248:15;47266:11;47216:8;:62::i;:::-;47289:197;;;;;-1:-1:-1;;;;;47289:15:0;:66;;;;:197;;47370:11;;47396:1;;47413:4;;47440;;47460:15;;47289:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47077:417;47022:472;:::o;44139:120::-;44224:23;;-1:-1:-1;;;;;44224:15:0;;;:23;;;;;44240:6;;44224:23;;;;44240:6;44224:15;:23;;;;;;;;;;;;;;;;;;;40729:346;-1:-1:-1;;;;;40822:19:0;;40814:81;;;;-1:-1:-1;;;40814:81:0;;12338:2:1;40814:81:0;;;12320:21:1;12377:2;12357:18;;;12350:30;12416:34;12396:18;;;12389:62;12487:19;12467:18;;;12460:47;12524:19;;40814:81:0;12310:239:1;40814:81:0;-1:-1:-1;;;;;40914:21:0;;40906:64;;;;-1:-1:-1;;;40906:64:0;;9864:2:1;40906:64:0;;;9846:21:1;9903:2;9883:18;;;9876:30;9942:32;9922:18;;;9915:60;9992:18;;40906:64:0;9836:180:1;40906:64:0;-1:-1:-1;;;;;40983:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;41035:32;;13885:25:1;;;41035:32:0;;13858:18:1;41035:32:0;;;;;;;40729:346;;;:::o;41083:3043::-;8650:7;8677:6;-1:-1:-1;;;;;41324:13:0;;;8677:6;;41324:13;;;;:32;;-1:-1:-1;8650:7:0;8677:6;-1:-1:-1;;;;;41341:15:0;;;8677:6;;41341:15;;41324:32;:55;;;;-1:-1:-1;;;;;;41360:19:0;;41374:4;41360:19;;41324:55;:116;;;;-1:-1:-1;;;;;;41383:57:0;;41397:42;41383:57;;41324:116;:139;;;;;41450:13;-1:-1:-1;;;;;41444:19:0;:2;-1:-1:-1;;;;;41444:19:0;;;41324:139;41320:344;;;41479:18;41500:13;41510:2;41500:9;:13::i;:::-;41561:15;;41479:34;;-1:-1:-1;41537:19:0;41550:6;41479:34;41537:19;:::i;:::-;41536:40;;41528:134;;;;-1:-1:-1;;;41528:134:0;;9373:2:1;41528:134:0;;;9355:21:1;9412:2;9392:18;;;9385:30;9451:34;9431:18;;;9424:62;9522:34;9502:18;;;9495:62;9594:20;9573:19;;;9566:49;9632:19;;41528:134:0;9345:312:1;41528:134:0;41464:200;41320:344;-1:-1:-1;;;;;41852:20:0;;;;;;:14;:20;;;;;;;;41851:21;:44;;;;-1:-1:-1;;;;;;41877:18:0;;;;;;:14;:18;;;;;;;;41876:19;41851:44;41843:108;;;;-1:-1:-1;;;41843:108:0;;11425:2:1;41843:108:0;;;11407:21:1;11464:2;11444:18;;;11437:30;11503:34;11483:18;;;11476:62;11574:21;11554:18;;;11547:49;11613:19;;41843:108:0;11397:241:1;41843:108:0;-1:-1:-1;;;;;41970:18:0;;41962:45;;;;-1:-1:-1;;;41962:45:0;;11082:2:1;41962:45:0;;;11064:21:1;11121:2;11101:18;;;11094:30;11160:16;11140:18;;;11133:44;11194:18;;41962:45:0;11054:164:1;41962:45:0;-1:-1:-1;;;;;42026:16:0;;42018:41;;;;-1:-1:-1;;;42018:41:0;;7531:2:1;42018:41:0;;;7513:21:1;7570:2;7550:18;;;7543:30;7609:14;7589:18;;;7582:42;7641:18;;42018:41:0;7503:162:1;42018:41:0;42087:1;42078:6;:10;42070:50;;;;-1:-1:-1;;;42070:50:0;;13172:2:1;42070:50:0;;;13154:21:1;13211:2;13191:18;;;13184:30;13250:29;13230:18;;;13223:57;13297:18;;42070:50:0;13144:177:1;42070:50:0;42192:13;-1:-1:-1;;;;;42184:21:0;:4;-1:-1:-1;;;;;42184:21:0;;:50;;;;-1:-1:-1;42222:12:0;;;;;;;42184:50;:90;;;;-1:-1:-1;;;;;;42252:22:0;;;;;;:18;:22;;;;;;;;42251:23;42184:90;:126;;;;-1:-1:-1;;;;;;42291:19:0;;42305:4;42291:19;;42184:126;:202;;;;-1:-1:-1;;;;;;42329:57:0;;42343:42;42329:57;;42184:202;42180:429;;;-1:-1:-1;;;;;42411:16:0;;;;;;:12;:16;;;;;;42430:15;-1:-1:-1;42403:130:0;;;;-1:-1:-1;;;42403:130:0;;11845:2:1;42403:130:0;;;11827:21:1;11884:2;11864:18;;;11857:30;11923:34;11903:18;;;11896:62;11994:34;11974:18;;;11967:62;12066:22;12045:19;;;12038:51;12106:19;;42403:130:0;11817:314:1;42403:130:0;42585:12;;42567:30;;42585:12;;;;;42567:15;:30;:::i;:::-;-1:-1:-1;;;;;42548:16:0;;;;;;:12;:16;;;;;:49;42180:429;42712:15;;;;42709:302;;;-1:-1:-1;;;;;42755:18:0;;;;;;:14;:18;;;;;;;;;:76;;-1:-1:-1;42820:11:0;;42798:4;;:18;;;;;-1:-1:-1;;;;;4698:55:1;;;42798:18:0;;;4680:74:1;42798:4:0;;;;;;;;:14;;4653:18:1;;42798::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;;42755:76;:113;;;-1:-1:-1;42857:11:0;;42835:4;;:18;;;;;-1:-1:-1;;;;;4698:55:1;;;42835:18:0;;;4680:74:1;42835:4:0;;;;:14;;4653:18:1;;42835::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;;42755:113;:139;;;-1:-1:-1;42872:3:0;;:17;;;;;-1:-1:-1;;;;;4698:55:1;;;42872:17:0;;;4680:74:1;42893:1:0;;42872:3;;:13;;4653:18:1;;42872:17:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:22;;42755:139;42747:262;;;;-1:-1:-1;;;42747:262:0;;10223:2:1;42747:262:0;;;10205:21:1;10262:2;10242:18;;;10235:30;10301:34;10281:18;;;10274:62;10372:34;10352:18;;;10345:62;10444:27;10423:19;;;10416:56;10489:19;;42747:262:0;10195:319:1;42747:262:0;8650:7;8677:6;-1:-1:-1;;;;;43144:15:0;;;8677:6;;43144:15;;;;:32;;-1:-1:-1;8650:7:0;8677:6;-1:-1:-1;;;;;43163:13:0;;;8677:6;;43163:13;;43144:32;43141:145;;;43209:12;;43199:6;:22;;43191:95;;;;-1:-1:-1;;;43191:95:0;;8944:2:1;43191:95:0;;;8926:21:1;8983:2;8963:18;;;8956:30;9022:34;9002:18;;;8995:62;9093:30;9073:18;;;9066:58;9141:19;;43191:95:0;8916:250:1;43191:95:0;43303:28;43334:24;43352:4;43334:9;:24::i;:::-;43303:55;;43406:12;;43382:20;:36;43379:112;;-1:-1:-1;43467:12:0;;43379:112;43562:30;;43538:54;;;;;;;43621:53;;-1:-1:-1;43658:16:0;;;;43657:17;43621:53;:91;;;;;43699:13;-1:-1:-1;;;;;43691:21:0;:4;-1:-1:-1;;;;;43691:21:0;;;43621:91;:129;;;;-1:-1:-1;43729:21:0;;;;;;;43621:129;43603:290;;;43800:30;;43777:53;;43845:36;43860:20;43845:14;:36::i;:::-;-1:-1:-1;;;;;43967:24:0;;43913:12;43967:24;;;:18;:24;;;;;;43928:4;;43967:24;;;:50;;-1:-1:-1;;;;;;43995:22:0;;;;;;:18;:22;;;;;;;;43967:50;43964:96;;;-1:-1:-1;44043:5:0;43964:96;44080:38;44095:4;44100:2;44103:6;44110:7;44080:14;:38::i;3960:206::-;4046:7;4107:12;4099:6;;;;4091:29;;;;-1:-1:-1;;;4091:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;4142:5:0;;;3960:206::o;37665:163::-;37706:7;37727:15;37744;37763:19;:17;:19::i;:::-;37726:56;;-1:-1:-1;37726:56:0;-1:-1:-1;37800:20:0;37726:56;;37800:11;:20::i;:::-;37793:27;;;;37665:163;:::o;3532:98::-;3590:7;3617:5;3621:1;3617;:5;:::i;36261:454::-;36320:7;36329;36338;36347;36356;36365;36374;36395:23;36420:12;36434:18;36454:12;36470:20;36482:7;36470:11;:20::i;:::-;36394:96;;;;;;;;36502:15;36519:23;36544:12;36560:56;36572:7;36581:4;36587:10;36599:4;36605:10;:8;:10::i;:::-;36560:11;:56::i;:::-;36501:115;;-1:-1:-1;36501:115:0;-1:-1:-1;36501:115:0;-1:-1:-1;36667:15:0;;-1:-1:-1;36684:4:0;;-1:-1:-1;36690:10:0;;-1:-1:-1;36702:4:0;-1:-1:-1;;;;36261:454:0;;;;;;;;;:::o;3638:98::-;3696:7;3723:5;3727:1;3723;:5;:::i;44435:2577::-;24334:16;:23;;-1:-1:-1;;24334:23:0;24353:4;24334:23;;;44756:13:::1;::::0;24334:16;;;;;;;;44756:18;;::::1;::::0;:40:::1;;-1:-1:-1::0;44778:13:0::1;::::0;:18;::::1;44756:40;44752:1047;;;44913:46;44921:13;;44935:21;;44957:1;44913:7;:46::i;:::-;44900:59:::0;-1:-1:-1;45022:3:0::1;44990:31;44900:59:::0;44990:20;:31:::1;:::i;:::-;:35;;;;:::i;:::-;44974:51:::0;-1:-1:-1;45040:18:0::1;45061:34;44974:51:::0;45061:20;:34:::1;:::i;:::-;45040:55:::0;-1:-1:-1;45106:17:0::1;45126;45040:55:::0;45141:1:::1;45126:14;:17::i;:::-;45106:37:::0;-1:-1:-1;45154:18:0::1;45175:25;:10:::0;45106:37;45175:14:::1;:25::i;:::-;45154:46:::0;-1:-1:-1;45213:17:0::1;45233:23;45243:13:::0;45233:9;:23:::1;:::i;:::-;45213:43:::0;-1:-1:-1;45297:21:0::1;45329:27;45213:43:::0;45329:16:::1;:27::i;:::-;45396:16;45415:41;45439:17:::0;45415:21:::1;:41;:::i;:::-;45396:60:::0;-1:-1:-1;45526:3:0::1;45506:19;45515:10:::0;45396:60;45506:19:::1;:::i;:::-;:23;;;;:::i;:::-;45495:34:::0;-1:-1:-1;45548:17:0::1;45495:34:::0;45548:8;:17:::1;:::i;:::-;45540:25;;45608:31;45621:10;45633:5;45608:12;:31::i;:::-;45655:44;::::0;;15154:25:1;;;15210:2;15195:18;;15188:34;;;15238:18;;;15231:34;;;45655:44:0::1;::::0;15142:2:1;15127:18;45655:44:0::1;;;;;;;45766:12;::::0;45753:36:::1;::::0;-1:-1:-1;;;;;45766:12:0::1;45780:8:::0;45753:12:::1;:36::i;:::-;44797:1002;;;;;;44752:1047;46035:13;::::0;:18;:40;::::1;;;-1:-1:-1::0;46057:13:0::1;::::0;:18;::::1;46035:40;46031:512;;;46089:17;46109:27;:20:::0;46134:1:::1;46109:24;:27::i;:::-;46089:47:::0;-1:-1:-1;46147:18:0::1;46168:35;:20:::0;46089:47;46168:24:::1;:35::i;:::-;46147:56:::0;-1:-1:-1;46242:21:0::1;46274:27;46291:9:::0;46274:16:::1;:27::i;:::-;46341:14;46358:41;46382:17:::0;46358:21:::1;:41;:::i;:::-;46341:58;;46440:32;46453:10;46465:6;46440:12;:32::i;:::-;46488:45;::::0;;15154:25:1;;;15210:2;15195:18;;15188:34;;;15238:18;;;15231:34;;;46488:45:0::1;::::0;15142:2:1;15127:18;46488:45:0::1;;;;;;;46076:467;;;;46031:512;46643:13;::::0;:18;;::::1;::::0;:40:::1;;-1:-1:-1::0;46665:13:0::1;::::0;:18;46643:40:::1;46639:366;;;46725:21;46757:38;46774:20:::0;46757:16:::1;:38::i;:::-;46835:20;46858:41;46882:17:::0;46858:21:::1;:41;:::i;:::-;46966:12;::::0;46835:64;;-1:-1:-1;46953:40:0::1;::::0;-1:-1:-1;;;;;46966:12:0::1;46835:64:::0;46953:12:::1;:40::i;:::-;46684:321;;46639:366;-1:-1:-1::0;;24380:16:0;:24;;-1:-1:-1;;24380:24:0;;;-1:-1:-1;;;44435:2577:0:o;49300:865::-;49442:7;49438:40;;49464:14;:12;:14::i;:::-;-1:-1:-1;;;;;49503:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;49527:22:0;;;;;;:11;:22;;;;;;;;49526:23;49503:46;49499:597;;;49566:48;49588:6;49596:9;49607:6;49566:21;:48::i;:::-;49499:597;;;-1:-1:-1;;;;;49637:19:0;;;;;;:11;:19;;;;;;;;49636:20;:46;;;;-1:-1:-1;;;;;;49660:22:0;;;;;;:11;:22;;;;;;;;49636:46;49632:464;;;49699:46;49719:6;49727:9;49738:6;49699:19;:46::i;49632:464::-;-1:-1:-1;;;;;49768:19:0;;;;;;:11;:19;;;;;;;;49767:20;:47;;;;-1:-1:-1;;;;;;49792:22:0;;;;;;:11;:22;;;;;;;;49791:23;49767:47;49763:333;;;49831:44;49849:6;49857:9;49868:6;49831:17;:44::i;49763:333::-;-1:-1:-1;;;;;49897:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;49920:22:0;;;;;;:11;:22;;;;;;;;49897:45;49893:203;;;49959:48;49981:6;49989:9;50000:6;49959:21;:48::i;49893:203::-;50040:44;50058:6;50066:9;50077:6;50040:17;:44::i;:::-;50120:7;50116:41;;50142:15;:13;:15::i;:::-;49300:865;;;;:::o;37836:561::-;37933:7;;37969;;37886;;;;;37993:289;38017:9;:16;38013:20;;37993:289;;;38083:7;38059;:21;38067:9;38077:1;38067:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;38067:12:0;38059:21;;;;;;;;;;;;;:31;;:66;;;38118:7;38094;:21;38102:9;38112:1;38102:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;38102:12:0;38094:21;;;;;;;;;;;;;:31;38059:66;38055:97;;;38135:7;;38144;;38127:25;;;;;;;37836:561;;:::o;38055:97::-;38177:34;38189:7;:21;38197:9;38207:1;38197:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;38197:12:0;38189:21;;;;;;;;;;;;;38177:7;;:11;:34::i;:::-;38167:44;;38236:34;38248:7;:21;38256:9;38266:1;38256:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;38256:12:0;38248:21;;;;;;;;;;;;;38236:7;;:11;:34::i;:::-;38226:44;-1:-1:-1;38035:3:0;;;;:::i;:::-;;;;37993:289;;;-1:-1:-1;38318:7:0;;38306;;:20;;:11;:20::i;:::-;38296:7;:30;38292:61;;;38336:7;;38345;;38328:25;;;;;;37836:561;;:::o;38292:61::-;38372:7;;38381;;-1:-1:-1;37836:561:0;-1:-1:-1;37836:561:0:o;36723:426::-;36783:7;36792;36801;36810;36830:12;36845:31;36868:7;36845:22;:31::i;:::-;36830:46;;36887:18;36908:38;36938:7;36908:29;:38::i;:::-;36887:59;;36957:12;36972:30;36994:7;36972:21;:30::i;:::-;36957:45;-1:-1:-1;37013:23:0;37039:43;36957:45;37039:33;37061:10;37039:33;:7;37051:4;37039:11;:17::i;:::-;:21;;:33::i;:43::-;37013:69;37118:4;;-1:-1:-1;37124:10:0;;-1:-1:-1;37124:10:0;-1:-1:-1;36723:426:0;;-1:-1:-1;;;36723:426:0:o;37157:500::-;37286:7;;;;37342:24;:7;37354:11;37342;:24::i;:::-;37324:42;-1:-1:-1;37377:12:0;37392:21;:4;37401:11;37392:8;:21::i;:::-;37377:36;-1:-1:-1;37424:18:0;37445:27;:10;37460:11;37445:14;:27::i;:::-;37424:48;-1:-1:-1;37483:12:0;37498:21;:4;37507:11;37498:8;:21::i;:::-;37483:36;-1:-1:-1;37530:23:0;37556:43;37483:36;37556:33;37578:10;37556:33;:7;37568:4;37556:11;:17::i;:43::-;37618:7;;;;-1:-1:-1;37644:4:0;;-1:-1:-1;37157:500:0;;-1:-1:-1;;;;;;;;;37157:500:0:o;44269:132::-;44342:4;44381:1;44366:13;44370:9;44366:2;:13;:::i;:::-;44363:17;;:1;:17;:::i;:::-;:19;;;;:::i;:::-;44356:26;44269:132;-1:-1:-1;;;;44269:132:0:o;47502:362::-;47583:62;47600:4;47615:15;47633:11;47583:8;:62::i;:::-;47656:15;-1:-1:-1;;;;;47656:31:0;;47695:9;47728:4;47748:11;47774:1;47791;47808:7;8650;8677:6;-1:-1:-1;;;;;8677:6:0;;8604:87;47808:7;47656:200;;;;;;;;;;-1:-1:-1;;;;;5147:15:1;;;47656:200:0;;;5129:34:1;5179:18;;;5172:34;;;;5222:18;;;5215:34;;;;5265:18;;;5258:34;5329:15;;;5308:19;;;5301:44;47830:15:0;5361:19:1;;;5354:35;5040:19;;47656:200:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;39646:531::-;39692:14;;:19;:41;;;;-1:-1:-1;39715:13:0;;:18;39692:41;:63;;;;-1:-1:-1;39737:13:0;;:18;39692:63;:85;;;;-1:-1:-1;39759:13:0;;:18;39692:85;39689:97;;;39646:531::o;39689:97::-;39823:14;;;39798:22;:39;39872:13;;;39848:21;:37;39920:13;;;39896:21;:37;39968:13;;;39944:21;:37;-1:-1:-1;40002:18:0;;;;40031:17;;;;40059;;;40087;;;40117:10;:14;;;40142:21;:25;39646:531::o;51393:623::-;51496:15;51513:23;51538:12;51552:23;51577:12;51591:18;51611:12;51627:19;51638:7;51627:10;:19::i;:::-;51495:151;;;;;;;;;;;;;;51693:28;51713:7;51693;:15;51701:6;-1:-1:-1;;;;;51693:15:0;-1:-1:-1;;;;;51693:15:0;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;-1:-1:-1;;;;;51675:15:0;;;;;;:7;:15;;;;;;;;:46;;;;51750:7;:15;;;;:28;;51770:7;51750:19;:28::i;:::-;-1:-1:-1;;;;;51732:15:0;;;;;;;:7;:15;;;;;;:46;;;;51810:18;;;;;;;:39;;51833:15;51810:22;:39::i;:::-;-1:-1:-1;;;;;51789:18:0;;;;;;:7;:18;;;;;:60;51863:26;51878:10;51863:14;:26::i;:::-;51900:14;51909:4;51900:8;:14::i;:::-;51925:23;51937:4;51943;51925:11;:23::i;:::-;51981:9;-1:-1:-1;;;;;51964:44:0;51973:6;-1:-1:-1;;;;;51964:44:0;;51992:15;51964:44;;;;13885:25:1;;13873:2;13858:18;;13840:76;51964:44:0;;;;;;;;51484:532;;;;;;;51393:623;;;:::o;50740:645::-;50841:15;50858:23;50883:12;50897:23;50922:12;50936:18;50956:12;50972:19;50983:7;50972:10;:19::i;:::-;50840:151;;;;;;;;;;;;;;51040:28;51060:7;51040;:15;51048:6;-1:-1:-1;;;;;51040:15:0;-1:-1:-1;;;;;51040:15:0;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;-1:-1:-1;;;;;51022:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;51100:18;;;;;:7;:18;;;;;:39;;51123:15;51100:22;:39::i;:::-;-1:-1:-1;;;;;51079:18:0;;;;;;:7;:18;;;;;;;;:60;;;;51171:7;:18;;;;:39;;51194:15;51171:22;:39::i;50173:559::-;50272:15;50289:23;50314:12;50328:23;50353:12;50367:18;50387:12;50403:19;50414:7;50403:10;:19::i;:::-;50271:151;;;;;;;;;;;;;;50469:28;50489:7;50469;:15;50477:6;-1:-1:-1;;;;;50469:15:0;-1:-1:-1;;;;;50469:15:0;;;;;;;;;;;;;:19;;:28;;;;:::i;30410:681::-;30513:15;30530:23;30555:12;30569:23;30594:12;30608:18;30628:12;30644:19;30655:7;30644:10;:19::i;:::-;30512:151;;;;;;;;;;;;;;30692:28;30712:7;30692;:15;30700:6;-1:-1:-1;;;;;30692:15:0;-1:-1:-1;;;;;30692:15:0;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;-1:-1:-1;;;;;30674:15:0;;;;;;:7;:15;;;;;;;;:46;;;;30749:7;:15;;;;:28;;30769:7;30749:19;:28::i;40189:389::-;40253:22;;40236:14;:39;;;40303:21;;40287:13;:37;;;40352:21;;40336:13;:37;;;40401:21;;40385:13;:37;;;40449:27;;;:::i;:::-;:41;;;;:::i;:::-;:56;;;;:::i;:::-;40436:10;:69;40555:13;;40541;;:27;;40555:13;40541:27;:::i;:::-;40517:21;:51;40189:389::o;39102:168::-;39173:7;39200:62;39246:5;39200:27;39212:14;;39200:7;:11;;:27;;;;:::i;39452:182::-;39530:7;39557:69;39610:5;39557:34;39569:21;;39557:7;:11;;:34;;;;:::i;39278:166::-;39348:7;39375:61;39420:5;39375:26;39387:13;;39375:7;:11;;:26;;;;:::i;38409:355::-;38472:19;38495:10;:8;:10::i;:::-;38472:33;-1:-1:-1;38516:18:0;38537:27;:10;38472:33;38537:14;:27::i;:::-;38616:4;38600:22;;;;:7;:22;;;;;;38516:48;;-1:-1:-1;38600:38:0;;38516:48;38600:26;:38::i;:::-;38591:4;38575:22;;;;:7;:22;;;;;;;;:63;;;;38652:11;:26;;;;;;38649:107;;;38734:4;38718:22;;;;:7;:22;;;;;;:38;;38745:10;38718:26;:38::i;:::-;38709:4;38693:22;;;;:7;:22;;;;;:63;38461:303;;38409:355;:::o;38776:314::-;38827:19;38850:10;:8;:10::i;:::-;38827:33;-1:-1:-1;38871:12:0;38886:21;:4;38827:33;38886:8;:21::i;:::-;38950:12;;-1:-1:-1;;;;;38950:12:0;38942:21;;;;:7;:21;;;;;;38871:36;;-1:-1:-1;38942:31:0;;38871:36;38942:25;:31::i;:::-;38926:12;;;-1:-1:-1;;;;;38926:12:0;;;38918:21;;;;:7;:21;;;;;;;;:55;;;;38999:12;;;;;38987:25;;:11;:25;;;;;;;38984:98;;;39059:12;;-1:-1:-1;;;;;39059:12:0;39051:21;;;;:7;:21;;;;;;:31;;39077:4;39051:25;:31::i;:::-;39035:12;;-1:-1:-1;;;;;39035:12:0;39027:21;;;;:7;:21;;;;;:55;38816:274;;38776:314;:::o;34096:147::-;34174:7;;:17;;34186:4;34174:11;:17::i;:::-;34164:7;:27;34215:10;;:20;;34230:4;34215:14;:20::i;:::-;34202:10;:33;-1:-1:-1;;34096:147:0:o;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:2;;164:1;161;154:12;108:2;60:114;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:2;;;307:1;304;297:12;259:2;346:9;333:23;365:31;390:5;365:31;:::i;431:251::-;501:6;554:2;542:9;533:7;529:23;525:32;522:2;;;570:1;567;560:12;522:2;602:9;596:16;621:31;646:5;621:31;:::i;947:323::-;1023:6;1031;1084:2;1072:9;1063:7;1059:23;1055:32;1052:2;;;1100:1;1097;1090:12;1052:2;1139:9;1126:23;1158:31;1183:5;1158:31;:::i;:::-;1208:5;1260:2;1245:18;;;;1232:32;;-1:-1:-1;;;1042:228:1:o;1275:388::-;1343:6;1351;1404:2;1392:9;1383:7;1379:23;1375:32;1372:2;;;1420:1;1417;1410:12;1372:2;1459:9;1446:23;1478:31;1503:5;1478:31;:::i;:::-;1528:5;-1:-1:-1;1585:2:1;1570:18;;1557:32;1598:33;1557:32;1598:33;:::i;:::-;1650:7;1640:17;;;1362:301;;;;;:::o;1668:456::-;1745:6;1753;1761;1814:2;1802:9;1793:7;1789:23;1785:32;1782:2;;;1830:1;1827;1820:12;1782:2;1869:9;1856:23;1888:31;1913:5;1888:31;:::i;:::-;1938:5;-1:-1:-1;1995:2:1;1980:18;;1967:32;2008:33;1967:32;2008:33;:::i;:::-;1772:352;;2060:7;;-1:-1:-1;;;2114:2:1;2099:18;;;;2086:32;;1772:352::o;2449:615::-;2535:6;2543;2596:2;2584:9;2575:7;2571:23;2567:32;2564:2;;;2612:1;2609;2602:12;2564:2;2652:9;2639:23;2681:18;2722:2;2714:6;2711:14;2708:2;;;2738:1;2735;2728:12;2708:2;2776:6;2765:9;2761:22;2751:32;;2821:7;2814:4;2810:2;2806:13;2802:27;2792:2;;2843:1;2840;2833:12;2792:2;2883;2870:16;2909:2;2901:6;2898:14;2895:2;;;2925:1;2922;2915:12;2895:2;2978:7;2973:2;2963:6;2960:1;2956:14;2952:2;2948:23;2944:32;2941:45;2938:2;;;2999:1;2996;2989:12;2938:2;3030;3022:11;;;;;3052:6;;-1:-1:-1;2554:510:1;;-1:-1:-1;;;;2554:510:1:o;3069:180::-;3125:6;3178:2;3166:9;3157:7;3153:23;3149:32;3146:2;;;3194:1;3191;3184:12;3146:2;3217:26;3233:9;3217:26;:::i;3254:337::-;3317:6;3325;3378:2;3366:9;3357:7;3353:23;3349:32;3346:2;;;3394:1;3391;3384:12;3346:2;3417:26;3433:9;3417:26;:::i;:::-;3407:36;;3493:2;3482:9;3478:18;3465:32;3537:4;3530:5;3526:16;3519:5;3516:27;3506:2;;3557:1;3554;3547:12;3596:180;3655:6;3708:2;3696:9;3687:7;3683:23;3679:32;3676:2;;;3724:1;3721;3714:12;3676:2;-1:-1:-1;3747:23:1;;3666:110;-1:-1:-1;3666:110:1:o;3781:184::-;3851:6;3904:2;3892:9;3883:7;3879:23;3875:32;3872:2;;;3920:1;3917;3910:12;3872:2;-1:-1:-1;3943:16:1;;3862:103;-1:-1:-1;3862:103:1:o;3970:248::-;4035:6;4043;4096:2;4084:9;4075:7;4071:23;4067:32;4064:2;;;4112:1;4109;4102:12;4064:2;4148:9;4135:23;4125:33;;4177:35;4208:2;4197:9;4193:18;4177:35;:::i;:::-;4167:45;;4054:164;;;;;:::o;4223:306::-;4311:6;4319;4327;4380:2;4368:9;4359:7;4355:23;4351:32;4348:2;;;4396:1;4393;4386:12;4348:2;4425:9;4419:16;4409:26;;4475:2;4464:9;4460:18;4454:25;4444:35;;4519:2;4508:9;4504:18;4498:25;4488:35;;4338:191;;;;;:::o;5850:656::-;5962:4;5991:2;6020;6009:9;6002:21;6052:6;6046:13;6095:6;6090:2;6079:9;6075:18;6068:34;6120:1;6130:140;6144:6;6141:1;6138:13;6130:140;;;6239:14;;;6235:23;;6229:30;6205:17;;;6224:2;6201:26;6194:66;6159:10;;6130:140;;;6288:6;6285:1;6282:13;6279:2;;;6358:1;6353:2;6344:6;6333:9;6329:22;6325:31;6318:42;6279:2;-1:-1:-1;6422:2:1;6410:15;6427:66;6406:88;6391:104;;;;6497:2;6387:113;;5971:535;-1:-1:-1;;;5971:535:1:o;13921:1026::-;14183:4;14231:3;14220:9;14216:19;14262:6;14251:9;14244:25;14288:2;14326:6;14321:2;14310:9;14306:18;14299:34;14369:3;14364:2;14353:9;14349:18;14342:31;14393:6;14428;14422:13;14459:6;14451;14444:22;14497:3;14486:9;14482:19;14475:26;;14536:2;14528:6;14524:15;14510:29;;14557:1;14567:218;14581:6;14578:1;14575:13;14567:218;;;14646:13;;-1:-1:-1;;;;;14642:62:1;14630:75;;14760:15;;;;14725:12;;;;14603:1;14596:9;14567:218;;;-1:-1:-1;;;;;;;14841:55:1;;;;14836:2;14821:18;;14814:83;-1:-1:-1;;;14928:3:1;14913:19;14906:35;14802:3;14192:755;-1:-1:-1;;;14192:755:1:o;15465:128::-;15505:3;15536:1;15532:6;15529:1;15526:13;15523:2;;;15542:18;;:::i;:::-;-1:-1:-1;15578:9:1;;15513:80::o;15598:274::-;15638:1;15664;15654:2;;15699:77;15696:1;15689:88;15800:4;15797:1;15790:15;15828:4;15825:1;15818:15;15654:2;-1:-1:-1;15857:9:1;;15644:228::o;15877:482::-;15966:1;16009:5;15966:1;16023:330;16044:7;16034:8;16031:21;16023:330;;;16163:4;-1:-1:-1;;16091:77:1;16085:4;16082:87;16079:2;;;16172:18;;:::i;:::-;16222:7;16212:8;16208:22;16205:2;;;16242:16;;;;16205:2;16321:22;;;;16281:15;;;;16023:330;;;16027:3;15941:418;;;;;:::o;16364:131::-;16424:5;16453:36;16480:8;16474:4;16549:5;16579:8;16569:2;;-1:-1:-1;16620:1:1;16634:5;;16569:2;16668:4;16658:2;;-1:-1:-1;16705:1:1;16719:5;;16658:2;16750:4;16768:1;16763:59;;;;16836:1;16831:130;;;;16743:218;;16763:59;16793:1;16784:10;;16807:5;;;16831:130;16868:3;16858:8;16855:17;16852:2;;;16875:18;;:::i;:::-;-1:-1:-1;;16931:1:1;16917:16;;16946:5;;16743:218;;17045:2;17035:8;17032:16;17026:3;17020:4;17017:13;17013:36;17007:2;16997:8;16994:16;16989:2;16983:4;16980:12;16976:35;16973:77;16970:2;;;-1:-1:-1;17082:19:1;;;17114:5;;16970:2;17161:34;17186:8;17180:4;17161:34;:::i;:::-;17291:6;-1:-1:-1;;17219:79:1;17210:7;17207:92;17204:2;;;17302:18;;:::i;:::-;17340:20;;16559:807;-1:-1:-1;;;16559:807:1:o;17371:228::-;17411:7;17537:1;-1:-1:-1;;17465:74:1;17462:1;17459:81;17454:1;17447:9;17440:17;17436:105;17433:2;;;17544:18;;:::i;:::-;-1:-1:-1;17584:9:1;;17423:176::o;17604:125::-;17644:4;17672:1;17669;17666:8;17663:2;;;17677:18;;:::i;:::-;-1:-1:-1;17714:9:1;;17653:76::o;17734:437::-;17813:1;17809:12;;;;17856;;;17877:2;;17931:4;17923:6;17919:17;17909:27;;17877:2;17984;17976:6;17973:14;17953:18;17950:38;17947:2;;;18021:77;18018:1;18011:88;18122:4;18119:1;18112:15;18150:4;18147:1;18140:15;17947:2;;17789:382;;;:::o;18176:195::-;18215:3;-1:-1:-1;;18239:5:1;18236:77;18233:2;;;18316:18;;:::i;:::-;-1:-1:-1;18363:1:1;18352:13;;18223:148::o;18376:184::-;18428:77;18425:1;18418:88;18525:4;18522:1;18515:15;18549:4;18546:1;18539:15;18565:184;18617:77;18614:1;18607:88;18714:4;18711:1;18704:15;18738:4;18735:1;18728:15;18754:184;18806:77;18803:1;18796:88;18903:4;18900:1;18893:15;18927:4;18924:1;18917:15;19132:154;-1:-1:-1;;;;;19211:5:1;19207:54;19200:5;19197:65;19187:2;;19276:1;19273;19266:12;19187:2;19177:109;:::o

Swarm Source

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