ETH Price: $3,329.61 (-1.92%)
Gas: 44 Gwei

Token

PepeRonin (PEPERON)
 

Overview

Max Total Supply

100,000,000 PEPERON

Holders

205

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
177,556.207258380266163312 PEPERON

Value
$0.00
0x5d5d656e5af17431b8274942ab8e2c8056262748
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:
PepeRonin

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-28
*/

//SPDX-License-Identifier: UNLICENSED  

//Telegram: https://t.me/peperonintoken
//Website: https://peperonin.xyz

pragma solidity ^0.8.8;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }
    function name() public view virtual override returns (string memory) {
        return _name;
    }
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }
    function transfer(address recipient, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }
    function _tokengeneration(address account, uint256 amount) internal virtual {
        _totalSupply = amount;
        _balances[account] = amount;
        emit Transfer(address(0), account, amount);
    }
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}
library Address {
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}
abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor() {
        _setOwner(_msgSender());
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }
    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}
interface IFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}
contract PepeRonin is ERC20, Ownable {
    using Address for address payable;
    IRouter public router;
    address public pair;
     bool private _interlock = false;
    bool public providingLiquidity = false;
    bool public tradingEnabled = false;
    uint256 public tokenLiquidityThreshold = 5e5 * 10**18;
    uint256 public maxBuyLimit = 2e6 * 10**18;
    uint256 public maxSellLimit = 2e6 * 10**18;
    uint256 public maxWalletLimit = 2e6 * 10**18;
    uint256 public genesis_block;
    uint256 private deadline = 3;
    uint256 private launchtax = 96;
    address public marketingWallet = 0x1d863f5a66718F079b07175A9220470Dea348fD0; 
    address public devWallet = 0x37fcc496Cc6CA778DE528f4939e6c9b0f7bfeAe6;
    address public bbWallet = 0x37fcc496Cc6CA778DE528f4939e6c9b0f7bfeAe6;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
        uint256 bb;
        uint256 dev;
    }

    Taxes public taxes = Taxes(15, 0, 0, 15);
    Taxes public sellTaxes = Taxes(15, 0, 0, 15);
    mapping(address => bool) public exemptFee;
    mapping(address => uint256) private _lastSell;
    bool public coolDownEnabled = true;
    uint256 public coolDownTime = 5 seconds;
    modifier lockTheSwap() {
        if (!_interlock) {
            _interlock = true;
            _;
            _interlock = false;
        }
    }
    constructor() ERC20("PepeRonin", "PEPERON") {
        _tokengeneration(msg.sender, 1e8 * 10**decimals());
        exemptFee[msg.sender] = true;
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        exemptFee[address(this)] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[bbWallet] = true;
        exemptFee[devWallet] = true;
        exemptFee[deadWallet] = true;
        exemptFee[0xD152f549545093347A162Dce210e7293f1452150] = true;

    }
    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);
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        override
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }
        if (sender == pair && !exemptFee[recipient] && !_interlock) {
            require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit");
            require(
                balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }
        if (
            sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_interlock
        ) {
            require(amount <= maxSellLimit, "You are exceeding maxSellLimit");
            if (recipient != pair) {
                require(
                    balanceOf(recipient) + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
            if (coolDownEnabled) {
                uint256 timePassed = block.timestamp - _lastSell[sender];
                require(timePassed >= coolDownTime, "Cooldown enabled");
                _lastSell[sender] = block.timestamp;
            }
        }
        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;
        bool useLaunchFee = !exemptFee[sender] &&
            !exemptFee[recipient] &&
            block.number < genesis_block + deadline;
        if (_interlock || exemptFee[sender] || exemptFee[recipient])
            fee = 0;

        else if (recipient == pair && !useLaunchFee) {
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing +
                sellTaxes.bb +            
                sellTaxes.dev;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing +
                taxes.bb +
                taxes.dev ;
            feesum = feeswap;
            currentTaxes = taxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }
        fee = (amount * feesum) / 100;
        if (providingLiquidity && sender != pair) Liquify(feeswap, currentTaxes);
         super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {

            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 100;
                super._transfer(sender, address(this), feeAmount);
            }

        }
    }
    function Liquify(uint256 feeswap, Taxes memory swapTaxes) private lockTheSwap {
        if(feeswap == 0){
            return;
        }
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }
         uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) /
                denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
            uint256 initialBalance = address(this).balance;
            swapTokensForETH(toSwap);
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity;
            if (ethToAddLiquidityWith > 0) {
          addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
            uint256 marketingAmt = unitBalance * 2 * swapTaxes.marketing;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }
            uint256 bbAmt = unitBalance * 2 * swapTaxes.bb;
            if (bbAmt > 0) {
                payable(bbWallet).sendValue(bbAmt);
            }
            uint256 devAmt = unitBalance * 2 * swapTaxes.dev;
            if (devAmt > 0) {
                payable(devWallet).sendValue(devAmt);
            }

        }
    }
    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
      _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{ value: ethAmount }(
            address(this),
            tokenAmount,
            0,
            0,
            deadWallet,
            block.timestamp
        );
    }
    function updateLiquidityProvide(bool state) external onlyOwner {
         providingLiquidity = state;
    }
    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        require(new_amount <= 1e6, "Swap threshold amount should be lower or equal to 1% of tokens");
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }
    function SetBuyTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _bb,
        uint256 _dev
    ) external onlyOwner {
        taxes = Taxes(_marketing, _liquidity,  _bb, _dev);
        require((_marketing + _liquidity + _bb + _dev) <= 35, "Must keep fees at 35% or less");
    }
    function SetSellTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _bb,
        uint256 _dev
    ) external onlyOwner {
        sellTaxes = Taxes(_marketing, _liquidity,  _bb,  _dev);
        require((_marketing + _liquidity + _bb + _dev) <= 35, "Must keep fees at 35% or less");
    }
    function EnableTrading() external onlyOwner {
        require(!tradingEnabled, "Cannot re-enable trading");
        tradingEnabled = true;
        providingLiquidity = true;
        genesis_block = block.number;
    }
    function updatedeadline(uint256 _deadline) external onlyOwner {
        require(!tradingEnabled, "Can't change when trading has started");
        require(_deadline < 5,"Deadline should be less than 5 Blocks");
        deadline = _deadline;
    }
    function updateMarketingWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        marketingWallet = newWallet;
    }
    function updateBbWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        bbWallet = newWallet;
    }
    function updateDevWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        devWallet = newWallet;
    }
    function updateCooldown(bool state, uint256 time) external onlyOwner {
        coolDownTime = time * 1 seconds;
        coolDownEnabled = state;
        require(time <= 300, "cooldown timer cannot exceed 5 minutes");
    }
    function updateExemptFee(address _address, bool state) external onlyOwner {
        exemptFee[_address] = state;
    }
    function bulkExemptFee(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = state;
        }
    }
    function updateMaxTxLimit(uint256 maxBuy, uint256 maxSell, uint256 maxWallet) external onlyOwner {
        require(maxBuy >= 1e6, "Cannot set max buy amount lower than 1%");
        require(maxSell >= 1e6, "Cannot set max sell amount lower than 1%");
        require(maxWallet >= 1e6, "Cannot set max wallet amount lower than 1%");
        maxBuyLimit = maxBuy * 10**decimals();
        maxSellLimit = maxSell * 10**decimals();
        maxWalletLimit = maxWallet * 10**decimals(); 
    }
    function rescueETH() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(owner()).transfer(contractETHBalance);
    }
    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
        require(tokenAdd != address(this), "Owner can't claim contract's balance of its own tokens");
        IERC20(tokenAdd).transfer(owner(), amount);
    }
     receive() external payable {}
}

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":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_bb","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_bb","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bbWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"bb","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"bb","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateBbWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b191690556969e10de76676d08000006008556a01a784379d99db420000006009819055600a819055600b556003600d556060600e55600f80546001600160a01b0319908116731d863f5a66718f079b07175a9220470dea348fd01782556010805482167337fcc496cc6ca778de528f4939e6c9b0f7bfeae6908117909155601180549092161790556080819052600060a081905260c081905260e0829052601282905560138190556014819055601582905561018060405261010082905261012081905261014081905261016082905260168290556017819055601855601955601c805460ff191660011790556005601d553480156200010957600080fd5b50604051806040016040528060098152602001682832b832a937b734b760b91b815250604051806040016040528060078152602001662822a822a927a760c91b81525081600390816200015d919062000571565b5060046200016c828262000571565b50505062000189620001836200042260201b60201c565b62000426565b620001b2336200019c6012600a62000752565b620001ac906305f5e1006200076a565b62000478565b336000908152601a60209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa1580156200021d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000243919062000784565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000291573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b7919062000784565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000305573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032b919062000784565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550306000908152601a6020526040808220805460ff199081166001908117909255600f54851684528284208054821683179055601154851684528284208054821683179055601054909416835290822080548416821790557f428bdc965569ef4717764ecfd84e88946a9a226b52b813e6ab6a7f46aad86e88805484168217905573d152f549545093347a162dce210e7293f14521509091527f2fcec17b10d207b56bde579aeb215b58d6c4f64a986f1030b316c9e25b6b832b8054909216179055620007af565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004f757607f821691505b6020821081036200051857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200056c57600081815260208120601f850160051c81016020861015620005475750805b601f850160051c820191505b81811015620005685782815560010162000553565b5050505b505050565b81516001600160401b038111156200058d576200058d620004cc565b620005a5816200059e8454620004e2565b846200051e565b602080601f831160018114620005dd5760008415620005c45750858301515b600019600386901b1c1916600185901b17855562000568565b600085815260208120601f198616915b828110156200060e57888601518255948401946001909101908401620005ed565b50858210156200062d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006945781600019048211156200067857620006786200063d565b808516156200068657918102915b93841c939080029062000658565b509250929050565b600082620006ad575060016200074c565b81620006bc575060006200074c565b8160018114620006d55760028114620006e05762000700565b60019150506200074c565b60ff841115620006f457620006f46200063d565b50506001821b6200074c565b5060208310610133831016604e8410600b841016171562000725575081810a6200074c565b62000731838362000653565b80600019048211156200074857620007486200063d565b0290505b92915050565b60006200076360ff8416836200069c565b9392505050565b80820281158282048414176200074c576200074c6200063d565b6000602082840312156200079757600080fd5b81516001600160a01b03811681146200076357600080fd5b612b0680620007bf6000396000f3fe60806040526004361061028c5760003560e01c8063728f8eea1161015a578063ac776d73116100c1578063edaa11681161007a578063edaa1168146107e8578063ee36e35914610808578063f2fde38b14610822578063f66895a314610842578063f887ea4014610865578063fbe6324e1461088557600080fd5b8063ac776d73146106fc578063c5d32bb21461071c578063d2ce0db21461074c578063dd62ed3e14610762578063e1b450ad146107a8578063e517f2b9146107c857600080fd5b806395d89b411161011357806395d89b411461064757806397973a2b1461065c578063a457c2d71461067c578063a8aa1b311461069c578063a9059cbb146106bc578063aacebbe3146106dc57600080fd5b8063728f8eea1461057057806375f0a874146105b357806385141a77146105d35780638cd4426d146105e95780638da5cb5b146106095780638ea5220f1461062757600080fd5b8063274a533c116101fe5780634ada218b116101b75780634ada218b146104c2578063652e2f04146104e357806366a88d96146104f95780636aa5b37f1461050f57806370a0823114610525578063715018a61461055b57600080fd5b8063274a533c146103f85780632cd2c3e51461040e578063313ce56714610446578063355496ca14610462578063395093511461048257806342b6fa11146104a257600080fd5b80631675d802116102505780631675d8021461035557806318160ddd146103795780631816467f1461038e5780631d97b7cd146103ae57806320800a00146103c357806323b872dd146103d857600080fd5b806306fdde0314610298578063095ea7b3146102c35780630e375a5c146102f3578063105cafb6146103155780631340538f1461033557600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ad6108a6565b6040516102ba919061248c565b60405180910390f35b3480156102cf57600080fd5b506102e36102de3660046124ff565b610938565b60405190151581526020016102ba565b3480156102ff57600080fd5b5061031361030e36600461255a565b61094f565b005b34801561032157600080fd5b50610313610330366004612631565b6109ee565b34801561034157600080fd5b50610313610350366004612663565b610ac2565b34801561036157600080fd5b5061036b60085481565b6040519081526020016102ba565b34801561038557600080fd5b5060025461036b565b34801561039a57600080fd5b506103136103a9366004612687565b610b0a565b3480156103ba57600080fd5b50610313610b7c565b3480156103cf57600080fd5b50610313610c1b565b3480156103e457600080fd5b506102e36103f33660046126a4565b610c94565b34801561040457600080fd5b5061036b600c5481565b34801561041a57600080fd5b5060115461042e906001600160a01b031681565b6040516001600160a01b0390911681526020016102ba565b34801561045257600080fd5b50604051601281526020016102ba565b34801561046e57600080fd5b5061031361047d3660046126e5565b610d45565b34801561048e57600080fd5b506102e361049d3660046124ff565b610d9a565b3480156104ae57600080fd5b506103136104bd36600461271e565b610dd1565b3480156104ce57600080fd5b506007546102e390600160b01b900460ff1681565b3480156104ef57600080fd5b5061036b600a5481565b34801561050557600080fd5b5061036b600b5481565b34801561051b57600080fd5b5061036b60095481565b34801561053157600080fd5b5061036b610540366004612687565b6001600160a01b031660009081526020819052604090205490565b34801561056757600080fd5b50610313610e90565b34801561057c57600080fd5b506012546013546014546015546105939392919084565b6040805194855260208501939093529183015260608201526080016102ba565b3480156105bf57600080fd5b50600f5461042e906001600160a01b031681565b3480156105df57600080fd5b5061042e61dead81565b3480156105f557600080fd5b506103136106043660046124ff565b610ec6565b34801561061557600080fd5b506005546001600160a01b031661042e565b34801561063357600080fd5b5060105461042e906001600160a01b031681565b34801561065357600080fd5b506102ad610ff9565b34801561066857600080fd5b50610313610677366004612631565b611008565b34801561068857600080fd5b506102e36106973660046124ff565b611074565b3480156106a857600080fd5b5060075461042e906001600160a01b031681565b3480156106c857600080fd5b506102e36106d73660046124ff565b61110f565b3480156106e857600080fd5b506103136106f7366004612687565b61111c565b34801561070857600080fd5b50610313610717366004612687565b61118e565b34801561072857600080fd5b506102e3610737366004612687565b601a6020526000908152604090205460ff1681565b34801561075857600080fd5b5061036b601d5481565b34801561076e57600080fd5b5061036b61077d366004612737565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107b457600080fd5b506103136107c3366004612765565b611200565b3480156107d457600080fd5b506103136107e3366004612791565b6113a8565b3480156107f457600080fd5b5061031361080336600461271e565b61144f565b34801561081457600080fd5b50601c546102e39060ff1681565b34801561082e57600080fd5b5061031361083d366004612687565b611544565b34801561084e57600080fd5b506016546017546018546019546105939392919084565b34801561087157600080fd5b5060065461042e906001600160a01b031681565b34801561089157600080fd5b506007546102e390600160a81b900460ff1681565b6060600380546108b5906127af565b80601f01602080910402602001604051908101604052809291908181526020018280546108e1906127af565b801561092e5780601f106109035761010080835404028352916020019161092e565b820191906000526020600020905b81548152906001019060200180831161091157829003601f168201915b5050505050905090565b60006109453384846115df565b5060015b92915050565b6005546001600160a01b031633146109825760405162461bcd60e51b8152600401610979906127e9565b60405180910390fd5b60005b82518110156109e95781601a60008584815181106109a5576109a561281e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806109e18161284a565b915050610985565b505050565b6005546001600160a01b03163314610a185760405162461bcd60e51b8152600401610979906127e9565b6040805160808101825285815260208101859052908101839052606001819052601684905560178390556018829055601981905560238183610a5a8688612863565b610a649190612863565b610a6e9190612863565b1115610abc5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333525206f72206c6573730000006044820152606401610979565b50505050565b6005546001600160a01b03163314610aec5760405162461bcd60e51b8152600401610979906127e9565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610b345760405162461bcd60e51b8152600401610979906127e9565b6001600160a01b038116610b5a5760405162461bcd60e51b815260040161097990612876565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610ba65760405162461bcd60e51b8152600401610979906127e9565b600754600160b01b900460ff1615610c005760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e6700000000000000006044820152606401610979565b6007805461ffff60a81b191661010160a81b17905543600c55565b6005546001600160a01b03163314610c455760405162461bcd60e51b8152600401610979906127e9565b47610c586005546001600160a01b031690565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610c90573d6000803e3d6000fd5b5050565b6000610ca1848484611703565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d265760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610979565b610d3a8533610d3586856128b8565b6115df565b506001949350505050565b6005546001600160a01b03163314610d6f5760405162461bcd60e51b8152600401610979906127e9565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610945918590610d35908690612863565b6005546001600160a01b03163314610dfb5760405162461bcd60e51b8152600401610979906127e9565b620f4240811115610e745760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e7300006064820152608401610979565b610e806012600a6129af565b610e8a90826129be565b60085550565b6005546001600160a01b03163314610eba5760405162461bcd60e51b8152600401610979906127e9565b610ec46000611d88565b565b6005546001600160a01b03163314610ef05760405162461bcd60e51b8152600401610979906127e9565b306001600160a01b03831603610f675760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610979565b816001600160a01b031663a9059cbb610f886005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610fd5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e991906129d5565b6060600480546108b5906127af565b6005546001600160a01b031633146110325760405162461bcd60e51b8152600401610979906127e9565b6040805160808101825285815260208101859052908101839052606001819052601284905560138390556014829055601581905560238183610a5a8688612863565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156110f65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610979565b6111053385610d3586856128b8565b5060019392505050565b6000610945338484611703565b6005546001600160a01b031633146111465760405162461bcd60e51b8152600401610979906127e9565b6001600160a01b03811661116c5760405162461bcd60e51b815260040161097990612876565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146111b85760405162461bcd60e51b8152600401610979906127e9565b6001600160a01b0381166111de5760405162461bcd60e51b815260040161097990612876565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461122a5760405162461bcd60e51b8152600401610979906127e9565b620f424083101561128d5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152667468616e20312560c81b6064820152608401610979565b620f42408210156112f15760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015267207468616e20312560c01b6064820152608401610979565b620f42408110156113575760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f776044820152696572207468616e20312560b01b6064820152608401610979565b6113636012600a6129af565b61136d90846129be565b60095561137c6012600a6129af565b61138690836129be565b600a55601261139690600a6129af565b6113a090826129be565b600b55505050565b6005546001600160a01b031633146113d25760405162461bcd60e51b8152600401610979906127e9565b6113dd8160016129be565b601d55601c805460ff191683151517905561012c811115610c905760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642035206d604482015265696e7574657360d01b6064820152608401610979565b6005546001600160a01b031633146114795760405162461bcd60e51b8152600401610979906127e9565b600754600160b01b900460ff16156114e15760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b6064820152608401610979565b6005811061153f5760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b6064820152608401610979565b600d55565b6005546001600160a01b0316331461156e5760405162461bcd60e51b8152600401610979906127e9565b6001600160a01b0381166115d35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610979565b6115dc81611d88565b50565b6001600160a01b0383166116415760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610979565b6001600160a01b0382166116a25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610979565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116117655760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610979565b6001600160a01b0383166000908152601a602052604090205460ff161580156117a757506001600160a01b0382166000908152601a602052604090205460ff16155b156117fb57600754600160b01b900460ff166117fb5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610979565b6007546001600160a01b03848116911614801561183157506001600160a01b0382166000908152601a602052604090205460ff16155b80156118475750600754600160a01b900460ff16155b156119195760095481111561189e5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610979565b600b54816118c1846001600160a01b031660009081526020819052604090205490565b6118cb9190612863565b11156119195760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610979565b6007546001600160a01b0384811691161480159061195057506001600160a01b0382166000908152601a602052604090205460ff16155b801561197557506001600160a01b0383166000908152601a602052604090205460ff16155b801561198b5750600754600160a01b900460ff16155b15611b0457600a548111156119e25760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610979565b6007546001600160a01b03838116911614611a7257600b5481611a1a846001600160a01b031660009081526020819052604090205490565b611a249190612863565b1115611a725760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610979565b601c5460ff1615611b04576001600160a01b0383166000908152601b6020526040812054611aa090426128b8565b9050601d54811015611ae75760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610979565b506001600160a01b0383166000908152601b602052604090204290555b6000806000611b346040518060800160405280600081526020016000815260200160008152602001600081525090565b6001600160a01b0387166000908152601a602052604081205460ff16158015611b7657506001600160a01b0387166000908152601a602052604090205460ff16155b8015611b905750600d54600c54611b8d9190612863565b43105b600754909150600160a01b900460ff1680611bc357506001600160a01b0388166000908152601a602052604090205460ff165b80611be657506001600160a01b0387166000908152601a602052604090205460ff165b15611bf45760009250611ce8565b6007546001600160a01b038881169116148015611c0f575080155b15611c7457601954601854601654601754611c2a9190612863565b611c349190612863565b611c3e9190612863565b60408051608081018252601654815260175460208201526018549181019190915260195460608201529095508594509150611ce8565b80611cd957601554601454601254601354611c8f9190612863565b611c999190612863565b611ca39190612863565b60408051608081018252601254815260135460208201526014549181019190915260155460608201529095508594509150611ce8565b8015611ce857600e5494508493505b6064611cf485886129be565b611cfe91906129f2565b600754909350600160a81b900460ff168015611d2857506007546001600160a01b03898116911614155b15611d3757611d378583611dda565b611d4b8888611d46868a6128b8565b611f8f565b8215611d7e578415611d7e5760006064611d6587896129be565b611d6f91906129f2565b9050611d7c893083611f8f565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610c90576007805460ff60a01b1916600160a01b1790558115611f7e57306000908152602081905260409020546008548110611f7c5760016008541115611e2d57506008545b6000611e3a8460026129be565b9050600081846020015184611e4f91906129be565b611e5991906129f2565b90506000611e6782856128b8565b905047611e7382612167565b6000611e7f82476128b8565b90506000876020015186611e9391906128b8565b611e9d90836129f2565b90506000886020015182611eb191906129be565b90508015611ec357611ec386826122c1565b8851600090611ed38460026129be565b611edd91906129be565b90508015611efb57600f54611efb906001600160a01b031682612373565b60408a0151600090611f0e8560026129be565b611f1891906129be565b90508015611f3657601154611f36906001600160a01b031682612373565b60608b0151600090611f498660026129be565b611f5391906129be565b90508015611f7157601054611f71906001600160a01b031682612373565b505050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b038316611ff35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610979565b6001600160a01b0382166120555760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610979565b6001600160a01b038316600090815260208190526040902054818110156120cd5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610979565b6120d782826128b8565b6001600160a01b03808616600090815260208190526040808220939093559085168152908120805484929061210d908490612863565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161215991815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061219c5761219c61281e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156121f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122199190612a14565b8160018151811061222c5761222c61281e565b6001600160a01b03928316602091820292909201015260065461225291309116846115df565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061228b908590600090869030904290600401612a31565b600060405180830381600087803b1580156122a557600080fd5b505af11580156122b9573d6000803e3d6000fd5b505050505050565b6006546122d99030906001600160a01b0316846115df565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612347573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061236c9190612aa2565b5050505050565b804710156123c35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610979565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612410576040519150601f19603f3d011682016040523d82523d6000602084013e612415565b606091505b50509050806109e95760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610979565b600060208083528351808285015260005b818110156124b95785810183015185820160400152820161249d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115dc57600080fd5b80356124fa816124da565b919050565b6000806040838503121561251257600080fd5b823561251d816124da565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b80151581146115dc57600080fd5b80356124fa81612541565b6000806040838503121561256d57600080fd5b823567ffffffffffffffff8082111561258557600080fd5b818501915085601f83011261259957600080fd5b81356020828211156125ad576125ad61252b565b8160051b604051601f19603f830116810181811086821117156125d2576125d261252b565b6040529283528183019350848101820192898411156125f057600080fd5b948201945b8386101561261557612606866124ef565b855294820194938201936125f5565b9650612624905087820161254f565b9450505050509250929050565b6000806000806080858703121561264757600080fd5b5050823594602084013594506040840135936060013592509050565b60006020828403121561267557600080fd5b813561268081612541565b9392505050565b60006020828403121561269957600080fd5b8135612680816124da565b6000806000606084860312156126b957600080fd5b83356126c4816124da565b925060208401356126d4816124da565b929592945050506040919091013590565b600080604083850312156126f857600080fd5b8235612703816124da565b9150602083013561271381612541565b809150509250929050565b60006020828403121561273057600080fd5b5035919050565b6000806040838503121561274a57600080fd5b8235612755816124da565b91506020830135612713816124da565b60008060006060848603121561277a57600080fd5b505081359360208301359350604090920135919050565b600080604083850312156127a457600080fd5b823561251d81612541565b600181811c908216806127c357607f821691505b6020821081036127e357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161285c5761285c612834565b5060010190565b8082018082111561094957610949612834565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b8181038181111561094957610949612834565b600181815b808511156129065781600019048211156128ec576128ec612834565b808516156128f957918102915b93841c93908002906128d0565b509250929050565b60008261291d57506001610949565b8161292a57506000610949565b8160018114612940576002811461294a57612966565b6001915050610949565b60ff84111561295b5761295b612834565b50506001821b610949565b5060208310610133831016604e8410600b8410161715612989575081810a610949565b61299383836128cb565b80600019048211156129a7576129a7612834565b029392505050565b600061268060ff84168361290e565b808202811582820484141761094957610949612834565b6000602082840312156129e757600080fd5b815161268081612541565b600082612a0f57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612a2657600080fd5b8151612680816124da565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a815784516001600160a01b031683529383019391830191600101612a5c565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612ab757600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220079c720fa16950f4dc54a8e1e10518a7c3962b8ed71bf6b23ff51c1df4c31ce964736f6c63430008130033

Deployed Bytecode

0x60806040526004361061028c5760003560e01c8063728f8eea1161015a578063ac776d73116100c1578063edaa11681161007a578063edaa1168146107e8578063ee36e35914610808578063f2fde38b14610822578063f66895a314610842578063f887ea4014610865578063fbe6324e1461088557600080fd5b8063ac776d73146106fc578063c5d32bb21461071c578063d2ce0db21461074c578063dd62ed3e14610762578063e1b450ad146107a8578063e517f2b9146107c857600080fd5b806395d89b411161011357806395d89b411461064757806397973a2b1461065c578063a457c2d71461067c578063a8aa1b311461069c578063a9059cbb146106bc578063aacebbe3146106dc57600080fd5b8063728f8eea1461057057806375f0a874146105b357806385141a77146105d35780638cd4426d146105e95780638da5cb5b146106095780638ea5220f1461062757600080fd5b8063274a533c116101fe5780634ada218b116101b75780634ada218b146104c2578063652e2f04146104e357806366a88d96146104f95780636aa5b37f1461050f57806370a0823114610525578063715018a61461055b57600080fd5b8063274a533c146103f85780632cd2c3e51461040e578063313ce56714610446578063355496ca14610462578063395093511461048257806342b6fa11146104a257600080fd5b80631675d802116102505780631675d8021461035557806318160ddd146103795780631816467f1461038e5780631d97b7cd146103ae57806320800a00146103c357806323b872dd146103d857600080fd5b806306fdde0314610298578063095ea7b3146102c35780630e375a5c146102f3578063105cafb6146103155780631340538f1461033557600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ad6108a6565b6040516102ba919061248c565b60405180910390f35b3480156102cf57600080fd5b506102e36102de3660046124ff565b610938565b60405190151581526020016102ba565b3480156102ff57600080fd5b5061031361030e36600461255a565b61094f565b005b34801561032157600080fd5b50610313610330366004612631565b6109ee565b34801561034157600080fd5b50610313610350366004612663565b610ac2565b34801561036157600080fd5b5061036b60085481565b6040519081526020016102ba565b34801561038557600080fd5b5060025461036b565b34801561039a57600080fd5b506103136103a9366004612687565b610b0a565b3480156103ba57600080fd5b50610313610b7c565b3480156103cf57600080fd5b50610313610c1b565b3480156103e457600080fd5b506102e36103f33660046126a4565b610c94565b34801561040457600080fd5b5061036b600c5481565b34801561041a57600080fd5b5060115461042e906001600160a01b031681565b6040516001600160a01b0390911681526020016102ba565b34801561045257600080fd5b50604051601281526020016102ba565b34801561046e57600080fd5b5061031361047d3660046126e5565b610d45565b34801561048e57600080fd5b506102e361049d3660046124ff565b610d9a565b3480156104ae57600080fd5b506103136104bd36600461271e565b610dd1565b3480156104ce57600080fd5b506007546102e390600160b01b900460ff1681565b3480156104ef57600080fd5b5061036b600a5481565b34801561050557600080fd5b5061036b600b5481565b34801561051b57600080fd5b5061036b60095481565b34801561053157600080fd5b5061036b610540366004612687565b6001600160a01b031660009081526020819052604090205490565b34801561056757600080fd5b50610313610e90565b34801561057c57600080fd5b506012546013546014546015546105939392919084565b6040805194855260208501939093529183015260608201526080016102ba565b3480156105bf57600080fd5b50600f5461042e906001600160a01b031681565b3480156105df57600080fd5b5061042e61dead81565b3480156105f557600080fd5b506103136106043660046124ff565b610ec6565b34801561061557600080fd5b506005546001600160a01b031661042e565b34801561063357600080fd5b5060105461042e906001600160a01b031681565b34801561065357600080fd5b506102ad610ff9565b34801561066857600080fd5b50610313610677366004612631565b611008565b34801561068857600080fd5b506102e36106973660046124ff565b611074565b3480156106a857600080fd5b5060075461042e906001600160a01b031681565b3480156106c857600080fd5b506102e36106d73660046124ff565b61110f565b3480156106e857600080fd5b506103136106f7366004612687565b61111c565b34801561070857600080fd5b50610313610717366004612687565b61118e565b34801561072857600080fd5b506102e3610737366004612687565b601a6020526000908152604090205460ff1681565b34801561075857600080fd5b5061036b601d5481565b34801561076e57600080fd5b5061036b61077d366004612737565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107b457600080fd5b506103136107c3366004612765565b611200565b3480156107d457600080fd5b506103136107e3366004612791565b6113a8565b3480156107f457600080fd5b5061031361080336600461271e565b61144f565b34801561081457600080fd5b50601c546102e39060ff1681565b34801561082e57600080fd5b5061031361083d366004612687565b611544565b34801561084e57600080fd5b506016546017546018546019546105939392919084565b34801561087157600080fd5b5060065461042e906001600160a01b031681565b34801561089157600080fd5b506007546102e390600160a81b900460ff1681565b6060600380546108b5906127af565b80601f01602080910402602001604051908101604052809291908181526020018280546108e1906127af565b801561092e5780601f106109035761010080835404028352916020019161092e565b820191906000526020600020905b81548152906001019060200180831161091157829003601f168201915b5050505050905090565b60006109453384846115df565b5060015b92915050565b6005546001600160a01b031633146109825760405162461bcd60e51b8152600401610979906127e9565b60405180910390fd5b60005b82518110156109e95781601a60008584815181106109a5576109a561281e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806109e18161284a565b915050610985565b505050565b6005546001600160a01b03163314610a185760405162461bcd60e51b8152600401610979906127e9565b6040805160808101825285815260208101859052908101839052606001819052601684905560178390556018829055601981905560238183610a5a8688612863565b610a649190612863565b610a6e9190612863565b1115610abc5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333525206f72206c6573730000006044820152606401610979565b50505050565b6005546001600160a01b03163314610aec5760405162461bcd60e51b8152600401610979906127e9565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610b345760405162461bcd60e51b8152600401610979906127e9565b6001600160a01b038116610b5a5760405162461bcd60e51b815260040161097990612876565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610ba65760405162461bcd60e51b8152600401610979906127e9565b600754600160b01b900460ff1615610c005760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e6700000000000000006044820152606401610979565b6007805461ffff60a81b191661010160a81b17905543600c55565b6005546001600160a01b03163314610c455760405162461bcd60e51b8152600401610979906127e9565b47610c586005546001600160a01b031690565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610c90573d6000803e3d6000fd5b5050565b6000610ca1848484611703565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d265760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610979565b610d3a8533610d3586856128b8565b6115df565b506001949350505050565b6005546001600160a01b03163314610d6f5760405162461bcd60e51b8152600401610979906127e9565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610945918590610d35908690612863565b6005546001600160a01b03163314610dfb5760405162461bcd60e51b8152600401610979906127e9565b620f4240811115610e745760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e7300006064820152608401610979565b610e806012600a6129af565b610e8a90826129be565b60085550565b6005546001600160a01b03163314610eba5760405162461bcd60e51b8152600401610979906127e9565b610ec46000611d88565b565b6005546001600160a01b03163314610ef05760405162461bcd60e51b8152600401610979906127e9565b306001600160a01b03831603610f675760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610979565b816001600160a01b031663a9059cbb610f886005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610fd5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e991906129d5565b6060600480546108b5906127af565b6005546001600160a01b031633146110325760405162461bcd60e51b8152600401610979906127e9565b6040805160808101825285815260208101859052908101839052606001819052601284905560138390556014829055601581905560238183610a5a8688612863565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156110f65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610979565b6111053385610d3586856128b8565b5060019392505050565b6000610945338484611703565b6005546001600160a01b031633146111465760405162461bcd60e51b8152600401610979906127e9565b6001600160a01b03811661116c5760405162461bcd60e51b815260040161097990612876565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146111b85760405162461bcd60e51b8152600401610979906127e9565b6001600160a01b0381166111de5760405162461bcd60e51b815260040161097990612876565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461122a5760405162461bcd60e51b8152600401610979906127e9565b620f424083101561128d5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152667468616e20312560c81b6064820152608401610979565b620f42408210156112f15760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015267207468616e20312560c01b6064820152608401610979565b620f42408110156113575760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f776044820152696572207468616e20312560b01b6064820152608401610979565b6113636012600a6129af565b61136d90846129be565b60095561137c6012600a6129af565b61138690836129be565b600a55601261139690600a6129af565b6113a090826129be565b600b55505050565b6005546001600160a01b031633146113d25760405162461bcd60e51b8152600401610979906127e9565b6113dd8160016129be565b601d55601c805460ff191683151517905561012c811115610c905760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642035206d604482015265696e7574657360d01b6064820152608401610979565b6005546001600160a01b031633146114795760405162461bcd60e51b8152600401610979906127e9565b600754600160b01b900460ff16156114e15760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b6064820152608401610979565b6005811061153f5760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b6064820152608401610979565b600d55565b6005546001600160a01b0316331461156e5760405162461bcd60e51b8152600401610979906127e9565b6001600160a01b0381166115d35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610979565b6115dc81611d88565b50565b6001600160a01b0383166116415760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610979565b6001600160a01b0382166116a25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610979565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116117655760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610979565b6001600160a01b0383166000908152601a602052604090205460ff161580156117a757506001600160a01b0382166000908152601a602052604090205460ff16155b156117fb57600754600160b01b900460ff166117fb5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610979565b6007546001600160a01b03848116911614801561183157506001600160a01b0382166000908152601a602052604090205460ff16155b80156118475750600754600160a01b900460ff16155b156119195760095481111561189e5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610979565b600b54816118c1846001600160a01b031660009081526020819052604090205490565b6118cb9190612863565b11156119195760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610979565b6007546001600160a01b0384811691161480159061195057506001600160a01b0382166000908152601a602052604090205460ff16155b801561197557506001600160a01b0383166000908152601a602052604090205460ff16155b801561198b5750600754600160a01b900460ff16155b15611b0457600a548111156119e25760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610979565b6007546001600160a01b03838116911614611a7257600b5481611a1a846001600160a01b031660009081526020819052604090205490565b611a249190612863565b1115611a725760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610979565b601c5460ff1615611b04576001600160a01b0383166000908152601b6020526040812054611aa090426128b8565b9050601d54811015611ae75760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610979565b506001600160a01b0383166000908152601b602052604090204290555b6000806000611b346040518060800160405280600081526020016000815260200160008152602001600081525090565b6001600160a01b0387166000908152601a602052604081205460ff16158015611b7657506001600160a01b0387166000908152601a602052604090205460ff16155b8015611b905750600d54600c54611b8d9190612863565b43105b600754909150600160a01b900460ff1680611bc357506001600160a01b0388166000908152601a602052604090205460ff165b80611be657506001600160a01b0387166000908152601a602052604090205460ff165b15611bf45760009250611ce8565b6007546001600160a01b038881169116148015611c0f575080155b15611c7457601954601854601654601754611c2a9190612863565b611c349190612863565b611c3e9190612863565b60408051608081018252601654815260175460208201526018549181019190915260195460608201529095508594509150611ce8565b80611cd957601554601454601254601354611c8f9190612863565b611c999190612863565b611ca39190612863565b60408051608081018252601254815260135460208201526014549181019190915260155460608201529095508594509150611ce8565b8015611ce857600e5494508493505b6064611cf485886129be565b611cfe91906129f2565b600754909350600160a81b900460ff168015611d2857506007546001600160a01b03898116911614155b15611d3757611d378583611dda565b611d4b8888611d46868a6128b8565b611f8f565b8215611d7e578415611d7e5760006064611d6587896129be565b611d6f91906129f2565b9050611d7c893083611f8f565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610c90576007805460ff60a01b1916600160a01b1790558115611f7e57306000908152602081905260409020546008548110611f7c5760016008541115611e2d57506008545b6000611e3a8460026129be565b9050600081846020015184611e4f91906129be565b611e5991906129f2565b90506000611e6782856128b8565b905047611e7382612167565b6000611e7f82476128b8565b90506000876020015186611e9391906128b8565b611e9d90836129f2565b90506000886020015182611eb191906129be565b90508015611ec357611ec386826122c1565b8851600090611ed38460026129be565b611edd91906129be565b90508015611efb57600f54611efb906001600160a01b031682612373565b60408a0151600090611f0e8560026129be565b611f1891906129be565b90508015611f3657601154611f36906001600160a01b031682612373565b60608b0151600090611f498660026129be565b611f5391906129be565b90508015611f7157601054611f71906001600160a01b031682612373565b505050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b038316611ff35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610979565b6001600160a01b0382166120555760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610979565b6001600160a01b038316600090815260208190526040902054818110156120cd5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610979565b6120d782826128b8565b6001600160a01b03808616600090815260208190526040808220939093559085168152908120805484929061210d908490612863565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161215991815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061219c5761219c61281e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156121f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122199190612a14565b8160018151811061222c5761222c61281e565b6001600160a01b03928316602091820292909201015260065461225291309116846115df565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061228b908590600090869030904290600401612a31565b600060405180830381600087803b1580156122a557600080fd5b505af11580156122b9573d6000803e3d6000fd5b505050505050565b6006546122d99030906001600160a01b0316846115df565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612347573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061236c9190612aa2565b5050505050565b804710156123c35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610979565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612410576040519150601f19603f3d011682016040523d82523d6000602084013e612415565b606091505b50509050806109e95760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610979565b600060208083528351808285015260005b818110156124b95785810183015185820160400152820161249d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115dc57600080fd5b80356124fa816124da565b919050565b6000806040838503121561251257600080fd5b823561251d816124da565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b80151581146115dc57600080fd5b80356124fa81612541565b6000806040838503121561256d57600080fd5b823567ffffffffffffffff8082111561258557600080fd5b818501915085601f83011261259957600080fd5b81356020828211156125ad576125ad61252b565b8160051b604051601f19603f830116810181811086821117156125d2576125d261252b565b6040529283528183019350848101820192898411156125f057600080fd5b948201945b8386101561261557612606866124ef565b855294820194938201936125f5565b9650612624905087820161254f565b9450505050509250929050565b6000806000806080858703121561264757600080fd5b5050823594602084013594506040840135936060013592509050565b60006020828403121561267557600080fd5b813561268081612541565b9392505050565b60006020828403121561269957600080fd5b8135612680816124da565b6000806000606084860312156126b957600080fd5b83356126c4816124da565b925060208401356126d4816124da565b929592945050506040919091013590565b600080604083850312156126f857600080fd5b8235612703816124da565b9150602083013561271381612541565b809150509250929050565b60006020828403121561273057600080fd5b5035919050565b6000806040838503121561274a57600080fd5b8235612755816124da565b91506020830135612713816124da565b60008060006060848603121561277a57600080fd5b505081359360208301359350604090920135919050565b600080604083850312156127a457600080fd5b823561251d81612541565b600181811c908216806127c357607f821691505b6020821081036127e357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161285c5761285c612834565b5060010190565b8082018082111561094957610949612834565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b8181038181111561094957610949612834565b600181815b808511156129065781600019048211156128ec576128ec612834565b808516156128f957918102915b93841c93908002906128d0565b509250929050565b60008261291d57506001610949565b8161292a57506000610949565b8160018114612940576002811461294a57612966565b6001915050610949565b60ff84111561295b5761295b612834565b50506001821b610949565b5060208310610133831016604e8410600b8410161715612989575081810a610949565b61299383836128cb565b80600019048211156129a7576129a7612834565b029392505050565b600061268060ff84168361290e565b808202811582820484141761094957610949612834565b6000602082840312156129e757600080fd5b815161268081612541565b600082612a0f57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612a2657600080fd5b8151612680816124da565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a815784516001600160a01b031683529383019391830191600101612a5c565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612ab757600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220079c720fa16950f4dc54a8e1e10518a7c3962b8ed71bf6b23ff51c1df4c31ce964736f6c63430008130033

Deployed Bytecode Sourcemap

7328:12383:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1734:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9455:161;;;;;;;;;;-1:-1:-1;9455:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;9455:161:0;1162:187:1;18555:202:0;;;;;;;;;;-1:-1:-1;18555:202:0;;;;;:::i;:::-;;:::i;:::-;;16809:321;;;;;;;;;;-1:-1:-1;16809:321:0;;;;;:::i;:::-;;:::i;16119:109::-;;;;;;;;;;-1:-1:-1;16119:109:0;;;;;:::i;:::-;;:::i;7591:53::-;;;;;;;;;;;;;;;;;;;3720:25:1;;;3708:2;3693:18;7591:53:0;3574:177:1;2049:108:0;;;;;;;;;;-1:-1:-1;2137:12:0;;2049:108;;18008:183;;;;;;;;;;-1:-1:-1;18008:183:0;;;;;:::i;:::-;;:::i;17136:222::-;;;;;;;;;;;;;:::i;19263:165::-;;;;;;;;;;;;;:::i;9622:446::-;;;;;;;;;;-1:-1:-1;9622:446:0;;;;;:::i;:::-;;:::i;7799:28::-;;;;;;;;;;;;;;;;8065:68;;;;;;;;;;-1:-1:-1;8065:68:0;;;;-1:-1:-1;;;;;8065:68:0;;;;;;-1:-1:-1;;;;;4633:32:1;;;4615:51;;4603:2;4588:18;8065:68:0;4469:203:1;1950:93:0;;;;;;;;;;-1:-1:-1;1950:93:0;;2033:2;4819:36:1;;4807:2;4792:18;1950:93:0;4677:184:1;18429:120:0;;;;;;;;;;-1:-1:-1;18429:120:0;;;;;:::i;:::-;;:::i;10074:248::-;;;;;;;;;;-1:-1:-1;10074:248:0;;;;;:::i;:::-;;:::i;16234:::-;;;;;;;;;;-1:-1:-1;16234:248:0;;;;;:::i;:::-;;:::i;7550:34::-;;;;;;;;;;-1:-1:-1;7550:34:0;;;;-1:-1:-1;;;7550:34:0;;;;;;7699:42;;;;;;;;;;;;;;;;7748:44;;;;;;;;;;;;;;;;7651:41;;;;;;;;;;;;;;;;2163:127;;;;;;;;;;-1:-1:-1;2163:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2264:18:0;2237:7;2264:18;;;;;;;;;;;;2163:127;6003:94;;;;;;;;;;;;;:::i;8356:40::-;;;;;;;;;;-1:-1:-1;8356:40:0;;;;;;;;;;;;;;;;;;;5669:25:1;;;5725:2;5710:18;;5703:34;;;;5753:18;;;5746:34;5811:2;5796:18;;5789:34;5656:3;5641:19;8356:40:0;5438:391:1;7906:75:0;;;;;;;;;;-1:-1:-1;7906:75:0;;;;-1:-1:-1;;;;;7906:75:0;;;8140:79;;;;;;;;;;;;8177:42;8140:79;;19434:238;;;;;;;;;;-1:-1:-1;19434:238:0;;;;;:::i;:::-;;:::i;5784:87::-;;;;;;;;;;-1:-1:-1;5857:6:0;;-1:-1:-1;;;;;5857:6:0;5784:87;;7989:69;;;;;;;;;;-1:-1:-1;7989:69:0;;;;-1:-1:-1;;;;;7989:69:0;;;1840:104;;;;;;;;;;;;;:::i;16488:315::-;;;;;;;;;;-1:-1:-1;16488:315:0;;;;;:::i;:::-;;:::i;10328:410::-;;;;;;;;;;-1:-1:-1;10328:410:0;;;;;:::i;:::-;;:::i;7440:19::-;;;;;;;;;;-1:-1:-1;7440:19:0;;;;-1:-1:-1;;;;;7440:19:0;;;10744:165;;;;;;;;;;-1:-1:-1;10744:165:0;;;;;:::i;:::-;;:::i;17620:195::-;;;;;;;;;;-1:-1:-1;17620:195:0;;;;;:::i;:::-;;:::i;17821:181::-;;;;;;;;;;-1:-1:-1;17821:181:0;;;;;:::i;:::-;;:::i;8454:41::-;;;;;;;;;;-1:-1:-1;8454:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8595:39;;;;;;;;;;;;;;;;2518:201;;;;;;;;;;-1:-1:-1;2518:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;2684:18:0;;;2652:7;2684:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2518:201;18763:494;;;;;;;;;;-1:-1:-1;18763:494:0;;;;;:::i;:::-;;:::i;18197:226::-;;;;;;;;;;-1:-1:-1;18197:226:0;;;;;:::i;:::-;;:::i;17364:250::-;;;;;;;;;;-1:-1:-1;17364:250:0;;;;;:::i;:::-;;:::i;8554:34::-;;;;;;;;;;-1:-1:-1;8554:34:0;;;;;;;;6103:192;;;;;;;;;;-1:-1:-1;6103:192:0;;;;;:::i;:::-;;:::i;8403:44::-;;;;;;;;;;-1:-1:-1;8403:44:0;;;;;;;;;;;;;;;7412:21;;;;;;;;;;-1:-1:-1;7412:21:0;;;;-1:-1:-1;;;;;7412:21:0;;;7505:38;;;;;;;;;;-1:-1:-1;7505:38:0;;;;-1:-1:-1;;;7505:38:0;;;;;;1734:100;1788:13;1821:5;1814:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1734:100;:::o;9455:161::-;9530:4;9547:39;260:10;9570:7;9579:6;9547:8;:39::i;:::-;-1:-1:-1;9604:4:0;9455:161;;;;;:::o;18555:202::-;5857:6;;-1:-1:-1;;;;;5857:6:0;260:10;5917:23;5909:68;;;;-1:-1:-1;;;5909:68:0;;;;;;;:::i;:::-;;;;;;;;;18652:9:::1;18647:103;18671:8;:15;18667:1;:19;18647:103;;;18733:5;18708:9;:22;18718:8;18727:1;18718:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;18708:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;18708:22:0;:30;;-1:-1:-1;;18708:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18688:3;::::1;::::0;::::1;:::i;:::-;;;;18647:103;;;;18555:202:::0;;:::o;16809:321::-;5857:6;;-1:-1:-1;;;;;5857:6:0;260:10;5917:23;5909:68;;;;-1:-1:-1;;;5909:68:0;;;;;;;:::i;:::-;16983:42:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;16971:9:::1;:54:::0;;;;;;;;;;;;;;;17086:2:::1;17020:4:::0;17014:3;17045:23:::1;17001:10:::0;16989;17045:23:::1;:::i;:::-;:29;;;;:::i;:::-;:36;;;;:::i;:::-;17044:44;;17036:86;;;::::0;-1:-1:-1;;;17036:86:0;;8567:2:1;17036:86:0::1;::::0;::::1;8549:21:1::0;8606:2;8586:18;;;8579:30;8645:31;8625:18;;;8618:59;8694:18;;17036:86:0::1;8365:353:1::0;17036:86:0::1;16809:321:::0;;;;:::o;16119:109::-;5857:6;;-1:-1:-1;;;;;5857:6:0;260:10;5917:23;5909:68;;;;-1:-1:-1;;;5909:68:0;;;;;;;:::i;:::-;16194:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;16194:26:0::1;-1:-1:-1::0;;;;16194:26:0;;::::1;::::0;;;::::1;::::0;;16119:109::o;18008:183::-;5857:6;;-1:-1:-1;;;;;5857:6:0;260:10;5917:23;5909:68;;;;-1:-1:-1;;;5909:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18090:23:0;::::1;18082:69;;;;-1:-1:-1::0;;;18082:69:0::1;;;;;;;:::i;:::-;18162:9;:21:::0;;-1:-1:-1;;;;;;18162:21:0::1;-1:-1:-1::0;;;;;18162:21:0;;;::::1;::::0;;;::::1;::::0;;18008:183::o;17136:222::-;5857:6;;-1:-1:-1;;;;;5857:6:0;260:10;5917:23;5909:68;;;;-1:-1:-1;;;5909:68:0;;;;;;;:::i;:::-;17200:14:::1;::::0;-1:-1:-1;;;17200:14:0;::::1;;;17199:15;17191:52;;;::::0;-1:-1:-1;;;17191:52:0;;9328:2:1;17191:52:0::1;::::0;::::1;9310:21:1::0;9367:2;9347:18;;;9340:30;9406:26;9386:18;;;9379:54;9450:18;;17191:52:0::1;9126:348:1::0;17191:52:0::1;17254:14;:21:::0;;-1:-1:-1;;;;17286:25:0;-1:-1:-1;;;17286:25:0;;;17338:12:::1;17322:13;:28:::0;17136:222::o;19263:165::-;5857:6;;-1:-1:-1;;;;;5857:6:0;260:10;5917:23;5909:68;;;;-1:-1:-1;;;5909:68:0;;;;;;;:::i;:::-;19343:21:::1;19383:7;5857:6:::0;;-1:-1:-1;;;;;5857:6:0;;5784:87;19383:7:::1;-1:-1:-1::0;;;;;19375:25:0::1;:45;19401:18;19375:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;19303:125;19263:165::o:0;9622:446::-;9754:4;9771:36;9781:6;9789:9;9800:6;9771:9;:36::i;:::-;-1:-1:-1;;;;;9845:19:0;;9818:24;9845:19;;;:11;:19;;;;;;;;260:10;9845:33;;;;;;;;9897:26;;;;9889:79;;;;-1:-1:-1;;;9889:79:0;;9681:2:1;9889:79:0;;;9663:21:1;9720:2;9700:18;;;9693:30;9759:34;9739:18;;;9732:62;-1:-1:-1;;;9810:18:1;;;9803:38;9858:19;;9889:79:0;9479:404:1;9889:79:0;9979:57;9988:6;260:10;10010:25;10029:6;10010:16;:25;:::i;:::-;9979:8;:57::i;:::-;-1:-1:-1;10056:4:0;;9622:446;-1:-1:-1;;;;9622:446:0:o;18429:120::-;5857:6;;-1:-1:-1;;;;;5857:6:0;260:10;5917:23;5909:68;;;;-1:-1:-1;;;5909:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18514:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;18514:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18429:120::o;10074:248::-;260:10;10190:4;10244:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10244:34:0;;;;;;;;;;10190:4;;10212:80;;10235:7;;10244:47;;10281:10;;10244:47;:::i;16234:248::-;5857:6;;-1:-1:-1;;;;;5857:6:0;260:10;5917:23;5909:68;;;;-1:-1:-1;;;5909:68:0;;;;;;;:::i;:::-;16340:3:::1;16326:10;:17;;16318:92;;;::::0;-1:-1:-1;;;16318:92:0;;10223:2:1;16318:92:0::1;::::0;::::1;10205:21:1::0;10262:2;10242:18;;;10235:30;10301:34;10281:18;;;10274:62;10372:32;10352:18;;;10345:60;10422:19;;16318:92:0::1;10021:426:1::0;16318:92:0::1;16460:14;2033:2:::0;16460::::1;:14;:::i;:::-;16447:27;::::0;:10;:27:::1;:::i;:::-;16421:23;:53:::0;-1:-1:-1;16234:248:0:o;6003:94::-;5857:6;;-1:-1:-1;;;;;5857:6:0;260:10;5917:23;5909:68;;;;-1:-1:-1;;;5909:68:0;;;;;;;:::i;:::-;6068:21:::1;6086:1;6068:9;:21::i;:::-;6003:94::o:0;19434:238::-;5857:6;;-1:-1:-1;;;;;5857:6:0;260:10;5917:23;5909:68;;;;-1:-1:-1;;;5909:68:0;;;;;;;:::i;:::-;19547:4:::1;-1:-1:-1::0;;;;;19527:25:0;::::1;::::0;19519:92:::1;;;::::0;-1:-1:-1;;;19519:92:0;;12210:2:1;19519:92:0::1;::::0;::::1;12192:21:1::0;12249:2;12229:18;;;12222:30;12288:34;12268:18;;;12261:62;-1:-1:-1;;;12339:18:1;;;12332:52;12401:19;;19519:92:0::1;12008:418:1::0;19519:92:0::1;19629:8;-1:-1:-1::0;;;;;19622:25:0::1;;19648:7;5857:6:::0;;-1:-1:-1;;;;;5857:6:0;;5784:87;19648:7:::1;19622:42;::::0;-1:-1:-1;;;;;;19622:42:0::1;::::0;;;;;;-1:-1:-1;;;;;12623:32:1;;;19622:42:0::1;::::0;::::1;12605:51:1::0;12672:18;;;12665:34;;;12578:18;;19622:42:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1840:104::-:0;1896:13;1929:7;1922:14;;;;;:::i;16488:315::-;5857:6;;-1:-1:-1;;;;;5857:6:0;260:10;5917:23;5909:68;;;;-1:-1:-1;;;5909:68:0;;;;;;;:::i;:::-;16657:41:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;16649:5:::1;:49:::0;;;;;;;;;;;;;;;16759:2:::1;16693:4:::0;16688:3;16718:23:::1;16675:10:::0;16663;16718:23:::1;:::i;10328:410::-:0;260:10;10449:4;10498:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10498:34:0;;;;;;;;;;10551:35;;;;10543:85;;;;-1:-1:-1;;;10543:85:0;;13162:2:1;10543:85:0;;;13144:21:1;13201:2;13181:18;;;13174:30;13240:34;13220:18;;;13213:62;-1:-1:-1;;;13291:18:1;;;13284:35;13336:19;;10543:85:0;12960:401:1;10543:85:0;10639:67;260:10;10662:7;10671:34;10690:15;10671:16;:34;:::i;10639:67::-;-1:-1:-1;10726:4:0;;10328:410;-1:-1:-1;;;10328:410:0:o;10744:165::-;10822:4;10839:40;10849:10;10861:9;10872:6;10839:9;:40::i;17620:195::-;5857:6;;-1:-1:-1;;;;;5857:6:0;260:10;5917:23;5909:68;;;;-1:-1:-1;;;5909:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17708:23:0;::::1;17700:69;;;;-1:-1:-1::0;;;17700:69:0::1;;;;;;;:::i;:::-;17780:15;:27:::0;;-1:-1:-1;;;;;;17780:27:0::1;-1:-1:-1::0;;;;;17780:27:0;;;::::1;::::0;;;::::1;::::0;;17620:195::o;17821:181::-;5857:6;;-1:-1:-1;;;;;5857:6:0;260:10;5917:23;5909:68;;;;-1:-1:-1;;;5909:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17902:23:0;::::1;17894:69;;;;-1:-1:-1::0;;;17894:69:0::1;;;;;;;:::i;:::-;17974:8;:20:::0;;-1:-1:-1;;;;;;17974:20:0::1;-1:-1:-1::0;;;;;17974:20:0;;;::::1;::::0;;;::::1;::::0;;17821:181::o;18763:494::-;5857:6;;-1:-1:-1;;;;;5857:6:0;260:10;5917:23;5909:68;;;;-1:-1:-1;;;5909:68:0;;;;;;;:::i;:::-;18889:3:::1;18879:6;:13;;18871:65;;;::::0;-1:-1:-1;;;18871:65:0;;13568:2:1;18871:65:0::1;::::0;::::1;13550:21:1::0;13607:2;13587:18;;;13580:30;13646:34;13626:18;;;13619:62;-1:-1:-1;;;13697:18:1;;;13690:37;13744:19;;18871:65:0::1;13366:403:1::0;18871:65:0::1;18966:3;18955:7;:14;;18947:67;;;::::0;-1:-1:-1;;;18947:67:0;;13976:2:1;18947:67:0::1;::::0;::::1;13958:21:1::0;14015:2;13995:18;;;13988:30;14054:34;14034:18;;;14027:62;-1:-1:-1;;;14105:18:1;;;14098:38;14153:19;;18947:67:0::1;13774:404:1::0;18947:67:0::1;19046:3;19033:9;:16;;19025:71;;;::::0;-1:-1:-1;;;19025:71:0;;14385:2:1;19025:71:0::1;::::0;::::1;14367:21:1::0;14424:2;14404:18;;;14397:30;14463:34;14443:18;;;14436:62;-1:-1:-1;;;14514:18:1;;;14507:40;14564:19;;19025:71:0::1;14183:406:1::0;19025:71:0::1;19130:14;2033:2:::0;19130::::1;:14;:::i;:::-;19121:23;::::0;:6;:23:::1;:::i;:::-;19107:11;:37:::0;19180:14:::1;2033:2:::0;19180::::1;:14;:::i;:::-;19170:24;::::0;:7;:24:::1;:::i;:::-;19155:12;:39:::0;2033:2;19234:14:::1;::::0;:2:::1;:14;:::i;:::-;19222:26;::::0;:9;:26:::1;:::i;:::-;19205:14;:43:::0;-1:-1:-1;;;18763:494:0:o;18197:226::-;5857:6;;-1:-1:-1;;;;;5857:6:0;260:10;5917:23;5909:68;;;;-1:-1:-1;;;5909:68:0;;;;;;;:::i;:::-;18292:16:::1;:4:::0;18299:9:::1;18292:16;:::i;:::-;18277:12;:31:::0;18319:15:::1;:23:::0;;-1:-1:-1;;18319:23:0::1;::::0;::::1;;;::::0;;18369:3:::1;18361:11:::0;::::1;;18353:62;;;::::0;-1:-1:-1;;;18353:62:0;;14796:2:1;18353:62:0::1;::::0;::::1;14778:21:1::0;14835:2;14815:18;;;14808:30;14874:34;14854:18;;;14847:62;-1:-1:-1;;;14925:18:1;;;14918:36;14971:19;;18353:62:0::1;14594:402:1::0;17364:250:0;5857:6;;-1:-1:-1;;;;;5857:6:0;260:10;5917:23;5909:68;;;;-1:-1:-1;;;5909:68:0;;;;;;;:::i;:::-;17446:14:::1;::::0;-1:-1:-1;;;17446:14:0;::::1;;;17445:15;17437:65;;;::::0;-1:-1:-1;;;17437:65:0;;15203:2:1;17437:65:0::1;::::0;::::1;15185:21:1::0;15242:2;15222:18;;;15215:30;15281:34;15261:18;;;15254:62;-1:-1:-1;;;15332:18:1;;;15325:35;15377:19;;17437:65:0::1;15001:401:1::0;17437:65:0::1;17533:1;17521:9;:13;17513:62;;;::::0;-1:-1:-1;;;17513:62:0;;15609:2:1;17513:62:0::1;::::0;::::1;15591:21:1::0;15648:2;15628:18;;;15621:30;15687:34;15667:18;;;15660:62;-1:-1:-1;;;15738:18:1;;;15731:35;15783:19;;17513:62:0::1;15407:401:1::0;17513:62:0::1;17586:8;:20:::0;17364:250::o;6103:192::-;5857:6;;-1:-1:-1;;;;;5857:6:0;260:10;5917:23;5909:68;;;;-1:-1:-1;;;5909:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6192:22:0;::::1;6184:73;;;::::0;-1:-1:-1;;;6184:73:0;;16015:2:1;6184:73:0::1;::::0;::::1;15997:21:1::0;16054:2;16034:18;;;16027:30;16093:34;16073:18;;;16066:62;-1:-1:-1;;;16144:18:1;;;16137:36;16190:19;;6184:73:0::1;15813:402:1::0;6184:73:0::1;6268:19;6278:8;6268:9;:19::i;:::-;6103:192:::0;:::o;4827:380::-;-1:-1:-1;;;;;4963:19:0;;4955:68;;;;-1:-1:-1;;;4955:68:0;;16422:2:1;4955:68:0;;;16404:21:1;16461:2;16441:18;;;16434:30;16500:34;16480:18;;;16473:62;-1:-1:-1;;;16551:18:1;;;16544:34;16595:19;;4955:68:0;16220:400:1;4955:68:0;-1:-1:-1;;;;;5042:21:0;;5034:68;;;;-1:-1:-1;;;5034:68:0;;16827:2:1;5034:68:0;;;16809:21:1;16866:2;16846:18;;;16839:30;16905:34;16885:18;;;16878:62;-1:-1:-1;;;16956:18:1;;;16949:32;16998:19;;5034:68:0;16625:398:1;5034:68:0;-1:-1:-1;;;;;5115:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5167:32;;3720:25:1;;;5167:32:0;;3693:18:1;5167:32:0;;;;;;;4827:380;;;:::o;10915:2756::-;11065:1;11056:6;:10;11048:64;;;;-1:-1:-1;;;11048:64:0;;17230:2:1;11048:64:0;;;17212:21:1;17269:2;17249:18;;;17242:30;17308:34;17288:18;;;17281:62;-1:-1:-1;;;17359:18:1;;;17352:39;17408:19;;11048:64:0;17028:405:1;11048:64:0;-1:-1:-1;;;;;11128:17:0;;;;;;:9;:17;;;;;;;;11127:18;:43;;;;-1:-1:-1;;;;;;11150:20:0;;;;;;:9;:20;;;;;;;;11149:21;11127:43;11123:122;;;11195:14;;-1:-1:-1;;;11195:14:0;;;;11187:46;;;;-1:-1:-1;;;11187:46:0;;17640:2:1;11187:46:0;;;17622:21:1;17679:2;17659:18;;;17652:30;-1:-1:-1;;;17698:18:1;;;17691:49;17757:18;;11187:46:0;17438:343:1;11187:46:0;11269:4;;-1:-1:-1;;;;;11259:14:0;;;11269:4;;11259:14;:39;;;;-1:-1:-1;;;;;;11278:20:0;;;;;;:9;:20;;;;;;;;11277:21;11259:39;:54;;;;-1:-1:-1;11303:10:0;;-1:-1:-1;;;11303:10:0;;;;11302:11;11259:54;11255:306;;;11348:11;;11338:6;:21;;11330:63;;;;-1:-1:-1;;;11330:63:0;;17988:2:1;11330:63:0;;;17970:21:1;18027:2;18007:18;;;18000:30;18066:31;18046:18;;;18039:59;18115:18;;11330:63:0;17786:353:1;11330:63:0;11467:14;;11457:6;11434:20;11444:9;-1:-1:-1;;;;;2264:18:0;2237:7;2264:18;;;;;;;;;;;;2163:127;11434:20;:29;;;;:::i;:::-;:47;;11408:141;;;;-1:-1:-1;;;11408:141:0;;18346:2:1;11408:141:0;;;18328:21:1;;;18365:18;;;18358:30;18424:34;18404:18;;;18397:62;18476:18;;11408:141:0;18144:356:1;11408:141:0;11599:4;;-1:-1:-1;;;;;11589:14:0;;;11599:4;;11589:14;;;;:39;;-1:-1:-1;;;;;;11608:20:0;;;;;;:9;:20;;;;;;;;11607:21;11589:39;:61;;;;-1:-1:-1;;;;;;11633:17:0;;;;;;:9;:17;;;;;;;;11632:18;11589:61;:76;;;;-1:-1:-1;11655:10:0;;-1:-1:-1;;;11655:10:0;;;;11654:11;11589:76;11571:677;;;11710:12;;11700:6;:22;;11692:65;;;;-1:-1:-1;;;11692:65:0;;18707:2:1;11692:65:0;;;18689:21:1;18746:2;18726:18;;;18719:30;18785:32;18765:18;;;18758:60;18835:18;;11692:65:0;18505:354:1;11692:65:0;11789:4;;-1:-1:-1;;;;;11776:17:0;;;11789:4;;11776:17;11772:211;;11877:14;;11867:6;11844:20;11854:9;-1:-1:-1;;;;;2264:18:0;2237:7;2264:18;;;;;;;;;;;;2163:127;11844:20;:29;;;;:::i;:::-;:47;;11814:153;;;;-1:-1:-1;;;11814:153:0;;18346:2:1;11814:153:0;;;18328:21:1;;;18365:18;;;18358:30;18424:34;18404:18;;;18397:62;18476:18;;11814:153:0;18144:356:1;11814:153:0;12001:15;;;;11997:240;;;-1:-1:-1;;;;;12076:17:0;;12037:18;12076:17;;;:9;:17;;;;;;12058:35;;:15;:35;:::i;:::-;12037:56;;12134:12;;12120:10;:26;;12112:55;;;;-1:-1:-1;;;12112:55:0;;19066:2:1;12112:55:0;;;19048:21:1;19105:2;19085:18;;;19078:30;-1:-1:-1;;;19124:18:1;;;19117:46;19180:18;;12112:55:0;18864:340:1;12112:55:0;-1:-1:-1;;;;;;12186:17:0;;;;;;:9;:17;;;;;12206:15;12186:35;;11997:240;12258:15;12284:14;12309:11;12331:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12331:25:0;-1:-1:-1;;;;;12388:17:0;;12367;12388;;;:9;:17;;;;;;;;12387:18;:56;;;;-1:-1:-1;;;;;;12423:20:0;;;;;;:9;:20;;;;;;;;12422:21;12387:56;:112;;;;;12491:8;;12475:13;;:24;;;;:::i;:::-;12460:12;:39;12387:112;12514:10;;12367:132;;-1:-1:-1;;;;12514:10:0;;;;;:31;;-1:-1:-1;;;;;;12528:17:0;;;;;;:9;:17;;;;;;;;12514:31;:55;;;-1:-1:-1;;;;;;12549:20:0;;;;;;:9;:20;;;;;;;;12514:55;12510:754;;;12590:1;12584:7;;12510:754;;;12626:4;;-1:-1:-1;;;;;12613:17:0;;;12626:4;;12613:17;:34;;;;;12635:12;12634:13;12613:34;12609:655;;;12813:13;;12769:12;;12813:9;12730:19;12691;;:58;;12730:19;12691:58;:::i;:::-;:90;;;;:::i;:::-;:135;;;;:::i;:::-;12872:24;;;;;;;;12887:9;12872:24;;;;;;;;;;;;;;;;;;;;;;;;12664:162;;-1:-1:-1;12664:162:0;;-1:-1:-1;12872:24:0;-1:-1:-1;12609:655:0;;;12919:12;12914:350;;13073:9;;13045:8;;13073:5;13010:15;12975;;:50;;13010:15;12975:50;:::i;:::-;:78;;;;:::i;:::-;:107;;;;:::i;:::-;13129:20;;;;;;;;13144:5;13129:20;;;;;;;;;;;;;;;;;;;;;;;;12948:134;;-1:-1:-1;12948:134:0;;-1:-1:-1;13129:20:0;-1:-1:-1;12914:350:0;;;13171:12;13167:97;;;13210:9;;;-1:-1:-1;13210:9:0;;-1:-1:-1;13167:97:0;13300:3;13281:15;13290:6;13281;:15;:::i;:::-;13280:23;;;;:::i;:::-;13318:18;;13274:29;;-1:-1:-1;;;;13318:18:0;;;;:36;;;;-1:-1:-1;13350:4:0;;-1:-1:-1;;;;;13340:14:0;;;13350:4;;13340:14;;13318:36;13314:72;;;13356:30;13364:7;13373:12;13356:7;:30::i;:::-;13398:48;13414:6;13422:9;13433:12;13442:3;13433:6;:12;:::i;:::-;13398:15;:48::i;:::-;13461:7;;13457:207;;13491:11;;13487:164;;13523:17;13564:3;13544:16;13553:7;13544:6;:16;:::i;:::-;13543:24;;;;:::i;:::-;13523:44;;13586:49;13602:6;13618:4;13625:9;13586:15;:49::i;:::-;13504:147;13487:164;11037:2634;;;;;10915:2756;;;:::o;6301:173::-;6376:6;;;-1:-1:-1;;;;;6393:17:0;;;-1:-1:-1;;;;;;6393:17:0;;;;;;;6426:40;;6376:6;;;6393:17;6376:6;;6426:40;;6357:16;;6426:40;6346:128;6301:173;:::o;13677:1635::-;8680:10;;-1:-1:-1;;;8680:10:0;;;;8675:110;;8707:10;:17;;-1:-1:-1;;;;8707:17:0;-1:-1:-1;;;8707:17:0;;;13766:49;;13797:7:::1;13766:49;13869:4;13825:23;2264:18:::0;;;;;;;;;;;13909:23:::1;::::0;13890:42;::::1;13886:1419;;13979:1;13953:23;;:27;13949:109;;;-1:-1:-1::0;14019:23:0::1;::::0;13949:109:::1;14069:19;14091:11;:7:::0;14101:1:::1;14091:11;:::i;:::-;14069:33;;14117:32;14211:11;14171:9;:19;;;14153:15;:37;;;;:::i;:::-;14152:70;;;;:::i;:::-;14117:105:::0;-1:-1:-1;14237:14:0::1;14254:42;14117:105:::0;14254:15;:42:::1;:::i;:::-;14237:59:::0;-1:-1:-1;14336:21:0::1;14372:24;14237:59:::0;14372:16:::1;:24::i;:::-;14411:20;14434:38;14458:14:::0;14434:21:::1;:38;:::i;:::-;14411:61;;14487:19;14539:9;:19;;;14525:11;:33;;;;:::i;:::-;14509:50;::::0;:12;:50:::1;:::i;:::-;14487:72;;14574:29;14620:9;:19;;;14606:11;:33;;;;:::i;:::-;14574:65:::0;-1:-1:-1;14658:25:0;;14654:121:::1;;14698:61;14711:24;14737:21;14698:12;:61::i;:::-;14830:19:::0;;14789:20:::1;::::0;14812:15:::1;:11:::0;14826:1:::1;14812:15;:::i;:::-;:37;;;;:::i;:::-;14789:60:::0;-1:-1:-1;14868:16:0;;14864:105:::1;;14913:15;::::0;14905:48:::1;::::0;-1:-1:-1;;;;;14913:15:0::1;14940:12:::0;14905:34:::1;:48::i;:::-;15017:12;::::0;::::1;::::0;14983:13:::1;::::0;14999:15:::1;:11:::0;15013:1:::1;14999:15;:::i;:::-;:30;;;;:::i;:::-;14983:46:::0;-1:-1:-1;15048:9:0;;15044:84:::1;;15086:8;::::0;15078:34:::1;::::0;-1:-1:-1;;;;;15086:8:0::1;15106:5:::0;15078:27:::1;:34::i;:::-;15177:13;::::0;::::1;::::0;15142:14:::1;::::0;15159:15:::1;:11:::0;15173:1:::1;15159:15;:::i;:::-;:31;;;;:::i;:::-;15142:48:::0;-1:-1:-1;15209:10:0;;15205:87:::1;;15248:9;::::0;15240:36:::1;::::0;-1:-1:-1;;;;;15248:9:0::1;15269:6:::0;15240:28:::1;:36::i;:::-;13934:1371;;;;;;;;;;13886:1419;13755:1557;8739:1;8755:10:::0;:18;;-1:-1:-1;;;;8755:18:0;;;13677:1635;;:::o;4030:578::-;-1:-1:-1;;;;;4170:20:0;;4162:70;;;;-1:-1:-1;;;4162:70:0;;19633:2:1;4162:70:0;;;19615:21:1;19672:2;19652:18;;;19645:30;19711:34;19691:18;;;19684:62;-1:-1:-1;;;19762:18:1;;;19755:35;19807:19;;4162:70:0;19431:401:1;4162:70:0;-1:-1:-1;;;;;4251:23:0;;4243:71;;;;-1:-1:-1;;;4243:71:0;;20039:2:1;4243:71:0;;;20021:21:1;20078:2;20058:18;;;20051:30;20117:34;20097:18;;;20090:62;-1:-1:-1;;;20168:18:1;;;20161:33;20211:19;;4243:71:0;19837:399:1;4243:71:0;-1:-1:-1;;;;;4351:17:0;;4327:21;4351:17;;;;;;;;;;;4387:23;;;;4379:74;;;;-1:-1:-1;;;4379:74:0;;20443:2:1;4379:74:0;;;20425:21:1;20482:2;20462:18;;;20455:30;20521:34;20501:18;;;20494:62;-1:-1:-1;;;20572:18:1;;;20565:36;20618:19;;4379:74:0;20241:402:1;4379:74:0;4484:22;4500:6;4484:13;:22;:::i;:::-;-1:-1:-1;;;;;4464:17:0;;;:9;:17;;;;;;;;;;;:42;;;;4517:20;;;;;;;;:30;;4541:6;;4464:9;4517:30;;4541:6;;4517:30;:::i;:::-;;;;;;;;4582:9;-1:-1:-1;;;;;4565:35:0;4574:6;-1:-1:-1;;;;;4565:35:0;;4593:6;4565:35;;;;3720:25:1;;3708:2;3693:18;;3574:177;4565:35:0;;;;;;;;4151:457;4030:578;;;:::o;15318:444::-;15408:16;;;15422:1;15408:16;;;;;;;;15384:21;;15408:16;;;;;;;;;;-1:-1:-1;15408:16:0;15384:40;;15453:4;15435;15440:1;15435:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15435:23:0;;;:7;;;;;;;;;;:23;;;;15479:6;;:13;;;-1:-1:-1;;;15479:13:0;;;;:6;;;;;:11;;:13;;;;;15435:7;;15479:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15469:4;15474:1;15469:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15469:23:0;;;:7;;;;;;;;;:23;15535:6;;15503:53;;15520:4;;15535:6;15544:11;15503:8;:53::i;:::-;15567:6;;:187;;-1:-1:-1;;;15567:187:0;;-1:-1:-1;;;;;15567:6:0;;;;:57;;:187;;15639:11;;15567:6;;15681:4;;15708;;15728:15;;15567:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15373:389;15318:444;:::o;15768:345::-;15879:6;;15847:53;;15864:4;;-1:-1:-1;;;;;15879:6:0;15888:11;15847:8;:53::i;:::-;15911:6;;:194;;-1:-1:-1;;;15911:194:0;;15976:4;15911:194;;;22230:34:1;22280:18;;;22273:34;;;15911:6:0;22323:18:1;;;22316:34;;;22366:18;;;22359:34;8177:42:0;22409:19:1;;;22402:44;16079:15:0;22462:19:1;;;22455:35;-1:-1:-1;;;;;15911:6:0;;;;:22;;15942:9;;22164:19:1;;15911:194:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15768:345;;:::o;5235:319::-;5350:6;5325:21;:31;;5317:73;;;;-1:-1:-1;;;5317:73:0;;23014:2:1;5317:73:0;;;22996:21:1;23053:2;23033:18;;;23026:30;23092:31;23072:18;;;23065:59;23141:18;;5317:73:0;22812:353:1;5317:73:0;5404:12;5422:9;-1:-1:-1;;;;;5422:14:0;5445:6;5422:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5403:54;;;5476:7;5468:78;;;;-1:-1:-1;;;5468:78:0;;23582:2:1;5468:78:0;;;23564:21:1;23621:2;23601:18;;;23594:30;23660:34;23640:18;;;23633:62;23731:28;23711:18;;;23704:56;23777:19;;5468:78:0;23380:422:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1354:127::-;1415:10;1410:3;1406:20;1403:1;1396:31;1446:4;1443:1;1436:15;1470:4;1467:1;1460:15;1486:118;1572:5;1565:13;1558:21;1551:5;1548:32;1538:60;;1594:1;1591;1584:12;1609:128;1674:20;;1703:28;1674:20;1703:28;:::i;1742:1191::-;1832:6;1840;1893:2;1881:9;1872:7;1868:23;1864:32;1861:52;;;1909:1;1906;1899:12;1861:52;1949:9;1936:23;1978:18;2019:2;2011:6;2008:14;2005:34;;;2035:1;2032;2025:12;2005:34;2073:6;2062:9;2058:22;2048:32;;2118:7;2111:4;2107:2;2103:13;2099:27;2089:55;;2140:1;2137;2130:12;2089:55;2176:2;2163:16;2198:4;2221:2;2217;2214:10;2211:36;;;2227:18;;:::i;:::-;2273:2;2270:1;2266:10;2305:2;2299:9;2368:2;2364:7;2359:2;2355;2351:11;2347:25;2339:6;2335:38;2423:6;2411:10;2408:22;2403:2;2391:10;2388:18;2385:46;2382:72;;;2434:18;;:::i;:::-;2470:2;2463:22;2520:18;;;2554:15;;;;-1:-1:-1;2596:11:1;;;2592:20;;;2624:19;;;2621:39;;;2656:1;2653;2646:12;2621:39;2680:11;;;;2700:148;2716:6;2711:3;2708:15;2700:148;;;2782:23;2801:3;2782:23;:::i;:::-;2770:36;;2733:12;;;;2826;;;;2700:148;;;2867:6;-1:-1:-1;2892:35:1;;-1:-1:-1;2908:18:1;;;2892:35;:::i;:::-;2882:45;;;;;;1742:1191;;;;;:::o;2938:385::-;3024:6;3032;3040;3048;3101:3;3089:9;3080:7;3076:23;3072:33;3069:53;;;3118:1;3115;3108:12;3069:53;-1:-1:-1;;3141:23:1;;;3211:2;3196:18;;3183:32;;-1:-1:-1;3262:2:1;3247:18;;3234:32;;3313:2;3298:18;3285:32;;-1:-1:-1;2938:385:1;-1:-1:-1;2938:385:1:o;3328:241::-;3384:6;3437:2;3425:9;3416:7;3412:23;3408:32;3405:52;;;3453:1;3450;3443:12;3405:52;3492:9;3479:23;3511:28;3533:5;3511:28;:::i;:::-;3558:5;3328:241;-1:-1:-1;;;3328:241:1:o;3756:247::-;3815:6;3868:2;3856:9;3847:7;3843:23;3839:32;3836:52;;;3884:1;3881;3874:12;3836:52;3923:9;3910:23;3942:31;3967:5;3942:31;:::i;4008:456::-;4085:6;4093;4101;4154:2;4142:9;4133:7;4129:23;4125:32;4122:52;;;4170:1;4167;4160:12;4122:52;4209:9;4196:23;4228:31;4253:5;4228:31;:::i;:::-;4278:5;-1:-1:-1;4335:2:1;4320:18;;4307:32;4348:33;4307:32;4348:33;:::i;:::-;4008:456;;4400:7;;-1:-1:-1;;;4454:2:1;4439:18;;;;4426:32;;4008:456::o;4866:382::-;4931:6;4939;4992:2;4980:9;4971:7;4967:23;4963:32;4960:52;;;5008:1;5005;4998:12;4960:52;5047:9;5034:23;5066:31;5091:5;5066:31;:::i;:::-;5116:5;-1:-1:-1;5173:2:1;5158:18;;5145:32;5186:30;5145:32;5186:30;:::i;:::-;5235:7;5225:17;;;4866:382;;;;;:::o;5253:180::-;5312:6;5365:2;5353:9;5344:7;5340:23;5336:32;5333:52;;;5381:1;5378;5371:12;5333:52;-1:-1:-1;5404:23:1;;5253:180;-1:-1:-1;5253:180:1:o;5834:388::-;5902:6;5910;5963:2;5951:9;5942:7;5938:23;5934:32;5931:52;;;5979:1;5976;5969:12;5931:52;6018:9;6005:23;6037:31;6062:5;6037:31;:::i;:::-;6087:5;-1:-1:-1;6144:2:1;6129:18;;6116:32;6157:33;6116:32;6157:33;:::i;6227:316::-;6304:6;6312;6320;6373:2;6361:9;6352:7;6348:23;6344:32;6341:52;;;6389:1;6386;6379:12;6341:52;-1:-1:-1;;6412:23:1;;;6482:2;6467:18;;6454:32;;-1:-1:-1;6533:2:1;6518:18;;;6505:32;;6227:316;-1:-1:-1;6227:316:1:o;6548:309::-;6613:6;6621;6674:2;6662:9;6653:7;6649:23;6645:32;6642:52;;;6690:1;6687;6680:12;6642:52;6729:9;6716:23;6748:28;6770:5;6748:28;:::i;7085:380::-;7164:1;7160:12;;;;7207;;;7228:61;;7282:4;7274:6;7270:17;7260:27;;7228:61;7335:2;7327:6;7324:14;7304:18;7301:38;7298:161;;7381:10;7376:3;7372:20;7369:1;7362:31;7416:4;7413:1;7406:15;7444:4;7441:1;7434:15;7298:161;;7085:380;;;:::o;7470:356::-;7672:2;7654:21;;;7691:18;;;7684:30;7750:34;7745:2;7730:18;;7723:62;7817:2;7802:18;;7470:356::o;7831:127::-;7892:10;7887:3;7883:20;7880:1;7873:31;7923:4;7920:1;7913:15;7947:4;7944:1;7937:15;7963:127;8024:10;8019:3;8015:20;8012:1;8005:31;8055:4;8052:1;8045:15;8079:4;8076:1;8069:15;8095:135;8134:3;8155:17;;;8152:43;;8175:18;;:::i;:::-;-1:-1:-1;8222:1:1;8211:13;;8095:135::o;8235:125::-;8300:9;;;8321:10;;;8318:36;;;8334:18;;:::i;8723:398::-;8925:2;8907:21;;;8964:2;8944:18;;;8937:30;9003:34;8998:2;8983:18;;8976:62;-1:-1:-1;;;9069:2:1;9054:18;;9047:32;9111:3;9096:19;;8723:398::o;9888:128::-;9955:9;;;9976:11;;;9973:37;;;9990:18;;:::i;10452:422::-;10541:1;10584:5;10541:1;10598:270;10619:7;10609:8;10606:21;10598:270;;;10678:4;10674:1;10670:6;10666:17;10660:4;10657:27;10654:53;;;10687:18;;:::i;:::-;10737:7;10727:8;10723:22;10720:55;;;10757:16;;;;10720:55;10836:22;;;;10796:15;;;;10598:270;;;10602:3;10452:422;;;;;:::o;10879:806::-;10928:5;10958:8;10948:80;;-1:-1:-1;10999:1:1;11013:5;;10948:80;11047:4;11037:76;;-1:-1:-1;11084:1:1;11098:5;;11037:76;11129:4;11147:1;11142:59;;;;11215:1;11210:130;;;;11122:218;;11142:59;11172:1;11163:10;;11186:5;;;11210:130;11247:3;11237:8;11234:17;11231:43;;;11254:18;;:::i;:::-;-1:-1:-1;;11310:1:1;11296:16;;11325:5;;11122:218;;11424:2;11414:8;11411:16;11405:3;11399:4;11396:13;11392:36;11386:2;11376:8;11373:16;11368:2;11362:4;11359:12;11355:35;11352:77;11349:159;;;-1:-1:-1;11461:19:1;;;11493:5;;11349:159;11540:34;11565:8;11559:4;11540:34;:::i;:::-;11610:6;11606:1;11602:6;11598:19;11589:7;11586:32;11583:58;;;11621:18;;:::i;:::-;11659:20;;10879:806;-1:-1:-1;;;10879:806:1:o;11690:140::-;11748:5;11777:47;11818:4;11808:8;11804:19;11798:4;11777:47;:::i;11835:168::-;11908:9;;;11939;;11956:15;;;11950:22;;11936:37;11926:71;;11977:18;;:::i;12710:245::-;12777:6;12830:2;12818:9;12809:7;12805:23;12801:32;12798:52;;;12846:1;12843;12836:12;12798:52;12878:9;12872:16;12897:28;12919:5;12897:28;:::i;19209:217::-;19249:1;19275;19265:132;;19319:10;19314:3;19310:20;19307:1;19300:31;19354:4;19351:1;19344:15;19382:4;19379:1;19372:15;19265:132;-1:-1:-1;19411:9:1;;19209:217::o;20648:251::-;20718:6;20771:2;20759:9;20750:7;20746:23;20742:32;20739:52;;;20787:1;20784;20777:12;20739:52;20819:9;20813:16;20838:31;20863:5;20838:31;:::i;20904:980::-;21166:4;21214:3;21203:9;21199:19;21245:6;21234:9;21227:25;21271:2;21309:6;21304:2;21293:9;21289:18;21282:34;21352:3;21347:2;21336:9;21332:18;21325:31;21376:6;21411;21405:13;21442:6;21434;21427:22;21480:3;21469:9;21465:19;21458:26;;21519:2;21511:6;21507:15;21493:29;;21540:1;21550:195;21564:6;21561:1;21558:13;21550:195;;;21629:13;;-1:-1:-1;;;;;21625:39:1;21613:52;;21720:15;;;;21685:12;;;;21661:1;21579:9;21550:195;;;-1:-1:-1;;;;;;;21801:32:1;;;;21796:2;21781:18;;21774:60;-1:-1:-1;;;21865:3:1;21850:19;21843:35;21762:3;20904:980;-1:-1:-1;;;20904:980:1:o;22501:306::-;22589:6;22597;22605;22658:2;22646:9;22637:7;22633:23;22629:32;22626:52;;;22674:1;22671;22664:12;22626:52;22703:9;22697:16;22687:26;;22753:2;22742:9;22738:18;22732:25;22722:35;;22797:2;22786:9;22782:18;22776:25;22766:35;;22501:306;;;;;:::o

Swarm Source

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