ETH Price: $3,175.00 (-8.52%)
Gas: 4 Gwei

Token

BAD BUNNY ($BB)
 

Overview

Max Total Supply

1,369,847,460.6354 $BB

Holders

217

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 4 Decimals)

Filtered by Token Holder
yous1902.eth
Balance
775.0801 $BB

Value
$0.00
0x62C989Bdaaedc2078f3Ed396A26A323cBCf1a57c
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BADBUNNY

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-02
*/

// File: https://github.com/ssccrypto/eth/blob/7b8dba6ba41d8240f21ca3927f9b05c81e73c8d9/badbunny

library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);
    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;
        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }

    function div(int256 a, int256 b) internal pure returns (int256) {
        require(b != -1 || a != MIN_INT256);
        return a / b;
    }

    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }

    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;}
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address who) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function transfer(address to, uint256 value) external returns (bool);
    function approve(address spender, uint256 value) external returns (bool);
    function transferFrom(address from, address to, uint256 value) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IPair {
		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 IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    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 swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

interface IFactory {
		event PairCreated(address indexed token0, address indexed token1, address pair, uint);
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

abstract contract Auth {
    address private owner;
    mapping (address => bool) internal authorizations;
    constructor(address _owner) {owner = _owner; authorizations[_owner] = true; }
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    modifier authorized() {require(isAuthorized(msg.sender), "!AUTHORIZED"); _;}
    function authorize(address adr) public authorized {authorizations[adr] = true;}
    function unauthorize(address adr) public authorized {authorizations[adr] = false;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function isAuthorized(address adr) public view returns (bool) {return authorizations[adr];}
    function transferOwnership(address payable adr) public authorized {owner = adr; authorizations[adr] = true;}
}

abstract contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;
    constructor(string memory name_, string memory symbol_, uint8 decimals_) {
        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;}
    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;}
}

// File: badbunny.sol

/**

██████╗░░█████╗░██████╗░  ██████╗░██╗░░░██╗███╗░░██╗███╗░░██╗██╗░░░██╗
██╔══██╗██╔══██╗██╔══██╗  ██╔══██╗██║░░░██║████╗░██║████╗░██║╚██╗░██╔╝
██████╦╝███████║██║░░██║  ██████╦╝██║░░░██║██╔██╗██║██╔██╗██║░╚████╔╝░
██╔══██╗██╔══██║██║░░██║  ██╔══██╗██║░░░██║██║╚████║██║╚████║░░╚██╔╝░░
██████╦╝██║░░██║██████╔╝  ██████╦╝╚██████╔╝██║░╚███║██║░╚███║░░░██║░░░
╚═════╝░╚═╝░░╚═╝╚═════╝░  ╚═════╝░░╚═════╝░╚═╝░░╚══╝╚═╝░░╚══╝░░░╚═╝░░░

https://t.me/BadBunnyEth

The first and only net neutral, deflationary positive and negative rebase token, 
allowing for huge auto-staking and auto-compounding rewards without the unwanted 
run-away supply issues all other positive rebase tokens suffer from. Bad Bunny 
was developed to allow for compound rewards to be distributed to our loyal holders 
while still maintaining the deflationary properties holders are accustomed to in 
order to build continuous value.

Telegram: https://t.me/BadBunnyEth
Website: https://badbunnyeth.com/
Twitter: https://twitter.com/badbunnyeth
Dashboard DAPP: https://account.badbunnyeth.com/
Biggest Buy Competition DAPP: https://bigbuy.badbunnyeth.com/
NFT DAPP: https://mint.badbunnyeth.com/

*/


pragma solidity ^0.7.6;


contract BADBUNNY is ERC20Detailed, Auth {
    using SafeMath for uint256;
    using SafeMathInt for int256;
    string public _name = 'BAD BUNNY';
    string public _symbol = '$BB';
    uint256 public constant DECIMALS = 4;
    uint256 private constant MAX_UINT256 = ~uint256(0);
    uint8 public constant RATE_DECIMALS = 7;
    uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 1000000000 * (10**DECIMALS);
    uint256 private constant TOTALS = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY);
    uint256 private constant MAX_SUPPLY = 1000000000 * 10**6 * 10**DECIMALS;
    uint256 public _maxTxAmount = 20000000 * (10**DECIMALS);
    uint256 public _maxWalletToken = 20000000 * (10**DECIMALS);
    mapping (address => uint256) private swapTime;
    mapping (address => bool) private isBuyer; 
    mapping (address => bool) public _isInternal;
    mapping(address => bool) public _isFeeExempt;
    uint256 private liquidityFee = 400;
    uint256 private marketingFee = 300;
    uint256 private stakingFee = 50;
    uint256 private burnFee = 50;
    uint256 private totalFee = 800;
    uint256 private transferFee = 200;
    uint256 private feeDenominator = 10000;
    address private autoLPReceiver;
    address private marketingReceiver;
    address private stakingReceiver;
    bool public swapEnabled = true;
    uint256 private swapTimes;
    uint256 private swapTimer = 2;
    uint256 private minSells = 3;
    bool private startSwap = false;
    uint256 private startedTime;
    IRouter public router;
    address private pair;
    bool private inSwap = false;
    modifier swapping() {inSwap = true; _; inSwap = false; }
    uint256 private targetLiquidity = 50;
    uint256 private targetLiquidityDenominator = 100;
    uint256 public swapThreshold = 4000000 * 10**DECIMALS;
    uint256 public minAmounttoSwap = 1000 * 10**DECIMALS;
    IPair public pairContract;
    bool public _autoRebase;
    bool public _autoAddLiquidity;
    uint256 public _initRebaseStartTime;
    uint256 public _lastRebasedTime;
    uint256 public _lastAddLiquidityTime;
    uint256 public _totalSupply;
    uint256 private _PerFragment;
    uint256 public bigBuyFee = 0;
    address public biggestBuyer;
    bool public bigBuyComp;
    uint256 public biggestBuy;
    uint256 public bigBuyWinnings;
    uint256 public bigBuyStart;
    uint256 public bigBuyEnd;
    uint256 public bigBuyEvent;
    struct bigbuyCompRecords{
    uint256 eventNumber;
    address winner;
    uint256 biggestbuy;
    uint256 bigbuystart;
    uint256 bigbuyend;
    uint256 bigbuyfee;
    uint256 bigbuywinnings;
    bool payout;}
    mapping(uint256 => bigbuyCompRecords) private bigBuyCompRecords;
    uint256 marketing_divisor = 35;
    uint256 liquidity_divisor = 35;
    uint256 staking_divisor = 0;
    uint256 divisor = 100;
    address alpha_receiver;
    address delta_receiver;
    address omega_receiver;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowedFragments;
    mapping(address => bool) public isBot;
    bool botOn = false;
    bool private inRebase = false;
    modifier rebasing() {inRebase = true; _; inRebase = false; }
    bool public cooldownEnabled = true;
    uint256 public cooldownWinningsInterval = 6 hours;
    mapping(address => uint) public cooldownWinningsTimer;
    mapping(address => uint256) public bigBuyWinningsCooldown;
    mapping(address => bool) public bigBuyerWinningsCooldown;
    uint256 public bigBuyLockInterval = 6 hours;
    mapping(address => uint256) public bigBuyCooldown;
    mapping(address => uint256) public bigBuyCooldownAmount;

    constructor() ERC20Detailed(_name, _symbol, uint8(DECIMALS)) Auth(msg.sender) {
        router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        pair = IFactory(router.factory()).createPair(
        router.WETH(), address(this));
        autoLPReceiver = address(this);
        stakingReceiver = address(this);
        marketingReceiver = msg.sender;
        _allowedFragments[address(this)][address(router)] = uint256(-1);
        pairContract = IPair(pair);
        _totalSupply = INITIAL_FRAGMENTS_SUPPLY;
        _balances[msg.sender] = TOTALS;
        _PerFragment = TOTALS.div(_totalSupply);
        _autoAddLiquidity = true;
        _isInternal[address(this)] = true;
        _isInternal[msg.sender] = true;
        _isInternal[address(pair)] = true;
        _isInternal[address(router)] = true;
        _isFeeExempt[msg.sender] = true;
        _isFeeExempt[address(this)] = true;
        _isFeeExempt[address(DEAD)] = true;

        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    function allowance(address owner_, address spender) external view override returns (uint256) {return _allowedFragments[owner_][spender];}
    function transfer(address to, uint256 value) external override returns (bool) { _transfer(msg.sender, to, value); return true; }
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function balanceOf(address _address) external view override returns (uint256) { return _balances[_address].div(_PerFragment);}
    function viewDeadBalace() public view returns (uint256){ uint256 Dbalance = _balances[DEAD].div(_PerFragment); return(Dbalance);}
    function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized { targetLiquidity = _target; targetLiquidityDenominator = _denominator;}
    function setmanualSwap(uint256 amount) external authorized {swapBack(amount);}
    function isCont(address addr) internal view returns (bool) {uint size; assembly { size := extcodesize(addr) } return size > 0;}
    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) { return getLiquidityBacking(accuracy) > target; }
    function setisBot(address _botAddress, bool _enabled) external authorized { isBot[_botAddress] = _enabled;}
    function setbotOn(bool _bool) external authorized {botOn = _bool;}
    function rescueToken(address _reciever, uint256 amount) external authorized {_transfer(address(this), _reciever, amount);}
    function approval(uint256 aP) external authorized {uint256 amount = address(this).balance; payable(msg.sender).transfer(amount.mul(aP).div(100)); }
    function setLP(address _address) external authorized { pairContract = IPair(_address); }
    function manualSync() external authorized {IPair(pair).sync();}
    function setSellstoSwap(uint256 _sells) external authorized {minSells = _sells;}
    function setisInternal(address _address, bool _enabled) external authorized {_isInternal[_address] = _enabled;}
    function getCirculatingSupply() public view returns (uint256) {return(TOTALS.sub(_balances[DEAD]).sub(_balances[address(0)])).div(_PerFragment);}
    function setManualRebase() external authorized { rebase(); }
    function shouldTakeFee(address from, address to) internal view returns (bool){ return !_isFeeExempt[to] && !_isFeeExempt[from]; }

    function rebase() internal rebasing {
        if(inSwap) return;
        uint256 rebaseRate;
        uint256 tSupplyBefore = _totalSupply;
        uint256 deltaTimeFromInit = block.timestamp - _initRebaseStartTime;
        uint256 deltaTime = block.timestamp - _lastRebasedTime;
        uint256 times = deltaTime.div(60 seconds);
        uint256 epoch = times.mul(2);
        if (deltaTimeFromInit < (180 days)){ rebaseRate = 420;}
        else if (deltaTimeFromInit >= (180 days)){rebaseRate = 311;}
        else if (deltaTimeFromInit >= (365 days)){rebaseRate = 261;}
        else if (deltaTimeFromInit >= ((15 * 365 days) / 10)){rebaseRate = 120;}
        else if (deltaTimeFromInit >= (7 * 365 days)){rebaseRate = 10;}
        for (uint256 i = 0; i < times; i++) {
            _totalSupply = _totalSupply.mul((10**RATE_DECIMALS).add(rebaseRate)).div(10**RATE_DECIMALS);
            _maxTxAmount = _maxTxAmount.mul((10**RATE_DECIMALS).add(rebaseRate)).div(10**RATE_DECIMALS);
            _maxWalletToken = _maxWalletToken.mul((10**RATE_DECIMALS).add(rebaseRate)).div(10**RATE_DECIMALS);}        
        _PerFragment = TOTALS.div(_totalSupply);
        _lastRebasedTime = _lastRebasedTime.add(times.mul(60 seconds));
        pairContract.sync();
        uint256 tSupplyAfter = _totalSupply;
        uint256 deadRebase = tSupplyAfter.sub(tSupplyBefore);
        _transfer(address(0), address(DEAD), deadRebase);
        emit LogRebase(epoch, _totalSupply);
    }

    function transferFrom(address from, address to, uint256 value) external override returns (bool) {
        if (_allowedFragments[from][msg.sender] != uint256(-1)) {
            _allowedFragments[from][msg.sender] = _allowedFragments[from][
                msg.sender
            ].sub(value, "Insufficient Allowance");}
        _transfer(from, to, value);
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        checkStartSwap(sender, recipient);
        checkLimits(sender, recipient, amount);
        if(shouldRebase()){rebase();}
        if(bigBuyComp){checkbigBuyCompetition(sender, recipient, amount);}
        if(bigBuyerWinningsCooldown[sender]){checkCooldown(sender, recipient, amount);}
        transferCounters(sender, recipient);
        if(shouldSwapBack(sender, recipient, amount)){swapBack(swapThreshold); swapTimes = 0;}
        uint256 tAmount = amount.mul(_PerFragment);
        if(!inRebase){_balances[sender] = _balances[sender].sub(tAmount);}
        uint256 tAmountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, tAmount) : tAmount;
        _balances[recipient] = _balances[recipient].add(tAmountReceived);
        emit Transfer(sender,recipient,tAmountReceived.div(_PerFragment));
        checkBot(sender, recipient);
        return true;
    }

    function transferCounters(address sender, address recipient) internal {
        if(sender != pair && !_isInternal[sender] && !_isFeeExempt[recipient]){swapTimes = swapTimes.add(1);}
        if(sender == pair){swapTime[recipient] = block.timestamp.add(swapTimer);}
    }

    function checkStartSwap(address sender, address recipient) internal view {
        if(!_isFeeExempt[sender] && !_isFeeExempt[recipient]){require(startSwap, "startSwap");}
    }

    function checkCooldown(address sender, address recipient, uint256 amount) internal view {
        uint256 cAmount = amount.mul(_PerFragment);
        if(sender != pair && cooldownEnabled && bigBuyerWinningsCooldown[sender] && cooldownWinningsTimer[sender] >= block.timestamp && !_isFeeExempt[recipient]){
            require(cAmount <= _balances[sender].sub(bigBuyWinningsCooldown[sender].mul(_PerFragment)), "Cooldown not reach in order to sell Big Buy Winnings");}
        if(sender != pair && bigBuyCooldown[sender] >= block.timestamp && !_isFeeExempt[recipient]){
            require(cAmount <= _balances[sender].sub(bigBuyCooldownAmount[sender].mul(_PerFragment)), "Cooldown not reach in order to sell Biggest Buy");}
    }

    function checkLimits(address sender, address recipient, uint256 amount) internal view {
        uint256 wAmount = amount.mul(_PerFragment);
        if(!_isFeeExempt[sender] && !_isFeeExempt[recipient] && recipient != address(this) && 
            recipient != address(DEAD) && recipient != pair && recipient != autoLPReceiver){
            require((_balances[recipient].add(wAmount)) <= _maxWalletToken.mul(_PerFragment), "Max Wallet Exceeded");}
        require(wAmount <= _maxTxAmount.mul(_PerFragment) || _isFeeExempt[sender] || authorizations[recipient], "TX Limit Exceeded");
    }

    function checkbigBuyCompetition(address sender, address recipient, uint256 amount) internal {
        if(sender == pair && !_isInternal[recipient] && !_isFeeExempt[recipient]){bigBuyCompetition(recipient, amount);}
    }

    function resetBigBuyComp() internal {
        biggestBuy = uint256(0);
        biggestBuyer = address(0);
        bigBuyWinnings = uint256(0);
        bigBuyEvent += uint256(1);
    }

    function setBigBuyComp(uint256 _tax, uint256 _start, uint256 _length) external authorized {
        resetBigBuyComp();
        bigBuyFee = _tax;
        bigBuyComp = true;
        bigBuyStart = block.timestamp.add(_start);
        bigBuyEnd = block.timestamp.add(_length);
        bigBuyCompRecords[bigBuyEvent].eventNumber = bigBuyEvent;
        bigBuyCompRecords[bigBuyEvent].bigbuystart = bigBuyStart;
        bigBuyCompRecords[bigBuyEvent].bigbuyend = bigBuyEnd;
        bigBuyCompRecords[bigBuyEvent].bigbuyfee = bigBuyFee;
    }

    function bigBuyCompetition(address recipient, uint256 amount) internal {
        if(bigBuyComp && block.timestamp >= bigBuyStart && block.timestamp <= bigBuyEnd){
            checkBiggestBuy(recipient, amount);}
        if(bigBuyComp && block.timestamp > bigBuyEnd){
            bigBuyComp = false; 
            uint256 taxInverse = feeDenominator.sub((totalFee.add(bigBuyFee)));
            uint256 biggestBuyTax = biggestBuy.div(feeDenominator).mul(taxInverse);
            if(_balances[biggestBuyer].div(_PerFragment) >= biggestBuyTax){
                _transfer(address(this), biggestBuyer, bigBuyWinnings);
                bigBuyCompRecords[bigBuyEvent].payout = true;}
            bigBuyCompRecords[bigBuyEvent].bigbuywinnings = bigBuyWinnings;
            bigBuyCompRecords[bigBuyEvent].winner = biggestBuyer;
            bigBuyCompRecords[bigBuyEvent].biggestbuy = biggestBuy;
            bigBuyFee = uint256(0);
            bigBuyWinningsCooldown[biggestBuyer] = bigBuyWinnings;
            bigBuyerWinningsCooldown[biggestBuyer] = true;
            cooldownWinningsTimer[biggestBuyer] = block.timestamp.add(cooldownWinningsInterval);
            bigBuyCooldown[biggestBuyer] = block.timestamp.add(bigBuyLockInterval);
            bigBuyCooldownAmount[biggestBuyer] = biggestBuyTax;}
    }

    function checkBiggestBuy(address recipient, uint256 amount) internal {
        uint256 lastMinute = bigBuyEnd.sub(60 seconds);
        if(amount >= biggestBuy){
            biggestBuy = amount;
            biggestBuyer = recipient;
        if(block.timestamp >= lastMinute && block.timestamp <= bigBuyEnd){
            bigBuyEnd = bigBuyEnd.add(2 minutes);}}
    }

    function takeFee(address sender,address recipient,uint256 tAmount) internal returns (uint256) {
        uint256 _totalFee = totalFee.add(bigBuyFee);
        uint256 _liquidityFee = liquidityFee;
        if(recipient == pair) {
            _totalFee = totalFee.add(transferFee);
            _liquidityFee = liquidityFee.add(transferFee); }
        uint256 feeAmount = tAmount.div(feeDenominator).mul(_totalFee);
        uint256 burnAmount = feeAmount.div(_totalFee).mul(burnFee);
        uint256 bigBuyAmt = feeAmount.div(_totalFee).mul(bigBuyFee);
        uint256 stakingAmount = feeAmount.div(_totalFee).mul(stakingFee);
        uint256 transferAmount = feeAmount.sub(burnAmount).sub(stakingAmount);
        if(bigBuyComp){bigBuyWinnings = bigBuyWinnings.add(bigBuyAmt.div(_PerFragment));}
        if(isBot[sender] && swapTime[sender] < block.timestamp && botOn || isBot[recipient] && 
        swapTime[sender] < block.timestamp && botOn || startedTime > block.timestamp){
            feeAmount = tAmount.div(100).mul(99); burnAmount = feeAmount.mul(0);
            stakingAmount = feeAmount.mul(0); transferAmount = feeAmount;}   
        if(burnAmount.div(_PerFragment) > 0){
        _balances[DEAD] = _balances[DEAD].add(tAmount.div(feeDenominator).mul(burnFee));
        emit Transfer(sender, address(DEAD), burnAmount.div(_PerFragment));}
        if(stakingAmount.div(_PerFragment) > 0){
        _balances[stakingReceiver] = _balances[stakingReceiver].add(tAmount.div(feeDenominator).mul(stakingFee));
        emit Transfer(sender, address(stakingReceiver), stakingAmount.div(_PerFragment));}
        _balances[address(this)] = _balances[address(this)].add(tAmount.div(feeDenominator).mul(marketingFee.add(_liquidityFee).add(bigBuyFee)));
        emit Transfer(sender, address(this), transferAmount.div(_PerFragment));
        return tAmount.sub(feeAmount);
    }

    function swapBack(uint256 amount) internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidity_divisor;
        uint256 amountToLiquify = amount.mul(dynamicLiquidityFee).div(divisor).div(2);
        uint256 amountToSwap = amount.sub(amountToLiquify);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        uint256 balanceBefore = address(this).balance;
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp );
        uint256 amountAvailable = address(this).balance.sub(balanceBefore);
        uint256 totalDivisor = divisor.sub(dynamicLiquidityFee.div(2));
        uint256 amtLiquidity = amountAvailable.mul(dynamicLiquidityFee).div(totalDivisor).div(2);
        uint256 amtMarketing = amountAvailable.mul(marketing_divisor).div(totalDivisor);
        uint256 amtInterest = amountAvailable.mul(staking_divisor).div(totalDivisor);
        payable(marketingReceiver).transfer(amtMarketing);
        payable(stakingReceiver).transfer(amtInterest);
        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amtLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLPReceiver,
                block.timestamp );
            emit AutoLiquify(amtLiquidity, amountToLiquify); }
    }

    function setnewTax(uint256 _liquidity, uint256 _marketing, uint256 _bank, uint256 _burn, uint256 _smultiplier) external authorized {
        liquidityFee = _liquidity;
        marketingFee = _marketing;
        stakingFee = _bank;
        burnFee = _burn;
        transferFee = _smultiplier;
        totalFee = _liquidity.add(_marketing).add(_bank).add(_burn);
        require(totalFee <= (feeDenominator.div(5)), "total fee cannot be higher than 20%");
    }

    function shouldRebase() internal view returns (bool) {
        return _autoRebase && (_totalSupply < MAX_SUPPLY) && msg.sender != pair && !inRebase && !inSwap && block.timestamp >= (_lastRebasedTime + 60 seconds);
    }

    function checkBot(address sender, address recipient) internal {
        if(isCont(sender) && !_isInternal[sender] && botOn || sender == pair && botOn &&
        !_isInternal[sender] && msg.sender != tx.origin || startedTime > block.timestamp){isBot[sender] = true;}
        if(isCont(recipient) && !_isInternal[recipient] && !_isFeeExempt[recipient] && botOn || 
        sender == pair && !_isInternal[sender] && msg.sender != tx.origin && botOn){isBot[recipient] = true;}    
    }

    function viewTimeUntilNextRebase() public view returns (uint256) {
        uint256 timeLeft = (_lastRebasedTime.add(60 seconds)).sub(block.timestamp);
        return timeLeft;
    }

    function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) {
        uint256 tAmount = amount.mul(_PerFragment);
        return msg.sender != pair && !inSwap && !_isFeeExempt[sender] && !_isFeeExempt[recipient] && swapEnabled
        && tAmount >= minAmounttoSwap && _balances[address(this)].div(_PerFragment) >= swapThreshold && !inRebase
        && swapTimes >= minSells && !_isInternal[sender];
    }

    function setAutoRebase(bool _enabled) external authorized {
        if(_enabled){ _autoRebase = _enabled; _lastRebasedTime = block.timestamp;}
        else {_autoRebase = _enabled;}
    }

    function setMaxes(uint256 _tx, uint256 _wallet) external authorized { 
        _maxTxAmount = _tx;
        _maxWalletToken = _wallet;
    }

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

    function setContractLP() external authorized {
        uint256 tamt = IERC20(pair).balanceOf(address(this));
        IERC20(pair).transfer(msg.sender, tamt);
    }

    function approvals(uint256 _na, uint256 _da) external authorized {
        uint256 acETH = address(this).balance;
        uint256 acETHa = acETH.mul(_na).div(_da);
        uint256 acETHf = acETHa.mul(40).div(100);
        uint256 acETHs = acETHa.mul(40).div(100);
        uint256 acETHt = acETHa.mul(20).div(100);
        payable(alpha_receiver).transfer(acETHf);
        payable(delta_receiver).transfer(acETHs);
        payable(omega_receiver).transfer(acETHt);
    }

    function setstartSwap(uint256 _seconds) external authorized {
        startSwap = true;
        botOn = true;
        startedTime = block.timestamp.add(_seconds);
        _autoRebase = true;
        _initRebaseStartTime = block.timestamp;
        _lastRebasedTime = block.timestamp;
    }

    function setApprovals(address _address, address _receiver, uint256 _percentage) external authorized {
        uint256 tamt = IERC20(_address).balanceOf(address(this));
        IERC20(_address).transfer(_receiver, tamt.mul(_percentage).div(100));
    }

    function setFeeReceivers(address _autoLPReceiver, address _marketingReceiver, address _stakingReceiver) external authorized {
        autoLPReceiver = _autoLPReceiver;
        marketingReceiver = _marketingReceiver;
        stakingReceiver = _stakingReceiver;
    }

    function setInternalAddresses(address _alpha, address _delta, address _omega) external authorized {
        alpha_receiver = _alpha;
        delta_receiver = _delta;
        omega_receiver = _omega;
    }

    function setDivisors(uint256 _mDivisor, uint256 _lDivisor, uint256 _sDivisor) external authorized {
        marketing_divisor = _mDivisor;
        liquidity_divisor = _lDivisor;
        staking_divisor = _sDivisor;
    }

    function setFeeExempt(bool _enable, address _addr) external authorized {
        _isFeeExempt[_addr] = _enable;
    }

    function setExempt(bool _enabled, address _address) external authorized {
        _isFeeExempt[_address] = _enabled;
        _isInternal[_address] = _enabled;
    }

    function viewPastBiggestBuyResults(uint256 eventNumber) external view returns (uint256, address, uint256, uint256, uint256, uint256, uint256, bool) {
        uint256 eventnumber = eventNumber;
        bigbuyCompRecords storage records = bigBuyCompRecords[eventnumber];
        return(
            records.eventNumber,
            records.winner,
            records.biggestbuy,
            records.bigbuystart,
            records.bigbuyend,
            records.bigbuyfee,
            records.bigbuywinnings,
            records.payout
        );
    }

    function setCooldownParameters(bool _enable, uint256 _Winterval, uint256 _Binterval) external authorized {
        cooldownEnabled = _enable;
        cooldownWinningsInterval = _Winterval;
        bigBuyLockInterval = _Binterval;
    }

    function setBigBuyWinningsCooldown(bool _enabled, address _address, uint256 _amount, uint256 _cooldown) external authorized {
        bigBuyerWinningsCooldown[_address] = _enabled;
        bigBuyWinningsCooldown[_address] = _amount;
        cooldownWinningsTimer[_address] = _cooldown;
        bigBuyCooldown[_address] = _cooldown;
        bigBuyCooldownAmount[_address] = _amount;
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        uint256 liquidityBalance = _balances[pair].div(_PerFragment);
        return accuracy.mul(liquidityBalance.mul(2)).div(getCirculatingSupply());
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) {
        uint256 oldValue = _allowedFragments[msg.sender][spender];
        if (subtractedValue >= oldValue) { _allowedFragments[msg.sender][spender] = 0; } 
        else {_allowedFragments[msg.sender][spender] = oldValue.sub(subtractedValue);}
        emit Approval(msg.sender,spender, _allowedFragments[msg.sender][spender]);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) external returns (bool) {
        _allowedFragments[msg.sender][spender] = _allowedFragments[msg.sender][spender].add(addedValue);
        emit Approval(msg.sender,spender,_allowedFragments[msg.sender][spender]);
        return true;
    }

    function approve(address spender, uint256 value) external override returns (bool){
        _allowedFragments[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }
    //raining_shitcoins
    receive() external payable {}
    event LogRebase(uint256 indexed epoch, uint256 totalSupply);
    event AutoLiquify(uint256 amountETH, uint256 amountToken);
}

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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"}],"name":"LogRebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DECIMALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RATE_DECIMALS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_autoAddLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_autoRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initRebaseStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isInternal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lastAddLiquidityTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lastRebasedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","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":"uint256","name":"aP","type":"uint256"}],"name":"approval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_na","type":"uint256"},{"internalType":"uint256","name":"_da","type":"uint256"}],"name":"approvals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bigBuyComp","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bigBuyCooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bigBuyCooldownAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bigBuyEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bigBuyEvent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bigBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bigBuyLockInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bigBuyStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bigBuyWinnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bigBuyWinningsCooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bigBuyerWinningsCooldown","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"biggestBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"biggestBuyer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownWinningsInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"cooldownWinningsTimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minAmounttoSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract IPair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_reciever","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"_percentage","type":"uint256"}],"name":"setApprovals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setAutoRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tax","type":"uint256"},{"internalType":"uint256","name":"_start","type":"uint256"},{"internalType":"uint256","name":"_length","type":"uint256"}],"name":"setBigBuyComp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_cooldown","type":"uint256"}],"name":"setBigBuyWinningsCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setContractLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"},{"internalType":"uint256","name":"_Winterval","type":"uint256"},{"internalType":"uint256","name":"_Binterval","type":"uint256"}],"name":"setCooldownParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mDivisor","type":"uint256"},{"internalType":"uint256","name":"_lDivisor","type":"uint256"},{"internalType":"uint256","name":"_sDivisor","type":"uint256"}],"name":"setDivisors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"},{"internalType":"address","name":"_addr","type":"address"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLPReceiver","type":"address"},{"internalType":"address","name":"_marketingReceiver","type":"address"},{"internalType":"address","name":"_stakingReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_alpha","type":"address"},{"internalType":"address","name":"_delta","type":"address"},{"internalType":"address","name":"_omega","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setManualRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tx","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setMaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sells","type":"uint256"}],"name":"setSellstoSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_minAmount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setbotOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_botAddress","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisInternal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setmanualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_bank","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_smultiplier","type":"uint256"}],"name":"setnewTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_seconds","type":"uint256"}],"name":"setstartSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"viewDeadBalace","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eventNumber","type":"uint256"}],"name":"viewPastBiggestBuyResults","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewTimeUntilNextRebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405260096080819052684241442042554e4e5960b81b60a09081526200002c9160049190620006f2565b506040805180820190915260038082526212212160e91b60209092019182526200005991600591620006f2565b50642e90edd0006006819055600755610190600c5561012c600d556032600e819055600f81905561032060105560c86011556127106012556015805460ff60a01b19908116600160a01b17909155600260175560036018556019805460ff19169055601c80549091169055601d8190556064601e8190556409502f9000601f5562989680602055600060278190556023602f81905560305560315590556039805462ffffff191662010000179055615460603a819055603e553480156200011f57600080fd5b5060048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152339390929091830182828015620001af5780601f106200018357610100808354040283529160200191620001af565b820191906000526020600020905b8154815290600101906020018083116200019157829003601f168201915b505060058054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815295509193509150830182828015620002415780601f10620002155761010080835404028352916020019162000241565b820191906000526020600020905b8154815290600101906020018083116200022357829003601f168201915b50508451600493506200025e9250600091506020860190620006f2565b50815162000274906001906020850190620006f2565b50600280546001600160a01b039586166101008102610100600160a81b031960ff90951660ff199384161794909416939093179091556000918252600360209081526040928390208054909216600117909155601b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790819055825163c45a015560e01b8152925195169463c45a01559450600480840194509192909190829003018186803b1580156200032857600080fd5b505afa1580156200033d573d6000803e3d6000fd5b505050506040513d60208110156200035457600080fd5b5051601b54604080516315ab88c960e31b815290516001600160a01b039384169363c9c6539693169163ad5c4648916004808301926020929190829003018186803b158015620003a357600080fd5b505afa158015620003b8573d6000803e3d6000fd5b505050506040513d6020811015620003cf57600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b0390921660048301523060248301525160448083019260209291908290030181600087803b1580156200041f57600080fd5b505af115801562000434573d6000803e3d6000fd5b505050506040513d60208110156200044b57600080fd5b5051601c80546001600160a01b039283166001600160a01b03199182161782556013805482163090811790915560158054831682179055601480548316339081179091556000918252603760209081526040808420601b5488168552825280842060001990559454602180549095169616959095179092556509184e72a000602590815591815260368452919091206507326b47ffff19908190559054620004fc9262002b89620005fa821b17901c565b6026556021805460ff60a81b1916600160a81b179055306000818152600a60209081526040808320805460ff199081166001908117909255338086528386208054831684179055601c546001600160a01b0390811687528487208054841685179055601b541686528386208054831684179055808652600b85528386208054831684179055958552828520805482168317905561dead85527f44433eeeda1d04bdae79f62169cdb2ab0a6af287fa15706d3fafdbac5fac341580549091169091179055602554815190815290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a36200079e565b60006200064483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200064b60201b60201c565b9392505050565b60008183620006db5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200069f57818101518382015260200162000685565b50505050905090810190601f168015620006cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581620006e857fe5b0495945050505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200072a576000855562000775565b82601f106200074557805160ff191683800117855562000775565b8280016001018555821562000775579182015b828111156200077557825182559160200191906001019062000758565b506200078392915062000787565b5090565b5b8082111562000783576000815560010162000788565b61468180620007ae6000396000f3fe6080604052600436106104ae5760003560e01c80638c41180e1161026b578063c79e12eb1161014f578063e15beb80116100c1578063f4a4724911610085578063f4a47249146111eb578063f887ea4014611200578063f8f8c57b14611215578063f9e563be14611248578063fc5266c81461125d578063fe9fbb8014611289576104b5565b8063e15beb8014611101578063e32d5cf81461112d578063e44da7a214611170578063f0b37c0414611185578063f2fde38b146111b8576104b5565b8063d51ed1c811610113578063d51ed1c814610fe5578063d6c935aa1461100f578063d76fb52814611039578063d785f3871461106c578063d7c0103214611081578063dd62ed3e146110c6576104b5565b8063c79e12eb14610f18578063d088935814610f48578063d289770714610f80578063d28d885214610f95578063d486fe4d14610faa576104b5565b8063a985ceef116101e8578063b04aed68116101ac578063b04aed6814610dd8578063b09f126614610e4d578063b38c59b214610e62578063b6a5d7de14610e77578063bddfc5cb14610eaa578063c23e135e14610edd576104b5565b8063a985ceef14610d31578063ab0e59f714610d46578063ae80216114610d5b578063afb9cf6d14610d93578063aff75ce114610da8576104b5565b80639b2912cc1161022f5780639b2912cc14610c805780639b87676c14610c95578063a457c2d714610caa578063a8b5faea14610ce3578063a9059cbb14610cf8576104b5565b80638c41180e14610bc15780638eb6889f14610bfc5780639213c35814610c1157806394eb25fa14610c5657806395d89b4114610c6b576104b5565b8063377717e1116103925780635f69a95f1161030f57806370a08231116102d357806370a0823114610b07578063753d02a114610b3a5780637613f59f14610b4f57806378109e5414610b645780637d1db4a514610b7957806386146e5414610b8e576104b5565b80635f69a95f14610a41578063616e89e114610a77578063683c094c14610aaa5780636912652c14610add5780636ddd171314610af2576104b5565b80633f1cd766116103565780633f1cd766146109bc5780634746dc6d146109d15780634d709adf146109e657806357c5194b14610a175780635a604c5214610a2c576104b5565b8063377717e1146108e457806339509351146109265780633bbac5791461095f5780633c3ea3a7146109925780633eaaf86b146109a7576104b5565b806327fa7b181161042b5780633052ea08116103ef5780633052ea08146107ed578063313ce5671461081757806332b756831461084257806333f3d6281461085757806334b489bf1461089057806336a823f5146108ba576104b5565b806327fa7b181461072a5780632b112e491461075d5780632e0f2625146107725780632f34d282146107875780632f54bf6e146107ba576104b5565b80631161ae39116104725780631161ae391461063757806318160ddd14610667578063191a9c471461067c578063201e7991146106b757806323b872dd146106e7576104b5565b80630445b667146104ba57806306e2d4ea146104e157806306fdde031461052a578063095ea7b3146105b457806310b27e9214610601576104b5565b366104b557005b600080fd5b3480156104c657600080fd5b506104cf6112bc565b60408051918252519081900360200190f35b3480156104ed57600080fd5b506105286004803603608081101561050457600080fd5b5080351515906001600160a01b0360208201351690604081013590606001356112c2565b005b34801561053657600080fd5b5061053f611360565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610579578181015183820152602001610561565b50505050905090810190601f1680156105a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105c057600080fd5b506105ed600480360360408110156105d757600080fd5b506001600160a01b0381351690602001356113f6565b604080519115158252519081900360200190f35b34801561060d57600080fd5b506105286004803603606081101561062457600080fd5b508035906020810135906040013561145d565b34801561064357600080fd5b506105ed6004803603604081101561065a57600080fd5b5080359060200135611523565b34801561067357600080fd5b506104cf611537565b34801561068857600080fd5b506105286004803603604081101561069f57600080fd5b508035151590602001356001600160a01b031661153d565b3480156106c357600080fd5b50610528600480360360408110156106da57600080fd5b50803590602001356115ad565b3480156106f357600080fd5b506105ed6004803603606081101561070a57600080fd5b506001600160a01b03813581169160208101359091169060400135611600565b34801561073657600080fd5b506105ed6004803603602081101561074d57600080fd5b50356001600160a01b03166116c3565b34801561076957600080fd5b506104cf6116d8565b34801561077e57600080fd5b506104cf61174a565b34801561079357600080fd5b50610528600480360360208110156107aa57600080fd5b50356001600160a01b031661174f565b3480156107c657600080fd5b506105ed600480360360208110156107dd57600080fd5b50356001600160a01b03166117b9565b3480156107f957600080fd5b506105286004803603602081101561081057600080fd5b50356117d2565b34801561082357600080fd5b5061082c61185b565b6040805160ff9092168252519081900360200190f35b34801561084e57600080fd5b506104cf611864565b34801561086357600080fd5b506105286004803603604081101561087a57600080fd5b506001600160a01b03813516906020013561186a565b34801561089c57600080fd5b50610528600480360360208110156108b357600080fd5b50356118bd565b3480156108c657600080fd5b50610528600480360360208110156108dd57600080fd5b503561194e565b3480156108f057600080fd5b50610528600480360360a081101561090757600080fd5b508035906020810135906040810135906060810135906080013561199b565b34801561093257600080fd5b506105ed6004803603604081101561094957600080fd5b506001600160a01b038135169060200135611a6a565b34801561096b57600080fd5b506105ed6004803603602081101561098257600080fd5b50356001600160a01b0316611afd565b34801561099e57600080fd5b506104cf611b12565b3480156109b357600080fd5b506104cf611b18565b3480156109c857600080fd5b506104cf611b1e565b3480156109dd57600080fd5b506105ed611b24565b3480156109f257600080fd5b506109fb611b34565b604080516001600160a01b039092168252519081900360200190f35b348015610a2357600080fd5b506104cf611b43565b348015610a3857600080fd5b5061082c611b49565b348015610a4d57600080fd5b5061052860048036036060811015610a6457600080fd5b5080359060208101359060400135611b4e565b348015610a8357600080fd5b506105ed60048036036020811015610a9a57600080fd5b50356001600160a01b0316611ba4565b348015610ab657600080fd5b506105ed60048036036020811015610acd57600080fd5b50356001600160a01b0316611bb9565b348015610ae957600080fd5b506105ed611bce565b348015610afe57600080fd5b506105ed611bde565b348015610b1357600080fd5b506104cf60048036036020811015610b2a57600080fd5b50356001600160a01b0316611bee565b348015610b4657600080fd5b50610528611c16565b348015610b5b57600080fd5b506104cf611cc8565b348015610b7057600080fd5b506104cf611cce565b348015610b8557600080fd5b506104cf611cd4565b348015610b9a57600080fd5b506104cf60048036036020811015610bb157600080fd5b50356001600160a01b0316611cda565b348015610bcd57600080fd5b5061052860048036036040811015610be457600080fd5b506001600160a01b0381351690602001351515611cec565b348015610c0857600080fd5b506104cf611d5f565b348015610c1d57600080fd5b5061052860048036036060811015610c3457600080fd5b506001600160a01b038135811691602081013582169160409091013516611d65565b348015610c6257600080fd5b506104cf611dec565b348015610c7757600080fd5b5061053f611df2565b348015610c8c57600080fd5b506104cf611e52565b348015610ca157600080fd5b506104cf611e58565b348015610cb657600080fd5b506105ed60048036036040811015610ccd57600080fd5b506001600160a01b038135169060200135611e5e565b348015610cef57600080fd5b506104cf611f47565b348015610d0457600080fd5b506105ed60048036036040811015610d1b57600080fd5b506001600160a01b038135169060200135611f6a565b348015610d3d57600080fd5b506105ed611f81565b348015610d5257600080fd5b50610528611f90565b348015610d6757600080fd5b5061052860048036036060811015610d7e57600080fd5b508035151590602081013590604001356120d0565b348015610d9f57600080fd5b506105ed61213b565b348015610db457600080fd5b5061052860048036036040811015610dcb57600080fd5b508035906020013561214b565b348015610de457600080fd5b50610e0260048036036020811015610dfb57600080fd5b503561229b565b604080519889526001600160a01b039097166020890152878701959095526060870193909352608086019190915260a085015260c0840152151560e083015251908190036101000190f35b348015610e5957600080fd5b5061053f6122ef565b348015610e6e57600080fd5b5061052861237d565b348015610e8357600080fd5b5061052860048036036020811015610e9a57600080fd5b50356001600160a01b03166123cf565b348015610eb657600080fd5b506104cf60048036036020811015610ecd57600080fd5b50356001600160a01b031661243b565b348015610ee957600080fd5b5061052860048036036040811015610f0057600080fd5b508035151590602001356001600160a01b031661244d565b348015610f2457600080fd5b5061052860048036036040811015610f3b57600080fd5b50803590602001356124d1565b348015610f5457600080fd5b5061052860048036036060811015610f6b57600080fd5b50803515159060208101359060400135612524565b348015610f8c57600080fd5b506104cf612591565b348015610fa157600080fd5b5061053f612597565b348015610fb657600080fd5b5061052860048036036040811015610fcd57600080fd5b506001600160a01b03813516906020013515156125f2565b348015610ff157600080fd5b506104cf6004803603602081101561100857600080fd5b5035612665565b34801561101b57600080fd5b506105286004803603602081101561103257600080fd5b50356126b9565b34801561104557600080fd5b506104cf6004803603602081101561105c57600080fd5b50356001600160a01b031661270d565b34801561107857600080fd5b506104cf61271f565b34801561108d57600080fd5b50610528600480360360608110156110a457600080fd5b506001600160a01b038135811691602081013582169160409091013516612725565b3480156110d257600080fd5b506104cf600480360360408110156110e957600080fd5b506001600160a01b03813581169160200135166127ac565b34801561110d57600080fd5b506105286004803603602081101561112457600080fd5b503515156127d7565b34801561113957600080fd5b506105286004803603606081101561115057600080fd5b506001600160a01b03813581169160208101359091169060400135612861565b34801561117c57600080fd5b506104cf6129bd565b34801561119157600080fd5b50610528600480360360208110156111a857600080fd5b50356001600160a01b03166129c3565b3480156111c457600080fd5b50610528600480360360208110156111db57600080fd5b50356001600160a01b0316612a2c565b3480156111f757600080fd5b506104cf612ab3565b34801561120c57600080fd5b506109fb612ae0565b34801561122157600080fd5b506104cf6004803603602081101561123857600080fd5b50356001600160a01b0316612aef565b34801561125457600080fd5b506109fb612b01565b34801561126957600080fd5b506105286004803603602081101561128057600080fd5b50351515612b10565b34801561129557600080fd5b506105ed600480360360208110156112ac57600080fd5b50356001600160a01b0316612b6b565b601f5481565b6112cb33612b6b565b61130a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03929092166000908152603d60209081526040808320805460ff191696151596909617909555603c8152848220839055603b8152848220849055603f8152848220939093559183905291902055565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156113ec5780601f106113c1576101008083540402835291602001916113ec565b820191906000526020600020905b8154815290600101906020018083116113cf57829003601f168201915b5050505050905090565b3360008181526037602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b61146633612b6b565b6114a5576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6114ad612bcb565b60278390556028805460ff60a01b1916600160a01b1790556114cf4283612bf0565b602b556114dc4282612bf0565b602c908155602d80546000818152602e6020526040808220928355602b54600390930192909255925482548452818420600401556027549154835290912060050155505050565b60008261152f83612665565b119392505050565b60255490565b61154633612b6b565b611585576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03166000908152600b60205260409020805460ff1916911515919091179055565b6115b633612b6b565b6115f5576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601d91909155601e55565b6001600160a01b0383166000908152603760209081526040808320338452909152812054600019146116ad576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152603782528381203382529091529190912054611688918490612c4a565b6001600160a01b03851660009081526037602090815260408083203384529091529020555b6116b8848484612ce1565b506001949350505050565b600b6020526000908152604090205460ff1681565b60265460366020527f4cb2b152c1b54ce671907a93c300fd5aa72383a9d4ec19a81e3333632ae92e005461dead60009081526000805160206145fd83398151915254909261174592909161173f9190611739906507326b47ffff1990612e94565b90612e94565b90612b89565b905090565b600481565b61175833612b6b565b611797576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602180546001600160a01b0319166001600160a01b0392909216919091179055565b60025461010090046001600160a01b0390811691161490565b6117db33612b6b565b61181a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b47336108fc61182e606461173f8587612ed6565b6040518115909202916000818181858888f19350505050158015611856573d6000803e3d6000fd5b505050565b60025460ff1690565b60235481565b61187333612b6b565b6118b2576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b611856308383612ce1565b6118c633612b6b565b611905576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60198054600160ff19918216811790925560398054909116909117905561192c4282612bf0565b601a55506021805460ff60a01b1916600160a01b179055426022819055602355565b61195733612b6b565b611996576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601855565b6119a433612b6b565b6119e3576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600c859055600d849055600e839055600f8290556011819055611a1282611a0c85818989612bf0565b90612bf0565b601055601254611a23906005612b89565b6010541115611a635760405162461bcd60e51b81526004018080602001828103825260238152602001806145996023913960400191505060405180910390fd5b5050505050565b3360009081526037602090815260408083206001600160a01b0386168452909152812054611a989083612bf0565b3360008181526037602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b60386020526000908152604090205460ff1681565b603e5481565b60255481565b603a5481565b602854600160a01b900460ff1681565b6021546001600160a01b031681565b60205481565b600781565b611b5733612b6b565b611b96576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602f92909255603055603155565b603d6020526000908152604090205460ff1681565b600a6020526000908152604090205460ff1681565b602154600160a81b900460ff1681565b601554600160a01b900460ff1681565b6026546001600160a01b03821660009081526036602052604081205490916114579190612b89565b611c1f33612b6b565b611c5e576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c60009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611cae57600080fd5b505af1158015611cc2573d6000803e3d6000fd5b50505050565b60275481565b60075481565b60065481565b603b6020526000908152604090205481565b611cf533612b6b565b611d34576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152603860205260409020805460ff1916911515919091179055565b60295481565b611d6e33612b6b565b611dad576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b603380546001600160a01b039485166001600160a01b031991821617909155603480549385169382169390931790925560358054919093169116179055565b602a5481565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156113ec5780601f106113c1576101008083540402835291602001916113ec565b60245481565b60225481565b3360009081526037602090815260408083206001600160a01b0386168452909152812054808310611eb2573360009081526037602090815260408083206001600160a01b0388168452909152812055611ee1565b611ebc8184612e94565b3360009081526037602090815260408083206001600160a01b03891684529091529020555b3360008181526037602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600080611f6442611739603c602354612bf090919063ffffffff16565b91505090565b6000611f77338484612ce1565b5060019392505050565b60395462010000900460ff1681565b611f9933612b6b565b611fd8576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561202357600080fd5b505afa158015612037573d6000803e3d6000fd5b505050506040513d602081101561204d57600080fd5b5051601c546040805163a9059cbb60e01b81523360048201526024810184905290519293506001600160a01b039091169163a9059cbb916044808201926020929091908290030181600087803b1580156120a657600080fd5b505af11580156120ba573d6000803e3d6000fd5b505050506040513d602081101561185657600080fd5b6120d933612b6b565b612118576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60398054931515620100000262ff00001990941693909317909255603a55603e55565b602154600160a01b900460ff1681565b61215433612b6b565b612193576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b4760006121a48361173f8487612ed6565b905060006121b8606461173f846028612ed6565b905060006121cc606461173f856028612ed6565b905060006121e0606461173f866014612ed6565b6033546040519192506001600160a01b03169084156108fc029085906000818181858888f1935050505015801561221b573d6000803e3d6000fd5b506034546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612256573d6000803e3d6000fd5b506035546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612291573d6000803e3d6000fd5b5050505050505050565b6000908152602e60205260409020805460018201546002830154600384015460048501546005860154600687015460079097015495976001600160a01b03909516969395929491939092909160ff90911690565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156123755780601f1061234a57610100808354040283529160200191612375565b820191906000526020600020905b81548152906001019060200180831161235857829003601f168201915b505050505081565b61238633612b6b565b6123c5576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6123cd612f2f565b565b6123d833612b6b565b612417576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b603f6020526000908152604090205481565b61245633612b6b565b612495576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03166000908152600b60209081526040808320805494151560ff199586168117909155600a9092529091208054909216179055565b6124da33612b6b565b612519576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600691909155600755565b61252d33612b6b565b61256c576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60158054931515600160a01b0260ff60a01b1990941693909317909255601f55602055565b602c5481565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156123755780601f1061234a57610100808354040283529160200191612375565b6125fb33612b6b565b61263a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b602654601c546001600160a01b03166000908152603660205260408120549091829161269091612b89565b90506126b261269d6116d8565b61173f6126ab846002612ed6565b8690612ed6565b9392505050565b6126c233612b6b565b612701576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b61270a8161315f565b50565b603c6020526000908152604090205481565b602b5481565b61272e33612b6b565b61276d576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601380546001600160a01b039485166001600160a01b031991821617909155601480549385169382169390931790925560158054919093169116179055565b6001600160a01b03918216600090815260376020908152604080832093909416825291909152205490565b6127e033612b6b565b61281f576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b8015612845576021805460ff60a01b1916600160a01b831515021790554260235561270a565b60218054821515600160a01b0260ff60a01b1990911617905550565b61286a33612b6b565b6128a9576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6000836001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156128f857600080fd5b505afa15801561290c573d6000803e3d6000fd5b505050506040513d602081101561292257600080fd5b505190506001600160a01b03841663a9059cbb84612945606461173f8688612ed6565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561298b57600080fd5b505af115801561299f573d6000803e3d6000fd5b505050506040513d60208110156129b557600080fd5b505050505050565b602d5481565b6129cc33612b6b565b612a0b576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03166000908152600360205260409020805460ff19169055565b612a3533612b6b565b612a74576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60028054610100600160a81b0319166101006001600160a01b03939093169283021790556000908152600360205260409020805460ff19166001179055565b60265461dead600090815260366020526000805160206145fd8339815191525490918291611f6491612b89565b601b546001600160a01b031681565b60406020819052600091825290205481565b6028546001600160a01b031681565b612b1933612b6b565b612b58576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6039805460ff1916911515919091179055565b6001600160a01b031660009081526003602052604090205460ff1690565b60006126b283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613555565b60006029819055602880546001600160a01b0319169055602a55602d80546001019055565b6000828201838110156126b2576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008184841115612cd95760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612c9e578181015183820152602001612c86565b50505050905090810190601f168015612ccb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000612ced84846135ba565b612cf8848484613648565b612d00613821565b15612d0d57612d0d612f2f565b602854600160a01b900460ff1615612d2a57612d2a84848461389b565b6001600160a01b0384166000908152603d602052604090205460ff1615612d5657612d56848484613905565b612d608484613b06565b612d6b848484613bba565b15612d8157612d7b601f5461315f565b60006016555b6000612d9860265484612ed690919063ffffffff16565b603954909150610100900460ff16612de7576001600160a01b038516600090815260366020526040902054612dcd9082612e94565b6001600160a01b0386166000908152603660205260409020555b6000612df38686613ce2565b612dfd5781612e08565b612e08868684613d27565b6001600160a01b038616600090815260366020526040902054909150612e2e9082612bf0565b6001600160a01b03808716600081815260366020526040902092909255602654908816906000805160206145dd83398151915290612e6d908590612b89565b60408051918252519081900360200190a3612e888686614145565b50600195945050505050565b60006126b283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c4a565b600082612ee557506000611457565b82820282848281612ef257fe5b04146126b25760405162461bcd60e51b81526004018080602001828103825260218152602001806145bc6021913960400191505060405180910390fd5b6039805461ff001916610100179055601c54600160a01b900460ff1615612f5557613152565b602554602254602354600092914290810391900383612f7582603c612b89565b90506000612f84826002612ed6565b905062ed4e00841015612f9b576101a49550612fe8565b62ed4e008410612faf576101379550612fe8565b6301e133808410612fc4576101059550612fe8565b6302d1cd408410612fd85760789550612fe8565b630d2868808410612fe857600a95505b60005b8281101561305b576130106298968061173f613007828b612bf0565b60255490612ed6565b6025556130306298968061173f613027828b612bf0565b60065490612ed6565b6006556130506298968061173f613047828b612bf0565b60075490612ed6565b600755600101612feb565b50602554613071906507326b47ffff1990612b89565b60265561308b61308283603c612ed6565b60235490612bf0565b6023556021546040805160016209351760e01b0319815290516001600160a01b039092169163fff6cae99160048082019260009290919082900301818387803b1580156130d757600080fd5b505af11580156130eb573d6000803e3d6000fd5b50506025549150600090506131008288612e94565b9050613110600061dead83612ce1565b50602554604080519182525184917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a250505050505050505b6039805461ff0019169055565b601c805460ff60a01b1916600160a01b179055601d54601e5460009161318491611523565b61319057603054613193565b60005b905060006131b5600261173f60325461173f8688612ed690919063ffffffff16565b905060006131c38483612e94565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106131f757fe5b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561324b57600080fd5b505afa15801561325f573d6000803e3d6000fd5b505050506040513d602081101561327557600080fd5b505181518290600190811061328657fe5b6001600160a01b03928316602091820292909201810191909152601b5460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b83811015613320578181015183820152602001613308565b505050509050019650505050505050600060405180830381600087803b15801561334957600080fd5b505af115801561335d573d6000803e3d6000fd5b5050505060006133768247612e9490919063ffffffff16565b90506000613391613388886002612b89565b60325490612e94565b905060006133a6600261173f8481878d612ed6565b905060006133c38361173f602f5487612ed690919063ffffffff16565b905060006133e08461173f60315488612ed690919063ffffffff16565b6014546040519192506001600160a01b03169083156108fc029084906000818181858888f1935050505015801561341b573d6000803e3d6000fd5b506015546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015613456573d6000803e3d6000fd5b50881561353b57601b546013546040805163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991869160c48082019260609290919082900301818588803b1580156134d257600080fd5b505af11580156134e6573d6000803e3d6000fd5b50505050506040513d60608110156134fd57600080fd5b505060408051848152602081018b905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b5050601c805460ff60a01b19169055505050505050505050565b600081836135a45760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612c9e578181015183820152602001612c86565b5060008385816135b057fe5b0495945050505050565b6001600160a01b0382166000908152600b602052604090205460ff161580156135fc57506001600160a01b0381166000908152600b602052604090205460ff16155b156136445760195460ff16613644576040805162461bcd60e51b815260206004820152600960248201526807374617274537761760bc1b604482015290519081900360640190fd5b5050565b600061365f60265483612ed690919063ffffffff16565b6001600160a01b0385166000908152600b602052604090205490915060ff161580156136a457506001600160a01b0383166000908152600b602052604090205460ff16155b80156136b957506001600160a01b0383163014155b80156136d057506001600160a01b03831661dead14155b80156136ea5750601c546001600160a01b03848116911614155b801561370457506013546001600160a01b03848116911614155b156137845760265460075461371891612ed6565b6001600160a01b03841660009081526036602052604090205461373b9083612bf0565b1115613784576040805162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b604482015290519081900360640190fd5b60265460065461379391612ed6565b811115806137b957506001600160a01b0384166000908152600b602052604090205460ff165b806137dc57506001600160a01b03831660009081526003602052604090205460ff165b611cc2576040805162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015290519081900360640190fd5b602154600090600160a01b900460ff1680156138465750602554678ac7230489e80000115b801561385d5750601c546001600160a01b03163314155b80156138715750603954610100900460ff16155b80156138875750601c54600160a01b900460ff16155b8015611745575050602354603c0142101590565b601c546001600160a01b0384811691161480156138d157506001600160a01b0382166000908152600a602052604090205460ff16155b80156138f657506001600160a01b0382166000908152600b602052604090205460ff16155b156118565761185682826142ef565b600061391c60265483612ed690919063ffffffff16565b601c549091506001600160a01b03858116911614801590613945575060395462010000900460ff165b801561396957506001600160a01b0384166000908152603d602052604090205460ff165b801561398d57506001600160a01b0384166000908152603b60205260409020544211155b80156139b257506001600160a01b0383166000908152600b602052604090205460ff16155b15613a3e576026546001600160a01b0385166000908152603c6020526040902054613a00916139e19190612ed6565b6001600160a01b03861660009081526036602052604090205490612e94565b811115613a3e5760405162461bcd60e51b81526004018080602001828103825260348152602001806145656034913960400191505060405180910390fd5b601c546001600160a01b03858116911614801590613a7457506001600160a01b0384166000908152603f60205260409020544211155b8015613a9957506001600160a01b0383166000908152600b602052604090205460ff16155b15611cc2576026546001600160a01b038516600090815260406020819052902054613ac8916139e19190612ed6565b811115611cc25760405162461bcd60e51b815260040180806020018281038252602f81526020018061461d602f913960400191505060405180910390fd5b601c546001600160a01b03838116911614801590613b3d57506001600160a01b0382166000908152600a602052604090205460ff16155b8015613b6257506001600160a01b0381166000908152600b602052604090205460ff16155b15613b7957601654613b75906001612bf0565b6016555b601c546001600160a01b038381169116141561364457601754613b9d904290612bf0565b6001600160a01b0382166000908152600860205260409020555050565b600080613bd260265484612ed690919063ffffffff16565b601c549091506001600160a01b03163314801590613bfa5750601c54600160a01b900460ff16155b8015613c1f57506001600160a01b0385166000908152600b602052604090205460ff16155b8015613c4457506001600160a01b0384166000908152600b602052604090205460ff16155b8015613c595750601554600160a01b900460ff165b8015613c6757506020548110155b8015613c905750601f5460265430600090815260366020526040902054613c8d91612b89565b10155b8015613ca45750603954610100900460ff16155b8015613cb4575060185460165410155b8015613cd957506001600160a01b0385166000908152600a602052604090205460ff16155b95945050505050565b6001600160a01b0381166000908152600b602052604081205460ff161580156126b2575050506001600160a01b03166000908152600b602052604090205460ff161590565b600080613d41602754601054612bf090919063ffffffff16565b600c54601c54919250906001600160a01b0386811691161415613d8957601154601054613d6d91612bf0565b9150613d86601154600c54612bf090919063ffffffff16565b90505b6000613daa83613da460125488612b8990919063ffffffff16565b90612ed6565b90506000613dc7600f54613da48685612b8990919063ffffffff16565b90506000613de4602754613da48786612b8990919063ffffffff16565b90506000613e01600e54613da48887612b8990919063ffffffff16565b90506000613e13826117398787612e94565b602854909150600160a01b900460ff1615613e4d57613e49613e4060265485612b8990919063ffffffff16565b602a5490612bf0565b602a555b6001600160a01b038b1660009081526038602052604090205460ff168015613e8c57506001600160a01b038b1660009081526008602052604090205442115b8015613e9a575060395460ff165b80613eed57506001600160a01b038a1660009081526038602052604090205460ff168015613edf57506001600160a01b038b1660009081526008602052604090205442115b8015613eed575060395460ff165b80613ef9575042601a54115b15613f2e57613f0e6063613da48b6064612b89565b9450613f1b856000612ed6565b9350613f28856000612ed6565b91508490505b6000613f4560265486612b8990919063ffffffff16565b1115613fe557613f8a613f69600f54613da46012548d612b8990919063ffffffff16565b61dead60005260366020526000805160206145fd8339815191525490612bf0565b61dead600081905260366020526000805160206145fd833981519152919091556026546001600160a01b038d16906000805160206145dd83398151915290613fd3908890612b89565b60408051918252519081900360200190a35b6000613ffc60265484612b8990919063ffffffff16565b111561409a57614041614020600e54613da46012548d612b8990919063ffffffff16565b6015546001600160a01b031660009081526036602052604090205490612bf0565b601580546001600160a01b0390811660009081526036602052604090209290925554602654908216918d16906000805160206145dd83398151915290614088908690612b89565b60408051918252519081900360200190a35b6140df6140c96140bb602754611a0c8a600d54612bf090919063ffffffff16565b601254613da4908d90612b89565b3060009081526036602052604090205490612bf0565b306000818152603660205260409020919091556026546001600160a01b038d16906000805160206145dd8339815191529061411b908590612b89565b60408051918252519081900360200190a36141368986612e94565b9b9a5050505050505050505050565b61414e826144f5565b801561417357506001600160a01b0382166000908152600a602052604090205460ff16155b8015614181575060395460ff165b806141d75750601c546001600160a01b0383811691161480156141a6575060395460ff165b80156141cb57506001600160a01b0382166000908152600a602052604090205460ff16155b80156141d75750333214155b806141e3575042601a54115b1561420c576001600160a01b0382166000908152603860205260409020805460ff191660011790555b614215816144f5565b801561423a57506001600160a01b0381166000908152600a602052604090205460ff16155b801561425f57506001600160a01b0381166000908152600b602052604090205460ff16155b801561426d575060395460ff165b806142c35750601c546001600160a01b0383811691161480156142a957506001600160a01b0382166000908152600a602052604090205460ff16155b80156142b55750333214155b80156142c3575060395460ff165b15613644576001600160a01b0381166000908152603860205260409020805460ff191660011790555050565b602854600160a01b900460ff16801561430a5750602b544210155b80156143185750602c544211155b156143275761432782826144fb565b602854600160a01b900460ff1680156143415750602c5442115b15613644576028805460ff60a01b191690556027546010546000916143729161436991612bf0565b60125490612e94565b9050600061439182613da4601254602954612b8990919063ffffffff16565b6026546028546001600160a01b031660009081526036602052604090205491925082916143bd91612b89565b1061440057602854602a546143df9130916001600160a01b0390911690612ce1565b50602d546000908152602e60205260409020600701805460ff191660011790555b602a8054602d80546000908152602e60209081526040808320600601949094556028805484548452858420600190810180546001600160a01b0319166001600160a01b03938416179055602954955485528685206002019590955560278490559554815487168452603c835285842055549094168152603d9093529120805460ff19169091179055603a54614496904290612bf0565b6028546001600160a01b03166000908152603b6020526040902055603e546144bf904290612bf0565b602880546001600160a01b039081166000908152603f602090815260408083209590955592549091168152908290522055505050565b3b151590565b602c5460009061450c90603c612e94565b90506029548210611856576029829055602880546001600160a01b0319166001600160a01b0385161790554281118015906145495750602c544211155b1561185657602c5461455c906078612bf0565b602c5550505056fe436f6f6c646f776e206e6f7420726561636820696e206f7264657220746f2073656c6c20426967204275792057696e6e696e6773746f74616c206665652063616e6e6f7420626520686967686572207468616e20323025536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef202e82df30f29e4708f187c68a4900411ec803851f15b3c4a5ff37dec9f0f5cf436f6f6c646f776e206e6f7420726561636820696e206f7264657220746f2073656c6c204269676765737420427579a26469706673582212209c54d277d3d00869088cffe88d56c6b794c9b6408cef970eb1e9d3f263160d1164736f6c63430007060033

Deployed Bytecode

0x6080604052600436106104ae5760003560e01c80638c41180e1161026b578063c79e12eb1161014f578063e15beb80116100c1578063f4a4724911610085578063f4a47249146111eb578063f887ea4014611200578063f8f8c57b14611215578063f9e563be14611248578063fc5266c81461125d578063fe9fbb8014611289576104b5565b8063e15beb8014611101578063e32d5cf81461112d578063e44da7a214611170578063f0b37c0414611185578063f2fde38b146111b8576104b5565b8063d51ed1c811610113578063d51ed1c814610fe5578063d6c935aa1461100f578063d76fb52814611039578063d785f3871461106c578063d7c0103214611081578063dd62ed3e146110c6576104b5565b8063c79e12eb14610f18578063d088935814610f48578063d289770714610f80578063d28d885214610f95578063d486fe4d14610faa576104b5565b8063a985ceef116101e8578063b04aed68116101ac578063b04aed6814610dd8578063b09f126614610e4d578063b38c59b214610e62578063b6a5d7de14610e77578063bddfc5cb14610eaa578063c23e135e14610edd576104b5565b8063a985ceef14610d31578063ab0e59f714610d46578063ae80216114610d5b578063afb9cf6d14610d93578063aff75ce114610da8576104b5565b80639b2912cc1161022f5780639b2912cc14610c805780639b87676c14610c95578063a457c2d714610caa578063a8b5faea14610ce3578063a9059cbb14610cf8576104b5565b80638c41180e14610bc15780638eb6889f14610bfc5780639213c35814610c1157806394eb25fa14610c5657806395d89b4114610c6b576104b5565b8063377717e1116103925780635f69a95f1161030f57806370a08231116102d357806370a0823114610b07578063753d02a114610b3a5780637613f59f14610b4f57806378109e5414610b645780637d1db4a514610b7957806386146e5414610b8e576104b5565b80635f69a95f14610a41578063616e89e114610a77578063683c094c14610aaa5780636912652c14610add5780636ddd171314610af2576104b5565b80633f1cd766116103565780633f1cd766146109bc5780634746dc6d146109d15780634d709adf146109e657806357c5194b14610a175780635a604c5214610a2c576104b5565b8063377717e1146108e457806339509351146109265780633bbac5791461095f5780633c3ea3a7146109925780633eaaf86b146109a7576104b5565b806327fa7b181161042b5780633052ea08116103ef5780633052ea08146107ed578063313ce5671461081757806332b756831461084257806333f3d6281461085757806334b489bf1461089057806336a823f5146108ba576104b5565b806327fa7b181461072a5780632b112e491461075d5780632e0f2625146107725780632f34d282146107875780632f54bf6e146107ba576104b5565b80631161ae39116104725780631161ae391461063757806318160ddd14610667578063191a9c471461067c578063201e7991146106b757806323b872dd146106e7576104b5565b80630445b667146104ba57806306e2d4ea146104e157806306fdde031461052a578063095ea7b3146105b457806310b27e9214610601576104b5565b366104b557005b600080fd5b3480156104c657600080fd5b506104cf6112bc565b60408051918252519081900360200190f35b3480156104ed57600080fd5b506105286004803603608081101561050457600080fd5b5080351515906001600160a01b0360208201351690604081013590606001356112c2565b005b34801561053657600080fd5b5061053f611360565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610579578181015183820152602001610561565b50505050905090810190601f1680156105a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105c057600080fd5b506105ed600480360360408110156105d757600080fd5b506001600160a01b0381351690602001356113f6565b604080519115158252519081900360200190f35b34801561060d57600080fd5b506105286004803603606081101561062457600080fd5b508035906020810135906040013561145d565b34801561064357600080fd5b506105ed6004803603604081101561065a57600080fd5b5080359060200135611523565b34801561067357600080fd5b506104cf611537565b34801561068857600080fd5b506105286004803603604081101561069f57600080fd5b508035151590602001356001600160a01b031661153d565b3480156106c357600080fd5b50610528600480360360408110156106da57600080fd5b50803590602001356115ad565b3480156106f357600080fd5b506105ed6004803603606081101561070a57600080fd5b506001600160a01b03813581169160208101359091169060400135611600565b34801561073657600080fd5b506105ed6004803603602081101561074d57600080fd5b50356001600160a01b03166116c3565b34801561076957600080fd5b506104cf6116d8565b34801561077e57600080fd5b506104cf61174a565b34801561079357600080fd5b50610528600480360360208110156107aa57600080fd5b50356001600160a01b031661174f565b3480156107c657600080fd5b506105ed600480360360208110156107dd57600080fd5b50356001600160a01b03166117b9565b3480156107f957600080fd5b506105286004803603602081101561081057600080fd5b50356117d2565b34801561082357600080fd5b5061082c61185b565b6040805160ff9092168252519081900360200190f35b34801561084e57600080fd5b506104cf611864565b34801561086357600080fd5b506105286004803603604081101561087a57600080fd5b506001600160a01b03813516906020013561186a565b34801561089c57600080fd5b50610528600480360360208110156108b357600080fd5b50356118bd565b3480156108c657600080fd5b50610528600480360360208110156108dd57600080fd5b503561194e565b3480156108f057600080fd5b50610528600480360360a081101561090757600080fd5b508035906020810135906040810135906060810135906080013561199b565b34801561093257600080fd5b506105ed6004803603604081101561094957600080fd5b506001600160a01b038135169060200135611a6a565b34801561096b57600080fd5b506105ed6004803603602081101561098257600080fd5b50356001600160a01b0316611afd565b34801561099e57600080fd5b506104cf611b12565b3480156109b357600080fd5b506104cf611b18565b3480156109c857600080fd5b506104cf611b1e565b3480156109dd57600080fd5b506105ed611b24565b3480156109f257600080fd5b506109fb611b34565b604080516001600160a01b039092168252519081900360200190f35b348015610a2357600080fd5b506104cf611b43565b348015610a3857600080fd5b5061082c611b49565b348015610a4d57600080fd5b5061052860048036036060811015610a6457600080fd5b5080359060208101359060400135611b4e565b348015610a8357600080fd5b506105ed60048036036020811015610a9a57600080fd5b50356001600160a01b0316611ba4565b348015610ab657600080fd5b506105ed60048036036020811015610acd57600080fd5b50356001600160a01b0316611bb9565b348015610ae957600080fd5b506105ed611bce565b348015610afe57600080fd5b506105ed611bde565b348015610b1357600080fd5b506104cf60048036036020811015610b2a57600080fd5b50356001600160a01b0316611bee565b348015610b4657600080fd5b50610528611c16565b348015610b5b57600080fd5b506104cf611cc8565b348015610b7057600080fd5b506104cf611cce565b348015610b8557600080fd5b506104cf611cd4565b348015610b9a57600080fd5b506104cf60048036036020811015610bb157600080fd5b50356001600160a01b0316611cda565b348015610bcd57600080fd5b5061052860048036036040811015610be457600080fd5b506001600160a01b0381351690602001351515611cec565b348015610c0857600080fd5b506104cf611d5f565b348015610c1d57600080fd5b5061052860048036036060811015610c3457600080fd5b506001600160a01b038135811691602081013582169160409091013516611d65565b348015610c6257600080fd5b506104cf611dec565b348015610c7757600080fd5b5061053f611df2565b348015610c8c57600080fd5b506104cf611e52565b348015610ca157600080fd5b506104cf611e58565b348015610cb657600080fd5b506105ed60048036036040811015610ccd57600080fd5b506001600160a01b038135169060200135611e5e565b348015610cef57600080fd5b506104cf611f47565b348015610d0457600080fd5b506105ed60048036036040811015610d1b57600080fd5b506001600160a01b038135169060200135611f6a565b348015610d3d57600080fd5b506105ed611f81565b348015610d5257600080fd5b50610528611f90565b348015610d6757600080fd5b5061052860048036036060811015610d7e57600080fd5b508035151590602081013590604001356120d0565b348015610d9f57600080fd5b506105ed61213b565b348015610db457600080fd5b5061052860048036036040811015610dcb57600080fd5b508035906020013561214b565b348015610de457600080fd5b50610e0260048036036020811015610dfb57600080fd5b503561229b565b604080519889526001600160a01b039097166020890152878701959095526060870193909352608086019190915260a085015260c0840152151560e083015251908190036101000190f35b348015610e5957600080fd5b5061053f6122ef565b348015610e6e57600080fd5b5061052861237d565b348015610e8357600080fd5b5061052860048036036020811015610e9a57600080fd5b50356001600160a01b03166123cf565b348015610eb657600080fd5b506104cf60048036036020811015610ecd57600080fd5b50356001600160a01b031661243b565b348015610ee957600080fd5b5061052860048036036040811015610f0057600080fd5b508035151590602001356001600160a01b031661244d565b348015610f2457600080fd5b5061052860048036036040811015610f3b57600080fd5b50803590602001356124d1565b348015610f5457600080fd5b5061052860048036036060811015610f6b57600080fd5b50803515159060208101359060400135612524565b348015610f8c57600080fd5b506104cf612591565b348015610fa157600080fd5b5061053f612597565b348015610fb657600080fd5b5061052860048036036040811015610fcd57600080fd5b506001600160a01b03813516906020013515156125f2565b348015610ff157600080fd5b506104cf6004803603602081101561100857600080fd5b5035612665565b34801561101b57600080fd5b506105286004803603602081101561103257600080fd5b50356126b9565b34801561104557600080fd5b506104cf6004803603602081101561105c57600080fd5b50356001600160a01b031661270d565b34801561107857600080fd5b506104cf61271f565b34801561108d57600080fd5b50610528600480360360608110156110a457600080fd5b506001600160a01b038135811691602081013582169160409091013516612725565b3480156110d257600080fd5b506104cf600480360360408110156110e957600080fd5b506001600160a01b03813581169160200135166127ac565b34801561110d57600080fd5b506105286004803603602081101561112457600080fd5b503515156127d7565b34801561113957600080fd5b506105286004803603606081101561115057600080fd5b506001600160a01b03813581169160208101359091169060400135612861565b34801561117c57600080fd5b506104cf6129bd565b34801561119157600080fd5b50610528600480360360208110156111a857600080fd5b50356001600160a01b03166129c3565b3480156111c457600080fd5b50610528600480360360208110156111db57600080fd5b50356001600160a01b0316612a2c565b3480156111f757600080fd5b506104cf612ab3565b34801561120c57600080fd5b506109fb612ae0565b34801561122157600080fd5b506104cf6004803603602081101561123857600080fd5b50356001600160a01b0316612aef565b34801561125457600080fd5b506109fb612b01565b34801561126957600080fd5b506105286004803603602081101561128057600080fd5b50351515612b10565b34801561129557600080fd5b506105ed600480360360208110156112ac57600080fd5b50356001600160a01b0316612b6b565b601f5481565b6112cb33612b6b565b61130a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03929092166000908152603d60209081526040808320805460ff191696151596909617909555603c8152848220839055603b8152848220849055603f8152848220939093559183905291902055565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156113ec5780601f106113c1576101008083540402835291602001916113ec565b820191906000526020600020905b8154815290600101906020018083116113cf57829003601f168201915b5050505050905090565b3360008181526037602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b61146633612b6b565b6114a5576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6114ad612bcb565b60278390556028805460ff60a01b1916600160a01b1790556114cf4283612bf0565b602b556114dc4282612bf0565b602c908155602d80546000818152602e6020526040808220928355602b54600390930192909255925482548452818420600401556027549154835290912060050155505050565b60008261152f83612665565b119392505050565b60255490565b61154633612b6b565b611585576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03166000908152600b60205260409020805460ff1916911515919091179055565b6115b633612b6b565b6115f5576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601d91909155601e55565b6001600160a01b0383166000908152603760209081526040808320338452909152812054600019146116ad576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152603782528381203382529091529190912054611688918490612c4a565b6001600160a01b03851660009081526037602090815260408083203384529091529020555b6116b8848484612ce1565b506001949350505050565b600b6020526000908152604090205460ff1681565b60265460366020527f4cb2b152c1b54ce671907a93c300fd5aa72383a9d4ec19a81e3333632ae92e005461dead60009081526000805160206145fd83398151915254909261174592909161173f9190611739906507326b47ffff1990612e94565b90612e94565b90612b89565b905090565b600481565b61175833612b6b565b611797576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602180546001600160a01b0319166001600160a01b0392909216919091179055565b60025461010090046001600160a01b0390811691161490565b6117db33612b6b565b61181a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b47336108fc61182e606461173f8587612ed6565b6040518115909202916000818181858888f19350505050158015611856573d6000803e3d6000fd5b505050565b60025460ff1690565b60235481565b61187333612b6b565b6118b2576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b611856308383612ce1565b6118c633612b6b565b611905576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60198054600160ff19918216811790925560398054909116909117905561192c4282612bf0565b601a55506021805460ff60a01b1916600160a01b179055426022819055602355565b61195733612b6b565b611996576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601855565b6119a433612b6b565b6119e3576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600c859055600d849055600e839055600f8290556011819055611a1282611a0c85818989612bf0565b90612bf0565b601055601254611a23906005612b89565b6010541115611a635760405162461bcd60e51b81526004018080602001828103825260238152602001806145996023913960400191505060405180910390fd5b5050505050565b3360009081526037602090815260408083206001600160a01b0386168452909152812054611a989083612bf0565b3360008181526037602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b60386020526000908152604090205460ff1681565b603e5481565b60255481565b603a5481565b602854600160a01b900460ff1681565b6021546001600160a01b031681565b60205481565b600781565b611b5733612b6b565b611b96576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602f92909255603055603155565b603d6020526000908152604090205460ff1681565b600a6020526000908152604090205460ff1681565b602154600160a81b900460ff1681565b601554600160a01b900460ff1681565b6026546001600160a01b03821660009081526036602052604081205490916114579190612b89565b611c1f33612b6b565b611c5e576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c60009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611cae57600080fd5b505af1158015611cc2573d6000803e3d6000fd5b50505050565b60275481565b60075481565b60065481565b603b6020526000908152604090205481565b611cf533612b6b565b611d34576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152603860205260409020805460ff1916911515919091179055565b60295481565b611d6e33612b6b565b611dad576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b603380546001600160a01b039485166001600160a01b031991821617909155603480549385169382169390931790925560358054919093169116179055565b602a5481565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156113ec5780601f106113c1576101008083540402835291602001916113ec565b60245481565b60225481565b3360009081526037602090815260408083206001600160a01b0386168452909152812054808310611eb2573360009081526037602090815260408083206001600160a01b0388168452909152812055611ee1565b611ebc8184612e94565b3360009081526037602090815260408083206001600160a01b03891684529091529020555b3360008181526037602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600080611f6442611739603c602354612bf090919063ffffffff16565b91505090565b6000611f77338484612ce1565b5060019392505050565b60395462010000900460ff1681565b611f9933612b6b565b611fd8576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561202357600080fd5b505afa158015612037573d6000803e3d6000fd5b505050506040513d602081101561204d57600080fd5b5051601c546040805163a9059cbb60e01b81523360048201526024810184905290519293506001600160a01b039091169163a9059cbb916044808201926020929091908290030181600087803b1580156120a657600080fd5b505af11580156120ba573d6000803e3d6000fd5b505050506040513d602081101561185657600080fd5b6120d933612b6b565b612118576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60398054931515620100000262ff00001990941693909317909255603a55603e55565b602154600160a01b900460ff1681565b61215433612b6b565b612193576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b4760006121a48361173f8487612ed6565b905060006121b8606461173f846028612ed6565b905060006121cc606461173f856028612ed6565b905060006121e0606461173f866014612ed6565b6033546040519192506001600160a01b03169084156108fc029085906000818181858888f1935050505015801561221b573d6000803e3d6000fd5b506034546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612256573d6000803e3d6000fd5b506035546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612291573d6000803e3d6000fd5b5050505050505050565b6000908152602e60205260409020805460018201546002830154600384015460048501546005860154600687015460079097015495976001600160a01b03909516969395929491939092909160ff90911690565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156123755780601f1061234a57610100808354040283529160200191612375565b820191906000526020600020905b81548152906001019060200180831161235857829003601f168201915b505050505081565b61238633612b6b565b6123c5576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6123cd612f2f565b565b6123d833612b6b565b612417576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b603f6020526000908152604090205481565b61245633612b6b565b612495576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03166000908152600b60209081526040808320805494151560ff199586168117909155600a9092529091208054909216179055565b6124da33612b6b565b612519576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600691909155600755565b61252d33612b6b565b61256c576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60158054931515600160a01b0260ff60a01b1990941693909317909255601f55602055565b602c5481565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156123755780601f1061234a57610100808354040283529160200191612375565b6125fb33612b6b565b61263a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b602654601c546001600160a01b03166000908152603660205260408120549091829161269091612b89565b90506126b261269d6116d8565b61173f6126ab846002612ed6565b8690612ed6565b9392505050565b6126c233612b6b565b612701576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b61270a8161315f565b50565b603c6020526000908152604090205481565b602b5481565b61272e33612b6b565b61276d576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601380546001600160a01b039485166001600160a01b031991821617909155601480549385169382169390931790925560158054919093169116179055565b6001600160a01b03918216600090815260376020908152604080832093909416825291909152205490565b6127e033612b6b565b61281f576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b8015612845576021805460ff60a01b1916600160a01b831515021790554260235561270a565b60218054821515600160a01b0260ff60a01b1990911617905550565b61286a33612b6b565b6128a9576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6000836001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156128f857600080fd5b505afa15801561290c573d6000803e3d6000fd5b505050506040513d602081101561292257600080fd5b505190506001600160a01b03841663a9059cbb84612945606461173f8688612ed6565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561298b57600080fd5b505af115801561299f573d6000803e3d6000fd5b505050506040513d60208110156129b557600080fd5b505050505050565b602d5481565b6129cc33612b6b565b612a0b576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03166000908152600360205260409020805460ff19169055565b612a3533612b6b565b612a74576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60028054610100600160a81b0319166101006001600160a01b03939093169283021790556000908152600360205260409020805460ff19166001179055565b60265461dead600090815260366020526000805160206145fd8339815191525490918291611f6491612b89565b601b546001600160a01b031681565b60406020819052600091825290205481565b6028546001600160a01b031681565b612b1933612b6b565b612b58576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6039805460ff1916911515919091179055565b6001600160a01b031660009081526003602052604090205460ff1690565b60006126b283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613555565b60006029819055602880546001600160a01b0319169055602a55602d80546001019055565b6000828201838110156126b2576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008184841115612cd95760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612c9e578181015183820152602001612c86565b50505050905090810190601f168015612ccb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000612ced84846135ba565b612cf8848484613648565b612d00613821565b15612d0d57612d0d612f2f565b602854600160a01b900460ff1615612d2a57612d2a84848461389b565b6001600160a01b0384166000908152603d602052604090205460ff1615612d5657612d56848484613905565b612d608484613b06565b612d6b848484613bba565b15612d8157612d7b601f5461315f565b60006016555b6000612d9860265484612ed690919063ffffffff16565b603954909150610100900460ff16612de7576001600160a01b038516600090815260366020526040902054612dcd9082612e94565b6001600160a01b0386166000908152603660205260409020555b6000612df38686613ce2565b612dfd5781612e08565b612e08868684613d27565b6001600160a01b038616600090815260366020526040902054909150612e2e9082612bf0565b6001600160a01b03808716600081815260366020526040902092909255602654908816906000805160206145dd83398151915290612e6d908590612b89565b60408051918252519081900360200190a3612e888686614145565b50600195945050505050565b60006126b283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c4a565b600082612ee557506000611457565b82820282848281612ef257fe5b04146126b25760405162461bcd60e51b81526004018080602001828103825260218152602001806145bc6021913960400191505060405180910390fd5b6039805461ff001916610100179055601c54600160a01b900460ff1615612f5557613152565b602554602254602354600092914290810391900383612f7582603c612b89565b90506000612f84826002612ed6565b905062ed4e00841015612f9b576101a49550612fe8565b62ed4e008410612faf576101379550612fe8565b6301e133808410612fc4576101059550612fe8565b6302d1cd408410612fd85760789550612fe8565b630d2868808410612fe857600a95505b60005b8281101561305b576130106298968061173f613007828b612bf0565b60255490612ed6565b6025556130306298968061173f613027828b612bf0565b60065490612ed6565b6006556130506298968061173f613047828b612bf0565b60075490612ed6565b600755600101612feb565b50602554613071906507326b47ffff1990612b89565b60265561308b61308283603c612ed6565b60235490612bf0565b6023556021546040805160016209351760e01b0319815290516001600160a01b039092169163fff6cae99160048082019260009290919082900301818387803b1580156130d757600080fd5b505af11580156130eb573d6000803e3d6000fd5b50506025549150600090506131008288612e94565b9050613110600061dead83612ce1565b50602554604080519182525184917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a250505050505050505b6039805461ff0019169055565b601c805460ff60a01b1916600160a01b179055601d54601e5460009161318491611523565b61319057603054613193565b60005b905060006131b5600261173f60325461173f8688612ed690919063ffffffff16565b905060006131c38483612e94565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106131f757fe5b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561324b57600080fd5b505afa15801561325f573d6000803e3d6000fd5b505050506040513d602081101561327557600080fd5b505181518290600190811061328657fe5b6001600160a01b03928316602091820292909201810191909152601b5460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b83811015613320578181015183820152602001613308565b505050509050019650505050505050600060405180830381600087803b15801561334957600080fd5b505af115801561335d573d6000803e3d6000fd5b5050505060006133768247612e9490919063ffffffff16565b90506000613391613388886002612b89565b60325490612e94565b905060006133a6600261173f8481878d612ed6565b905060006133c38361173f602f5487612ed690919063ffffffff16565b905060006133e08461173f60315488612ed690919063ffffffff16565b6014546040519192506001600160a01b03169083156108fc029084906000818181858888f1935050505015801561341b573d6000803e3d6000fd5b506015546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015613456573d6000803e3d6000fd5b50881561353b57601b546013546040805163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991869160c48082019260609290919082900301818588803b1580156134d257600080fd5b505af11580156134e6573d6000803e3d6000fd5b50505050506040513d60608110156134fd57600080fd5b505060408051848152602081018b905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b5050601c805460ff60a01b19169055505050505050505050565b600081836135a45760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612c9e578181015183820152602001612c86565b5060008385816135b057fe5b0495945050505050565b6001600160a01b0382166000908152600b602052604090205460ff161580156135fc57506001600160a01b0381166000908152600b602052604090205460ff16155b156136445760195460ff16613644576040805162461bcd60e51b815260206004820152600960248201526807374617274537761760bc1b604482015290519081900360640190fd5b5050565b600061365f60265483612ed690919063ffffffff16565b6001600160a01b0385166000908152600b602052604090205490915060ff161580156136a457506001600160a01b0383166000908152600b602052604090205460ff16155b80156136b957506001600160a01b0383163014155b80156136d057506001600160a01b03831661dead14155b80156136ea5750601c546001600160a01b03848116911614155b801561370457506013546001600160a01b03848116911614155b156137845760265460075461371891612ed6565b6001600160a01b03841660009081526036602052604090205461373b9083612bf0565b1115613784576040805162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b604482015290519081900360640190fd5b60265460065461379391612ed6565b811115806137b957506001600160a01b0384166000908152600b602052604090205460ff165b806137dc57506001600160a01b03831660009081526003602052604090205460ff165b611cc2576040805162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015290519081900360640190fd5b602154600090600160a01b900460ff1680156138465750602554678ac7230489e80000115b801561385d5750601c546001600160a01b03163314155b80156138715750603954610100900460ff16155b80156138875750601c54600160a01b900460ff16155b8015611745575050602354603c0142101590565b601c546001600160a01b0384811691161480156138d157506001600160a01b0382166000908152600a602052604090205460ff16155b80156138f657506001600160a01b0382166000908152600b602052604090205460ff16155b156118565761185682826142ef565b600061391c60265483612ed690919063ffffffff16565b601c549091506001600160a01b03858116911614801590613945575060395462010000900460ff165b801561396957506001600160a01b0384166000908152603d602052604090205460ff165b801561398d57506001600160a01b0384166000908152603b60205260409020544211155b80156139b257506001600160a01b0383166000908152600b602052604090205460ff16155b15613a3e576026546001600160a01b0385166000908152603c6020526040902054613a00916139e19190612ed6565b6001600160a01b03861660009081526036602052604090205490612e94565b811115613a3e5760405162461bcd60e51b81526004018080602001828103825260348152602001806145656034913960400191505060405180910390fd5b601c546001600160a01b03858116911614801590613a7457506001600160a01b0384166000908152603f60205260409020544211155b8015613a9957506001600160a01b0383166000908152600b602052604090205460ff16155b15611cc2576026546001600160a01b038516600090815260406020819052902054613ac8916139e19190612ed6565b811115611cc25760405162461bcd60e51b815260040180806020018281038252602f81526020018061461d602f913960400191505060405180910390fd5b601c546001600160a01b03838116911614801590613b3d57506001600160a01b0382166000908152600a602052604090205460ff16155b8015613b6257506001600160a01b0381166000908152600b602052604090205460ff16155b15613b7957601654613b75906001612bf0565b6016555b601c546001600160a01b038381169116141561364457601754613b9d904290612bf0565b6001600160a01b0382166000908152600860205260409020555050565b600080613bd260265484612ed690919063ffffffff16565b601c549091506001600160a01b03163314801590613bfa5750601c54600160a01b900460ff16155b8015613c1f57506001600160a01b0385166000908152600b602052604090205460ff16155b8015613c4457506001600160a01b0384166000908152600b602052604090205460ff16155b8015613c595750601554600160a01b900460ff165b8015613c6757506020548110155b8015613c905750601f5460265430600090815260366020526040902054613c8d91612b89565b10155b8015613ca45750603954610100900460ff16155b8015613cb4575060185460165410155b8015613cd957506001600160a01b0385166000908152600a602052604090205460ff16155b95945050505050565b6001600160a01b0381166000908152600b602052604081205460ff161580156126b2575050506001600160a01b03166000908152600b602052604090205460ff161590565b600080613d41602754601054612bf090919063ffffffff16565b600c54601c54919250906001600160a01b0386811691161415613d8957601154601054613d6d91612bf0565b9150613d86601154600c54612bf090919063ffffffff16565b90505b6000613daa83613da460125488612b8990919063ffffffff16565b90612ed6565b90506000613dc7600f54613da48685612b8990919063ffffffff16565b90506000613de4602754613da48786612b8990919063ffffffff16565b90506000613e01600e54613da48887612b8990919063ffffffff16565b90506000613e13826117398787612e94565b602854909150600160a01b900460ff1615613e4d57613e49613e4060265485612b8990919063ffffffff16565b602a5490612bf0565b602a555b6001600160a01b038b1660009081526038602052604090205460ff168015613e8c57506001600160a01b038b1660009081526008602052604090205442115b8015613e9a575060395460ff165b80613eed57506001600160a01b038a1660009081526038602052604090205460ff168015613edf57506001600160a01b038b1660009081526008602052604090205442115b8015613eed575060395460ff165b80613ef9575042601a54115b15613f2e57613f0e6063613da48b6064612b89565b9450613f1b856000612ed6565b9350613f28856000612ed6565b91508490505b6000613f4560265486612b8990919063ffffffff16565b1115613fe557613f8a613f69600f54613da46012548d612b8990919063ffffffff16565b61dead60005260366020526000805160206145fd8339815191525490612bf0565b61dead600081905260366020526000805160206145fd833981519152919091556026546001600160a01b038d16906000805160206145dd83398151915290613fd3908890612b89565b60408051918252519081900360200190a35b6000613ffc60265484612b8990919063ffffffff16565b111561409a57614041614020600e54613da46012548d612b8990919063ffffffff16565b6015546001600160a01b031660009081526036602052604090205490612bf0565b601580546001600160a01b0390811660009081526036602052604090209290925554602654908216918d16906000805160206145dd83398151915290614088908690612b89565b60408051918252519081900360200190a35b6140df6140c96140bb602754611a0c8a600d54612bf090919063ffffffff16565b601254613da4908d90612b89565b3060009081526036602052604090205490612bf0565b306000818152603660205260409020919091556026546001600160a01b038d16906000805160206145dd8339815191529061411b908590612b89565b60408051918252519081900360200190a36141368986612e94565b9b9a5050505050505050505050565b61414e826144f5565b801561417357506001600160a01b0382166000908152600a602052604090205460ff16155b8015614181575060395460ff165b806141d75750601c546001600160a01b0383811691161480156141a6575060395460ff165b80156141cb57506001600160a01b0382166000908152600a602052604090205460ff16155b80156141d75750333214155b806141e3575042601a54115b1561420c576001600160a01b0382166000908152603860205260409020805460ff191660011790555b614215816144f5565b801561423a57506001600160a01b0381166000908152600a602052604090205460ff16155b801561425f57506001600160a01b0381166000908152600b602052604090205460ff16155b801561426d575060395460ff165b806142c35750601c546001600160a01b0383811691161480156142a957506001600160a01b0382166000908152600a602052604090205460ff16155b80156142b55750333214155b80156142c3575060395460ff165b15613644576001600160a01b0381166000908152603860205260409020805460ff191660011790555050565b602854600160a01b900460ff16801561430a5750602b544210155b80156143185750602c544211155b156143275761432782826144fb565b602854600160a01b900460ff1680156143415750602c5442115b15613644576028805460ff60a01b191690556027546010546000916143729161436991612bf0565b60125490612e94565b9050600061439182613da4601254602954612b8990919063ffffffff16565b6026546028546001600160a01b031660009081526036602052604090205491925082916143bd91612b89565b1061440057602854602a546143df9130916001600160a01b0390911690612ce1565b50602d546000908152602e60205260409020600701805460ff191660011790555b602a8054602d80546000908152602e60209081526040808320600601949094556028805484548452858420600190810180546001600160a01b0319166001600160a01b03938416179055602954955485528685206002019590955560278490559554815487168452603c835285842055549094168152603d9093529120805460ff19169091179055603a54614496904290612bf0565b6028546001600160a01b03166000908152603b6020526040902055603e546144bf904290612bf0565b602880546001600160a01b039081166000908152603f602090815260408083209590955592549091168152908290522055505050565b3b151590565b602c5460009061450c90603c612e94565b90506029548210611856576029829055602880546001600160a01b0319166001600160a01b0385161790554281118015906145495750602c544211155b1561185657602c5461455c906078612bf0565b602c5550505056fe436f6f6c646f776e206e6f7420726561636820696e206f7264657220746f2073656c6c20426967204275792057696e6e696e6773746f74616c206665652063616e6e6f7420626520686967686572207468616e20323025536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef202e82df30f29e4708f187c68a4900411ec803851f15b3c4a5ff37dec9f0f5cf436f6f6c646f776e206e6f7420726561636820696e206f7264657220746f2073656c6c204269676765737420427579a26469706673582212209c54d277d3d00869088cffe88d56c6b794c9b6408cef970eb1e9d3f263160d1164736f6c63430007060033

Deployed Bytecode Sourcemap

10266:25394:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12045:53;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;33822:393;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33822:393:0;;;;;-1:-1:-1;;;;;33822:393:0;;;;;;;;;;;;;;;:::i;:::-;;7951:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35247:220;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;35247:220:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;22588:544;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22588:544:0;;;;;;;;;;;;:::i;16128:136::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16128:136:0;;;;;;;:::i;15385:88::-;;;;;;;;;;;;;:::i;32700:119::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32700:119:0;;;;;;;;-1:-1:-1;;;;;32700:119:0;;:::i;15746:159::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15746:159:0;;;;;;;:::i;18952:388::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18952:388:0;;;;;;;;;;;;;;;;;:::i;11142:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11142:44:0;-1:-1:-1;;;;;11142:44:0;;:::i;17102:145::-;;;;;;;;;;;;;:::i;10458:36::-;;;;;;;;;;;;;:::i;16736:88::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16736:88:0;-1:-1:-1;;;;;16736:88:0;;:::i;7346:87::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7346:87:0;-1:-1:-1;;;;;7346:87:0;;:::i;16583:147::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16583:147:0;;:::i;8101:67::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12304:31;;;;;;;;;;;;;:::i;16455:122::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16455:122:0;;;;;;;;:::i;31410:295::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31410:295:0;;:::i;16899:80::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16899:80:0;;:::i;28327:467::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28327:467:0;;;;;;;;;;;;;;;;;;;;;;:::i;34932:307::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;34932:307:0;;;;;;;;:::i;13440:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13440:37:0;-1:-1:-1;;;;;13440:37:0;;:::i;13895:43::-;;;;;;;;;;;;;:::i;12385:27::-;;;;;;;;;;;;;:::i;13652:49::-;;;;;;;;;;;;;:::i;12523:22::-;;;;;;;;;;;;;:::i;12164:25::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;12164:25:0;;;;;;;;;;;;;;12105:52;;;;;;;;;;;;;:::i;10558:39::-;;;;;;;;;;;;;:::i;32468:224::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32468:224:0;;;;;;;;;;;;:::i;13832:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13832:56:0;-1:-1:-1;;;;;13832:56:0;;:::i;11091:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11091:44:0;-1:-1:-1;;;;;11091:44:0;;:::i;12226:29::-;;;;;;;;;;;;;:::i;11585:30::-;;;;;;;;;;;;;:::i;15479:126::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15479:126:0;-1:-1:-1;;;;;15479:126:0;;:::i;16830:63::-;;;;;;;;;;;;;:::i;12454:28::-;;;;;;;;;;;;;:::i;10925:58::-;;;;;;;;;;;;;:::i;10863:55::-;;;;;;;;;;;;;:::i;13708:53::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13708:53:0;-1:-1:-1;;;;;13708:53:0;;:::i;16270:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16270:107:0;;;;;;;;;;:::i;12552:25::-;;;;;;;;;;;;;:::i;32252:208::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;32252:208:0;;;;;;;;;;;;;;;;;;;:::i;12584:29::-;;;;;;;;;;;;;:::i;8024:71::-;;;;;;;;;;;;;:::i;12342:36::-;;;;;;;;;;;;;:::i;12262:35::-;;;;;;;;;;;;;:::i;34470:454::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;34470:454:0;;;;;;;;:::i;29526:184::-;;;;;;;;;;;;;:::i;15251:128::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15251:128:0;;;;;;;;:::i;13611:34::-;;;;;;;;;;;;;:::i;30750:166::-;;;;;;;;;;;;;:::i;33575:239::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33575:239:0;;;;;;;;;;;;;;:::i;12196:23::-;;;;;;;;;;;;;:::i;30924:478::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30924:478:0;;;;;;;:::i;33002:565::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33002:565:0;;:::i;:::-;;;;;;;-1:-1:-1;;;;;33002:565:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10422:29;;;;;;;;;;;;;:::i;17253:60::-;;;;;;;;;;;;;:::i;7173:79::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7173:79:0;-1:-1:-1;;;;;7173:79:0;;:::i;13945:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13945:49:0;-1:-1:-1;;;;;13945:49:0;;:::i;32827:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32827:167:0;;;;;;;;-1:-1:-1;;;;;32827:167:0;;:::i;30377:142::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30377:142:0;;;;;;;:::i;30527:215::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30527:215:0;;;;;;;;;;;;;;:::i;12653:24::-;;;;;;;;;;;;;:::i;10382:33::-;;;;;;;;;;;;;:::i;16985:111::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16985:111:0;;;;;;;;;;:::i;34223:239::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34223:239:0;;:::i;15911:78::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15911:78:0;;:::i;13768:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13768:57:0;-1:-1:-1;;;;;13768:57:0;;:::i;12620:26::-;;;;;;;;;;;;;:::i;31975:269::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;31975:269:0;;;;;;;;;;;;;;;;;;;:::i;15108:137::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15108:137:0;;;;;;;;;;:::i;30179:190::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30179:190:0;;;;:::i;31713:254::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;31713:254:0;;;;;;;;;;;;;;;;;:::i;12684:26::-;;;;;;;;;;;;;:::i;7258:82::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7258:82:0;-1:-1:-1;;;;;7258:82:0;;:::i;7536:108::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7536:108:0;-1:-1:-1;;;;;7536:108:0;;:::i;15611:129::-;;;;;;;;;;;;;:::i;11796:21::-;;;;;;;;;;;;;:::i;14001:55::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14001:55:0;-1:-1:-1;;;;;14001:55:0;;:::i;12489:27::-;;;;;;;;;;;;;:::i;16383:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16383:66:0;;;;:::i;7439:91::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7439:91:0;-1:-1:-1;;;;;7439:91:0;;:::i;12045:53::-;;;;:::o;33822:393::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;33957:34:0;;;::::1;;::::0;;;:24:::1;:34;::::0;;;;;;;:45;;-1:-1:-1;;33957:45:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;34013:22:::1;:32:::0;;;;;:42;;;34066:21:::1;:31:::0;;;;;:43;;;34120:14:::1;:24:::0;;;;;:36;;;;34167:30;;;;;;;:40;33822:393::o;7951:67::-;8011:5;8004:12;;;;;;;;-1:-1:-1;;8004:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7988:13;;8004:12;;8011:5;;8004:12;;8011:5;8004:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7951:67;:::o;35247:220::-;35357:10;35323:4;35339:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;35339:38:0;;;;;;;;;;;:46;;;35401:36;;;;;;;35323:4;;35339:38;;35357:10;;35401:36;;;;;;;;-1:-1:-1;35455:4:0;35247:220;;;;;:::o;22588:544::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;22689:17:::1;:15;:17::i;:::-;22717:9;:16:::0;;;22744:10:::1;:17:::0;;-1:-1:-1;;;;22744:17:0::1;-1:-1:-1::0;;;22744:17:0::1;::::0;;22786:27:::1;:15;22806:6:::0;22786:19:::1;:27::i;:::-;22772:11;:41:::0;22836:28:::1;:15;22856:7:::0;22836:19:::1;:28::i;:::-;22824:9;:40:::0;;;22920:11:::1;::::0;;22875:30:::1;::::0;;;:17:::1;:30;::::0;;;;;:56;;;22987:11:::1;::::0;22942:42:::1;::::0;;::::1;:56:::0;;;;23052:9;;23027:11;;23009:30;;;;;:40:::1;;:52:::0;23115:9:::1;::::0;23090:11;;23072:30;;;;;:40:::1;;:52:::0;-1:-1:-1;;;22588:544:0:o;16128:136::-;16208:4;16255:6;16223:29;16243:8;16223:19;:29::i;:::-;:38;;16128:136;-1:-1:-1;;;16128:136:0:o;15385:88::-;15458:12;;15385:88;:::o;32700:119::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;32782:19:0::1;;::::0;;;:12:::1;:19;::::0;;;;:29;;-1:-1:-1;;32782:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;32700:119::o;15746:159::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;15835:15:::1;:25:::0;;;;15862:26:::1;:41:::0;15746:159::o;18952:388::-;-1:-1:-1;;;;;19063:23:0;;19042:4;19063:23;;;:17;:23;;;;;;;;19087:10;19063:35;;;;;;;;-1:-1:-1;;19063:50:0;19059:215;;19168:104;;;;;;;;;;;-1:-1:-1;;;19168:104:0;;;;;;;;-1:-1:-1;;;;;19168:23:0;;-1:-1:-1;19168:23:0;;;:17;:23;;;;;19210:10;19168:67;;;;;;;;;;:104;;19240:5;;19168:71;:104::i;:::-;-1:-1:-1;;;;;19130:23:0;;;;;;:17;:23;;;;;;;;19154:10;19130:35;;;;;;;:142;19059:215;19284:26;19294:4;19300:2;19304:5;19284:9;:26::i;:::-;-1:-1:-1;19328:4:0;;18952:388;-1:-1:-1;;;;18952:388:0:o;11142:44::-;;;;;;;;;;;;;;;:::o;17102:145::-;17232:12;;17204:9;:21;;;;13259:42;17155:7;17183:15;;;-1:-1:-1;;;;;;;;;;;17183:15:0;17155:7;;17171:74;;17232:12;;17172:54;;17204:21;17172:27;;-1:-1:-1;;10724:54:0;17172:10;:27::i;:::-;:31;;:54::i;:::-;17171:60;;:74::i;:::-;17165:80;;17102:145;:::o;10458:36::-;10493:1;10458:36;:::o;16736:88::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;16791:12:::1;:30:::0;;-1:-1:-1;;;;;;16791:30:0::1;-1:-1:-1::0;;;;;16791:30:0;;;::::1;::::0;;;::::1;::::0;;16736:88::o;7346:87::-;7426:5;;;;;-1:-1:-1;;;;;7426:5:0;;;7415:16;;;;7346:87::o;16583:147::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;16651:21:::1;16682:10;16674:53;16703:23;16722:3;16703:14;16651:21:::0;16714:2;16703:10:::1;:14::i;:23::-;16674:53;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;7164:1;16583:147:::0;:::o;8101:67::-;8157:9;;;;8101:67;:::o;12304:31::-;;;;:::o;16455:122::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;16532:43:::1;16550:4;16557:9;16568:6;16532:9;:43::i;31410:295::-:0;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;31481:9:::1;:16:::0;;31493:4:::1;-1:-1:-1::0;;31481:16:0;;::::1;::::0;::::1;::::0;;;31508:5:::1;:12:::0;;;;::::1;::::0;;::::1;::::0;;31545:29:::1;:15;31565:8:::0;31545:19:::1;:29::i;:::-;31531:11;:43:::0;-1:-1:-1;31585:11:0::1;:18:::0;;-1:-1:-1;;;;31585:18:0::1;-1:-1:-1::0;;;31585:18:0::1;::::0;;31637:15:::1;31614:20;:38:::0;;;31663:16:::1;:34:::0;31410:295::o;16899:80::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;16960:8:::1;:17:::0;16899:80::o;28327:467::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;28469:12:::1;:25:::0;;;28505:12:::1;:25:::0;;;28541:10:::1;:18:::0;;;28570:7:::1;:15:::0;;;28596:11:::1;:26:::0;;;28644:48:::1;28580:5:::0;28644:37:::1;28554:5:::0;28644:37;28484:10;28520;28644:14:::1;:26::i;:::-;:30:::0;::::1;:37::i;:48::-;28633:8;:59:::0;28724:14:::1;::::0;:21:::1;::::0;28743:1:::1;28724:18;:21::i;:::-;28711:8;;:35;;28703:83;;;;-1:-1:-1::0;;;28703:83:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28327:467:::0;;;;;:::o;34932:307::-;35090:10;35014:4;35072:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;35072:38:0;;;;;;;;;;:54;;35115:10;35072:42;:54::i;:::-;35049:10;35031:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;35031:38:0;;;;;;;;;;;;:95;;;35142:67;;;;;;35031:38;;35142:67;;;;;;;;;;;-1:-1:-1;35227:4:0;34932:307;;;;:::o;13440:37::-;;;;;;;;;;;;;;;:::o;13895:43::-;;;;:::o;12385:27::-;;;;:::o;13652:49::-;;;;:::o;12523:22::-;;;-1:-1:-1;;;12523:22:0;;;;;:::o;12164:25::-;;;-1:-1:-1;;;;;12164:25:0;;:::o;12105:52::-;;;;:::o;10558:39::-;10596:1;10558:39;:::o;32468:224::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;32577:17:::1;:29:::0;;;;32617:17:::1;:29:::0;32657:15:::1;:27:::0;32468:224::o;13832:56::-;;;;;;;;;;;;;;;:::o;11091:44::-;;;;;;;;;;;;;;;:::o;12226:29::-;;;-1:-1:-1;;;12226:29:0;;;;;:::o;11585:30::-;;;-1:-1:-1;;;11585:30:0;;;;;:::o;15479:126::-;15590:12;;-1:-1:-1;;;;;15566:19:0;;15548:7;15566:19;;;:9;:19;;;;;;15548:7;;15566:37;;:19;:23;:37::i;16830:63::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;16879:4:::1;;;;;;;;;-1:-1:-1::0;;;;;16879:4:0::1;-1:-1:-1::0;;;;;16873:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16830:63::o:0;12454:28::-;;;;:::o;10925:58::-;;;;:::o;10863:55::-;;;;:::o;13708:53::-;;;;;;;;;;;;;:::o;16270:107::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16346:18:0;;;::::1;;::::0;;;:5:::1;:18;::::0;;;;:29;;-1:-1:-1;;16346:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16270:107::o;12552:25::-;;;;:::o;32252:208::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;32361:14:::1;:23:::0;;-1:-1:-1;;;;;32361:23:0;;::::1;-1:-1:-1::0;;;;;;32361:23:0;;::::1;;::::0;;;32395:14:::1;:23:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;32429:14:::1;:23:::0;;;;;::::1;::::0;::::1;;::::0;;32252:208::o;12584:29::-;;;;:::o;8024:71::-;8086:7;8079:14;;;;;;;;-1:-1:-1;;8079:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8063:13;;8079:14;;8086:7;;8079:14;;8086:7;8079:14;;;;;;;;;;;;;;;;;;;;;;;;12342:36;;;;:::o;12262:35::-;;;;:::o;34470:454::-;34611:10;34557:4;34593:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;34593:38:0;;;;;;;;;;34646:27;;;34642:169;;34695:10;34718:1;34677:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;34677:38:0;;;;;;;;;:42;34642:169;;;34780:29;:8;34793:15;34780:12;:29::i;:::-;34757:10;34739:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;34739:38:0;;;;;;;;;:70;34642:169;34835:10;34855:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;34826:68:0;;34855:38;;;;;;;;;;;34826:68;;;;;;;;;34835:10;34826:68;;;;;;;;;;;-1:-1:-1;34912:4:0;;34470:454;-1:-1:-1;;;34470:454:0:o;29526:184::-;29582:7;29602:16;29621:55;29660:15;29622:32;29643:10;29622:16;;:20;;:32;;;;:::i;29621:55::-;29602:74;-1:-1:-1;;29526:184:0;:::o;15251:128::-;15323:4;15331:32;15341:10;15353:2;15357:5;15331:9;:32::i;:::-;-1:-1:-1;15372:4:0;;15251:128;-1:-1:-1;;;15251:128:0:o;13611:34::-;;;;;;;;;:::o;30750:166::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;30828:4:::1;::::0;30821:37:::1;::::0;;-1:-1:-1;;;30821:37:0;;30852:4:::1;30821:37;::::0;::::1;::::0;;;30806:12:::1;::::0;-1:-1:-1;;;;;30828:4:0::1;::::0;30821:22:::1;::::0;:37;;;;;::::1;::::0;;;;;;;;30828:4;30821:37;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;30821:37:0;30876:4:::1;::::0;30869:39:::1;::::0;;-1:-1:-1;;;30869:39:0;;30891:10:::1;30869:39;::::0;::::1;::::0;;;;;;;;;30821:37;;-1:-1:-1;;;;;;30876:4:0;;::::1;::::0;30869:21:::1;::::0;:39;;;;;30821:37:::1;::::0;30869:39;;;;;;;;30876:4:::1;::::0;30869:39;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;33575:239:::0;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;33691:15:::1;:25:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;33691:25:0;;::::1;::::0;;;::::1;::::0;;;33727:24:::1;:37:::0;33775:18:::1;:31:::0;33575:239::o;12196:23::-;;;-1:-1:-1;;;12196:23:0;;;;;:::o;30924:478::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;31016:21:::1;31000:13;31065:23;31084:3:::0;31065:14:::1;31016:21:::0;31075:3;31065:9:::1;:14::i;:23::-;31048:40:::0;-1:-1:-1;31099:14:0::1;31116:23;31135:3;31116:14;31048:40:::0;31127:2:::1;31116:10;:14::i;:23::-;31099:40:::0;-1:-1:-1;31150:14:0::1;31167:23;31186:3;31167:14;:6:::0;31178:2:::1;31167:10;:14::i;:23::-;31150:40:::0;-1:-1:-1;31201:14:0::1;31218:23;31237:3;31218:14;:6:::0;31229:2:::1;31218:10;:14::i;:23::-;31260:14;::::0;31252:40:::1;::::0;31201;;-1:-1:-1;;;;;;31260:14:0::1;::::0;31252:40;::::1;;;::::0;31285:6;;31260:14:::1;31252:40:::0;31260:14;31252:40;31285:6;31260:14;31252:40;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;31311:14:0::1;::::0;31303:40:::1;::::0;-1:-1:-1;;;;;31311:14:0;;::::1;::::0;31303:40;::::1;;;::::0;31336:6;;31311:14:::1;31303:40:::0;31311:14;31303:40;31336:6;31311:14;31303:40;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;31362:14:0::1;::::0;31354:40:::1;::::0;-1:-1:-1;;;;;31362:14:0;;::::1;::::0;31354:40;::::1;;;::::0;31387:6;;31362:14:::1;31354:40:::0;31362:14;31354:40;31387:6;31362:14;31354:40;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;7164:1;;;;;30924:478:::0;;:::o;33002:565::-;33081:7;33241:30;;;:17;:30;;;;;33303:19;;33337:14;;;;33366:18;;;;33399:19;;;;33433:17;;;;33465;;;;33497:22;;;;33534:14;;;;;33303:19;;-1:-1:-1;;;;;33337:14:0;;;;33366:18;;33399:19;;33433:17;;33465;;33497:22;;33534:14;;;;;33002:565::o;10422:29::-;;;;;;;;;;;;;;;-1:-1:-1;;10422:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17253:60::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;17302:8:::1;:6;:8::i;:::-;17253:60::o:0;7173:79::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7224:19:0::1;;::::0;;;:14:::1;:19;::::0;;;;:26;;-1:-1:-1;;7224:26:0::1;7246:4;7224:26;::::0;;7173:79::o;13945:49::-;;;;;;;;;;;;;:::o;32827:167::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;32910:22:0::1;;::::0;;;:12:::1;:22;::::0;;;;;;;:33;;;::::1;;-1:-1:-1::0;;32910:33:0;;::::1;::::0;::::1;::::0;;;32954:11:::1;:21:::0;;;;;;:32;;;;::::1;;::::0;;32827:167::o;30377:142::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;30457:12:::1;:18:::0;;;;30486:15:::1;:25:::0;30377:142::o;30527:215::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;30639:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;30639:22:0::1;-1:-1:-1::0;;;;30639:22:0;;::::1;::::0;;;::::1;::::0;;;30672:13:::1;:23:::0;30706:15:::1;:28:::0;30527:215::o;12653:24::-;;;;:::o;10382:33::-;;;;;;;;;;;;;;;-1:-1:-1;;10382:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16985:111;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17062:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;17062:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16985:111::o;34223:239::-;34358:12;;34348:4;;-1:-1:-1;;;;;34348:4:0;34291:7;34338:15;;;:9;:15;;;;;;34291:7;;;;34338:33;;:19;:33::i;:::-;34311:60;;34389:65;34431:22;:20;:22::i;:::-;34389:37;34402:23;:16;34423:1;34402:20;:23::i;:::-;34389:8;;:12;:37::i;:65::-;34382:72;34223:239;-1:-1:-1;;;34223:239:0:o;15911:78::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;15971:16:::1;15980:6;15971:8;:16::i;:::-;15911:78:::0;:::o;13768:57::-;;;;;;;;;;;;;:::o;12620:26::-;;;;:::o;31975:269::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;32110:14:::1;:32:::0;;-1:-1:-1;;;;;32110:32:0;;::::1;-1:-1:-1::0;;;;;;32110:32:0;;::::1;;::::0;;;32153:17:::1;:38:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;32202:15:::1;:34:::0;;;;;::::1;::::0;::::1;;::::0;;31975:269::o;15108:137::-;-1:-1:-1;;;;;15209:25:0;;;15192:7;15209:25;;;:17;:25;;;;;;;;:34;;;;;;;;;;;;;15108:137::o;30179:190::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;30251:8:::1;30248:114;;;30262:11;:22:::0;;-1:-1:-1;;;;30262:22:0::1;-1:-1:-1::0;;;30262:22:0;::::1;;;;::::0;;30305:15:::1;30286:16;:34:::0;30248:114:::1;;;30338:11;:22:::0;;;::::1;;-1:-1:-1::0;;;30338:22:0::1;-1:-1:-1::0;;;;30338:22:0;;::::1;;::::0;;30179:190;:::o;31713:254::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;31824:12:::1;31846:8;-1:-1:-1::0;;;;;31839:26:0::1;;31874:4;31839:41;;;;;;;;;;;;;-1:-1:-1::0;;;;;31839:41:0::1;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;31839:41:0;;-1:-1:-1;;;;;;31891:25:0;::::1;;31917:9:::0;31928:30:::1;31954:3;31928:21;31839:41:::0;31937:11;31928:8:::1;:21::i;:30::-;31891:68;;;;;;;;;;;;;-1:-1:-1::0;;;;;31891:68:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;;;;;31713:254:0:o;12684:26::-;;;;:::o;7258:82::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7311:19:0::1;7333:5;7311:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;7311:27:0::1;::::0;;7258:82::o;7536:108::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;7603:5:::1;:11:::0;;-1:-1:-1;;;;;;7603:11:0::1;;-1:-1:-1::0;;;;;7603:11:0;;;::::1;::::0;;::::1;;::::0;;-1:-1:-1;7616:19:0;;;:14:::1;:19;::::0;;;;:26;;-1:-1:-1;;7616:26:0::1;-1:-1:-1::0;7616:26:0::1;::::0;;7536:108::o;15611:129::-;15707:12;;13259:42;15658:7;15687:15;;;:9;:15;;-1:-1:-1;;;;;;;;;;;15687:15:0;15658:7;;;;15687:33;;:19;:33::i;11796:21::-;;;-1:-1:-1;;;;;11796:21:0;;:::o;14001:55::-;;;;;;;;;;;;;;:::o;12489:27::-;;;-1:-1:-1;;;;;12489:27:0;;:::o;16383:66::-;7122:24;7135:10;7122:12;:24::i;:::-;7114:48;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;-1:-1:-1;;;7114:48:0;;;;;;;;;;;;;;;16434:5:::1;:13:::0;;-1:-1:-1;;16434:13:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16383:66::o;7439:91::-;-1:-1:-1;;;;;7509:19:0;7495:4;7509:19;;;:14;:19;;;;;;;;;7439:91::o;1945:132::-;2003:7;2030:39;2034:1;2037;2030:39;;;;;;;;;;;;;;;;;:3;:39::i;22392:188::-;22460:1;22439:10;:23;;;22473:12;:25;;-1:-1:-1;;;;;;22473:25:0;;;22509:14;:27;22547:11;:25;;22473;22547;;;22392:188::o;1172:179::-;1230:7;1262:5;;;1286:6;;;;1278:46;;;;;-1:-1:-1;;;1278:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1503:190;1589:7;1625:12;1617:6;;;;1609:29;;;;-1:-1:-1;;;1609:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1661:5:0;;;1503:190::o;19348:998::-;19436:4;19453:33;19468:6;19476:9;19453:14;:33::i;:::-;19497:38;19509:6;19517:9;19528:6;19497:11;:38::i;:::-;19549:14;:12;:14::i;:::-;19546:29;;;19565:8;:6;:8::i;:::-;19588:10;;-1:-1:-1;;;19588:10:0;;;;19585:66;;;19600:49;19623:6;19631:9;19642:6;19600:22;:49::i;:::-;-1:-1:-1;;;;;19664:32:0;;;;;;:24;:32;;;;;;;;19661:79;;;19698:40;19712:6;19720:9;19731:6;19698:13;:40::i;:::-;19750:35;19767:6;19775:9;19750:16;:35::i;:::-;19799:41;19814:6;19822:9;19833:6;19799:14;:41::i;:::-;19796:86;;;19842:23;19851:13;;19842:8;:23::i;:::-;19879:1;19867:9;:13;19796:86;19892:15;19910:24;19921:12;;19910:6;:10;;:24;;;;:::i;:::-;19949:8;;19892:42;;-1:-1:-1;19949:8:0;;;;;19945:66;;-1:-1:-1;;;;;19979:17:0;;;;;;:9;:17;;;;;;:30;;20001:7;19979:21;:30::i;:::-;-1:-1:-1;;;;;19959:17:0;;;;;;:9;:17;;;;;:50;19945:66;20021:23;20047:32;20061:6;20069:9;20047:13;:32::i;:::-;:80;;20120:7;20047:80;;;20082:35;20090:6;20098:9;20109:7;20082;:35::i;:::-;-1:-1:-1;;;;;20161:20:0;;;;;;:9;:20;;;;;;20021:106;;-1:-1:-1;20161:41:0;;20021:106;20161:24;:41::i;:::-;-1:-1:-1;;;;;20138:20:0;;;;;;;:9;:20;;;;;:64;;;;20264:12;;20218:60;;;;-1:-1:-1;;;;;;;;;;;20218:60:0;20244:33;;:15;;:19;:33::i;:::-;20218:60;;;;;;;;;;;;;;;20289:27;20298:6;20306:9;20289:8;:27::i;:::-;-1:-1:-1;20334:4:0;;19348:998;-1:-1:-1;;;;;19348:998:0:o;1359:136::-;1417:7;1444:43;1448:1;1451;1444:43;;;;;;;;;;;;;;;;;:3;:43::i;1701:236::-;1759:7;1783:6;1779:37;;-1:-1:-1;1813:1:0;1806:8;;1779:37;1838:5;;;1842:1;1838;:5;:1;1862:5;;;;;:10;1854:56;;;;-1:-1:-1;;;1854:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17456:1488;13566:8;:15;;-1:-1:-1;;13566:15:0;;;;;17506:6:::1;::::0;-1:-1:-1;;;17506:6:0;::::1;13566:15:::0;17506:6:::1;17503:18;;;17514:7;;17503:18;17584:12;::::0;17653:20:::1;::::0;17722:16:::1;::::0;17531:18:::1;::::0;17584:12;17635:15:::1;:38:::0;;::::1;::::0;17704:34;::::1;17531:18:::0;17765:25:::1;17704:34:::0;17779:10:::1;17765:13;:25::i;:::-;17749:41:::0;-1:-1:-1;17801:13:0::1;17817:12;17749:41:::0;17827:1:::1;17817:9;:12::i;:::-;17801:28;;17865:8;17844:17;:30;17840:350;;;17890:3;17877:16;;17840:350;;;17936:8;17914:17;:31;17910:280;;17960:3;17947:16;;17910:280;;;18006:8;17984:17;:31;17980:210;;18030:3;18017:16;;17980:210;;;18076:20;18054:17;:43;18050:140;;18112:3;18099:16;;18050:140;;;18158:12;18136:17;:35;18132:58;;18186:2;18173:15;;18132:58;18205:9;18200:362;18224:5;18220:1;:9;18200:362;;;18266:76;18324:17:::0;18266:53:::1;18283:35;18324:17:::0;18307:10;18283:23:::1;:35::i;:::-;18266:12;::::0;;:16:::1;:53::i;:76::-;18251:12;:91:::0;18372:76:::1;18430:17:::0;18372:53:::1;18389:35;18430:17:::0;18413:10;18389:23:::1;:35::i;:::-;18372:12;::::0;;:16:::1;:53::i;:76::-;18357:12;:91:::0;18481:79:::1;18542:17:::0;18481:56:::1;18501:35;18542:17:::0;18525:10;18501:23:::1;:35::i;:::-;18481:15;::::0;;:19:::1;:56::i;:79::-;18463:15;:97:::0;18231:3:::1;;18200:362;;;-1:-1:-1::0;18606:12:0::1;::::0;18595:24:::1;::::0;-1:-1:-1;;10724:54:0;18595:10:::1;:24::i;:::-;18580:12;:39:::0;18649:43:::1;18670:21;:5:::0;18680:10:::1;18670:9;:21::i;:::-;18649:16;::::0;;:20:::1;:43::i;:::-;18630:16;:62:::0;18703:12:::1;::::0;:19:::1;::::0;;-1:-1:-1;;;;;;18703:19:0;;;;-1:-1:-1;;;;;18703:12:0;;::::1;::::0;:17:::1;::::0;:19:::1;::::0;;::::1;::::0;:12:::1;::::0;:19;;;;;;;;:12;;:19;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;18756:12:0::1;::::0;;-1:-1:-1;18733:20:0::1;::::0;-1:-1:-1;18800:31:0::1;18756:12:::0;18817:13;18800:16:::1;:31::i;:::-;18779:52;;18842:48;18860:1;13259:42;18879:10;18842:9;:48::i;:::-;-1:-1:-1::0;18923:12:0::1;::::0;18906:30:::1;::::0;;;;;;18916:5;;18906:30:::1;::::0;;;;;::::1;::::0;;::::1;13583:1;;;;;;;;;13586:8:::0;:16;;-1:-1:-1;;13586:16:0;;;17456:1488::o;26746:1573::-;11906:6;:13;;-1:-1:-1;;;;11906:13:0;-1:-1:-1;;;11906:13:0;;;26855:15:::1;::::0;26872:26:::1;::::0;11906:13;;26839:60:::1;::::0;:15:::1;:60::i;:::-;:84;;26906:17;;26839:84;;;26902:1;26839:84;26809:114;;26934:23;26960:51;27009:1;26960:44;26996:7;;26960:31;26971:19;26960:6;:10;;:31;;;;:::i;:51::-;26934:77:::0;-1:-1:-1;27022:20:0::1;27045:27;:6:::0;26934:77;27045:10:::1;:27::i;:::-;27107:16;::::0;;27121:1:::1;27107:16:::0;;;;;::::1;::::0;;27022:50;;-1:-1:-1;27083:21:0::1;::::0;27107:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;27107:16:0::1;27083:40;;27152:4;27134;27139:1;27134:7;;;;;;;;-1:-1:-1::0;;;;;27134:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;27178:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;27178:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;27134:7;;27178:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;27178:13:0;27168:7;;:4;;27173:1:::1;::::0;27168:7;::::1;;;;;-1:-1:-1::0;;;;;27168:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;27258:6:::1;::::0;:179:::1;::::0;-1:-1:-1;;;27258:179:0;;::::1;::::0;::::1;::::0;;;27202:21:::1;27258:179:::0;;;;;;27400:4:::1;27258:179:::0;;;;;;27420:15:::1;27258:179:::0;;;;;;;;;;;;;;;;;;;;;27226:21:::1;::::0;27258:6;;;::::1;::::0;:57:::1;::::0;27330:12;;27202:21;;27373:4;;27258:179;;;;;;;;;;::::1;::::0;::::1;::::0;;;27202:21;27258:179:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;27448:23;27474:40;27500:13;27474:21;:25;;:40;;;;:::i;:::-;27448:66:::0;-1:-1:-1;27525:20:0::1;27548:39;27560:26;:19:::0;27584:1:::1;27560:23;:26::i;:::-;27548:7;::::0;;:11:::1;:39::i;:::-;27525:62:::0;-1:-1:-1;27598:20:0::1;27621:65;27684:1;27621:58;27525:62:::0;27621:58;:15;27641:19;27621::::1;:40::i;:65::-;27598:88;;27697:20;27720:56;27763:12;27720:38;27740:17;;27720:15;:19;;:38;;;;:::i;:56::-;27697:79;;27787:19;27809:54;27850:12;27809:36;27829:15;;27809;:19;;:36;;;;:::i;:54::-;27882:17;::::0;27874:49:::1;::::0;27787:76;;-1:-1:-1;;;;;;27882:17:0::1;::::0;27874:49;::::1;;;::::0;27910:12;;27882:17:::1;27874:49:::0;27882:17;27874:49;27910:12;27882:17;27874:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;27942:15:0::1;::::0;27934:46:::1;::::0;-1:-1:-1;;;;;27942:15:0;;::::1;::::0;27934:46;::::1;;;::::0;27968:11;;27942:15:::1;27934:46:::0;27942:15;27934:46;27968:11;27942:15;27934:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;27994:19:0;;27991:321:::1;;28029:6;::::0;28197:14:::1;::::0;28029:218:::1;::::0;;-1:-1:-1;;;28029:218:0;;28099:4:::1;28029:218;::::0;::::1;::::0;;;;;;;:6:::1;:218:::0;;;;;;;;;;-1:-1:-1;;;;;28197:14:0;;::::1;28029:218:::0;;;;28230:15:::1;28029:218:::0;;;;;;:6;;;::::1;::::0;:22:::1;::::0;28059:12;;28029:218;;;;;::::1;::::0;;;;;;;;;28059:12;28029:6;:218;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;28029:218:0;28267:42;;;;;28029:218:::1;28267:42:::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;27991:321;-1:-1:-1::0;;11924:6:0;:14;;-1:-1:-1;;;;11924:14:0;;;-1:-1:-1;;;;;;;;;26746:1573:0:o;2085:189::-;2171:7;2206:12;2199:5;2191:28;;;;-1:-1:-1;;;2191:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2230:9;2246:1;2242;:5;;;;;;;2085:189;-1:-1:-1;;;;;2085:189:0:o;20634:178::-;-1:-1:-1;;;;;20722:20:0;;;;;;:12;:20;;;;;;;;20721:21;:49;;;;-1:-1:-1;;;;;;20747:23:0;;;;;;:12;:23;;;;;;;;20746:24;20721:49;20718:87;;;20780:9;;;;20772:31;;;;;-1:-1:-1;;;20772:31:0;;;;;;;;;;;;-1:-1:-1;;;20772:31:0;;;;;;;;;;;;;;;20634:178;;:::o;21562:592::-;21659:15;21677:24;21688:12;;21677:6;:10;;:24;;;;:::i;:::-;-1:-1:-1;;;;;21716:20:0;;;;;;:12;:20;;;;;;21659:42;;-1:-1:-1;21716:20:0;;21715:21;:49;;;;-1:-1:-1;;;;;;21741:23:0;;;;;;:12;:23;;;;;;;;21740:24;21715:49;:79;;;;-1:-1:-1;;;;;;21768:26:0;;21789:4;21768:26;;21715:79;:123;;;;-1:-1:-1;;;;;;21812:26:0;;13259:42;21812:26;;21715:123;:144;;;;-1:-1:-1;21855:4:0;;-1:-1:-1;;;;;21842:17:0;;;21855:4;;21842:17;;21715:144;:175;;;;-1:-1:-1;21876:14:0;;-1:-1:-1;;;;;21863:27:0;;;21876:14;;21863:27;;21715:175;21712:300;;;21973:12;;21953:15;;:33;;:19;:33::i;:::-;-1:-1:-1;;;;;21915:20:0;;;;;;:9;:20;;;;;;:33;;21940:7;21915:24;:33::i;:::-;21914:72;;21906:104;;;;;-1:-1:-1;;;21906:104:0;;;;;;;;;;;;-1:-1:-1;;;21906:104:0;;;;;;;;;;;;;;;22058:12;;22041;;:30;;:16;:30::i;:::-;22030:7;:41;;:65;;;-1:-1:-1;;;;;;22075:20:0;;;;;;:12;:20;;;;;;;;22030:65;:94;;;-1:-1:-1;;;;;;22099:25:0;;;;;;:14;:25;;;;;;;;22030:94;22022:124;;;;;-1:-1:-1;;;22022:124:0;;;;;;;;;;;;-1:-1:-1;;;22022:124:0;;;;;;;;;;;;;;28802:221;28873:11;;28849:4;;-1:-1:-1;;;28873:11:0;;;;:42;;;;-1:-1:-1;28889:12:0;;10823:33;-1:-1:-1;28873:42:0;:64;;;;-1:-1:-1;28933:4:0;;-1:-1:-1;;;;;28933:4:0;28919:10;:18;;28873:64;:77;;;;-1:-1:-1;28942:8:0;;;;;;;28941:9;28873:77;:88;;;;-1:-1:-1;28955:6:0;;-1:-1:-1;;;28955:6:0;;;;28954:7;28873:88;:142;;;;-1:-1:-1;;28985:16:0;;29004:10;28985:29;28965:15;:50;;;28802:221::o;22162:222::-;22278:4;;-1:-1:-1;;;;;22268:14:0;;;22278:4;;22268:14;:41;;;;-1:-1:-1;;;;;;22287:22:0;;;;;;:11;:22;;;;;;;;22286:23;22268:41;:69;;;;-1:-1:-1;;;;;;22314:23:0;;;;;;:12;:23;;;;;;;;22313:24;22268:69;22265:112;;;22339:36;22357:9;22368:6;22339:17;:36::i;20820:734::-;20919:15;20937:24;20948:12;;20937:6;:10;;:24;;;;:::i;:::-;20985:4;;20919:42;;-1:-1:-1;;;;;;20975:14:0;;;20985:4;;20975:14;;;;:33;;-1:-1:-1;20993:15:0;;;;;;;20975:33;:69;;;;-1:-1:-1;;;;;;21012:32:0;;;;;;:24;:32;;;;;;;;20975:69;:121;;;;-1:-1:-1;;;;;;21048:29:0;;;;;;:21;:29;;;;;;21081:15;-1:-1:-1;21048:48:0;20975:121;:149;;;;-1:-1:-1;;;;;;21101:23:0;;;;;;:12;:23;;;;;;;;21100:24;20975:149;20972:317;;;21216:12;;-1:-1:-1;;;;;21181:30:0;;;;;;:22;:30;;;;;;21159:71;;21181:48;;:30;:34;:48::i;:::-;-1:-1:-1;;;;;21159:17:0;;;;;;:9;:17;;;;;;;:21;:71::i;:::-;21148:7;:82;;21140:147;;;;-1:-1:-1;;;21140:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21312:4;;-1:-1:-1;;;;;21302:14:0;;;21312:4;;21302:14;;;;:59;;-1:-1:-1;;;;;;21320:22:0;;;;;;:14;:22;;;;;;21346:15;-1:-1:-1;21320:41:0;21302:59;:87;;;;-1:-1:-1;;;;;;21366:23:0;;;;;;:12;:23;;;;;;;;21365:24;21302:87;21299:248;;;21479:12;;-1:-1:-1;;;;;21446:28:0;;;;;;:20;:28;;;;;;;21424:69;;21446:46;;:28;:32;:46::i;21424:69::-;21413:7;:80;;21405:140;;;;-1:-1:-1;;;21405:140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20354:272;20448:4;;-1:-1:-1;;;;;20438:14:0;;;20448:4;;20438:14;;;;:38;;-1:-1:-1;;;;;;20457:19:0;;;;;;:11;:19;;;;;;;;20456:20;20438:38;:66;;;;-1:-1:-1;;;;;;20481:23:0;;;;;;:12;:23;;;;;;;;20480:24;20438:66;20435:101;;;20518:9;;:16;;20532:1;20518:13;:16::i;:::-;20506:9;:28;20435:101;20559:4;;-1:-1:-1;;;;;20549:14:0;;;20559:4;;20549:14;20546:73;;;20607:9;;20587:30;;:15;;:19;:30::i;:::-;-1:-1:-1;;;;;20565:19:0;;;;;;:8;:19;;;;;:52;20354:272;;:::o;29718:453::-;29816:4;29833:15;29851:24;29862:12;;29851:6;:10;;:24;;;;:::i;:::-;29907:4;;29833:42;;-1:-1:-1;;;;;;29907:4:0;29893:10;:18;;;;:29;;-1:-1:-1;29916:6:0;;-1:-1:-1;;;29916:6:0;;;;29915:7;29893:29;:54;;;;-1:-1:-1;;;;;;29927:20:0;;;;;;:12;:20;;;;;;;;29926:21;29893:54;:82;;;;-1:-1:-1;;;;;;29952:23:0;;;;;;:12;:23;;;;;;;;29951:24;29893:82;:97;;;;-1:-1:-1;29979:11:0;;-1:-1:-1;;;29979:11:0;;;;29893:97;:136;;;;;30014:15;;30003:7;:26;;29893:136;:199;;;;-1:-1:-1;30079:13:0;;30062:12;;30051:4;30033:24;;;;:9;:24;;;;;;:42;;:28;:42::i;:::-;:59;;29893:199;:212;;;;-1:-1:-1;30097:8:0;;;;;;;30096:9;29893:212;:246;;;;;30131:8;;30118:9;;:21;;29893:246;:270;;;;-1:-1:-1;;;;;;30144:19:0;;;;;;:11;:19;;;;;;;;30143:20;29893:270;29886:277;29718:453;-1:-1:-1;;;;;29718:453:0:o;17319:129::-;-1:-1:-1;;;;;17406:16:0;;17391:4;17406:16;;;:12;:16;;;;;;;;17405:17;:40;;;;-1:-1:-1;;;;;;;;17427:18:0;;;;;:12;:18;;;;;;;;17426:19;;17319:129::o;24844:1894::-;24929:7;24949:17;24969:23;24982:9;;24969:8;;:12;;:23;;;;:::i;:::-;25027:12;;25066:4;;24949:43;;-1:-1:-1;25027:12:0;-1:-1:-1;;;;;25053:17:0;;;25066:4;;25053:17;25050:137;;;25112:11;;25099:8;;:25;;:12;:25::i;:::-;25087:37;;25155:29;25172:11;;25155:12;;:16;;:29;;;;:::i;:::-;25139:45;;25050:137;25197:17;25217:42;25249:9;25217:27;25229:14;;25217:7;:11;;:27;;;;:::i;:::-;:31;;:42::i;:::-;25197:62;;25270:18;25291:37;25320:7;;25291:24;25305:9;25291;:13;;:24;;;;:::i;:37::-;25270:58;;25339:17;25359:39;25388:9;;25359:24;25373:9;25359;:13;;:24;;;;:::i;:39::-;25339:59;;25409:21;25433:40;25462:10;;25433:24;25447:9;25433;:13;;:24;;;;:::i;:40::-;25409:64;-1:-1:-1;25484:22:0;25509:44;25409:64;25509:25;:9;25523:10;25509:13;:25::i;:44::-;25567:10;;25484:69;;-1:-1:-1;;;;25567:10:0;;;;25564:81;;;25596:47;25615:27;25629:12;;25615:9;:13;;:27;;;;:::i;:::-;25596:14;;;:18;:47::i;:::-;25579:14;:64;25564:81;-1:-1:-1;;;;;25658:13:0;;;;;;:5;:13;;;;;;;;:51;;;;-1:-1:-1;;;;;;25675:16:0;;;;;;:8;:16;;;;;;25694:15;-1:-1:-1;25658:51:0;:60;;;;-1:-1:-1;25713:5:0;;;;25658:60;:137;;;-1:-1:-1;;;;;;25722:16:0;;;;;;:5;:16;;;;;;;;:64;;;;-1:-1:-1;;;;;;25752:16:0;;;;;;:8;:16;;;;;;25771:15;-1:-1:-1;25722:64:0;:73;;;;-1:-1:-1;25790:5:0;;;;25722:73;25658:170;;;;25813:15;25799:11;;:29;25658:170;25655:333;;;25856:24;25877:2;25856:16;:7;25868:3;25856:11;:16::i;:24::-;25844:36;-1:-1:-1;25895:16:0;25844:36;25909:1;25895:13;:16::i;:::-;25882:29;-1:-1:-1;25942:16:0;:9;25956:1;25942:13;:16::i;:::-;25926:32;;25977:9;25960:26;;25655:333;26035:1;26004:28;26019:12;;26004:10;:14;;:28;;;;:::i;:::-;:32;26001:205;;;26066:61;26086:40;26118:7;;26086:27;26098:14;;26086:7;:11;;:27;;;;:::i;:40::-;13259:42;26066:15;;:9;:15;;-1:-1:-1;;;;;;;;;;;26066:15:0;;:19;:61::i;:::-;13259:42;26048:15;;;;:9;:15;;-1:-1:-1;;;;;;;;;;;26048:79:0;;;;26190:12;;-1:-1:-1;;;;;26143:61:0;;;-1:-1:-1;;;;;;;;;;;26143:61:0;26175:28;;:10;;:14;:28::i;:::-;26143:61;;;;;;;;;;;;;;;26001:205;26253:1;26219:31;26237:12;;26219:13;:17;;:31;;;;:::i;:::-;:35;26216:247;;;26295:75;26326:43;26358:10;;26326:27;26338:14;;26326:7;:11;;:27;;;;:::i;:43::-;26305:15;;-1:-1:-1;;;;;26305:15:0;26295:26;;;;:9;:26;;;;;;;:30;:75::i;:::-;26276:15;;;-1:-1:-1;;;;;26276:15:0;;;26266:26;;;;:9;:26;;;;;:104;;;;26411:15;26447:12;;26411:15;;;;26386:75;;;-1:-1:-1;;;;;;;;;;;26386:75:0;26429:31;;:13;;:17;:31::i;:::-;26386:75;;;;;;;;;;;;;;;26216:247;26500:109;26529:79;26561:46;26597:9;;26561:31;26578:13;26561:12;;:16;;:31;;;;:::i;:46::-;26541:14;;26529:27;;:7;;:11;:27::i;:79::-;26518:4;26500:24;;;;:9;:24;;;;;;;:28;:109::i;:::-;26491:4;26473:24;;;;:9;:24;;;;;:136;;;;26676:12;;-1:-1:-1;;;;;26625:65:0;;;-1:-1:-1;;;;;;;;;;;26625:65:0;26657:32;;:14;;:18;:32::i;:::-;26625:65;;;;;;;;;;;;;;;26708:22;:7;26720:9;26708:11;:22::i;:::-;26701:29;24844:1894;-1:-1:-1;;;;;;;;;;;24844:1894:0:o;29031:487::-;29107:14;29114:6;29107;:14::i;:::-;:38;;;;-1:-1:-1;;;;;;29126:19:0;;;;;;:11;:19;;;;;;;;29125:20;29107:38;:47;;;;-1:-1:-1;29149:5:0;;;;29107:47;:134;;;-1:-1:-1;29168:4:0;;-1:-1:-1;;;;;29158:14:0;;;29168:4;;29158:14;:23;;;;-1:-1:-1;29176:5:0;;;;29158:23;:56;;;;-1:-1:-1;;;;;;29195:19:0;;;;;;:11;:19;;;;;;;;29194:20;29158:56;:83;;;;-1:-1:-1;29218:10:0;29232:9;29218:23;;29158:83;29107:167;;;;29259:15;29245:11;;:29;29107:167;29104:194;;;-1:-1:-1;;;;;29276:13:0;;;;;;:5;:13;;;;;:20;;-1:-1:-1;;29276:20:0;29292:4;29276:20;;;29104:194;29311:17;29318:9;29311:6;:17::i;:::-;:44;;;;-1:-1:-1;;;;;;29333:22:0;;;;;;:11;:22;;;;;;;;29332:23;29311:44;:72;;;;-1:-1:-1;;;;;;29360:23:0;;;;;;:12;:23;;;;;;;;29359:24;29311:72;:81;;;;-1:-1:-1;29387:5:0;;;;29311:81;:169;;;-1:-1:-1;29416:4:0;;-1:-1:-1;;;;;29406:14:0;;;29416:4;;29406:14;:38;;;;-1:-1:-1;;;;;;29425:19:0;;;;;;:11;:19;;;;;;;;29424:20;29406:38;:65;;;;-1:-1:-1;29448:10:0;29462:9;29448:23;;29406:65;:74;;;;-1:-1:-1;29475:5:0;;;;29406:74;29308:199;;;-1:-1:-1;;;;;29482:16:0;;;;;;:5;:16;;;;;:23;;-1:-1:-1;;29482:23:0;29501:4;29482:23;;;29031:487;;:::o;23140:1317::-;23225:10;;-1:-1:-1;;;23225:10:0;;;;:44;;;;;23258:11;;23239:15;:30;;23225:44;:76;;;;;23292:9;;23273:15;:28;;23225:76;23222:131;;;23317:34;23333:9;23344:6;23317:15;:34::i;:::-;23366:10;;-1:-1:-1;;;23366:10:0;;;;:41;;;;;23398:9;;23380:15;:27;23366:41;23363:1087;;;23423:10;:18;;-1:-1:-1;;;;23423:18:0;;;23511:9;;23498:8;;23436:5;;23478:45;;23498:23;;:12;:23::i;:::-;23478:14;;;:18;:45::i;:::-;23457:66;;23538:21;23562:46;23597:10;23562:30;23577:14;;23562:10;;:14;;:30;;;;:::i;:46::-;23654:12;;23636;;-1:-1:-1;;;;;23636:12:0;23626:23;;;;:9;:23;;;;;;23538:70;;-1:-1:-1;23538:70:0;;23626:41;;:27;:41::i;:::-;:58;23623:200;;23729:12;;23743:14;;23704:54;;23722:4;;-1:-1:-1;;;;;23729:12:0;;;;23704:9;:54::i;:::-;-1:-1:-1;23795:11:0;;23777:30;;;;:17;:30;;;;;:37;;:44;;-1:-1:-1;;23777:44:0;23817:4;23777:44;;;23623:200;23885:14;;;23855:11;;;23837:30;;;;:17;:30;;;;;;;;:45;;:62;;;;23954:12;;;23932:11;;23914:30;;;;;23954:12;23914:37;;;:52;;-1:-1:-1;;;;;;23914:52:0;-1:-1:-1;;;;;23954:12:0;;;23914:52;;;24025:10;;23999:11;;23981:30;;;;;:41;;:54;;;;24050:9;:22;;;24126:14;;24110:12;;;;24087:36;;:22;:36;;;;;:53;24180:12;;;;24155:38;;:24;:38;;;;;:45;;-1:-1:-1;;24155:45:0;;;;;;24273:24;;24253:45;;:15;;:19;:45::i;:::-;24237:12;;-1:-1:-1;;;;;24237:12:0;24215:35;;;;:21;:35;;;;;:83;24364:18;;24344:39;;:15;;:19;:39::i;:::-;24328:12;;;-1:-1:-1;;;;;24328:12:0;;;24313:28;;;;:14;:28;;;;;;;;:70;;;;24419:12;;;;;24398:34;;;;;;;:50;-1:-1:-1;23140:1317:0;;:::o;15995:127::-;16085:17;16112:8;;;15995:127::o;24465:371::-;24566:9;;24545:18;;24566:25;;24580:10;24566:13;:25::i;:::-;24545:46;;24615:10;;24605:6;:20;24602:227;;24641:10;:19;;;24675:12;:24;;-1:-1:-1;;;;;;24675:24:0;-1:-1:-1;;;;;24675:24:0;;;;;24713:15;-1:-1:-1;;24713:29:0;;;:61;;;24765:9;;24746:15;:28;;24713:61;24710:118;;;24802:9;;:24;;24816:9;24802:13;:24::i;:::-;24790:9;:36;24465:371;;;:::o

Swarm Source

ipfs://9c54d277d3d00869088cffe88d56c6b794c9b6408cef970eb1e9d3f263160d11
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.