ETH Price: $2,987.51 (+3.63%)
Gas: 2 Gwei

Token

Zaddy Inu (ZADDY)
 

Overview

Max Total Supply

1,000,000,000,000,000,000 ZADDY

Holders

666

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
280,542,167,601.743712712911185353 ZADDY

Value
$0.00
0x5dd098e486b77d187a6499b04003a3036d7a507f
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:
ZaddyInu

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-10-29
*/

pragma solidity ^0.8.9;
pragma experimental ABIEncoderV2;
// SPDX-License-Identifier:MIT

interface IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    function calculateBonusReflection(address _user) external;

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Ownable is Context {
    address payable private _owner;
    address payable private _previousOwner;
    uint256 private _lockTime;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

    function geUnlockTime() public view returns (uint256) {
        return _lockTime;
    }

    //Locks the contract for owner for the amount of time provided
    function lock(uint256 time) public virtual onlyOwner {
        _previousOwner = _owner;
        _owner = payable(address(0));
        _lockTime = block.timestamp + time;
        emit OwnershipTransferred(_owner, address(0));
    }

    //Unlocks the contract for owner when _lockTime is exceeds
    function unlock() public virtual {
        require(_previousOwner == msg.sender, "You don't have permission to unlock");
        require(block.timestamp > _lockTime , "Contract is locked until defined days");
        emit OwnershipTransferred(_owner, _previousOwner);
        _owner = _previousOwner;
        _previousOwner = payable(address(0));
    }
}

        // Protocol by team BloctechSolutions.com

contract ZaddyInu is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => uint256) private _additionalBalance;
    mapping(address => mapping(address => uint256)) private _allowances;

    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isExcluded;
    mapping(address => bool) private _isExcludedFromMaxTx;

    address[] private _excluded;

    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 1 * 1e18 * 1e18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private _name = "Zaddy Inu";
    string private _symbol = "ZADDY";
    uint8 private _decimals = 18;

    address public uniswapPair;
    IERC20 public token2;
    address public burnAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public _maxTxAmount = _tTotal.mul(1).div(1000); // should be 0.1% percent per transaction
    uint256 _totalFeePerTx;
    uint256 public reflectionInc = 100;
    uint256 public pairValue = 1 * 1e8 * 1e18;

    bool public reflectionFeesdiabled;
    bool public _tradingOpen;
    bool public delegateCall;

    uint256 public _holderFee = 500; // 50% of tax fee will be redistributed to holders

    uint256 public _burnFee = 500; // 50% of tax fee will be added to burn address

    uint256 public _buyFee = 40; // 4% by default

    uint256 public _sellFee = 80; // 8% by default

    uint256 public _additionalSellFee = 300; // 30% by default

    constructor() {
        _rOwned[owner()] = _rTotal;

        //exclude owner and this contract from fee
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;

        // exclude from max tx
        _isExcludedFromMaxTx[owner()] = true;
        _isExcludedFromMaxTx[address(this)] = true;
        _isExcludedFromMaxTx[burnAddress] = true;

        emit Transfer(address(0), owner(), _tTotal);
    }

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

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

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

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

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

    function reflectionBonusBalance(address account)
        public
        view
        returns (uint256)
    {
        if (_isExcluded[account]) return 0;
        return _additionalBalance[account];
    }

    function getUserToken2Balance(address account)
        public
        view
        returns (uint256)
    {
        return token2.balanceOf(account);
    }

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

    function burn(uint256 amount) external onlyOwner returns (bool) {
        _transfer(_msgSender(), burnAddress, amount);
        return true;
    }

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

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

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

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

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

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

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

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

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

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

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

    function includeInReward(address account) external onlyOwner {
        require(_isExcluded[account], "Account is already excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _rOwned[account] = _tOwned[account].mul(_getRate());
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function setMaxTxPercent(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setExcludeFromMaxTx(address _address, bool value)
        public
        onlyOwner
    {
        _isExcludedFromMaxTx[_address] = value;
    }

    function setFeePercent(uint256 holderFee, uint256 burnFee)
        external
        onlyOwner
    {
        _holderFee = holderFee;
        _burnFee = burnFee;
    }

    function setBuyFee(uint256 buyFee) external onlyOwner {
        _buyFee = buyFee;
    }

    function setSellFee(uint256 sellFee, uint256 additionalFee)
        external
        onlyOwner
    {
        _sellFee = sellFee;
        _additionalSellFee = additionalFee;
    }

    function setReflectionFees(bool _state) external onlyOwner {
        reflectionFeesdiabled = _state;
    }

    function changeBonusValues(uint256 _percent, uint256 _amount)
        public
        onlyOwner
    {
        reflectionInc = _percent;
        pairValue = _amount;
    }

    function setLpAddress(address _pair)
        external
        onlyOwner
    {
        uniswapPair = _pair;
    }

    function setToken2(IERC20 _token2) external onlyOwner {
        token2 = _token2;
    }

    function startTrading() external onlyOwner {
        require(!_tradingOpen, "Tradiing already enabled");
        _tradingOpen = true;
    }

    //to receive BNB from uniswapRouter when swapping
    receive() external payable {}

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

    function getTotalFeePerTx(uint256 tAmount) public view returns (uint256) {
        uint256 percentage = tAmount.mul(_totalFeePerTx).div(1e3);
        return percentage;
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (
                _rOwned[_excluded[i]] > rSupply ||
                _tOwned[_excluded[i]] > tSupply
            ) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

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

    function isExcludedFromMaxTx(address account) public view returns (bool) {
        return _isExcludedFromMaxTx[account];
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "BEP20: approve from the zero address");
        require(spender != address(0), "BEP20: approve to the zero address");

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "BEP20: transfer from the zero address");
        require(to != address(0), "BEP20: transfer to the zero address");
        require(amount > 0, "BEP20: Transfer amount must be greater than zero");

        if (
            _isExcludedFromMaxTx[from] == false &&
            _isExcludedFromMaxTx[to] == false // by default false
        ) {
            if (!_tradingOpen) {
                require(
                    from != uniswapPair && to != uniswapPair,
                    "Trading is not enabled"
                );
            }
        }

        //indicates if fee should be deducted from transfer
        bool takeFee = true;

        //if any account belongs to _isExcludedFromFee account then remove the fee
        if (
            _isExcludedFromFee[from] ||
            _isExcludedFromFee[to] ||
            reflectionFeesdiabled
        ) {
            takeFee = false;
        }

        //transfer amount, it will take tax, burn, liquidity fee
        _tokenTransfer(from, to, amount, takeFee);
    }

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) {
            _totalFeePerTx = 0;
        } else if (sender == uniswapPair) {
            _totalFeePerTx = _buyFee;
        } else {
            if (amount > _maxTxAmount) {
                _totalFeePerTx = _additionalSellFee;
            }
            _totalFeePerTx = _sellFee;
        }

        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }

        if (!_isExcludedFromMaxTx[sender]) {
            delegateCall = true;
            calculateBonusReflection(sender);
        }
        if (!_isExcludedFromMaxTx[recipient]) {
            delegateCall = true;
            calculateBonusReflection(recipient);
        }
    }

    function calculateBonusReflection(address _user) public override {
        uint256 userBalance1 = balanceOf(_user).div(pairValue);
        uint256 userBalance2 = getUserToken2Balance(_user);
        uint256 currentRate = _getRate();
        uint256 rewardBalance;
        if (balanceOf(_user) >= pairValue) {
            if (userBalance2 >= userBalance1) {
                _rOwned[_user] = _rOwned[_user].sub(_additionalBalance[_user].mul(currentRate));
                rewardBalance = _rOwned[_user].mul(reflectionInc).div(100);
                _rOwned[_user] = _rOwned[_user].add(rewardBalance);
                _additionalBalance[_user] = tokenFromReflection(rewardBalance);
            } else {
                _rOwned[_user] = _rOwned[_user].sub(_additionalBalance[_user].mul(currentRate));
                rewardBalance = userBalance1.sub(
                    userBalance1.sub(userBalance2)
                );
                rewardBalance = rewardBalance.mul(pairValue).mul(currentRate);
                rewardBalance = rewardBalance.mul(reflectionInc).div(100);
                _rOwned[_user] = _rOwned[_user].add(rewardBalance);
                _additionalBalance[_user] = tokenFromReflection(rewardBalance);
            }
        }
        if (delegateCall) {
            delegateCall = false;
            token2.calculateBonusReflection(_user);
        }
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        uint256 currentRate = _getRate();
        uint256 tTransferAmount = tAmount.sub(getTotalFeePerTx(tAmount));
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(
            getTotalFeePerTx(tAmount).mul(currentRate)
        );
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeAllFee(tAmount, currentRate);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferToExcluded(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        uint256 currentRate = _getRate();
        uint256 tTransferAmount = tAmount.sub(getTotalFeePerTx(tAmount));
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(
            getTotalFeePerTx(tAmount).mul(currentRate)
        );
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeAllFee(tAmount, currentRate);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        uint256 currentRate = _getRate();
        uint256 tTransferAmount = tAmount.sub(getTotalFeePerTx(tAmount));
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(
            getTotalFeePerTx(tAmount).mul(currentRate)
        );
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeAllFee(tAmount, currentRate);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferBothExcluded(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        uint256 currentRate = _getRate();
        uint256 tTransferAmount = tAmount.sub(getTotalFeePerTx(tAmount));
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(
            getTotalFeePerTx(tAmount).mul(currentRate)
        );
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeAllFee(tAmount, currentRate);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeAllFee(uint256 tAmount, uint256 currentRate) internal {
        uint256 tAllFee = getTotalFeePerTx(tAmount);

        uint256 tBurnFee = tAllFee.mul(_burnFee).div(1e3);
        uint256 rBurnFee = tBurnFee.mul(currentRate);
        _rOwned[burnAddress] = _rOwned[burnAddress].add(rBurnFee);
        if (_isExcluded[burnAddress])
            _tOwned[burnAddress] = _tOwned[burnAddress].add(tBurnFee);
        emit Transfer(_msgSender(), burnAddress, tBurnFee);

        uint256 tHolderFee = tAllFee.mul(_holderFee).div(1e3);
        uint256 rHolderFee = tHolderFee.mul(currentRate);
        _rTotal = _rTotal.sub(rHolderFee);
        _tFeeTotal = _tFeeTotal.add(tHolderFee);
    }

}


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

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

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

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

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

    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) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }

    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) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }

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

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

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

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_additionalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_holderFee","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":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"calculateBonusReflection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"changeBonusValues","outputs":[],"stateMutability":"nonpayable","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":"delegateCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"getTotalFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getUserToken2Balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxTx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"reflectionBonusBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reflectionFeesdiabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reflectionInc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludeFromMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"holderFee","type":"uint256"},{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"setFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setLpAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"setReflectionFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellFee","type":"uint256"},{"internalType":"uint256","name":"additionalFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token2","type":"address"}],"name":"setToken2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token2","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526ec097ce7bc90715b34b9f1000000000600b8190556200002790600019620004a3565b6200003590600019620004d0565b600c55604080518082019091526009808252685a6164647920496e7560b81b60209092019182526200006a91600e91620003e7565b50604080518082019091526005808252645a4144445960d81b60209092019182526200009991600f91620003e7565b506010805460ff1916601290811790915580546001600160a01b03191661dead179055600b54620000f8906103e890620000e490600162001c3f620002e5602090811b91909117901c565b6200037960201b62001cbe1790919060201c565b60135560646015556a52b7d2dcc80cd2e40000006016556101f46018556101f46019556028601a556050601b5561012c601c553480156200013857600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600c5460036000620001926000546001600160a01b031690565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160076000620001cc620003d860201b60201c565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526007909252812080549092166001908117909255600990620002256000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260099093528183208054851660019081179091556012549091168352912080549092161790556200028f6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b54604051620002d791815260200190565b60405180910390a362000560565b600082620002f65750600062000373565b6000620003048385620004ea565b9050826200031385836200050c565b14620003705760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000808211620003cc5760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015260640162000367565b6200037082846200050c565b6000546001600160a01b031690565b828054620003f59062000523565b90600052602060002090601f01602090048101928262000419576000855562000464565b82601f106200043457805160ff191683800117855562000464565b8280016001018555821562000464579182015b828111156200046457825182559160200191906001019062000447565b506200047292915062000476565b5090565b5b8082111562000472576000815560010162000477565b634e487b7160e01b600052601260045260246000fd5b600082620004b557620004b56200048d565b500690565b634e487b7160e01b600052601160045260246000fd5b600082821015620004e557620004e5620004ba565b500390565b6000816000190483118215151615620005075762000507620004ba565b500290565b6000826200051e576200051e6200048d565b500490565b600181811c908216806200053857607f821691505b602082108114156200055a57634e487b7160e01b600052602260045260246000fd5b50919050565b612d6380620005706000396000f3fe60806040526004361061037a5760003560e01c8063658c27a9116101d1578063a69df4b511610102578063d543dbeb116100a0578063f0d75ac01161006f578063f0d75ac014610a3d578063f28a3b6514610a5d578063f2fde38b14610a7d578063fc6f4cbb14610a9d57600080fd5b8063d543dbeb14610997578063dd467064146109b7578063dd62ed3e146109d7578063ea2f0b3714610a1d57600080fd5b8063b6c52324116100dc578063b6c5232414610928578063c0b0fda21461093d578063c816841b14610953578063cd52c7011461097857600080fd5b8063a69df4b5146108d3578063a9059cbb146108e8578063b3a8e98c1461090857600080fd5b806370d5ae051161016f57806388f820201161014957806388f82020146108475780638da5cb5b1461088057806395d89b411461089e578063a457c2d7146108b357600080fd5b806370d5ae05146107fc578063715018a61461081c5780637d1db4a51461083157600080fd5b80636ac9a870116101ab5780636ac9a8701461077c5780636f1678261461079c5780636f5e0212146107bc57806370a08231146107dc57600080fd5b8063658c27a91461070357806365d60e561461073c57806366fb61851461075c57600080fd5b80633685d419116102ab578063437823ec116102495780635342acb4116102235780635342acb41461067e578063590f897e146106b75780635b89029c146106cd57806363377140146106ed57600080fd5b8063437823ec1461061e5780634549b0391461063e57806352390c021461065e57600080fd5b80633bd5d173116102855780633bd5d173146105b2578063403a80c4146105d257806340b9a54b146105e857806342966c68146105fe57600080fd5b80633685d4191461055c578063393eabbf1461057c578063395093511461059257600080fd5b806325be124e116103185780632d838119116102f25780632d838119146104e4578063311fc7f814610504578063313ce5671461051a578063355afd1d1461053c57600080fd5b806325be124e14610477578063293230b8146104af5780632c08d3c1146104c457600080fd5b80630cc835a3116103545780630cc835a31461040357806313114a9d1461042357806318160ddd1461044257806323b872dd1461045757600080fd5b8063011d069d1461038657806306fdde03146103a8578063095ea7b3146103d357600080fd5b3661038157005b600080fd5b34801561039257600080fd5b506103a66103a136600461297c565b610ab7565b005b3480156103b457600080fd5b506103bd610af5565b6040516103ca919061299e565b60405180910390f35b3480156103df57600080fd5b506103f36103ee366004612a0b565b610b87565b60405190151581526020016103ca565b34801561040f57600080fd5b506103a661041e366004612a37565b610b9e565b34801561042f57600080fd5b50600d545b6040519081526020016103ca565b34801561044e57600080fd5b50600b54610434565b34801561046357600080fd5b506103f3610472366004612a50565b610bcd565b34801561048357600080fd5b50601154610497906001600160a01b031681565b6040516001600160a01b0390911681526020016103ca565b3480156104bb57600080fd5b506103a6610c36565b3480156104d057600080fd5b506104346104df366004612a91565b610cc9565b3480156104f057600080fd5b506104346104ff366004612a37565b610d47565b34801561051057600080fd5b5061043460155481565b34801561052657600080fd5b5060105460405160ff90911681526020016103ca565b34801561054857600080fd5b50610434610557366004612a37565b610dcb565b34801561056857600080fd5b506103a6610577366004612a91565b610def565b34801561058857600080fd5b5061043460165481565b34801561059e57600080fd5b506103f36105ad366004612a0b565b610fed565b3480156105be57600080fd5b506103a66105cd366004612a37565b611023565b3480156105de57600080fd5b5061043460185481565b3480156105f457600080fd5b50610434601a5481565b34801561060a57600080fd5b506103f3610619366004612a37565b6110fd565b34801561062a57600080fd5b506103a6610639366004612a91565b611147565b34801561064a57600080fd5b50610434610659366004612abe565b611195565b34801561066a57600080fd5b506103a6610679366004612a91565b61124a565b34801561068a57600080fd5b506103f3610699366004612a91565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156106c357600080fd5b50610434601b5481565b3480156106d957600080fd5b506103a66106e8366004612aea565b61139d565b3480156106f957600080fd5b50610434601c5481565b34801561070f57600080fd5b506103f361071e366004612a91565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561074857600080fd5b506103a6610757366004612b16565b6113f2565b34801561076857600080fd5b506103a6610777366004612a91565b61142f565b34801561078857600080fd5b506103a661079736600461297c565b6116c1565b3480156107a857600080fd5b506103a66107b736600461297c565b6116f6565b3480156107c857600080fd5b506103a66107d7366004612a91565b61172b565b3480156107e857600080fd5b506104346107f7366004612a91565b61177d565b34801561080857600080fd5b50601254610497906001600160a01b031681565b34801561082857600080fd5b506103a66117f3565b34801561083d57600080fd5b5061043460135481565b34801561085357600080fd5b506103f3610862366004612a91565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561088c57600080fd5b506000546001600160a01b0316610497565b3480156108aa57600080fd5b506103bd611855565b3480156108bf57600080fd5b506103f36108ce366004612a0b565b611864565b3480156108df57600080fd5b506103a66118b3565b3480156108f457600080fd5b506103f3610903366004612a0b565b6119ca565b34801561091457600080fd5b50610434610923366004612a91565b6119d7565b34801561093457600080fd5b50600254610434565b34801561094957600080fd5b5061043460195481565b34801561095f57600080fd5b506010546104979061010090046001600160a01b031681565b34801561098457600080fd5b506017546103f390610100900460ff1681565b3480156109a357600080fd5b506103a66109b2366004612a37565b611a1c565b3480156109c357600080fd5b506103a66109d2366004612a37565b611a4b565b3480156109e357600080fd5b506104346109f2366004612b31565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610a2957600080fd5b506103a6610a38366004612a91565b611ad0565b348015610a4957600080fd5b506103a6610a58366004612a91565b611b1b565b348015610a6957600080fd5b506017546103f39062010000900460ff1681565b348015610a8957600080fd5b506103a6610a98366004612a91565b611b67565b348015610aa957600080fd5b506017546103f39060ff1681565b6000546001600160a01b03163314610aea5760405162461bcd60e51b8152600401610ae190612b6a565b60405180910390fd5b601591909155601655565b6060600e8054610b0490612b9f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3090612b9f565b8015610b7d5780601f10610b5257610100808354040283529160200191610b7d565b820191906000526020600020905b815481529060010190602001808311610b6057829003601f168201915b5050505050905090565b6000610b94338484611d19565b5060015b92915050565b6000546001600160a01b03163314610bc85760405162461bcd60e51b8152600401610ae190612b6a565b601a55565b6000610bda848484611e3d565b610c2c8433610c2785604051806060016040528060288152602001612cc1602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906120a7565b611d19565b5060019392505050565b6000546001600160a01b03163314610c605760405162461bcd60e51b8152600401610ae190612b6a565b601754610100900460ff1615610cb85760405162461bcd60e51b815260206004820152601860248201527f5472616469696e6720616c726561647920656e61626c656400000000000000006044820152606401610ae1565b6017805461ff001916610100179055565b6011546040516370a0823160e01b81526001600160a01b03838116600483015260009216906370a082319060240160206040518083038186803b158015610d0f57600080fd5b505afa158015610d23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b989190612bda565b6000600c54821115610dae5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610ae1565b6000610db86120de565b9050610dc48382611cbe565b9392505050565b600080610dc46103e8610de960145486611c3f90919063ffffffff16565b90611cbe565b6000546001600160a01b03163314610e195760405162461bcd60e51b8152600401610ae190612b6a565b6001600160a01b03811660009081526008602052604090205460ff16610e815760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610ae1565b60005b600a54811015610fe957816001600160a01b0316600a8281548110610eab57610eab612bf3565b6000918252602090912001546001600160a01b03161415610fd757600a8054610ed690600190612c1f565b81548110610ee657610ee6612bf3565b600091825260209091200154600a80546001600160a01b039092169183908110610f1257610f12612bf3565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610f6a610f4b6120de565b6001600160a01b03841660009081526004602052604090205490611c3f565b6001600160a01b038316600090815260036020908152604080832093909355600481528282208290556008905220805460ff19169055600a805480610fb157610fb1612c36565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610fe181612c4c565b915050610e84565b5050565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610b94918590610c279086612101565b3360009081526008602052604090205460ff16156110985760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610ae1565b60006110ac6110a56120de565b8390611c3f565b336000908152600360205260409020549091506110c99082612160565b33600090815260036020526040902055600c546110e69082612160565b600c55600d546110f69083612101565b600d555050565b600080546001600160a01b031633146111285760405162461bcd60e51b8152600401610ae190612b6a565b61113e336012546001600160a01b031684611e3d565b5060015b919050565b6000546001600160a01b031633146111715760405162461bcd60e51b8152600401610ae190612b6a565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000600b548311156111e95760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610ae1565b8161120b5760006112026111fb6120de565b8590611c3f565b9150610b989050565b60006112186111fb6120de565b9050600061124061123961122a6120de565b61123388610dcb565b90611c3f565b8390612160565b9250610b98915050565b6000546001600160a01b031633146112745760405162461bcd60e51b8152600401610ae190612b6a565b6001600160a01b03811660009081526008602052604090205460ff16156112dd5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610ae1565b6001600160a01b03811660009081526003602052604090205415611337576001600160a01b03811660009081526003602052604090205461131d90610d47565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600860205260408120805460ff19166001908117909155600a805491820181559091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319169091179055565b6000546001600160a01b031633146113c75760405162461bcd60e51b8152600401610ae190612b6a565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461141c5760405162461bcd60e51b8152600401610ae190612b6a565b6017805460ff1916911515919091179055565b6000611440601654610de98461177d565b9050600061144d83610cc9565b905060006114596120de565b905060006016546114698661177d565b1061163d57838310611550576001600160a01b0385166000908152600560205260409020546114bb9061149c9084611c3f565b6001600160a01b03871660009081526003602052604090205490612160565b6001600160a01b03861660009081526003602052604090208190556015546114ea91606491610de99190611c3f565b6001600160a01b0386166000908152600360205260409020549091506115109082612101565b6001600160a01b03861660009081526003602052604090205561153281610d47565b6001600160a01b03861660009081526005602052604090205561163d565b6001600160a01b0385166000908152600560205260409020546115779061149c9084611c3f565b6001600160a01b0386166000908152600360205260409020556115a461159d8585612160565b8590612160565b90506115bf8261123360165484611c3f90919063ffffffff16565b90506115db6064610de960155484611c3f90919063ffffffff16565b6001600160a01b0386166000908152600360205260409020549091506116019082612101565b6001600160a01b03861660009081526003602052604090205561162381610d47565b6001600160a01b0386166000908152600560205260409020555b60175462010000900460ff16156116ba576017805462ff0000191690556011546040516366fb618560e01b81526001600160a01b038781166004830152909116906366fb618590602401600060405180830381600087803b1580156116a157600080fd5b505af11580156116b5573d6000803e3d6000fd5b505050505b5050505050565b6000546001600160a01b031633146116eb5760405162461bcd60e51b8152600401610ae190612b6a565b601b91909155601c55565b6000546001600160a01b031633146117205760405162461bcd60e51b8152600401610ae190612b6a565b601891909155601955565b6000546001600160a01b031633146117555760405162461bcd60e51b8152600401610ae190612b6a565b601080546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b03811660009081526008602052604081205460ff16156117ba57506001600160a01b031660009081526004602052604090205490565b6001600160a01b038216600090815260056020908152604080832054600390925290912054610b9891906117ed90610d47565b90612160565b6000546001600160a01b0316331461181d5760405162461bcd60e51b8152600401610ae190612b6a565b600080546040516001600160a01b0390911690600080516020612ce9833981519152908390a3600080546001600160a01b0319169055565b6060600f8054610b0490612b9f565b6000610b943384610c2785604051806060016040528060258152602001612d09602591393360009081526006602090815260408083206001600160a01b038d16845290915290205491906120a7565b6001546001600160a01b031633146119195760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610ae1565b60025442116119785760405162461bcd60e51b815260206004820152602560248201527f436f6e7472616374206973206c6f636b656420756e74696c20646566696e6564604482015264206461797360d81b6064820152608401610ae1565b600154600080546040516001600160a01b039384169390911691600080516020612ce983398151915291a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610b94338484611e3d565b6001600160a01b03811660009081526008602052604081205460ff1615611a0057506000919050565b506001600160a01b031660009081526005602052604090205490565b6000546001600160a01b03163314611a465760405162461bcd60e51b8152600401610ae190612b6a565b601355565b6000546001600160a01b03163314611a755760405162461bcd60e51b8152600401610ae190612b6a565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055611aa48142612c67565b600255600080546040516001600160a01b0390911690600080516020612ce9833981519152908390a350565b6000546001600160a01b03163314611afa5760405162461bcd60e51b8152600401610ae190612b6a565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b03163314611b455760405162461bcd60e51b8152600401610ae190612b6a565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611b915760405162461bcd60e51b8152600401610ae190612b6a565b6001600160a01b038116611bf65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ae1565b600080546040516001600160a01b0380851693921691600080516020612ce983398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082611c4e57506000610b98565b6000611c5a8385612c7f565b905082611c678583612c9e565b14610dc45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610ae1565b6000808211611d0f5760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f0000000000006044820152606401610ae1565b610dc48284612c9e565b6001600160a01b038316611d7b5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ae1565b6001600160a01b038216611ddc5760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ae1565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611ea15760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ae1565b6001600160a01b038216611f035760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ae1565b60008111611f6c5760405162461bcd60e51b815260206004820152603060248201527f42455032303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610ae1565b6001600160a01b03831660009081526009602052604090205460ff16158015611fae57506001600160a01b03821660009081526009602052604090205460ff16155b1561203d57601754610100900460ff1661203d576010546001600160a01b038481166101009092041614801590611ff857506010546001600160a01b038381166101009092041614155b61203d5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b6044820152606401610ae1565b6001600160a01b03831660009081526007602052604090205460019060ff168061207f57506001600160a01b03831660009081526007602052604090205460ff165b8061208c575060175460ff165b15612095575060005b6120a1848484846121bc565b50505050565b600081848411156120cb5760405162461bcd60e51b8152600401610ae1919061299e565b506120d68385612c1f565b949350505050565b60008060006120eb61237f565b90925090506120fa8282611cbe565b9250505090565b60008061210e8385612c67565b905083811015610dc45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610ae1565b6000828211156121b25760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606401610ae1565b610dc48284612c1f565b806121cb576000601455612209565b6010546001600160a01b038581166101009092041614156121f157601a54601455612209565b60135482111561220257601c546014555b601b546014555b6001600160a01b03841660009081526008602052604090205460ff16801561224a57506001600160a01b03831660009081526008602052604090205460ff16155b1561225f5761225a848484612501565b61230b565b6001600160a01b03841660009081526008602052604090205460ff161580156122a057506001600160a01b03831660009081526008602052604090205460ff165b156122b05761225a848484612641565b6001600160a01b03841660009081526008602052604090205460ff1680156122f057506001600160a01b03831660009081526008602052604090205460ff165b156123005761225a848484612708565b61230b848484612799565b6001600160a01b03841660009081526009602052604090205460ff16612345576017805462ff00001916620100001790556123458461142f565b6001600160a01b03831660009081526009602052604090205460ff166120a1576017805462ff00001916620100001790556120a18361142f565b600c54600b546000918291825b600a548110156124d1578260036000600a84815481106123ae576123ae612bf3565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061241957508160046000600a84815481106123f2576123f2612bf3565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561242f57600c54600b54945094505050509091565b61247560036000600a848154811061244957612449612bf3565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490612160565b92506124bd60046000600a848154811061249157612491612bf3565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390612160565b9150806124c981612c4c565b91505061238c565b50600b54600c546124e191611cbe565b8210156124f857600c54600b549350935050509091565b90939092509050565b600061250b6120de565b9050600061252261251b84610dcb565b8490612160565b905060006125308484611c3f565b905060006125446112398561123388610dcb565b6001600160a01b03881660009081526004602052604090205490915061256a9086612160565b6001600160a01b0388166000908152600460209081526040808320939093556003905220546125999083612160565b6001600160a01b0380891660009081526003602052604080822093909355908816815220546125c89082612101565b6001600160a01b0387166000908152600360205260409020556125eb85856127fb565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161263091815260200190565b60405180910390a350505050505050565b600061264b6120de565b9050600061265b61251b84610dcb565b905060006126698484611c3f565b9050600061267d6112398561123388610dcb565b6001600160a01b0388166000908152600360205260409020549091506126a39083612160565b6001600160a01b038089166000908152600360209081526040808320949094559189168152600490915220546126d99084612101565b6001600160a01b0387166000908152600460209081526040808320939093556003905220546125c89082612101565b60006127126120de565b9050600061272261251b84610dcb565b905060006127308484611c3f565b905060006127446112398561123388610dcb565b6001600160a01b03881660009081526004602052604090205490915061276a9086612160565b6001600160a01b0388166000908152600460209081526040808320939093556003905220546126a39083612160565b60006127a36120de565b905060006127b361251b84610dcb565b905060006127c18484611c3f565b905060006127d56112398561123388610dcb565b6001600160a01b0388166000908152600360205260409020549091506125999083612160565b600061280683610dcb565b905060006128256103e8610de960195485611c3f90919063ffffffff16565b905060006128338285611c3f565b6012546001600160a01b031660009081526003602052604090205490915061285b9082612101565b601280546001600160a01b03908116600090815260036020908152604080832095909555925490911681526008909152205460ff16156128d6576012546001600160a01b03166000908152600460205260409020546128ba9083612101565b6012546001600160a01b03166000908152600460205260409020555b6012546001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161291d91815260200190565b60405180910390a360006129426103e8610de960185487611c3f90919063ffffffff16565b905060006129508287611c3f565b600c549091506129609082612160565b600c55600d546129709083612101565b600d5550505050505050565b6000806040838503121561298f57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156129cb578581018301518582016040015282016129af565b818111156129dd576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612a0857600080fd5b50565b60008060408385031215612a1e57600080fd5b8235612a29816129f3565b946020939093013593505050565b600060208284031215612a4957600080fd5b5035919050565b600080600060608486031215612a6557600080fd5b8335612a70816129f3565b92506020840135612a80816129f3565b929592945050506040919091013590565b600060208284031215612aa357600080fd5b8135610dc4816129f3565b8035801515811461114257600080fd5b60008060408385031215612ad157600080fd5b82359150612ae160208401612aae565b90509250929050565b60008060408385031215612afd57600080fd5b8235612b08816129f3565b9150612ae160208401612aae565b600060208284031215612b2857600080fd5b610dc482612aae565b60008060408385031215612b4457600080fd5b8235612b4f816129f3565b91506020830135612b5f816129f3565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680612bb357607f821691505b60208210811415612bd457634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215612bec57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015612c3157612c31612c09565b500390565b634e487b7160e01b600052603160045260246000fd5b6000600019821415612c6057612c60612c09565b5060010190565b60008219821115612c7a57612c7a612c09565b500190565b6000816000190483118215151615612c9957612c99612c09565b500290565b600082612cbb57634e487b7160e01b600052601260045260246000fd5b50049056fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e042455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203e0c318c665e93a6174b25228c72acd6d9defd420b18882bae558571bc58e07d64736f6c63430008090033

Deployed Bytecode

0x60806040526004361061037a5760003560e01c8063658c27a9116101d1578063a69df4b511610102578063d543dbeb116100a0578063f0d75ac01161006f578063f0d75ac014610a3d578063f28a3b6514610a5d578063f2fde38b14610a7d578063fc6f4cbb14610a9d57600080fd5b8063d543dbeb14610997578063dd467064146109b7578063dd62ed3e146109d7578063ea2f0b3714610a1d57600080fd5b8063b6c52324116100dc578063b6c5232414610928578063c0b0fda21461093d578063c816841b14610953578063cd52c7011461097857600080fd5b8063a69df4b5146108d3578063a9059cbb146108e8578063b3a8e98c1461090857600080fd5b806370d5ae051161016f57806388f820201161014957806388f82020146108475780638da5cb5b1461088057806395d89b411461089e578063a457c2d7146108b357600080fd5b806370d5ae05146107fc578063715018a61461081c5780637d1db4a51461083157600080fd5b80636ac9a870116101ab5780636ac9a8701461077c5780636f1678261461079c5780636f5e0212146107bc57806370a08231146107dc57600080fd5b8063658c27a91461070357806365d60e561461073c57806366fb61851461075c57600080fd5b80633685d419116102ab578063437823ec116102495780635342acb4116102235780635342acb41461067e578063590f897e146106b75780635b89029c146106cd57806363377140146106ed57600080fd5b8063437823ec1461061e5780634549b0391461063e57806352390c021461065e57600080fd5b80633bd5d173116102855780633bd5d173146105b2578063403a80c4146105d257806340b9a54b146105e857806342966c68146105fe57600080fd5b80633685d4191461055c578063393eabbf1461057c578063395093511461059257600080fd5b806325be124e116103185780632d838119116102f25780632d838119146104e4578063311fc7f814610504578063313ce5671461051a578063355afd1d1461053c57600080fd5b806325be124e14610477578063293230b8146104af5780632c08d3c1146104c457600080fd5b80630cc835a3116103545780630cc835a31461040357806313114a9d1461042357806318160ddd1461044257806323b872dd1461045757600080fd5b8063011d069d1461038657806306fdde03146103a8578063095ea7b3146103d357600080fd5b3661038157005b600080fd5b34801561039257600080fd5b506103a66103a136600461297c565b610ab7565b005b3480156103b457600080fd5b506103bd610af5565b6040516103ca919061299e565b60405180910390f35b3480156103df57600080fd5b506103f36103ee366004612a0b565b610b87565b60405190151581526020016103ca565b34801561040f57600080fd5b506103a661041e366004612a37565b610b9e565b34801561042f57600080fd5b50600d545b6040519081526020016103ca565b34801561044e57600080fd5b50600b54610434565b34801561046357600080fd5b506103f3610472366004612a50565b610bcd565b34801561048357600080fd5b50601154610497906001600160a01b031681565b6040516001600160a01b0390911681526020016103ca565b3480156104bb57600080fd5b506103a6610c36565b3480156104d057600080fd5b506104346104df366004612a91565b610cc9565b3480156104f057600080fd5b506104346104ff366004612a37565b610d47565b34801561051057600080fd5b5061043460155481565b34801561052657600080fd5b5060105460405160ff90911681526020016103ca565b34801561054857600080fd5b50610434610557366004612a37565b610dcb565b34801561056857600080fd5b506103a6610577366004612a91565b610def565b34801561058857600080fd5b5061043460165481565b34801561059e57600080fd5b506103f36105ad366004612a0b565b610fed565b3480156105be57600080fd5b506103a66105cd366004612a37565b611023565b3480156105de57600080fd5b5061043460185481565b3480156105f457600080fd5b50610434601a5481565b34801561060a57600080fd5b506103f3610619366004612a37565b6110fd565b34801561062a57600080fd5b506103a6610639366004612a91565b611147565b34801561064a57600080fd5b50610434610659366004612abe565b611195565b34801561066a57600080fd5b506103a6610679366004612a91565b61124a565b34801561068a57600080fd5b506103f3610699366004612a91565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156106c357600080fd5b50610434601b5481565b3480156106d957600080fd5b506103a66106e8366004612aea565b61139d565b3480156106f957600080fd5b50610434601c5481565b34801561070f57600080fd5b506103f361071e366004612a91565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561074857600080fd5b506103a6610757366004612b16565b6113f2565b34801561076857600080fd5b506103a6610777366004612a91565b61142f565b34801561078857600080fd5b506103a661079736600461297c565b6116c1565b3480156107a857600080fd5b506103a66107b736600461297c565b6116f6565b3480156107c857600080fd5b506103a66107d7366004612a91565b61172b565b3480156107e857600080fd5b506104346107f7366004612a91565b61177d565b34801561080857600080fd5b50601254610497906001600160a01b031681565b34801561082857600080fd5b506103a66117f3565b34801561083d57600080fd5b5061043460135481565b34801561085357600080fd5b506103f3610862366004612a91565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561088c57600080fd5b506000546001600160a01b0316610497565b3480156108aa57600080fd5b506103bd611855565b3480156108bf57600080fd5b506103f36108ce366004612a0b565b611864565b3480156108df57600080fd5b506103a66118b3565b3480156108f457600080fd5b506103f3610903366004612a0b565b6119ca565b34801561091457600080fd5b50610434610923366004612a91565b6119d7565b34801561093457600080fd5b50600254610434565b34801561094957600080fd5b5061043460195481565b34801561095f57600080fd5b506010546104979061010090046001600160a01b031681565b34801561098457600080fd5b506017546103f390610100900460ff1681565b3480156109a357600080fd5b506103a66109b2366004612a37565b611a1c565b3480156109c357600080fd5b506103a66109d2366004612a37565b611a4b565b3480156109e357600080fd5b506104346109f2366004612b31565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610a2957600080fd5b506103a6610a38366004612a91565b611ad0565b348015610a4957600080fd5b506103a6610a58366004612a91565b611b1b565b348015610a6957600080fd5b506017546103f39062010000900460ff1681565b348015610a8957600080fd5b506103a6610a98366004612a91565b611b67565b348015610aa957600080fd5b506017546103f39060ff1681565b6000546001600160a01b03163314610aea5760405162461bcd60e51b8152600401610ae190612b6a565b60405180910390fd5b601591909155601655565b6060600e8054610b0490612b9f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3090612b9f565b8015610b7d5780601f10610b5257610100808354040283529160200191610b7d565b820191906000526020600020905b815481529060010190602001808311610b6057829003601f168201915b5050505050905090565b6000610b94338484611d19565b5060015b92915050565b6000546001600160a01b03163314610bc85760405162461bcd60e51b8152600401610ae190612b6a565b601a55565b6000610bda848484611e3d565b610c2c8433610c2785604051806060016040528060288152602001612cc1602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906120a7565b611d19565b5060019392505050565b6000546001600160a01b03163314610c605760405162461bcd60e51b8152600401610ae190612b6a565b601754610100900460ff1615610cb85760405162461bcd60e51b815260206004820152601860248201527f5472616469696e6720616c726561647920656e61626c656400000000000000006044820152606401610ae1565b6017805461ff001916610100179055565b6011546040516370a0823160e01b81526001600160a01b03838116600483015260009216906370a082319060240160206040518083038186803b158015610d0f57600080fd5b505afa158015610d23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b989190612bda565b6000600c54821115610dae5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610ae1565b6000610db86120de565b9050610dc48382611cbe565b9392505050565b600080610dc46103e8610de960145486611c3f90919063ffffffff16565b90611cbe565b6000546001600160a01b03163314610e195760405162461bcd60e51b8152600401610ae190612b6a565b6001600160a01b03811660009081526008602052604090205460ff16610e815760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610ae1565b60005b600a54811015610fe957816001600160a01b0316600a8281548110610eab57610eab612bf3565b6000918252602090912001546001600160a01b03161415610fd757600a8054610ed690600190612c1f565b81548110610ee657610ee6612bf3565b600091825260209091200154600a80546001600160a01b039092169183908110610f1257610f12612bf3565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610f6a610f4b6120de565b6001600160a01b03841660009081526004602052604090205490611c3f565b6001600160a01b038316600090815260036020908152604080832093909355600481528282208290556008905220805460ff19169055600a805480610fb157610fb1612c36565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610fe181612c4c565b915050610e84565b5050565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610b94918590610c279086612101565b3360009081526008602052604090205460ff16156110985760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610ae1565b60006110ac6110a56120de565b8390611c3f565b336000908152600360205260409020549091506110c99082612160565b33600090815260036020526040902055600c546110e69082612160565b600c55600d546110f69083612101565b600d555050565b600080546001600160a01b031633146111285760405162461bcd60e51b8152600401610ae190612b6a565b61113e336012546001600160a01b031684611e3d565b5060015b919050565b6000546001600160a01b031633146111715760405162461bcd60e51b8152600401610ae190612b6a565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000600b548311156111e95760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610ae1565b8161120b5760006112026111fb6120de565b8590611c3f565b9150610b989050565b60006112186111fb6120de565b9050600061124061123961122a6120de565b61123388610dcb565b90611c3f565b8390612160565b9250610b98915050565b6000546001600160a01b031633146112745760405162461bcd60e51b8152600401610ae190612b6a565b6001600160a01b03811660009081526008602052604090205460ff16156112dd5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610ae1565b6001600160a01b03811660009081526003602052604090205415611337576001600160a01b03811660009081526003602052604090205461131d90610d47565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600860205260408120805460ff19166001908117909155600a805491820181559091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319169091179055565b6000546001600160a01b031633146113c75760405162461bcd60e51b8152600401610ae190612b6a565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461141c5760405162461bcd60e51b8152600401610ae190612b6a565b6017805460ff1916911515919091179055565b6000611440601654610de98461177d565b9050600061144d83610cc9565b905060006114596120de565b905060006016546114698661177d565b1061163d57838310611550576001600160a01b0385166000908152600560205260409020546114bb9061149c9084611c3f565b6001600160a01b03871660009081526003602052604090205490612160565b6001600160a01b03861660009081526003602052604090208190556015546114ea91606491610de99190611c3f565b6001600160a01b0386166000908152600360205260409020549091506115109082612101565b6001600160a01b03861660009081526003602052604090205561153281610d47565b6001600160a01b03861660009081526005602052604090205561163d565b6001600160a01b0385166000908152600560205260409020546115779061149c9084611c3f565b6001600160a01b0386166000908152600360205260409020556115a461159d8585612160565b8590612160565b90506115bf8261123360165484611c3f90919063ffffffff16565b90506115db6064610de960155484611c3f90919063ffffffff16565b6001600160a01b0386166000908152600360205260409020549091506116019082612101565b6001600160a01b03861660009081526003602052604090205561162381610d47565b6001600160a01b0386166000908152600560205260409020555b60175462010000900460ff16156116ba576017805462ff0000191690556011546040516366fb618560e01b81526001600160a01b038781166004830152909116906366fb618590602401600060405180830381600087803b1580156116a157600080fd5b505af11580156116b5573d6000803e3d6000fd5b505050505b5050505050565b6000546001600160a01b031633146116eb5760405162461bcd60e51b8152600401610ae190612b6a565b601b91909155601c55565b6000546001600160a01b031633146117205760405162461bcd60e51b8152600401610ae190612b6a565b601891909155601955565b6000546001600160a01b031633146117555760405162461bcd60e51b8152600401610ae190612b6a565b601080546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b03811660009081526008602052604081205460ff16156117ba57506001600160a01b031660009081526004602052604090205490565b6001600160a01b038216600090815260056020908152604080832054600390925290912054610b9891906117ed90610d47565b90612160565b6000546001600160a01b0316331461181d5760405162461bcd60e51b8152600401610ae190612b6a565b600080546040516001600160a01b0390911690600080516020612ce9833981519152908390a3600080546001600160a01b0319169055565b6060600f8054610b0490612b9f565b6000610b943384610c2785604051806060016040528060258152602001612d09602591393360009081526006602090815260408083206001600160a01b038d16845290915290205491906120a7565b6001546001600160a01b031633146119195760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610ae1565b60025442116119785760405162461bcd60e51b815260206004820152602560248201527f436f6e7472616374206973206c6f636b656420756e74696c20646566696e6564604482015264206461797360d81b6064820152608401610ae1565b600154600080546040516001600160a01b039384169390911691600080516020612ce983398151915291a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610b94338484611e3d565b6001600160a01b03811660009081526008602052604081205460ff1615611a0057506000919050565b506001600160a01b031660009081526005602052604090205490565b6000546001600160a01b03163314611a465760405162461bcd60e51b8152600401610ae190612b6a565b601355565b6000546001600160a01b03163314611a755760405162461bcd60e51b8152600401610ae190612b6a565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055611aa48142612c67565b600255600080546040516001600160a01b0390911690600080516020612ce9833981519152908390a350565b6000546001600160a01b03163314611afa5760405162461bcd60e51b8152600401610ae190612b6a565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b03163314611b455760405162461bcd60e51b8152600401610ae190612b6a565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611b915760405162461bcd60e51b8152600401610ae190612b6a565b6001600160a01b038116611bf65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ae1565b600080546040516001600160a01b0380851693921691600080516020612ce983398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082611c4e57506000610b98565b6000611c5a8385612c7f565b905082611c678583612c9e565b14610dc45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610ae1565b6000808211611d0f5760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f0000000000006044820152606401610ae1565b610dc48284612c9e565b6001600160a01b038316611d7b5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ae1565b6001600160a01b038216611ddc5760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ae1565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611ea15760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ae1565b6001600160a01b038216611f035760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ae1565b60008111611f6c5760405162461bcd60e51b815260206004820152603060248201527f42455032303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610ae1565b6001600160a01b03831660009081526009602052604090205460ff16158015611fae57506001600160a01b03821660009081526009602052604090205460ff16155b1561203d57601754610100900460ff1661203d576010546001600160a01b038481166101009092041614801590611ff857506010546001600160a01b038381166101009092041614155b61203d5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b6044820152606401610ae1565b6001600160a01b03831660009081526007602052604090205460019060ff168061207f57506001600160a01b03831660009081526007602052604090205460ff165b8061208c575060175460ff165b15612095575060005b6120a1848484846121bc565b50505050565b600081848411156120cb5760405162461bcd60e51b8152600401610ae1919061299e565b506120d68385612c1f565b949350505050565b60008060006120eb61237f565b90925090506120fa8282611cbe565b9250505090565b60008061210e8385612c67565b905083811015610dc45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610ae1565b6000828211156121b25760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606401610ae1565b610dc48284612c1f565b806121cb576000601455612209565b6010546001600160a01b038581166101009092041614156121f157601a54601455612209565b60135482111561220257601c546014555b601b546014555b6001600160a01b03841660009081526008602052604090205460ff16801561224a57506001600160a01b03831660009081526008602052604090205460ff16155b1561225f5761225a848484612501565b61230b565b6001600160a01b03841660009081526008602052604090205460ff161580156122a057506001600160a01b03831660009081526008602052604090205460ff165b156122b05761225a848484612641565b6001600160a01b03841660009081526008602052604090205460ff1680156122f057506001600160a01b03831660009081526008602052604090205460ff165b156123005761225a848484612708565b61230b848484612799565b6001600160a01b03841660009081526009602052604090205460ff16612345576017805462ff00001916620100001790556123458461142f565b6001600160a01b03831660009081526009602052604090205460ff166120a1576017805462ff00001916620100001790556120a18361142f565b600c54600b546000918291825b600a548110156124d1578260036000600a84815481106123ae576123ae612bf3565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061241957508160046000600a84815481106123f2576123f2612bf3565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561242f57600c54600b54945094505050509091565b61247560036000600a848154811061244957612449612bf3565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490612160565b92506124bd60046000600a848154811061249157612491612bf3565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390612160565b9150806124c981612c4c565b91505061238c565b50600b54600c546124e191611cbe565b8210156124f857600c54600b549350935050509091565b90939092509050565b600061250b6120de565b9050600061252261251b84610dcb565b8490612160565b905060006125308484611c3f565b905060006125446112398561123388610dcb565b6001600160a01b03881660009081526004602052604090205490915061256a9086612160565b6001600160a01b0388166000908152600460209081526040808320939093556003905220546125999083612160565b6001600160a01b0380891660009081526003602052604080822093909355908816815220546125c89082612101565b6001600160a01b0387166000908152600360205260409020556125eb85856127fb565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161263091815260200190565b60405180910390a350505050505050565b600061264b6120de565b9050600061265b61251b84610dcb565b905060006126698484611c3f565b9050600061267d6112398561123388610dcb565b6001600160a01b0388166000908152600360205260409020549091506126a39083612160565b6001600160a01b038089166000908152600360209081526040808320949094559189168152600490915220546126d99084612101565b6001600160a01b0387166000908152600460209081526040808320939093556003905220546125c89082612101565b60006127126120de565b9050600061272261251b84610dcb565b905060006127308484611c3f565b905060006127446112398561123388610dcb565b6001600160a01b03881660009081526004602052604090205490915061276a9086612160565b6001600160a01b0388166000908152600460209081526040808320939093556003905220546126a39083612160565b60006127a36120de565b905060006127b361251b84610dcb565b905060006127c18484611c3f565b905060006127d56112398561123388610dcb565b6001600160a01b0388166000908152600360205260409020549091506125999083612160565b600061280683610dcb565b905060006128256103e8610de960195485611c3f90919063ffffffff16565b905060006128338285611c3f565b6012546001600160a01b031660009081526003602052604090205490915061285b9082612101565b601280546001600160a01b03908116600090815260036020908152604080832095909555925490911681526008909152205460ff16156128d6576012546001600160a01b03166000908152600460205260409020546128ba9083612101565b6012546001600160a01b03166000908152600460205260409020555b6012546001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161291d91815260200190565b60405180910390a360006129426103e8610de960185487611c3f90919063ffffffff16565b905060006129508287611c3f565b600c549091506129609082612160565b600c55600d546129709083612101565b600d5550505050505050565b6000806040838503121561298f57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156129cb578581018301518582016040015282016129af565b818111156129dd576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612a0857600080fd5b50565b60008060408385031215612a1e57600080fd5b8235612a29816129f3565b946020939093013593505050565b600060208284031215612a4957600080fd5b5035919050565b600080600060608486031215612a6557600080fd5b8335612a70816129f3565b92506020840135612a80816129f3565b929592945050506040919091013590565b600060208284031215612aa357600080fd5b8135610dc4816129f3565b8035801515811461114257600080fd5b60008060408385031215612ad157600080fd5b82359150612ae160208401612aae565b90509250929050565b60008060408385031215612afd57600080fd5b8235612b08816129f3565b9150612ae160208401612aae565b600060208284031215612b2857600080fd5b610dc482612aae565b60008060408385031215612b4457600080fd5b8235612b4f816129f3565b91506020830135612b5f816129f3565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680612bb357607f821691505b60208210811415612bd457634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215612bec57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015612c3157612c31612c09565b500390565b634e487b7160e01b600052603160045260246000fd5b6000600019821415612c6057612c60612c09565b5060010190565b60008219821115612c7a57612c7a612c09565b500190565b6000816000190483118215151615612c9957612c99612c09565b500290565b600082612cbb57634e487b7160e01b600052601260045260246000fd5b50049056fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e042455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203e0c318c665e93a6174b25228c72acd6d9defd420b18882bae558571bc58e07d64736f6c63430008090033

Deployed Bytecode Sourcemap

3324:18435:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11975:175;;;;;;;;;;-1:-1:-1;11975:175:0;;;;;:::i;:::-;;:::i;:::-;;5436:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7068:193;;;;;;;;;;-1:-1:-1;7068:193:0;;;;;:::i;:::-;;:::i;:::-;;;1490:14:1;;1483:22;1465:41;;1453:2;1438:18;7068:193:0;1325:187:1;11570:89:0;;;;;;;;;;-1:-1:-1;11570:89:0;;;;;:::i;:::-;;:::i;8567:87::-;;;;;;;;;;-1:-1:-1;8636:10:0;;8567:87;;;1848:25:1;;;1836:2;1821:18;8567:87:0;1702:177:1;5740:95:0;;;;;;;;;;-1:-1:-1;5820:7:0;;5740:95;;7269:446;;;;;;;;;;-1:-1:-1;7269:446:0;;;;;:::i;:::-;;:::i;4194:20::-;;;;;;;;;;-1:-1:-1;4194:20:0;;;;-1:-1:-1;;;;;4194:20:0;;;;;;-1:-1:-1;;;;;2522:32:1;;;2504:51;;2492:2;2477:18;4194:20:0;2345:216:1;12380:142:0;;;;;;;;;;;;;:::i;6344:160::-;;;;;;;;;;-1:-1:-1;6344:160:0;;;;;:::i;:::-;;:::i;9649:322::-;;;;;;;;;;-1:-1:-1;9649:322:0;;;;;:::i;:::-;;:::i;4433:34::-;;;;;;;;;;;;;;;;5640:92;;;;;;;;;;-1:-1:-1;5715:9:0;;5640:92;;5715:9;;;;2960:36:1;;2948:2;2933:18;5640:92:0;2818:184:1;12794:177:0;;;;;;;;;;-1:-1:-1;12794:177:0;;;;;:::i;:::-;;:::i;10319:547::-;;;;;;;;;;-1:-1:-1;10319:547:0;;;;;:::i;:::-;;:::i;4474:41::-;;;;;;;;;;;;;;;;7723:300;;;;;;;;;;-1:-1:-1;7723:300:0;;;;;:::i;:::-;;:::i;8662:389::-;;;;;;;;;;-1:-1:-1;8662:389:0;;;;;:::i;:::-;;:::i;4628:31::-;;;;;;;;;;;;;;;;4805:27;;;;;;;;;;;;;;;;6719:149;;;;;;;;;;-1:-1:-1;6719:149:0;;;;;:::i;:::-;;:::i;10874:111::-;;;;;;;;;;-1:-1:-1;10874:111:0;;;;;:::i;:::-;;:::i;9059:582::-;;;;;;;;;;-1:-1:-1;9059:582:0;;;;;:::i;:::-;;:::i;9979:332::-;;;;;;;;;;-1:-1:-1;9979:332:0;;;;;:::i;:::-;;:::i;13592:124::-;;;;;;;;;;-1:-1:-1;13592:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;13681:27:0;13657:4;13681:27;;;:18;:27;;;;;;;;;13592:124;4858:28;;;;;;;;;;;;;;;;11227:156;;;;;;;;;;-1:-1:-1;11227:156:0;;;;;:::i;:::-;;:::i;4912:39::-;;;;;;;;;;;;;;;;13724:128;;;;;;;;;;-1:-1:-1;13724:128:0;;;;;:::i;:::-;-1:-1:-1;;;;;13815:29:0;13791:4;13815:29;;;:20;:29;;;;;;;;;13724:128;11859:108;;;;;;;;;;-1:-1:-1;11859:108:0;;;;;:::i;:::-;;:::i;16753:1397::-;;;;;;;;;;-1:-1:-1;16753:1397:0;;;;;:::i;:::-;;:::i;11667:184::-;;;;;;;;;;-1:-1:-1;11667:184:0;;;;;:::i;:::-;;:::i;11391:171::-;;;;;;;;;;-1:-1:-1;11391:171:0;;;;;:::i;:::-;;:::i;12158:117::-;;;;;;;;;;-1:-1:-1;12158:117:0;;;;;:::i;:::-;;:::i;5843:276::-;;;;;;;;;;-1:-1:-1;5843:276:0;;;;;:::i;:::-;;:::i;4221:71::-;;;;;;;;;;-1:-1:-1;4221:71:0;;;;-1:-1:-1;;;;;4221:71:0;;;2009:157;;;;;;;;;;;;;:::i;4301:54::-;;;;;;;;;;;;;;;;8439:120;;;;;;;;;;-1:-1:-1;8439:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;8531:20:0;8507:4;8531:20;;;:11;:20;;;;;;;;;8439:120;1795:79;;;;;;;;;;-1:-1:-1;1833:7:0;1860:6;-1:-1:-1;;;;;1860:6:0;1795:79;;5536:96;;;;;;;;;;;;;:::i;8031:400::-;;;;;;;;;;-1:-1:-1;8031:400:0;;;;;:::i;:::-;;:::i;2906:358::-;;;;;;;;;;;;;:::i;6512:199::-;;;;;;;;;;-1:-1:-1;6512:199:0;;;;;:::i;:::-;;:::i;6127:209::-;;;;;;;;;;-1:-1:-1;6127:209:0;;;;;:::i;:::-;;:::i;2434:89::-;;;;;;;;;;-1:-1:-1;2506:9:0;;2434:89;;4719:29;;;;;;;;;;;;;;;;4161:26;;;;;;;;;;-1:-1:-1;4161:26:0;;;;;;;-1:-1:-1;;;;;4161:26:0;;;4564:24;;;;;;;;;;-1:-1:-1;4564:24:0;;;;;;;;;;;11111:108;;;;;;;;;;-1:-1:-1;11111:108:0;;;;;:::i;:::-;;:::i;2599:235::-;;;;;;;;;;-1:-1:-1;2599:235:0;;;;;:::i;:::-;;:::i;6876:184::-;;;;;;;;;;-1:-1:-1;6876:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7025:18:0;;;6993:7;7025:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6876:184;10993:110;;;;;;;;;;-1:-1:-1;10993:110:0;;;;;:::i;:::-;;:::i;12283:89::-;;;;;;;;;;-1:-1:-1;12283:89:0;;;;;:::i;:::-;;:::i;4595:24::-;;;;;;;;;;-1:-1:-1;4595:24:0;;;;;;;;;;;2174:252;;;;;;;;;;-1:-1:-1;2174:252:0;;;;;:::i;:::-;;:::i;4524:33::-;;;;;;;;;;-1:-1:-1;4524:33:0;;;;;;;;11975:175;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;;;;;;;;;12088:13:::1;:24:::0;;;;12123:9:::1;:19:::0;11975:175::o;5436:92::-;5482:13;5515:5;5508:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5436:92;:::o;7068:193::-;7170:4;7192:39;1166:10;7215:7;7224:6;7192:8;:39::i;:::-;-1:-1:-1;7249:4:0;7068:193;;;;;:::o;11570:89::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;11635:7:::1;:16:::0;11570:89::o;7269:446::-;7401:4;7418:36;7428:6;7436:9;7447:6;7418:9;:36::i;:::-;7465:220;7488:6;1166:10;7536:138;7592:6;7536:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7536:19:0;;;;;;:11;:19;;;;;;;;1166:10;7536:33;;;;;;;;;;:37;:138::i;:::-;7465:8;:220::i;:::-;-1:-1:-1;7703:4:0;7269:446;;;;;:::o;12380:142::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;12443:12:::1;::::0;::::1;::::0;::::1;;;12442:13;12434:50;;;::::0;-1:-1:-1;;;12434:50:0;;6004:2:1;12434:50:0::1;::::0;::::1;5986:21:1::0;6043:2;6023:18;;;6016:30;6082:26;6062:18;;;6055:54;6126:18;;12434:50:0::1;5802:348:1::0;12434:50:0::1;12495:12;:19:::0;;-1:-1:-1;;12495:19:0::1;;;::::0;;12380:142::o;6344:160::-;6471:6;;:25;;-1:-1:-1;;;6471:25:0;;-1:-1:-1;;;;;2522:32:1;;;6471:25:0;;;2504:51:1;6439:7:0;;6471:6;;:16;;2477:18:1;;6471:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9649:322::-;9743:7;9801;;9790;:18;;9768:110;;;;-1:-1:-1;;;9768:110:0;;6546:2:1;9768:110:0;;;6528:21:1;6585:2;6565:18;;;6558:30;6624:34;6604:18;;;6597:62;-1:-1:-1;;;6675:18:1;;;6668:40;6725:19;;9768:110:0;6344:406:1;9768:110:0;9889:19;9911:10;:8;:10::i;:::-;9889:32;-1:-1:-1;9939:24:0;:7;9889:32;9939:11;:24::i;:::-;9932:31;9649:322;-1:-1:-1;;;9649:322:0:o;12794:177::-;12858:7;12878:18;12899:36;12931:3;12899:27;12911:14;;12899:7;:11;;:27;;;;:::i;:::-;:31;;:36::i;10319:547::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10399:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;10391:60;;;::::0;-1:-1:-1;;;10391:60:0;;6957:2:1;10391:60:0::1;::::0;::::1;6939:21:1::0;6996:2;6976:18;;;6969:30;7035:29;7015:18;;;7008:57;7082:18;;10391:60:0::1;6755:351:1::0;10391:60:0::1;10467:9;10462:397;10486:9;:16:::0;10482:20;::::1;10462:397;;;10544:7;-1:-1:-1::0;;;;;10528:23:0::1;:9;10538:1;10528:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;10528:12:0::1;:23;10524:324;;;10587:9;10597:16:::0;;:20:::1;::::0;10616:1:::1;::::0;10597:20:::1;:::i;:::-;10587:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;10572:9:::1;:12:::0;;-1:-1:-1;;;;;10587:31:0;;::::1;::::0;10582:1;;10572:12;::::1;;;;;:::i;:::-;;;;;;;;;:46;;;;;-1:-1:-1::0;;;;;10572:46:0::1;;;;;-1:-1:-1::0;;;;;10572:46:0::1;;;;;;10656:32;10677:10;:8;:10::i;:::-;-1:-1:-1::0;;;;;10656:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;;:20:::1;:32::i;:::-;-1:-1:-1::0;;;;;10637:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;;;:51;;;;10707:7:::1;:16:::0;;;;;:20;;;10746:11:::1;:20:::0;;;:28;;-1:-1:-1;;10746:28:0::1;::::0;;10793:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;10793:15:0;;;;;-1:-1:-1;;;;;;10793:15:0::1;::::0;;;;;10462:397:::1;10319:547:::0;:::o;10524:324::-:1;10504:3:::0;::::1;::::0;::::1;:::i;:::-;;;;10462:397;;;;10319:547:::0;:::o;7723:300::-;1166:10;7838:4;7932:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7932:34:0;;;;;;;;;;7838:4;;7860:133;;7910:7;;7932:50;;7971:10;7932:38;:50::i;8662:389::-;1166:10;8737:25;;;;:11;:25;;;;;;;;8736:26;8714:120;;;;-1:-1:-1;;;8714:120:0;;7979:2:1;8714:120:0;;;7961:21:1;8018:2;7998:18;;;7991:30;8057:34;8037:18;;;8030:62;-1:-1:-1;;;8108:18:1;;;8101:42;8160:19;;8714:120:0;7777:408:1;8714:120:0;8845:15;8863:23;8875:10;:8;:10::i;:::-;8863:7;;:11;:23::i;:::-;1166:10;8921:21;;;;:7;:21;;;;;;8845:41;;-1:-1:-1;8921:34:0;;8845:41;8921:25;:34::i;:::-;1166:10;8897:21;;;;:7;:21;;;;;:58;8976:7;;:20;;8988:7;8976:11;:20::i;:::-;8966:7;:30;9020:10;;:23;;9035:7;9020:14;:23::i;:::-;9007:10;:36;-1:-1:-1;;8662:389:0:o;6719:149::-;6777:4;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;6794:44:::1;1166:10:::0;6818:11:::1;::::0;-1:-1:-1;;;;;6818:11:0::1;6831:6:::0;6794:9:::1;:44::i;:::-;-1:-1:-1::0;6856:4:0::1;1992:1;6719:149:::0;;;:::o;10874:111::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10943:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;10943:34:0::1;10973:4;10943:34;::::0;;10874:111::o;9059:582::-;9177:7;9221;;9210;:18;;9202:62;;;;-1:-1:-1;;;9202:62:0;;8392:2:1;9202:62:0;;;8374:21:1;8431:2;8411:18;;;8404:30;8470:33;8450:18;;;8443:61;8521:18;;9202:62:0;8190:355:1;9202:62:0;9280:17;9275:359;;9314:15;9332:23;9344:10;:8;:10::i;:::-;9332:7;;:11;:23::i;:::-;9314:41;-1:-1:-1;9370:14:0;;-1:-1:-1;9370:14:0;9275:359;9417:15;9435:23;9447:10;:8;:10::i;9435:23::-;9417:41;;9473:23;9499:86;9529:41;9559:10;:8;:10::i;:::-;9529:25;9546:7;9529:16;:25::i;:::-;:29;;:41::i;:::-;9499:7;;:11;:86::i;:::-;9473:112;-1:-1:-1;9600:22:0;;-1:-1:-1;;9600:22:0;9979:332;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10060:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;10059:21;10051:61;;;::::0;-1:-1:-1;;;10051:61:0;;6957:2:1;10051:61:0::1;::::0;::::1;6939:21:1::0;6996:2;6976:18;;;6969:30;7035:29;7015:18;;;7008:57;7082:18;;10051:61:0::1;6755:351:1::0;10051:61:0::1;-1:-1:-1::0;;;;;10127:16:0;::::1;10146:1;10127:16:::0;;;:7:::1;:16;::::0;;;;;:20;10123:109:::1;;-1:-1:-1::0;;;;;10203:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;10183:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;10164:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;10123:109:::1;-1:-1:-1::0;;;;;10242:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;10242:27:0::1;10265:4;10242:27:::0;;::::1;::::0;;;10280:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;10280:23:0::1;::::0;;::::1;::::0;;9979:332::o;11227:156::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11337:30:0;;;::::1;;::::0;;;:20:::1;:30;::::0;;;;:38;;-1:-1:-1;;11337:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11227:156::o;11859:108::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;11929:21:::1;:30:::0;;-1:-1:-1;;11929:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11859:108::o;16753:1397::-;16829:20;16852:31;16873:9;;16852:16;16862:5;16852:9;:16::i;:31::-;16829:54;;16894:20;16917:27;16938:5;16917:20;:27::i;:::-;16894:50;;16955:19;16977:10;:8;:10::i;:::-;16955:32;;16998:21;17054:9;;17034:16;17044:5;17034:9;:16::i;:::-;:29;17030:985;;17100:12;17084;:28;17080:924;;-1:-1:-1;;;;;17169:25:0;;;;;;:18;:25;;;;;;17150:62;;17169:42;;17199:11;17169:29;:42::i;:::-;-1:-1:-1;;;;;17150:14:0;;;;;;:7;:14;;;;;;;:18;:62::i;:::-;-1:-1:-1;;;;;17133:14:0;;;;;;:7;:14;;;;;:79;;;17266:13;;17247:42;;17285:3;;17247:33;;17133:79;17247:18;:33::i;:42::-;-1:-1:-1;;;;;17325:14:0;;;;;;:7;:14;;;;;;17231:58;;-1:-1:-1;17325:33:0;;17231:58;17325:18;:33::i;:::-;-1:-1:-1;;;;;17308:14:0;;;;;;:7;:14;;;;;:50;17405:34;17425:13;17405:19;:34::i;:::-;-1:-1:-1;;;;;17377:25:0;;;;;;:18;:25;;;;;:62;17080:924;;;-1:-1:-1;;;;;17516:25:0;;;;;;:18;:25;;;;;;17497:62;;17516:42;;17546:11;17516:29;:42::i;17497:62::-;-1:-1:-1;;;;;17480:14:0;;;;;;:7;:14;;;;;:79;17594:88;17633:30;:12;17650;17633:16;:30::i;:::-;17594:12;;:16;:88::i;:::-;17578:104;;17717:45;17750:11;17717:28;17735:9;;17717:13;:17;;:28;;;;:::i;:45::-;17701:61;;17797:41;17834:3;17797:32;17815:13;;17797;:17;;:32;;;;:::i;:41::-;-1:-1:-1;;;;;17874:14:0;;;;;;:7;:14;;;;;;17781:57;;-1:-1:-1;17874:33:0;;17781:57;17874:18;:33::i;:::-;-1:-1:-1;;;;;17857:14:0;;;;;;:7;:14;;;;;:50;17954:34;17974:13;17954:19;:34::i;:::-;-1:-1:-1;;;;;17926:25:0;;;;;;:18;:25;;;;;:62;17080:924;18029:12;;;;;;;18025:118;;;18058:12;:20;;-1:-1:-1;;18058:20:0;;;18093:6;;:38;;-1:-1:-1;;;18093:38:0;;-1:-1:-1;;;;;2522:32:1;;;18093:38:0;;;2504:51:1;18093:6:0;;;;:31;;2477:18:1;;18093:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18025:118;16818:1332;;;;16753:1397;:::o;11667:184::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;11780:8:::1;:18:::0;;;;11809::::1;:34:::0;11667:184::o;11391:171::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;11503:10:::1;:22:::0;;;;11536:8:::1;:18:::0;11391:171::o;12158:117::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;12248:11:::1;:19:::0;;-1:-1:-1;;;;;12248:19:0;;::::1;;;-1:-1:-1::0;;;;;;12248:19:0;;::::1;::::0;;;::::1;::::0;;12158:117::o;5843:276::-;-1:-1:-1;;;;;5933:20:0;;5909:7;5933:20;;;:11;:20;;;;;;;;5929:49;;;-1:-1:-1;;;;;;5962:16:0;;;;;:7;:16;;;;;;;5843:276::o;5929:49::-;-1:-1:-1;;;;;6083:27:0;;;;;;:18;:27;;;;;;;;;6047:7;:16;;;;;;;6009:102;;6083:27;6009:69;;:19;:69::i;:::-;:73;;:102::i;2009:157::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;2116:1:::1;2100:6:::0;;2079:40:::1;::::0;-1:-1:-1;;;;;2100:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;2079:40:0;2116:1;;2079:40:::1;2155:1;2130:28:::0;;-1:-1:-1;;;;;;2130:28:0::1;::::0;;2009:157::o;5536:96::-;5584:13;5617:7;5610:14;;;;;:::i;8031:400::-;8151:4;8173:228;1166:10;8223:7;8245:145;8302:15;8245:145;;;;;;;;;;;;;;;;;1166:10;8245:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8245:34:0;;;;;;;;;;;;:38;:145::i;2906:358::-;2958:14;;-1:-1:-1;;;;;2958:14:0;2976:10;2958:28;2950:76;;;;-1:-1:-1;;;2950:76:0;;8752:2:1;2950:76:0;;;8734:21:1;8791:2;8771:18;;;8764:30;8830:34;8810:18;;;8803:62;-1:-1:-1;;;8881:18:1;;;8874:33;8924:19;;2950:76:0;8550:399:1;2950:76:0;3063:9;;3045:15;:27;3037:78;;;;-1:-1:-1;;;3037:78:0;;9156:2:1;3037:78:0;;;9138:21:1;9195:2;9175:18;;;9168:30;9234:34;9214:18;;;9207:62;-1:-1:-1;;;9285:18:1;;;9278:35;9330:19;;3037:78:0;8954:401:1;3037:78:0;3160:14;;;3152:6;;3131:44;;-1:-1:-1;;;;;3160:14:0;;;;3152:6;;;;-1:-1:-1;;;;;;;;;;;3131:44:0;;3195:14;;;;3186:23;;-1:-1:-1;;;;;;3186:23:0;;;-1:-1:-1;;;;;3195:14:0;;3186:23;;;;3220:36;;;2906:358::o;6512:199::-;6617:4;6639:42;1166:10;6663:9;6674:6;6639:9;:42::i;6127:209::-;-1:-1:-1;;;;;6253:20:0;;6224:7;6253:20;;;:11;:20;;;;;;;;6249:34;;;-1:-1:-1;6282:1:0;;6127:209;-1:-1:-1;6127:209:0:o;6249:34::-;-1:-1:-1;;;;;;6301:27:0;;;;;:18;:27;;;;;;;6127:209::o;11111:108::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;11185:12:::1;:26:::0;11111:108::o;2599:235::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;2680:6:::1;::::0;;;2663:23;;-1:-1:-1;;;;;;2663:23:0;;::::1;-1:-1:-1::0;;;;;2680:6:0;::::1;2663:23;::::0;;;2697:28:::1;::::0;;2748:22:::1;2766:4:::0;2748:15:::1;:22;:::i;:::-;2736:9;:34:::0;2823:1:::1;2807:6:::0;;2786:40:::1;::::0;-1:-1:-1;;;;;2807:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;2786:40:0;2823:1;;2786:40:::1;2599:235:::0;:::o;10993:110::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11060:27:0::1;11090:5;11060:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;11060:35:0::1;::::0;;10993:110::o;12283:89::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;12348:6:::1;:16:::0;;-1:-1:-1;;;;;;12348:16:0::1;-1:-1:-1::0;;;;;12348:16:0;;;::::1;::::0;;;::::1;::::0;;12283:89::o;2174:252::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1166:10;1922:22;1914:67;;;;-1:-1:-1;;;1914:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2271:22:0;::::1;2263:73;;;::::0;-1:-1:-1;;;2263:73:0;;9695:2:1;2263:73:0::1;::::0;::::1;9677:21:1::0;9734:2;9714:18;;;9707:30;9773:34;9753:18;;;9746:62;-1:-1:-1;;;9824:18:1;;;9817:36;9870:19;;2263:73:0::1;9493:402:1::0;2263:73:0::1;2373:6;::::0;;2352:38:::1;::::0;-1:-1:-1;;;;;2352:38:0;;::::1;::::0;2373:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;2352:38:0;::::1;2401:6;:17:::0;;-1:-1:-1;;;;;;2401:17:0::1;-1:-1:-1::0;;;;;2401:17:0;;;::::1;::::0;;;::::1;::::0;;2174:252::o;23269:220::-;23327:7;23351:6;23347:20;;-1:-1:-1;23366:1:0;23359:8;;23347:20;23378:9;23390:5;23394:1;23390;:5;:::i;:::-;23378:17;-1:-1:-1;23423:1:0;23414:5;23418:1;23378:17;23414:5;:::i;:::-;:10;23406:56;;;;-1:-1:-1;;;23406:56:0;;10497:2:1;23406:56:0;;;10479:21:1;10536:2;10516:18;;;10509:30;10575:34;10555:18;;;10548:62;-1:-1:-1;;;10626:18:1;;;10619:31;10667:19;;23406:56:0;10295:397:1;23497:153:0;23555:7;23587:1;23583;:5;23575:44;;;;-1:-1:-1;;;23575:44:0;;10899:2:1;23575:44:0;;;10881:21:1;10938:2;10918:18;;;10911:30;10977:28;10957:18;;;10950:56;11023:18;;23575:44:0;10697:350:1;23575:44:0;23637:5;23641:1;23637;:5;:::i;13860:371::-;-1:-1:-1;;;;;13987:19:0;;13979:68;;;;-1:-1:-1;;;13979:68:0;;11254:2:1;13979:68:0;;;11236:21:1;11293:2;11273:18;;;11266:30;11332:34;11312:18;;;11305:62;-1:-1:-1;;;11383:18:1;;;11376:34;11427:19;;13979:68:0;11052:400:1;13979:68:0;-1:-1:-1;;;;;14066:21:0;;14058:68;;;;-1:-1:-1;;;14058:68:0;;11659:2:1;14058:68:0;;;11641:21:1;11698:2;11678:18;;;11671:30;11737:34;11717:18;;;11710:62;-1:-1:-1;;;11788:18:1;;;11781:32;11830:19;;14058:68:0;11457:398:1;14058:68:0;-1:-1:-1;;;;;14139:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14191:32;;1848:25:1;;;14191:32:0;;1821:18:1;14191:32:0;;;;;;;13860:371;;;:::o;14239:1192::-;-1:-1:-1;;;;;14361:18:0;;14353:68;;;;-1:-1:-1;;;14353:68:0;;12062:2:1;14353:68:0;;;12044:21:1;12101:2;12081:18;;;12074:30;12140:34;12120:18;;;12113:62;-1:-1:-1;;;12191:18:1;;;12184:35;12236:19;;14353:68:0;11860:401:1;14353:68:0;-1:-1:-1;;;;;14440:16:0;;14432:64;;;;-1:-1:-1;;;14432:64:0;;12468:2:1;14432:64:0;;;12450:21:1;12507:2;12487:18;;;12480:30;12546:34;12526:18;;;12519:62;-1:-1:-1;;;12597:18:1;;;12590:33;12640:19;;14432:64:0;12266:399:1;14432:64:0;14524:1;14515:6;:10;14507:71;;;;-1:-1:-1;;;14507:71:0;;12872:2:1;14507:71:0;;;12854:21:1;12911:2;12891:18;;;12884:30;12950:34;12930:18;;;12923:62;-1:-1:-1;;;13001:18:1;;;12994:46;13057:19;;14507:71:0;12670:412:1;14507:71:0;-1:-1:-1;;;;;14609:26:0;;;;;;:20;:26;;;;;;;;:35;;;:85;;-1:-1:-1;;;;;;14661:24:0;;;;;;:20;:24;;;;;;;;:33;14609:85;14591:351;;;14746:12;;;;;;;14741:190;;14817:11;;-1:-1:-1;;;;;14809:19:0;;;14817:11;;;;;14809:19;;;;:40;;-1:-1:-1;14838:11:0;;-1:-1:-1;;;;;14832:17:0;;;14838:11;;;;;14832:17;;14809:40;14779:136;;;;-1:-1:-1;;;14779:136:0;;13289:2:1;14779:136:0;;;13271:21:1;13328:2;13308:18;;;13301:30;-1:-1:-1;;;13347:18:1;;;13340:52;13409:18;;14779:136:0;13087:346:1;14779:136:0;-1:-1:-1;;;;;15149:24:0;;15015:12;15149:24;;;:18;:24;;;;;;15030:4;;15149:24;;;:63;;-1:-1:-1;;;;;;15190:22:0;;;;;;:18;:22;;;;;;;;15149:63;:101;;;-1:-1:-1;15229:21:0;;;;15149:101;15131:173;;;-1:-1:-1;15287:5:0;15131:173;15382:41;15397:4;15403:2;15407:6;15415:7;15382:14;:41::i;:::-;14342:1089;14239:1192;;;:::o;23817:166::-;23903:7;23939:12;23931:6;;;;23923:29;;;;-1:-1:-1;;;23923:29:0;;;;;;;;:::i;:::-;-1:-1:-1;23970:5:0;23974:1;23970;:5;:::i;:::-;23963:12;23817:166;-1:-1:-1;;;;23817:166:0:o;12622:164::-;12664:7;12685:15;12702;12721:19;:17;:19::i;:::-;12684:56;;-1:-1:-1;12684:56:0;-1:-1:-1;12758:20:0;12684:56;;12758:11;:20::i;:::-;12751:27;;;;12622:164;:::o;22916:179::-;22974:7;;23006:5;23010:1;23006;:5;:::i;:::-;22994:17;;23035:1;23030;:6;;23022:46;;;;-1:-1:-1;;;23022:46:0;;13640:2:1;23022:46:0;;;13622:21:1;13679:2;13659:18;;;13652:30;13718:29;13698:18;;;13691:57;13765:18;;23022:46:0;13438:351:1;23103:158:0;23161:7;23194:1;23189;:6;;23181:49;;;;-1:-1:-1;;;23181:49:0;;13996:2:1;23181:49:0;;;13978:21:1;14035:2;14015:18;;;14008:30;14074:32;14054:18;;;14047:60;14124:18;;23181:49:0;13794:354:1;23181:49:0;23248:5;23252:1;23248;:5;:::i;15512:1233::-;15668:7;15663:312;;15709:1;15692:14;:18;15663:312;;;15742:11;;-1:-1:-1;;;;;15732:21:0;;;15742:11;;;;;15732:21;15728:247;;;15787:7;;15770:14;:24;15728:247;;;15840:12;;15831:6;:21;15827:97;;;15890:18;;15873:14;:35;15827:97;15955:8;;15938:14;:25;15728:247;-1:-1:-1;;;;;15991:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;16015:22:0;;;;;;:11;:22;;;;;;;;16014:23;15991:46;15987:467;;;16054:48;16076:6;16084:9;16095:6;16054:21;:48::i;:::-;15987:467;;;-1:-1:-1;;;;;16125:19:0;;;;;;:11;:19;;;;;;;;16124:20;:46;;;;-1:-1:-1;;;;;;16148:22:0;;;;;;:11;:22;;;;;;;;16124:46;16120:334;;;16187:46;16207:6;16215:9;16226:6;16187:19;:46::i;16120:334::-;-1:-1:-1;;;;;16255:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;16278:22:0;;;;;;:11;:22;;;;;;;;16255:45;16251:203;;;16317:48;16339:6;16347:9;16358:6;16317:21;:48::i;16251:203::-;16398:44;16416:6;16424:9;16435:6;16398:17;:44::i;:::-;-1:-1:-1;;;;;16471:28:0;;;;;;:20;:28;;;;;;;;16466:128;;16516:12;:19;;-1:-1:-1;;16516:19:0;;;;;16550:32;16575:6;16550:24;:32::i;:::-;-1:-1:-1;;;;;16609:31:0;;;;;;:20;:31;;;;;;;;16604:134;;16657:12;:19;;-1:-1:-1;;16657:19:0;;;;;16691:35;16716:9;16691:24;:35::i;12979:605::-;13077:7;;13113;;13030;;;;;13131:338;13155:9;:16;13151:20;;13131:338;;;13239:7;13215;:21;13223:9;13233:1;13223:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13223:12:0;13215:21;;;;;;;;;;;;;:31;;:83;;;13291:7;13267;:21;13275:9;13285:1;13275:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13275:12:0;13267:21;;;;;;;;;;;;;:31;13215:83;13193:146;;;13322:7;;13331;;13314:25;;;;;;;12979:605;;:::o;13193:146::-;13364:34;13376:7;:21;13384:9;13394:1;13384:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13384:12:0;13376:21;;;;;;;;;;;;;13364:7;;:11;:34::i;:::-;13354:44;;13423:34;13435:7;:21;13443:9;13453:1;13443:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13443:12:0;13435:21;;;;;;;;;;;;;13423:7;;:11;:34::i;:::-;13413:44;-1:-1:-1;13173:3:0;;;;:::i;:::-;;;;13131:338;;;-1:-1:-1;13505:7:0;;13493;;:20;;:11;:20::i;:::-;13483:7;:30;13479:61;;;13523:7;;13532;;13515:25;;;;;;12979:605;;:::o;13479:61::-;13559:7;;13568;;-1:-1:-1;12979:605:0;-1:-1:-1;12979:605:0:o;19543:709::-;19679:19;19701:10;:8;:10::i;:::-;19679:32;;19722:23;19748:38;19760:25;19777:7;19760:16;:25::i;:::-;19748:7;;:11;:38::i;:::-;19722:64;-1:-1:-1;19797:15:0;19815:24;:7;19827:11;19815;:24::i;:::-;19797:42;;19850:23;19876:79;19902:42;19932:11;19902:25;19919:7;19902:16;:25::i;19876:79::-;-1:-1:-1;;;;;19984:15:0;;;;;;:7;:15;;;;;;19850:105;;-1:-1:-1;19984:28:0;;20004:7;19984:19;:28::i;:::-;-1:-1:-1;;;;;19966:15:0;;;;;;:7;:15;;;;;;;;:46;;;;20041:7;:15;;;;:28;;20061:7;20041:19;:28::i;:::-;-1:-1:-1;;;;;20023:15:0;;;;;;;:7;:15;;;;;;:46;;;;20101:18;;;;;;;:39;;20124:15;20101:22;:39::i;:::-;-1:-1:-1;;;;;20080:18:0;;;;;;:7;:18;;;;;:60;20151:33;20163:7;20172:11;20151;:33::i;:::-;20217:9;-1:-1:-1;;;;;20200:44:0;20209:6;-1:-1:-1;;;;;20200:44:0;;20228:15;20200:44;;;;1848:25:1;;1836:2;1821:18;;1702:177;20200:44:0;;;;;;;;19668:584;;;;19543:709;;;:::o;18814:721::-;18948:19;18970:10;:8;:10::i;:::-;18948:32;;18991:23;19017:38;19029:25;19046:7;19029:16;:25::i;19017:38::-;18991:64;-1:-1:-1;19066:15:0;19084:24;:7;19096:11;19084;:24::i;:::-;19066:42;;19119:23;19145:79;19171:42;19201:11;19171:25;19188:7;19171:16;:25::i;19145:79::-;-1:-1:-1;;;;;19253:15:0;;;;;;:7;:15;;;;;;19119:105;;-1:-1:-1;19253:28:0;;19273:7;19253:19;:28::i;:::-;-1:-1:-1;;;;;19235:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;19313:18;;;;;:7;:18;;;;;:39;;19336:15;19313:22;:39::i;:::-;-1:-1:-1;;;;;19292:18:0;;;;;;:7;:18;;;;;;;;:60;;;;19384:7;:18;;;;:39;;19407:15;19384:22;:39::i;20260:780::-;20396:19;20418:10;:8;:10::i;:::-;20396:32;;20439:23;20465:38;20477:25;20494:7;20477:16;:25::i;20465:38::-;20439:64;-1:-1:-1;20514:15:0;20532:24;:7;20544:11;20532;:24::i;:::-;20514:42;;20567:23;20593:79;20619:42;20649:11;20619:25;20636:7;20619:16;:25::i;20593:79::-;-1:-1:-1;;;;;20701:15:0;;;;;;:7;:15;;;;;;20567:105;;-1:-1:-1;20701:28:0;;20721:7;20701:19;:28::i;:::-;-1:-1:-1;;;;;20683:15:0;;;;;;:7;:15;;;;;;;;:46;;;;20758:7;:15;;;;:28;;20778:7;20758:19;:28::i;18158:648::-;18290:19;18312:10;:8;:10::i;:::-;18290:32;;18333:23;18359:38;18371:25;18388:7;18371:16;:25::i;18359:38::-;18333:64;-1:-1:-1;18408:15:0;18426:24;:7;18438:11;18426;:24::i;:::-;18408:42;;18461:23;18487:79;18513:42;18543:11;18513:25;18530:7;18513:16;:25::i;18487:79::-;-1:-1:-1;;;;;18595:15:0;;;;;;:7;:15;;;;;;18461:105;;-1:-1:-1;18595:28:0;;18615:7;18595:19;:28::i;21048:706::-;21127:15;21145:25;21162:7;21145:16;:25::i;:::-;21127:43;;21183:16;21202:30;21228:3;21202:21;21214:8;;21202:7;:11;;:21;;;;:::i;:30::-;21183:49;-1:-1:-1;21243:16:0;21262:25;21183:49;21275:11;21262:12;:25::i;:::-;21329:11;;-1:-1:-1;;;;;21329:11:0;21321:20;;;;:7;:20;;;;;;21243:44;;-1:-1:-1;21321:34:0;;21243:44;21321:24;:34::i;:::-;21306:11;;;-1:-1:-1;;;;;21306:11:0;;;21298:20;;;;:7;:20;;;;;;;;:57;;;;21382:11;;;;;21370:24;;:11;:24;;;;;;;21366:100;;;21440:11;;-1:-1:-1;;;;;21440:11:0;21432:20;;;;:7;:20;;;;;;:34;;21457:8;21432:24;:34::i;:::-;21417:11;;-1:-1:-1;;;;;21417:11:0;21409:20;;;;:7;:20;;;;;:57;21366:100;21505:11;;-1:-1:-1;;;;;21505:11:0;1166:10;-1:-1:-1;;;;;21482:45:0;;21518:8;21482:45;;;;1848:25:1;;1836:2;1821:18;;1702:177;21482:45:0;;;;;;;;21540:18;21561:32;21589:3;21561:23;21573:10;;21561:7;:11;;:23;;;;:::i;:32::-;21540:53;-1:-1:-1;21604:18:0;21625:27;21540:53;21640:11;21625:14;:27::i;:::-;21673:7;;21604:48;;-1:-1:-1;21673:23:0;;21604:48;21673:11;:23::i;:::-;21663:7;:33;21720:10;;:26;;21735:10;21720:14;:26::i;:::-;21707:10;:39;-1:-1:-1;;;;;;;21048:706:0:o;14:248:1:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;267:597::-;379:4;408:2;437;426:9;419:21;469:6;463:13;512:6;507:2;496:9;492:18;485:34;537:1;547:140;561:6;558:1;555:13;547:140;;;656:14;;;652:23;;646:30;622:17;;;641:2;618:26;611:66;576:10;;547:140;;;705:6;702:1;699:13;696:91;;;775:1;770:2;761:6;750:9;746:22;742:31;735:42;696:91;-1:-1:-1;848:2:1;827:15;-1:-1:-1;;823:29:1;808:45;;;;855:2;804:54;;267:597;-1:-1:-1;;;267:597:1:o;869:131::-;-1:-1:-1;;;;;944:31:1;;934:42;;924:70;;990:1;987;980:12;924:70;869:131;:::o;1005:315::-;1073:6;1081;1134:2;1122:9;1113:7;1109:23;1105:32;1102:52;;;1150:1;1147;1140:12;1102:52;1189:9;1176:23;1208:31;1233:5;1208:31;:::i;:::-;1258:5;1310:2;1295:18;;;;1282:32;;-1:-1:-1;;;1005:315:1:o;1517:180::-;1576:6;1629:2;1617:9;1608:7;1604:23;1600:32;1597:52;;;1645:1;1642;1635:12;1597:52;-1:-1:-1;1668:23:1;;1517:180;-1:-1:-1;1517:180:1:o;1884:456::-;1961:6;1969;1977;2030:2;2018:9;2009:7;2005:23;2001:32;1998:52;;;2046:1;2043;2036:12;1998:52;2085:9;2072:23;2104:31;2129:5;2104:31;:::i;:::-;2154:5;-1:-1:-1;2211:2:1;2196:18;;2183:32;2224:33;2183:32;2224:33;:::i;:::-;1884:456;;2276:7;;-1:-1:-1;;;2330:2:1;2315:18;;;;2302:32;;1884:456::o;2566:247::-;2625:6;2678:2;2666:9;2657:7;2653:23;2649:32;2646:52;;;2694:1;2691;2684:12;2646:52;2733:9;2720:23;2752:31;2777:5;2752:31;:::i;3007:160::-;3072:20;;3128:13;;3121:21;3111:32;;3101:60;;3157:1;3154;3147:12;3172:248;3237:6;3245;3298:2;3286:9;3277:7;3273:23;3269:32;3266:52;;;3314:1;3311;3304:12;3266:52;3350:9;3337:23;3327:33;;3379:35;3410:2;3399:9;3395:18;3379:35;:::i;:::-;3369:45;;3172:248;;;;;:::o;3425:315::-;3490:6;3498;3551:2;3539:9;3530:7;3526:23;3522:32;3519:52;;;3567:1;3564;3557:12;3519:52;3606:9;3593:23;3625:31;3650:5;3625:31;:::i;:::-;3675:5;-1:-1:-1;3699:35:1;3730:2;3715:18;;3699:35;:::i;3745:180::-;3801:6;3854:2;3842:9;3833:7;3829:23;3825:32;3822:52;;;3870:1;3867;3860:12;3822:52;3893:26;3909:9;3893:26;:::i;4138:388::-;4206:6;4214;4267:2;4255:9;4246:7;4242:23;4238:32;4235:52;;;4283:1;4280;4273:12;4235:52;4322:9;4309:23;4341:31;4366:5;4341:31;:::i;:::-;4391:5;-1:-1:-1;4448:2:1;4433:18;;4420:32;4461:33;4420:32;4461:33;:::i;:::-;4513:7;4503:17;;;4138:388;;;;;:::o;5056:356::-;5258:2;5240:21;;;5277:18;;;5270:30;5336:34;5331:2;5316:18;;5309:62;5403:2;5388:18;;5056:356::o;5417:380::-;5496:1;5492:12;;;;5539;;;5560:61;;5614:4;5606:6;5602:17;5592:27;;5560:61;5667:2;5659:6;5656:14;5636:18;5633:38;5630:161;;;5713:10;5708:3;5704:20;5701:1;5694:31;5748:4;5745:1;5738:15;5776:4;5773:1;5766:15;5630:161;;5417:380;;;:::o;6155:184::-;6225:6;6278:2;6266:9;6257:7;6253:23;6249:32;6246:52;;;6294:1;6291;6284:12;6246:52;-1:-1:-1;6317:16:1;;6155:184;-1:-1:-1;6155:184:1:o;7111:127::-;7172:10;7167:3;7163:20;7160:1;7153:31;7203:4;7200:1;7193:15;7227:4;7224:1;7217:15;7243:127;7304:10;7299:3;7295:20;7292:1;7285:31;7335:4;7332:1;7325:15;7359:4;7356:1;7349:15;7375:125;7415:4;7443:1;7440;7437:8;7434:34;;;7448:18;;:::i;:::-;-1:-1:-1;7485:9:1;;7375:125::o;7505:127::-;7566:10;7561:3;7557:20;7554:1;7547:31;7597:4;7594:1;7587:15;7621:4;7618:1;7611:15;7637:135;7676:3;-1:-1:-1;;7697:17:1;;7694:43;;;7717:18;;:::i;:::-;-1:-1:-1;7764:1:1;7753:13;;7637:135::o;9360:128::-;9400:3;9431:1;9427:6;9424:1;9421:13;9418:39;;;9437:18;;:::i;:::-;-1:-1:-1;9473:9:1;;9360:128::o;9900:168::-;9940:7;10006:1;10002;9998:6;9994:14;9991:1;9988:21;9983:1;9976:9;9969:17;9965:45;9962:71;;;10013:18;;:::i;:::-;-1:-1:-1;10053:9:1;;9900:168::o;10073:217::-;10113:1;10139;10129:132;;10183:10;10178:3;10174:20;10171:1;10164:31;10218:4;10215:1;10208:15;10246:4;10243:1;10236:15;10129:132;-1:-1:-1;10275:9:1;;10073:217::o

Swarm Source

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