ETH Price: $3,174.44 (+2.26%)

Token

FlokiMarvin $Pals ($PALS)
 

Overview

Max Total Supply

1,000,000,000 $PALS

Holders

310

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0.685 $PALS

Value
$0.00
0x6f9f6d55b21a3f070d184ffa83005368a67ea2b2
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:
FLOKIMARVINPALS

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-11
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.14;

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

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

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

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

interface BEP20 {
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

    event Authorize_Wallet(address Wallet, bool Status);

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

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) external onlyOwner {
        authorizations[adr] = true;
        emit Authorize_Wallet(adr,true);
    }

    function unauthorize(address adr) external onlyOwner {
        require(adr != owner, "OWNER cant be unauthorized");
        authorizations[adr] = false;
        emit Authorize_Wallet(adr,false);
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) external onlyOwner {
        require(adr != owner, "Already the owner");
        require(adr != address(0), "Can not be zero address.");
        potentialOwner = adr;
        emit OwnershipNominated(adr);
    }

    function acceptOwnership() external {
        require(msg.sender == potentialOwner, "You must be nominated as potential owner before you can accept the role.");
        authorizations[owner] = false;
        authorizations[potentialOwner] = true;

        emit Authorize_Wallet(owner,false);
        emit Authorize_Wallet(potentialOwner,true);

        owner = potentialOwner;
        potentialOwner = address(0);
        emit OwnershipTransferred(owner);
    }

    event OwnershipTransferred(address owner);
    event OwnershipNominated(address potentialOwner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract FLOKIMARVINPALS is BEP20, Auth {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "FlokiMarvin $Pals";
    string public constant symbol = "$PALS";
    uint8 public constant decimals = 8;

    uint256 public constant totalSupply = 1 * 10**9 * 10**decimals;

    uint256 public _maxTxAmount = totalSupply / 50;
    uint256 public _maxWalletToken = totalSupply / 50;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isWalletLimitExempt;

    uint256 public liquidityFee = 0;
    uint256 public marketingFee = 30;
    uint256 public developmentFee = 30;
    uint256 public devFee = 10;

    uint256 public totalFee = marketingFee + liquidityFee + developmentFee + devFee;
    uint256 public constant feeDenominator = 1000;

    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 100;

    address public marketingFeeReceiver;
    address public developmentFeeReceiver;
    address public devFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool public tradingOpen = false;
    bool public antibot = true;
    bool public launchMode = true;

    bool public swapEnabled = false;
    uint256 public swapThreshold = totalSupply / 1000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = 0xFE955780A2db445592F315BDF171eD6DAda3B663;
        developmentFeeReceiver = 0x2Fe4F45EF79641140FB6A2B5d547EC68d9d7bA7d;
        devFeeReceiver = 0x277BdadF7A82Ab1a9C5Cac664abfdF748aFF3486;

        isFeeExempt[msg.sender] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[DEAD] = true;
        isWalletLimitExempt[ZERO] = true;

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner {
        require(maxWallPercent_base1000 >= 1,"Cannot set max wallet less than 0.1%");
        _maxWalletToken = (totalSupply * maxWallPercent_base1000 ) / 1000;
        emit config_MaxWallet(_maxWalletToken);
    }
    function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner {
        require(maxTXPercentage_base1000 >= 1,"Cannot set max transaction less than 0.1%");
        _maxTxAmount = (totalSupply * maxTXPercentage_base1000 ) / 1000;
        emit config_MaxTransaction(_maxTxAmount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"Trading not open yet");
        }

        if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }
    
        // Checks max transaction limit
        require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded");

        if(shouldSwapBack()){ swapBack(); }

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

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

        balanceOf[recipient] = balanceOf[recipient].add(amountReceived);


        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");
        balanceOf[recipient] = balanceOf[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        if(feeAmount > 0){
            balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

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

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        require(amountPercentage < 101, "Max 100%");
        uint256 amountETH = address(this).balance;
        uint256 amountToClear = ( amountETH * amountPercentage ) / 100;
        payable(msg.sender).transfer(amountToClear);
        emit BalanceClear(amountToClear);
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) {
        require(tokenAddress != address(this), "Cannot withdraw native token");

        if(tokens == 0){
            tokens = BEP20(tokenAddress).balanceOf(address(this));
        }

        emit clearToken(tokenAddress, tokens);

        return BEP20(tokenAddress).transfer(msg.sender, tokens);
    }

    function tradingStatus(bool _status) external onlyOwner {
        if(!_status){
            require(launchMode,"Cannot stop trading after launch is done");
        }
        tradingOpen = _status;
        emit config_TradingStatus(tradingOpen);
    }

    function antibot_enable() external onlyOwner{
        antibot = true;
    }
    function antibot_disable() external onlyOwner{
        antibot = false;
    }

    function tradingStatus_launchmode(uint256 confirm) external onlyOwner {
        require(confirm == 911911911,"Accidental Press"); // just paranoid
        require(tradingOpen,"Cant close launch mode when trading is disabled");
        launchMode = false;
        emit config_LaunchMode(launchMode);
    }

    function swapBack() internal swapping {

        uint256 totalETHFee = totalFee;

        uint256 amountToLiquify = (swapThreshold * liquidityFee)/(totalETHFee * 2);
        uint256 amountToSwap = swapThreshold - amountToLiquify;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

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

        uint256 amountETH = address(this).balance;

         totalETHFee = totalETHFee - (liquidityFee / 2);
        
        uint256 amountETHLiquidity = (amountETH * liquidityFee) / (totalETHFee * 2);
        uint256 amountETHMarketing = (amountETH * marketingFee) / totalETHFee;
        uint256 amountETHdevelopment = (amountETH * developmentFee) / totalETHFee;
        uint256 amountETHDev = (amountETH * devFee) / totalETHFee;

        payable(marketingFeeReceiver).transfer(amountETHMarketing);
        payable(developmentFeeReceiver).transfer(amountETHdevelopment);
        payable(devFeeReceiver).transfer(amountETHDev);

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

    function manage_FeeExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isFeeExempt[addresses[i]] = status;
            emit Wallet_feeExempt(addresses[i], status);
        }
    }

    function manage_TxLimitExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isTxLimitExempt[addresses[i]] = status;
            emit Wallet_txExempt(addresses[i], status);
        }
    }

    function manage_WalletLimitExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isWalletLimitExempt[addresses[i]] = status;
            emit Wallet_holdingExempt(addresses[i], status);
        }
    }

    function update_fees() internal {
        require(totalFee.mul(buyMultiplier).div(100) <= 200, "Buy tax cannot be more than 20%");
        require(totalFee.mul(sellMultiplier).div(100) <= 200, "Sell tax cannot be more than 20%");
        require(totalFee.mul(transferMultiplier).div(100) <= 100, "Transfer Tax cannot be more than 10%");

        emit UpdateFee( uint8(totalFee.mul(buyMultiplier).div(100)),
            uint8(totalFee.mul(sellMultiplier).div(100)),
            uint8(totalFee.mul(transferMultiplier).div(100))
            );
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external authorized {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;

        update_fees();
    }

    function setFees_base1000(uint256 _liquidityFee,  uint256 _marketingFee, uint256 _developmentFee) external onlyOwner {
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        developmentFee = _developmentFee;
        
        totalFee = _liquidityFee + _marketingFee + _developmentFee + devFee;
        
        update_fees();
    }

    function setFeeReceivers(address _marketingFeeReceiver, address _developmentFeeReceiver) external onlyOwner {
        require(_marketingFeeReceiver != address(0),"Marketing fee address cannot be zero address");
        require(_developmentFeeReceiver != address(0),"Development fee address cannot be zero address");

        marketingFeeReceiver = _marketingFeeReceiver;
        developmentFeeReceiver = _developmentFeeReceiver;

        emit Set_Wallets(marketingFeeReceiver, developmentFeeReceiver);
    }

    function setFeeReceivers_dev(address _newDevWallet) external {
        require(msg.sender == devFeeReceiver,"Can only be changed by dev");
        devFeeReceiver = _newDevWallet;
        emit Set_Wallets_Dev(devFeeReceiver);
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        require(_amount < (totalSupply/10), "Amount too high");

        swapEnabled = _enabled;
        swapThreshold = _amount;

        emit config_SwapSettings(swapThreshold, swapEnabled);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }


function multiTransfer(address from, address[] calldata addresses, uint256[] calldata tokens) external authorized {
    if(msg.sender != from){
        require(launchMode,"Cannot execute this after launch is done");
    }

    require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
    require(addresses.length == tokens.length,"Mismatch between address and token count");

    uint256 SCCC = 0;

    for(uint i=0; i < addresses.length; i++){
        SCCC = SCCC + tokens[i];
    }

    require(balanceOf[from] >= SCCC, "Not enough tokens in wallet");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens[i]);
    }
}

event AutoLiquify(uint256 amountETH, uint256 amountTokens);
event UpdateFee(uint8 Buy, uint8 Sell, uint8 Transfer);
event Wallet_feeExempt(address Wallet, bool Status);
event Wallet_txExempt(address Wallet, bool Status);
event Wallet_holdingExempt(address Wallet, bool Status);

event BalanceClear(uint256 amount);
event clearToken(address TokenAddressCleared, uint256 Amount);

event Set_Wallets(address MarketingWallet, address DevelopmentWallet);
event Set_Wallets_Dev(address DevWallet);

event config_MaxWallet(uint256 maxWallet);
event config_MaxTransaction(uint256 maxWallet);
event config_TradingStatus(bool Status);
event config_LaunchMode(bool Status);
event config_SwapSettings(uint256 Amount, bool Enabled);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Authorize_Wallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BalanceClear","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"potentialOwner","type":"address"}],"name":"OwnershipNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"MarketingWallet","type":"address"},{"indexed":false,"internalType":"address","name":"DevelopmentWallet","type":"address"}],"name":"Set_Wallets","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"DevWallet","type":"address"}],"name":"Set_Wallets_Dev","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"UpdateFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_feeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_holdingExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_txExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"clearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"config_LaunchMode","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"config_MaxTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"config_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"config_SwapSettings","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"config_TradingStatus","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antibot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antibot_disable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"antibot_enable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developmentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developmentFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_FeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_TxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_WalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_developmentFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newDevWallet","type":"address"}],"name":"setFeeReceivers_dev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_developmentFee","type":"uint256"}],"name":"setFees_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","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":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"confirm","type":"uint256"}],"name":"tradingStatus_launchmode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526032620000146008600a620005cd565b6200002490633b9aca00620005e5565b62000030919062000607565b6003556032620000436008600a620005cd565b6200005390633b9aca00620005e5565b6200005f919062000607565b6004556000600a55601e600b55601e600c55600a600d55600d54600c54600a54600b546200008e91906200062a565b6200009a91906200062a565b620000a691906200062a565b600e556064600f81905560108190556011556015805463ffffffff60a01b191661010160a81b1790556103e8620000e06008600a620005cd565b620000f090633b9aca00620005e5565b620000fc919062000607565b6016553480156200010c57600080fd5b5060008054336001600160a01b031991821681178355825260026020908152604092839020805460ff1916600117905560158054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa15801562000192573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b8919062000645565b6001600160a01b039081166080526015546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000209573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022f919062000645565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000281573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a7919062000645565b6001600160a01b0390811660a05230600081815260066020908152604080832060155490951683529381528382206000199055601280546001600160a01b031990811673fe955780a2db445592f315bdf171ed6dada3b66317909155601380548216732fe4f45ef79641140fb6a2b5d547ec68d9d7ba7d1790556014805490911673277bdadf7a82ab1a9c5cac664abfdf748aff348617905533825260078152838220805460ff199081166001908117909255600880845286852080548316841790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548316841790557f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c780548316841790556009909352858420805482168317905593835293822080548416851790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb19307500378580548416851790559080527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b805490921690921790556200043e90600a620005cd565b6200044e90633b9aca00620005e5565b33600081815260056020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620004916008600a620005cd565b620004a190633b9aca00620005e5565b60405190815260200160405180910390a362000670565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200050f578160001904821115620004f357620004f3620004b8565b808516156200050157918102915b93841c9390800290620004d3565b509250929050565b6000826200052857506001620005c7565b816200053757506000620005c7565b81600181146200055057600281146200055b576200057b565b6001915050620005c7565b60ff8411156200056f576200056f620004b8565b50506001821b620005c7565b5060208310610133831016604e8410600b8410161715620005a0575081810a620005c7565b620005ac8383620004ce565b8060001904821115620005c357620005c3620004b8565b0290505b92915050565b6000620005de60ff84168362000517565b9392505050565b6000816000190483118215151615620006025762000602620004b8565b500290565b6000826200062557634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620006405762000640620004b8565b500190565b6000602082840312156200065857600080fd5b81516001600160a01b0381168114620005de57600080fd5b60805160a051613527620006b2600039600081816108b5015281816123640152818161285501528181612c660152612c9a0152600061296001526135276000f3fe60806040526004361061036d5760003560e01c806377b54bad116101c6578063b37dd690116100f7578063e96fada211610095578063f2fde38b1161006f578063f2fde38b14610a6e578063f887ea4014610a8e578063fe9fbb8014610aae578063ffb54a9914610ace57600080fd5b8063e96fada214610a0e578063eddb6b8414610a2e578063f0b37c0414610a4e57600080fd5b8063c867d60b116100d1578063c867d60b14610958578063dab84ee714610988578063dd62ed3e146109a8578063df20fd49146109ee57600080fd5b8063b37dd690146108f7578063b6a5d7de14610918578063bd9ab5371461093857600080fd5b806395d89b4111610164578063a4b45c001161013e578063a4b45c001461086d578063a5f3d0031461088d578063a8aa1b31146108a3578063a9059cbb146108d757600080fd5b806395d89b411461080657806398118cb4146108375780639cd1aef11461084d57600080fd5b806379ba5097116101a057806379ba50971461078d5780637d1db4a5146107a2578063893d20e8146107b85780638b42507f146107d657600080fd5b806377b54bad1461074257806378109e541461076257806379b5afec1461077857600080fd5b80632b112e49116102a0578063571ac8b01161023e5780636ce46bc3116102185780636ce46bc31461069c5780636ddd1713146106bc5780636ec518b8146106dd57806370a082311461071557600080fd5b8063571ac8b0146106505780636827e764146106705780636b67c4df1461068657600080fd5b8063313ce5671161027a578063313ce567146105c45780633f4218e0146105eb5780634bc2ee301461061b5780634be9d8691461063057600080fd5b80632b112e491461055f5780632f54bf6e14610574578063305c4c80146105a357600080fd5b8063180b0d7e1161030d5780631da1db5e116102e75780631da1db5e146104e95780631df4ccfc146105095780631e863ae91461051f57806323b872dd1461053f57600080fd5b8063180b0d7e1461049e57806318160ddd146104b45780631ca0a28d146104c957600080fd5b806306fdde031161034957806306fdde03146103e457806309302dc61461042e578063095ea7b31461044e5780630d2959801461047e57600080fd5b806210868314610379578062bff4461461039b5780630445b667146103bb57600080fd5b3661037457005b600080fd5b34801561038557600080fd5b50610399610394366004612f28565b610aef565b005b3480156103a757600080fd5b506103996103b6366004612f28565b610c12565b3480156103c757600080fd5b506103d160165481565b6040519081526020015b60405180910390f35b3480156103f057600080fd5b5061042160405180604001604052806011815260200170466c6f6b694d617276696e202450616c7360781b81525081565b6040516103db9190612f7f565b34801561043a57600080fd5b50610399610449366004612fd4565b610d26565b34801561045a57600080fd5b5061046e610469366004613002565b610e1b565b60405190151581526020016103db565b34801561048a57600080fd5b5061039961049936600461302e565b610e88565b3480156104aa57600080fd5b506103d16103e881565b3480156104c057600080fd5b506103d1610f76565b3480156104d557600080fd5b506103996104e436600461304b565b610f93565b3480156104f557600080fd5b50610399610504366004612fd4565b6111d0565b34801561051557600080fd5b506103d1600e5481565b34801561052b57600080fd5b5061039961053a3660046130ce565b6112b7565b34801561054b57600080fd5b5061046e61055a3660046130eb565b61135f565b34801561056b57600080fd5b506103d1611421565b34801561058057600080fd5b5061046e61058f3660046130ce565b6000546001600160a01b0391821691161490565b3480156105af57600080fd5b5060155461046e90600160a81b900460ff1681565b3480156105d057600080fd5b506105d9600881565b60405160ff90911681526020016103db565b3480156105f757600080fd5b5061046e6106063660046130ce565b60076020526000908152604090205460ff1681565b34801561062757600080fd5b506103996114a8565b34801561063c57600080fd5b5061039961064b366004612f28565b6114e1565b34801561065c57600080fd5b5061046e61066b3660046130ce565b6115f5565b34801561067c57600080fd5b506103d1600d5481565b34801561069257600080fd5b506103d1600b5481565b3480156106a857600080fd5b506103996106b736600461312c565b611603565b3480156106c857600080fd5b5060155461046e90600160b81b900460ff1681565b3480156106e957600080fd5b506013546106fd906001600160a01b031681565b6040516001600160a01b0390911681526020016103db565b34801561072157600080fd5b506103d16107303660046130ce565b60056020526000908152604090205481565b34801561074e57600080fd5b5061046e61075d366004613002565b611644565b34801561076e57600080fd5b506103d160045481565b34801561078457600080fd5b506103996117ed565b34801561079957600080fd5b5061039961182c565b3480156107ae57600080fd5b506103d160035481565b3480156107c457600080fd5b506000546001600160a01b03166106fd565b3480156107e257600080fd5b5061046e6107f13660046130ce565b60086020526000908152604090205460ff1681565b34801561081257600080fd5b50610421604051806040016040528060058152602001642450414c5360d81b81525081565b34801561084357600080fd5b506103d1600a5481565b34801561085957600080fd5b50610399610868366004612fd4565b6119b2565b34801561087957600080fd5b50610399610888366004613158565b611ae0565b34801561089957600080fd5b506103d1600c5481565b3480156108af57600080fd5b506106fd7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108e357600080fd5b5061046e6108f2366004613002565b611c51565b34801561090357600080fd5b5060155461046e90600160b01b900460ff1681565b34801561092457600080fd5b506103996109333660046130ce565b611c5e565b34801561094457600080fd5b50610399610953366004612fd4565b611cce565b34801561096457600080fd5b5061046e6109733660046130ce565b60096020526000908152604090205460ff1681565b34801561099457600080fd5b506014546106fd906001600160a01b031681565b3480156109b457600080fd5b506103d16109c3366004613158565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156109fa57600080fd5b50610399610a09366004613191565b611dc2565b348015610a1a57600080fd5b506012546106fd906001600160a01b031681565b348015610a3a57600080fd5b50610399610a4936600461312c565b611eb3565b348015610a5a57600080fd5b50610399610a693660046130ce565b611f19565b348015610a7a57600080fd5b50610399610a893660046130ce565b611fdf565b348015610a9a57600080fd5b506015546106fd906001600160a01b031681565b348015610aba57600080fd5b5061046e610ac93660046130ce565b6120ff565b348015610ada57600080fd5b5060155461046e90600160a01b900460ff1681565b610af8336120ff565b610b1d5760405162461bcd60e51b8152600401610b14906131af565b60405180910390fd5b6101f58210610b3e5760405162461bcd60e51b8152600401610b14906131d4565b60005b82811015610c0c578160096000868685818110610b6057610b60613219565b9050602002016020810190610b7591906130ce565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f566c2270277919680152b0734389ae919d95ff7e9024c03fc3c7c209ec8412c7848483818110610bd057610bd0613219565b9050602002016020810190610be591906130ce565b83604051610bf492919061322f565b60405180910390a1610c0581613260565b9050610b41565b50505050565b610c1b336120ff565b610c375760405162461bcd60e51b8152600401610b14906131af565b6101f58210610c585760405162461bcd60e51b8152600401610b14906131d4565b60005b82811015610c0c578160076000868685818110610c7a57610c7a613219565b9050602002016020810190610c8f91906130ce565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f9fbd25f95d342f2efc070b56d2fadd2341d264ef8c915dc268609b2ca1bb25de848483818110610cea57610cea613219565b9050602002016020810190610cff91906130ce565b83604051610d0e92919061322f565b60405180910390a1610d1f81613260565b9050610c5b565b6000546001600160a01b03163314610d505760405162461bcd60e51b8152600401610b1490613279565b6001811015610dad5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e312560e01b6064820152608401610b14565b6103e881610dbd6008600a61337d565b610dcb90633b9aca0061338c565b610dd5919061338c565b610ddf91906133ab565b60048190556040519081527fa69fa556bf940aa0c695b9c8e1b229fdb1476830e2025e44da1028e0c1458d4a906020015b60405180910390a150565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e769086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610eb25760405162461bcd60e51b8152600401610b1490613279565b80610f2157601554600160b01b900460ff16610f215760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f742073746f702074726164696e67206166746572206c61756e636860448201526720697320646f6e6560c01b6064820152608401610b14565b6015805460ff60a01b1916600160a01b8315158102919091179182905560405160ff9190920416151581527ff865819dcfd8250cfaa23e1ab7129c1ec65c617bae1e716699dfe07dd7c489ee90602001610e10565b610f826008600a61337d565b610f9090633b9aca0061338c565b81565b610f9c336120ff565b610fb85760405162461bcd60e51b8152600401610b14906131af565b336001600160a01b0386161461103257601554600160b01b900460ff166110325760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420657865637574652074686973206166746572206c61756e636860448201526720697320646f6e6560c01b6064820152608401610b14565b6101f583106110535760405162461bcd60e51b8152600401610b14906131d4565b8281146110b35760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e206164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610b14565b6000805b848110156110f7578383828181106110d1576110d1613219565b90506020020135826110e391906133cd565b9150806110ef81613260565b9150506110b7565b506001600160a01b0386166000908152600560205260409020548111156111605760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610b14565b60005b848110156111c7576111b48787878481811061118157611181613219565b905060200201602081019061119691906130ce565b8686858181106111a8576111a8613219565b9050602002013561211d565b50806111bf81613260565b915050611163565b50505050505050565b6000546001600160a01b031633146111fa5760405162461bcd60e51b8152600401610b1490613279565b606581106112355760405162461bcd60e51b81526020600482015260086024820152674d6178203130302560c01b6044820152606401610b14565b4760006064611244848461338c565b61124e91906133ab565b604051909150339082156108fc029083906000818181858888f1935050505015801561127e573d6000803e3d6000fd5b506040518181527f377153983e64f72f80af47182763316780b9133be808b7082a16710202b8fbda9060200160405180910390a1505050565b6014546001600160a01b031633146113115760405162461bcd60e51b815260206004820152601a60248201527f43616e206f6e6c79206265206368616e676564206279206465760000000000006044820152606401610b14565b601480546001600160a01b0319166001600160a01b0383169081179091556040519081527f5aee26a9aac813cb2437bcac61c8a1e9e01771705699f5cf4dbc1e74cfbe5ca590602001610e10565b6001600160a01b03831660009081526006602090815260408083203384529091528120546000191461140c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526006825283812033825290915291909120546113e7918490612203565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b61141784848461223d565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba549091906114816008600a61337d565b61148f90633b9aca0061338c565b61149991906133e5565b6114a391906133e5565b905090565b6000546001600160a01b031633146114d25760405162461bcd60e51b8152600401610b1490613279565b6015805460ff60a81b19169055565b6114ea336120ff565b6115065760405162461bcd60e51b8152600401610b14906131af565b6101f582106115275760405162461bcd60e51b8152600401610b14906131d4565b60005b82811015610c0c57816008600086868581811061154957611549613219565b905060200201602081019061155e91906130ce565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f3c4f06d74861dea6c152189f2ac8853b6f789feb0e1182101b7ad9d1858f70e38484838181106115b9576115b9613219565b90506020020160208101906115ce91906130ce565b836040516115dd92919061322f565b60405180910390a16115ee81613260565b905061152a565b6000610e8282600019610e1b565b61160c336120ff565b6116285760405162461bcd60e51b8152600401610b14906131af565b600f8290556010839055601181905561163f6125fa565b505050565b600080546001600160a01b0316331461166f5760405162461bcd60e51b8152600401610b1490613279565b306001600160a01b038416036116c75760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f74207769746864726177206e617469766520746f6b656e000000006044820152606401610b14565b8160000361173a576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611713573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173791906133fc565b91505b604080516001600160a01b0385168152602081018490527f960427a4fde284dcc8da2c51a43d210cfd7ed6f4328a24ba33eee49910db564b910160405180910390a160405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156117c9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141a9190613415565b6000546001600160a01b031633146118175760405162461bcd60e51b8152600401610b1490613279565b6015805460ff60a81b1916600160a81b179055565b6001546001600160a01b031633146118bd5760405162461bcd60e51b815260206004820152604860248201527f596f75206d757374206265206e6f6d696e6174656420617320706f74656e746960448201527f616c206f776e6572206265666f726520796f752063616e2061636365707420746064820152673432903937b6329760c11b608482015260a401610b14565b600080546001600160a01b03908116825260026020526040808320805460ff1990811690915560018054841685528285208054909216179055825490516000805160206134d2833981519152936119199392909216919061322f565b60405180910390a1600180546040516000805160206134d28339815191529261194b926001600160a01b03169161322f565b60405180910390a160018054600080546001600160a01b0383166001600160a01b031991821681179092559091169091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163906020015b60405180910390a1565b6000546001600160a01b031633146119dc5760405162461bcd60e51b8152600401610b1490613279565b8063365aabe714611a225760405162461bcd60e51b815260206004820152601060248201526f4163636964656e74616c20507265737360801b6044820152606401610b14565b601554600160a01b900460ff16611a935760405162461bcd60e51b815260206004820152602f60248201527f43616e7420636c6f7365206c61756e6368206d6f6465207768656e207472616460448201526e1a5b99c81a5cc8191a5cd8589b1959608a1b6064820152608401610b14565b6015805460ff60b01b1916908190556040517f4b4d10c084e3fa6291b99e9e41e22eadfb3b01ca4bb86ae8d7b9fefe1498f52f91610e1091600160b01b90910460ff161515815260200190565b6000546001600160a01b03163314611b0a5760405162461bcd60e51b8152600401610b1490613279565b6001600160a01b038216611b755760405162461bcd60e51b815260206004820152602c60248201527f4d61726b6574696e672066656520616464726573732063616e6e6f742062652060448201526b7a65726f206164647265737360a01b6064820152608401610b14565b6001600160a01b038116611be25760405162461bcd60e51b815260206004820152602e60248201527f446576656c6f706d656e742066656520616464726573732063616e6e6f74206260448201526d65207a65726f206164647265737360901b6064820152608401610b14565b601280546001600160a01b038481166001600160a01b03199283168117909355601380549185169190921681179091556040805192835260208301919091527ff3b718cd51f62e3836535bffd8f429a3f80d9d4442d89b72beee94069ed1fa3891015b60405180910390a15050565b600061141a33848461223d565b6000546001600160a01b03163314611c885760405162461bcd60e51b8152600401610b1490613279565b6001600160a01b03811660009081526002602052604090819020805460ff1916600190811790915590516000805160206134d283398151915291610e109184919061322f565b6000546001600160a01b03163314611cf85760405162461bcd60e51b8152600401610b1490613279565b6001811015611d5b5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e312560b81b6064820152608401610b14565b6103e881611d6b6008600a61337d565b611d7990633b9aca0061338c565b611d83919061338c565b611d8d91906133ab565b60038190556040519081527f365a2bb07537fddd750e9ac8d56970e584f83a144bb5225e77491b83bccd118390602001610e10565b6000546001600160a01b03163314611dec5760405162461bcd60e51b8152600401610b1490613279565b600a611df960088261337d565b611e0790633b9aca0061338c565b611e1191906133ab565b8110611e515760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b6044820152606401610b14565b6015805460ff60b81b1916600160b81b8415158102919091179182905560168390556040805184815260ff9290930491909116151560208301527f34c2d4c263b6f41223c6d30ae2e7bcb18629892587e0a4138f57ba2c523953d09101611c45565b6000546001600160a01b03163314611edd5760405162461bcd60e51b8152600401610b1490613279565b600a839055600b829055600c819055600d5481611efa84866133cd565b611f0491906133cd565b611f0e91906133cd565b600e5561163f6125fa565b6000546001600160a01b03163314611f435760405162461bcd60e51b8152600401610b1490613279565b6000546001600160a01b0390811690821603611fa15760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610b14565b6001600160a01b038116600090815260026020526040808220805460ff19169055516000805160206134d283398151915291610e109184919061322f565b6000546001600160a01b031633146120095760405162461bcd60e51b8152600401610b1490613279565b6000546001600160a01b039081169082160361205b5760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903a34329037bbb732b960791b6044820152606401610b14565b6001600160a01b0381166120b15760405162461bcd60e51b815260206004820152601860248201527f43616e206e6f74206265207a65726f20616464726573732e00000000000000006044820152606401610b14565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fe235b3289f2e990914b334bf6827949c27f6ba58d3e5a1d6f8415037ca1ef22290602001610e10565b6001600160a01b031660009081526002602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461216e918490612203565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461219d90836127e9565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121f19086815260200190565b60405180910390a35060019392505050565b600081848411156122275760405162461bcd60e51b8152600401610b149190612f7f565b50600061223484866133e5565b95945050505050565b60175460009060ff161561225d5761225684848461211d565b905061141a565b6001600160a01b03841660009081526002602052604090205460ff1615801561229f57506001600160a01b03831660009081526002602052604090205460ff16155b156122f457601554600160a01b900460ff166122f45760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610b14565b6001600160a01b03841660009081526002602052604090205460ff1615801561233657506001600160a01b03841660009081526009602052604090205460ff16155b801561235b57506001600160a01b03831660009081526009602052604090205460ff16155b801561239957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15612413576004546001600160a01b0384166000908152600560205260409020546123c59084906133cd565b11156124135760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610b14565b6003548211158061243c57506001600160a01b03841660009081526008602052604090205460ff165b8061245f57506001600160a01b03831660009081526008602052604090205460ff165b6124a35760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610b14565b6124ab612848565b156124b8576124b86128bb565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526005909152919091205461250a918490612203565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff168061255757506001600160a01b03841660009081526007602052604090205460ff165b61256b57612566858486612c3e565b61256d565b825b6001600160a01b03851660009081526005602052604090205490915061259390826127e9565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906125e79085815260200190565b60405180910390a3506001949350505050565b60c861261e6064612618601054600e54612d9790919063ffffffff16565b90612e19565b111561266c5760405162461bcd60e51b815260206004820152601f60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e20323025006044820152606401610b14565b60c861268a6064612618600f54600e54612d9790919063ffffffff16565b11156126d85760405162461bcd60e51b815260206004820181905260248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203230256044820152606401610b14565b60646126f66064612618601154600e54612d9790919063ffffffff16565b11156127505760405162461bcd60e51b8152602060048201526024808201527f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e6044820152632031302560e01b6064820152608401610b14565b7f375884ed7f92283ee74d8884b39a803f4aee832b15766fe016b74fc791fc2ada61278d6064612618601054600e54612d9790919063ffffffff16565b6127a96064612618600f54600e54612d9790919063ffffffff16565b6127c56064612618601154600e54612d9790919063ffffffff16565b6040805160ff948516815292841660208401529216918101919091526060016119a8565b6000806127f683856133cd565b90508381101561141a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b14565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590612886575060175460ff16155b801561289b5750601554600160b81b900460ff165b80156114a357505060165430600090815260056020526040902054101590565b6017805460ff19166001179055600e5460006128d882600261338c565b600a546016546128e8919061338c565b6128f291906133ab565b905060008160165461290491906133e5565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061293e5761293e613219565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061299257612992613219565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b815291169063791ac947906129d8908590600090869030904290600401613432565b600060405180830381600087803b1580156129f257600080fd5b505af1158015612a06573d6000803e3d6000fd5b5050600a54479250612a1b91506002906133ab565b612a2590866133e5565b94506000612a3486600261338c565b600a54612a41908461338c565b612a4b91906133ab565b9050600086600b5484612a5e919061338c565b612a6891906133ab565b9050600087600c5485612a7b919061338c565b612a8591906133ab565b9050600088600d5486612a98919061338c565b612aa291906133ab565b6012546040519192506001600160a01b03169084156108fc029085906000818181858888f19350505050158015612add573d6000803e3d6000fd5b506013546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612b18573d6000803e3d6000fd5b506014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612b53573d6000803e3d6000fd5b508715612c295760155460405163f305d71960e01b81523060048201819052602482018b9052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990869060c40160606040518083038185885af1158015612bc7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612bec91906134a3565b505060408051868152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805460ff1916905550505050505050565b6000821580612c4d5750600e54155b15612c5957508161141a565b6011546001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690841603612c985750600f54612cd6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603612cd657506010545b6000612d07612ce86103e8606461338c565b61261884612d01600e548a612d9790919063ffffffff16565b90612d97565b90508015612d835730600090815260056020526040902054612d2990826127e9565b30600081815260056020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612d7a9085815260200190565b60405180910390a35b612d8d8582612e5b565b9695505050505050565b600082600003612da957506000610e82565b6000612db5838561338c565b905082612dc285836133ab565b1461141a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b14565b600061141a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e9d565b600061141a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612203565b60008183612ebe5760405162461bcd60e51b8152600401610b149190612f7f565b50600061223484866133ab565b60008083601f840112612edd57600080fd5b50813567ffffffffffffffff811115612ef557600080fd5b6020830191508360208260051b8501011115612f1057600080fd5b9250929050565b8015158114612f2557600080fd5b50565b600080600060408486031215612f3d57600080fd5b833567ffffffffffffffff811115612f5457600080fd5b612f6086828701612ecb565b9094509250506020840135612f7481612f17565b809150509250925092565b600060208083528351808285015260005b81811015612fac57858101830151858201604001528201612f90565b81811115612fbe576000604083870101525b50601f01601f1916929092016040019392505050565b600060208284031215612fe657600080fd5b5035919050565b6001600160a01b0381168114612f2557600080fd5b6000806040838503121561301557600080fd5b823561302081612fed565b946020939093013593505050565b60006020828403121561304057600080fd5b813561141a81612f17565b60008060008060006060868803121561306357600080fd5b853561306e81612fed565b9450602086013567ffffffffffffffff8082111561308b57600080fd5b61309789838a01612ecb565b909650945060408801359150808211156130b057600080fd5b506130bd88828901612ecb565b969995985093965092949392505050565b6000602082840312156130e057600080fd5b813561141a81612fed565b60008060006060848603121561310057600080fd5b833561310b81612fed565b9250602084013561311b81612fed565b929592945050506040919091013590565b60008060006060848603121561314157600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561316b57600080fd5b823561317681612fed565b9150602083013561318681612fed565b809150509250929050565b600080604083850312156131a457600080fd5b823561302081612f17565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b039290921682521515602082015260400190565b634e487b7160e01b600052601160045260246000fd5b6000600182016132725761327261324a565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b808511156132d45781600019048211156132ba576132ba61324a565b808516156132c757918102915b93841c939080029061329e565b509250929050565b6000826132eb57506001610e82565b816132f857506000610e82565b816001811461330e576002811461331857613334565b6001915050610e82565b60ff8411156133295761332961324a565b50506001821b610e82565b5060208310610133831016604e8410600b8410161715613357575081810a610e82565b6133618383613299565b80600019048211156133755761337561324a565b029392505050565b600061141a60ff8416836132dc565b60008160001904831182151516156133a6576133a661324a565b500290565b6000826133c857634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156133e0576133e061324a565b500190565b6000828210156133f7576133f761324a565b500390565b60006020828403121561340e57600080fd5b5051919050565b60006020828403121561342757600080fd5b815161141a81612f17565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156134825784516001600160a01b03168352938301939183019160010161345d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156134b857600080fd5b835192506020840151915060408401519050925092509256feb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b9505a26469706673582212204423bfa2e1cf98349362c486b4595c75d56cbdfdea7f2e8032152cd145522dce64736f6c634300080e0033

Deployed Bytecode

0x60806040526004361061036d5760003560e01c806377b54bad116101c6578063b37dd690116100f7578063e96fada211610095578063f2fde38b1161006f578063f2fde38b14610a6e578063f887ea4014610a8e578063fe9fbb8014610aae578063ffb54a9914610ace57600080fd5b8063e96fada214610a0e578063eddb6b8414610a2e578063f0b37c0414610a4e57600080fd5b8063c867d60b116100d1578063c867d60b14610958578063dab84ee714610988578063dd62ed3e146109a8578063df20fd49146109ee57600080fd5b8063b37dd690146108f7578063b6a5d7de14610918578063bd9ab5371461093857600080fd5b806395d89b4111610164578063a4b45c001161013e578063a4b45c001461086d578063a5f3d0031461088d578063a8aa1b31146108a3578063a9059cbb146108d757600080fd5b806395d89b411461080657806398118cb4146108375780639cd1aef11461084d57600080fd5b806379ba5097116101a057806379ba50971461078d5780637d1db4a5146107a2578063893d20e8146107b85780638b42507f146107d657600080fd5b806377b54bad1461074257806378109e541461076257806379b5afec1461077857600080fd5b80632b112e49116102a0578063571ac8b01161023e5780636ce46bc3116102185780636ce46bc31461069c5780636ddd1713146106bc5780636ec518b8146106dd57806370a082311461071557600080fd5b8063571ac8b0146106505780636827e764146106705780636b67c4df1461068657600080fd5b8063313ce5671161027a578063313ce567146105c45780633f4218e0146105eb5780634bc2ee301461061b5780634be9d8691461063057600080fd5b80632b112e491461055f5780632f54bf6e14610574578063305c4c80146105a357600080fd5b8063180b0d7e1161030d5780631da1db5e116102e75780631da1db5e146104e95780631df4ccfc146105095780631e863ae91461051f57806323b872dd1461053f57600080fd5b8063180b0d7e1461049e57806318160ddd146104b45780631ca0a28d146104c957600080fd5b806306fdde031161034957806306fdde03146103e457806309302dc61461042e578063095ea7b31461044e5780630d2959801461047e57600080fd5b806210868314610379578062bff4461461039b5780630445b667146103bb57600080fd5b3661037457005b600080fd5b34801561038557600080fd5b50610399610394366004612f28565b610aef565b005b3480156103a757600080fd5b506103996103b6366004612f28565b610c12565b3480156103c757600080fd5b506103d160165481565b6040519081526020015b60405180910390f35b3480156103f057600080fd5b5061042160405180604001604052806011815260200170466c6f6b694d617276696e202450616c7360781b81525081565b6040516103db9190612f7f565b34801561043a57600080fd5b50610399610449366004612fd4565b610d26565b34801561045a57600080fd5b5061046e610469366004613002565b610e1b565b60405190151581526020016103db565b34801561048a57600080fd5b5061039961049936600461302e565b610e88565b3480156104aa57600080fd5b506103d16103e881565b3480156104c057600080fd5b506103d1610f76565b3480156104d557600080fd5b506103996104e436600461304b565b610f93565b3480156104f557600080fd5b50610399610504366004612fd4565b6111d0565b34801561051557600080fd5b506103d1600e5481565b34801561052b57600080fd5b5061039961053a3660046130ce565b6112b7565b34801561054b57600080fd5b5061046e61055a3660046130eb565b61135f565b34801561056b57600080fd5b506103d1611421565b34801561058057600080fd5b5061046e61058f3660046130ce565b6000546001600160a01b0391821691161490565b3480156105af57600080fd5b5060155461046e90600160a81b900460ff1681565b3480156105d057600080fd5b506105d9600881565b60405160ff90911681526020016103db565b3480156105f757600080fd5b5061046e6106063660046130ce565b60076020526000908152604090205460ff1681565b34801561062757600080fd5b506103996114a8565b34801561063c57600080fd5b5061039961064b366004612f28565b6114e1565b34801561065c57600080fd5b5061046e61066b3660046130ce565b6115f5565b34801561067c57600080fd5b506103d1600d5481565b34801561069257600080fd5b506103d1600b5481565b3480156106a857600080fd5b506103996106b736600461312c565b611603565b3480156106c857600080fd5b5060155461046e90600160b81b900460ff1681565b3480156106e957600080fd5b506013546106fd906001600160a01b031681565b6040516001600160a01b0390911681526020016103db565b34801561072157600080fd5b506103d16107303660046130ce565b60056020526000908152604090205481565b34801561074e57600080fd5b5061046e61075d366004613002565b611644565b34801561076e57600080fd5b506103d160045481565b34801561078457600080fd5b506103996117ed565b34801561079957600080fd5b5061039961182c565b3480156107ae57600080fd5b506103d160035481565b3480156107c457600080fd5b506000546001600160a01b03166106fd565b3480156107e257600080fd5b5061046e6107f13660046130ce565b60086020526000908152604090205460ff1681565b34801561081257600080fd5b50610421604051806040016040528060058152602001642450414c5360d81b81525081565b34801561084357600080fd5b506103d1600a5481565b34801561085957600080fd5b50610399610868366004612fd4565b6119b2565b34801561087957600080fd5b50610399610888366004613158565b611ae0565b34801561089957600080fd5b506103d1600c5481565b3480156108af57600080fd5b506106fd7f000000000000000000000000a151105d5bc0edf35f6a64d88e5cb2a334ef9e2e81565b3480156108e357600080fd5b5061046e6108f2366004613002565b611c51565b34801561090357600080fd5b5060155461046e90600160b01b900460ff1681565b34801561092457600080fd5b506103996109333660046130ce565b611c5e565b34801561094457600080fd5b50610399610953366004612fd4565b611cce565b34801561096457600080fd5b5061046e6109733660046130ce565b60096020526000908152604090205460ff1681565b34801561099457600080fd5b506014546106fd906001600160a01b031681565b3480156109b457600080fd5b506103d16109c3366004613158565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156109fa57600080fd5b50610399610a09366004613191565b611dc2565b348015610a1a57600080fd5b506012546106fd906001600160a01b031681565b348015610a3a57600080fd5b50610399610a4936600461312c565b611eb3565b348015610a5a57600080fd5b50610399610a693660046130ce565b611f19565b348015610a7a57600080fd5b50610399610a893660046130ce565b611fdf565b348015610a9a57600080fd5b506015546106fd906001600160a01b031681565b348015610aba57600080fd5b5061046e610ac93660046130ce565b6120ff565b348015610ada57600080fd5b5060155461046e90600160a01b900460ff1681565b610af8336120ff565b610b1d5760405162461bcd60e51b8152600401610b14906131af565b60405180910390fd5b6101f58210610b3e5760405162461bcd60e51b8152600401610b14906131d4565b60005b82811015610c0c578160096000868685818110610b6057610b60613219565b9050602002016020810190610b7591906130ce565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f566c2270277919680152b0734389ae919d95ff7e9024c03fc3c7c209ec8412c7848483818110610bd057610bd0613219565b9050602002016020810190610be591906130ce565b83604051610bf492919061322f565b60405180910390a1610c0581613260565b9050610b41565b50505050565b610c1b336120ff565b610c375760405162461bcd60e51b8152600401610b14906131af565b6101f58210610c585760405162461bcd60e51b8152600401610b14906131d4565b60005b82811015610c0c578160076000868685818110610c7a57610c7a613219565b9050602002016020810190610c8f91906130ce565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f9fbd25f95d342f2efc070b56d2fadd2341d264ef8c915dc268609b2ca1bb25de848483818110610cea57610cea613219565b9050602002016020810190610cff91906130ce565b83604051610d0e92919061322f565b60405180910390a1610d1f81613260565b9050610c5b565b6000546001600160a01b03163314610d505760405162461bcd60e51b8152600401610b1490613279565b6001811015610dad5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e312560e01b6064820152608401610b14565b6103e881610dbd6008600a61337d565b610dcb90633b9aca0061338c565b610dd5919061338c565b610ddf91906133ab565b60048190556040519081527fa69fa556bf940aa0c695b9c8e1b229fdb1476830e2025e44da1028e0c1458d4a906020015b60405180910390a150565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e769086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610eb25760405162461bcd60e51b8152600401610b1490613279565b80610f2157601554600160b01b900460ff16610f215760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f742073746f702074726164696e67206166746572206c61756e636860448201526720697320646f6e6560c01b6064820152608401610b14565b6015805460ff60a01b1916600160a01b8315158102919091179182905560405160ff9190920416151581527ff865819dcfd8250cfaa23e1ab7129c1ec65c617bae1e716699dfe07dd7c489ee90602001610e10565b610f826008600a61337d565b610f9090633b9aca0061338c565b81565b610f9c336120ff565b610fb85760405162461bcd60e51b8152600401610b14906131af565b336001600160a01b0386161461103257601554600160b01b900460ff166110325760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420657865637574652074686973206166746572206c61756e636860448201526720697320646f6e6560c01b6064820152608401610b14565b6101f583106110535760405162461bcd60e51b8152600401610b14906131d4565b8281146110b35760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e206164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610b14565b6000805b848110156110f7578383828181106110d1576110d1613219565b90506020020135826110e391906133cd565b9150806110ef81613260565b9150506110b7565b506001600160a01b0386166000908152600560205260409020548111156111605760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610b14565b60005b848110156111c7576111b48787878481811061118157611181613219565b905060200201602081019061119691906130ce565b8686858181106111a8576111a8613219565b9050602002013561211d565b50806111bf81613260565b915050611163565b50505050505050565b6000546001600160a01b031633146111fa5760405162461bcd60e51b8152600401610b1490613279565b606581106112355760405162461bcd60e51b81526020600482015260086024820152674d6178203130302560c01b6044820152606401610b14565b4760006064611244848461338c565b61124e91906133ab565b604051909150339082156108fc029083906000818181858888f1935050505015801561127e573d6000803e3d6000fd5b506040518181527f377153983e64f72f80af47182763316780b9133be808b7082a16710202b8fbda9060200160405180910390a1505050565b6014546001600160a01b031633146113115760405162461bcd60e51b815260206004820152601a60248201527f43616e206f6e6c79206265206368616e676564206279206465760000000000006044820152606401610b14565b601480546001600160a01b0319166001600160a01b0383169081179091556040519081527f5aee26a9aac813cb2437bcac61c8a1e9e01771705699f5cf4dbc1e74cfbe5ca590602001610e10565b6001600160a01b03831660009081526006602090815260408083203384529091528120546000191461140c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526006825283812033825290915291909120546113e7918490612203565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b61141784848461223d565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba549091906114816008600a61337d565b61148f90633b9aca0061338c565b61149991906133e5565b6114a391906133e5565b905090565b6000546001600160a01b031633146114d25760405162461bcd60e51b8152600401610b1490613279565b6015805460ff60a81b19169055565b6114ea336120ff565b6115065760405162461bcd60e51b8152600401610b14906131af565b6101f582106115275760405162461bcd60e51b8152600401610b14906131d4565b60005b82811015610c0c57816008600086868581811061154957611549613219565b905060200201602081019061155e91906130ce565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f3c4f06d74861dea6c152189f2ac8853b6f789feb0e1182101b7ad9d1858f70e38484838181106115b9576115b9613219565b90506020020160208101906115ce91906130ce565b836040516115dd92919061322f565b60405180910390a16115ee81613260565b905061152a565b6000610e8282600019610e1b565b61160c336120ff565b6116285760405162461bcd60e51b8152600401610b14906131af565b600f8290556010839055601181905561163f6125fa565b505050565b600080546001600160a01b0316331461166f5760405162461bcd60e51b8152600401610b1490613279565b306001600160a01b038416036116c75760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f74207769746864726177206e617469766520746f6b656e000000006044820152606401610b14565b8160000361173a576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611713573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173791906133fc565b91505b604080516001600160a01b0385168152602081018490527f960427a4fde284dcc8da2c51a43d210cfd7ed6f4328a24ba33eee49910db564b910160405180910390a160405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156117c9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141a9190613415565b6000546001600160a01b031633146118175760405162461bcd60e51b8152600401610b1490613279565b6015805460ff60a81b1916600160a81b179055565b6001546001600160a01b031633146118bd5760405162461bcd60e51b815260206004820152604860248201527f596f75206d757374206265206e6f6d696e6174656420617320706f74656e746960448201527f616c206f776e6572206265666f726520796f752063616e2061636365707420746064820152673432903937b6329760c11b608482015260a401610b14565b600080546001600160a01b03908116825260026020526040808320805460ff1990811690915560018054841685528285208054909216179055825490516000805160206134d2833981519152936119199392909216919061322f565b60405180910390a1600180546040516000805160206134d28339815191529261194b926001600160a01b03169161322f565b60405180910390a160018054600080546001600160a01b0383166001600160a01b031991821681179092559091169091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163906020015b60405180910390a1565b6000546001600160a01b031633146119dc5760405162461bcd60e51b8152600401610b1490613279565b8063365aabe714611a225760405162461bcd60e51b815260206004820152601060248201526f4163636964656e74616c20507265737360801b6044820152606401610b14565b601554600160a01b900460ff16611a935760405162461bcd60e51b815260206004820152602f60248201527f43616e7420636c6f7365206c61756e6368206d6f6465207768656e207472616460448201526e1a5b99c81a5cc8191a5cd8589b1959608a1b6064820152608401610b14565b6015805460ff60b01b1916908190556040517f4b4d10c084e3fa6291b99e9e41e22eadfb3b01ca4bb86ae8d7b9fefe1498f52f91610e1091600160b01b90910460ff161515815260200190565b6000546001600160a01b03163314611b0a5760405162461bcd60e51b8152600401610b1490613279565b6001600160a01b038216611b755760405162461bcd60e51b815260206004820152602c60248201527f4d61726b6574696e672066656520616464726573732063616e6e6f742062652060448201526b7a65726f206164647265737360a01b6064820152608401610b14565b6001600160a01b038116611be25760405162461bcd60e51b815260206004820152602e60248201527f446576656c6f706d656e742066656520616464726573732063616e6e6f74206260448201526d65207a65726f206164647265737360901b6064820152608401610b14565b601280546001600160a01b038481166001600160a01b03199283168117909355601380549185169190921681179091556040805192835260208301919091527ff3b718cd51f62e3836535bffd8f429a3f80d9d4442d89b72beee94069ed1fa3891015b60405180910390a15050565b600061141a33848461223d565b6000546001600160a01b03163314611c885760405162461bcd60e51b8152600401610b1490613279565b6001600160a01b03811660009081526002602052604090819020805460ff1916600190811790915590516000805160206134d283398151915291610e109184919061322f565b6000546001600160a01b03163314611cf85760405162461bcd60e51b8152600401610b1490613279565b6001811015611d5b5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e312560b81b6064820152608401610b14565b6103e881611d6b6008600a61337d565b611d7990633b9aca0061338c565b611d83919061338c565b611d8d91906133ab565b60038190556040519081527f365a2bb07537fddd750e9ac8d56970e584f83a144bb5225e77491b83bccd118390602001610e10565b6000546001600160a01b03163314611dec5760405162461bcd60e51b8152600401610b1490613279565b600a611df960088261337d565b611e0790633b9aca0061338c565b611e1191906133ab565b8110611e515760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b6044820152606401610b14565b6015805460ff60b81b1916600160b81b8415158102919091179182905560168390556040805184815260ff9290930491909116151560208301527f34c2d4c263b6f41223c6d30ae2e7bcb18629892587e0a4138f57ba2c523953d09101611c45565b6000546001600160a01b03163314611edd5760405162461bcd60e51b8152600401610b1490613279565b600a839055600b829055600c819055600d5481611efa84866133cd565b611f0491906133cd565b611f0e91906133cd565b600e5561163f6125fa565b6000546001600160a01b03163314611f435760405162461bcd60e51b8152600401610b1490613279565b6000546001600160a01b0390811690821603611fa15760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610b14565b6001600160a01b038116600090815260026020526040808220805460ff19169055516000805160206134d283398151915291610e109184919061322f565b6000546001600160a01b031633146120095760405162461bcd60e51b8152600401610b1490613279565b6000546001600160a01b039081169082160361205b5760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903a34329037bbb732b960791b6044820152606401610b14565b6001600160a01b0381166120b15760405162461bcd60e51b815260206004820152601860248201527f43616e206e6f74206265207a65726f20616464726573732e00000000000000006044820152606401610b14565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fe235b3289f2e990914b334bf6827949c27f6ba58d3e5a1d6f8415037ca1ef22290602001610e10565b6001600160a01b031660009081526002602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461216e918490612203565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461219d90836127e9565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121f19086815260200190565b60405180910390a35060019392505050565b600081848411156122275760405162461bcd60e51b8152600401610b149190612f7f565b50600061223484866133e5565b95945050505050565b60175460009060ff161561225d5761225684848461211d565b905061141a565b6001600160a01b03841660009081526002602052604090205460ff1615801561229f57506001600160a01b03831660009081526002602052604090205460ff16155b156122f457601554600160a01b900460ff166122f45760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610b14565b6001600160a01b03841660009081526002602052604090205460ff1615801561233657506001600160a01b03841660009081526009602052604090205460ff16155b801561235b57506001600160a01b03831660009081526009602052604090205460ff16155b801561239957507f000000000000000000000000a151105d5bc0edf35f6a64d88e5cb2a334ef9e2e6001600160a01b0316836001600160a01b031614155b15612413576004546001600160a01b0384166000908152600560205260409020546123c59084906133cd565b11156124135760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610b14565b6003548211158061243c57506001600160a01b03841660009081526008602052604090205460ff165b8061245f57506001600160a01b03831660009081526008602052604090205460ff165b6124a35760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610b14565b6124ab612848565b156124b8576124b86128bb565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526005909152919091205461250a918490612203565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff168061255757506001600160a01b03841660009081526007602052604090205460ff165b61256b57612566858486612c3e565b61256d565b825b6001600160a01b03851660009081526005602052604090205490915061259390826127e9565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906125e79085815260200190565b60405180910390a3506001949350505050565b60c861261e6064612618601054600e54612d9790919063ffffffff16565b90612e19565b111561266c5760405162461bcd60e51b815260206004820152601f60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e20323025006044820152606401610b14565b60c861268a6064612618600f54600e54612d9790919063ffffffff16565b11156126d85760405162461bcd60e51b815260206004820181905260248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203230256044820152606401610b14565b60646126f66064612618601154600e54612d9790919063ffffffff16565b11156127505760405162461bcd60e51b8152602060048201526024808201527f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e6044820152632031302560e01b6064820152608401610b14565b7f375884ed7f92283ee74d8884b39a803f4aee832b15766fe016b74fc791fc2ada61278d6064612618601054600e54612d9790919063ffffffff16565b6127a96064612618600f54600e54612d9790919063ffffffff16565b6127c56064612618601154600e54612d9790919063ffffffff16565b6040805160ff948516815292841660208401529216918101919091526060016119a8565b6000806127f683856133cd565b90508381101561141a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b14565b6000336001600160a01b037f000000000000000000000000a151105d5bc0edf35f6a64d88e5cb2a334ef9e2e1614801590612886575060175460ff16155b801561289b5750601554600160b81b900460ff165b80156114a357505060165430600090815260056020526040902054101590565b6017805460ff19166001179055600e5460006128d882600261338c565b600a546016546128e8919061338c565b6128f291906133ab565b905060008160165461290491906133e5565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061293e5761293e613219565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061299257612992613219565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b815291169063791ac947906129d8908590600090869030904290600401613432565b600060405180830381600087803b1580156129f257600080fd5b505af1158015612a06573d6000803e3d6000fd5b5050600a54479250612a1b91506002906133ab565b612a2590866133e5565b94506000612a3486600261338c565b600a54612a41908461338c565b612a4b91906133ab565b9050600086600b5484612a5e919061338c565b612a6891906133ab565b9050600087600c5485612a7b919061338c565b612a8591906133ab565b9050600088600d5486612a98919061338c565b612aa291906133ab565b6012546040519192506001600160a01b03169084156108fc029085906000818181858888f19350505050158015612add573d6000803e3d6000fd5b506013546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612b18573d6000803e3d6000fd5b506014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612b53573d6000803e3d6000fd5b508715612c295760155460405163f305d71960e01b81523060048201819052602482018b9052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990869060c40160606040518083038185885af1158015612bc7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612bec91906134a3565b505060408051868152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805460ff1916905550505050505050565b6000821580612c4d5750600e54155b15612c5957508161141a565b6011546001600160a01b037f000000000000000000000000a151105d5bc0edf35f6a64d88e5cb2a334ef9e2e811690841603612c985750600f54612cd6565b7f000000000000000000000000a151105d5bc0edf35f6a64d88e5cb2a334ef9e2e6001600160a01b0316856001600160a01b031603612cd657506010545b6000612d07612ce86103e8606461338c565b61261884612d01600e548a612d9790919063ffffffff16565b90612d97565b90508015612d835730600090815260056020526040902054612d2990826127e9565b30600081815260056020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612d7a9085815260200190565b60405180910390a35b612d8d8582612e5b565b9695505050505050565b600082600003612da957506000610e82565b6000612db5838561338c565b905082612dc285836133ab565b1461141a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b14565b600061141a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e9d565b600061141a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612203565b60008183612ebe5760405162461bcd60e51b8152600401610b149190612f7f565b50600061223484866133ab565b60008083601f840112612edd57600080fd5b50813567ffffffffffffffff811115612ef557600080fd5b6020830191508360208260051b8501011115612f1057600080fd5b9250929050565b8015158114612f2557600080fd5b50565b600080600060408486031215612f3d57600080fd5b833567ffffffffffffffff811115612f5457600080fd5b612f6086828701612ecb565b9094509250506020840135612f7481612f17565b809150509250925092565b600060208083528351808285015260005b81811015612fac57858101830151858201604001528201612f90565b81811115612fbe576000604083870101525b50601f01601f1916929092016040019392505050565b600060208284031215612fe657600080fd5b5035919050565b6001600160a01b0381168114612f2557600080fd5b6000806040838503121561301557600080fd5b823561302081612fed565b946020939093013593505050565b60006020828403121561304057600080fd5b813561141a81612f17565b60008060008060006060868803121561306357600080fd5b853561306e81612fed565b9450602086013567ffffffffffffffff8082111561308b57600080fd5b61309789838a01612ecb565b909650945060408801359150808211156130b057600080fd5b506130bd88828901612ecb565b969995985093965092949392505050565b6000602082840312156130e057600080fd5b813561141a81612fed565b60008060006060848603121561310057600080fd5b833561310b81612fed565b9250602084013561311b81612fed565b929592945050506040919091013590565b60008060006060848603121561314157600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561316b57600080fd5b823561317681612fed565b9150602083013561318681612fed565b809150509250929050565b600080604083850312156131a457600080fd5b823561302081612f17565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b039290921682521515602082015260400190565b634e487b7160e01b600052601160045260246000fd5b6000600182016132725761327261324a565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b808511156132d45781600019048211156132ba576132ba61324a565b808516156132c757918102915b93841c939080029061329e565b509250929050565b6000826132eb57506001610e82565b816132f857506000610e82565b816001811461330e576002811461331857613334565b6001915050610e82565b60ff8411156133295761332961324a565b50506001821b610e82565b5060208310610133831016604e8410600b8410161715613357575081810a610e82565b6133618383613299565b80600019048211156133755761337561324a565b029392505050565b600061141a60ff8416836132dc565b60008160001904831182151516156133a6576133a661324a565b500290565b6000826133c857634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156133e0576133e061324a565b500190565b6000828210156133f7576133f761324a565b500390565b60006020828403121561340e57600080fd5b5051919050565b60006020828403121561342757600080fd5b815161141a81612f17565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156134825784516001600160a01b03168352938301939183019160010161345d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156134b857600080fd5b835192506020840151915060408401519050925092509256feb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b9505a26469706673582212204423bfa2e1cf98349362c486b4595c75d56cbdfdea7f2e8032152cd145522dce64736f6c634300080e0033

Deployed Bytecode Sourcemap

4588:15039:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15427:373;;;;;;;;;;-1:-1:-1;15427:373:0;;;;;:::i;:::-;;:::i;:::-;;14698:353;;;;;;;;;;-1:-1:-1;14698:353:0;;;;;:::i;:::-;;:::i;6206:49::-;;;;;;;;;;;;;;;;;;;1226:25:1;;;1214:2;1199:18;6206:49:0;;;;;;;;4847;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4847:49:0;;;;;;;;;;;;:::i;8504:310::-;;;;;;;;;;-1:-1:-1;8504:310:0;;;;;:::i;:::-;;:::i;7608:216::-;;;;;;;;;;-1:-1:-1;7608:216:0;;;;;:::i;:::-;;:::i;:::-;;;2670:14:1;;2663:22;2645:41;;2633:2;2618:18;7608:216:0;2505:187:1;12376:256:0;;;;;;;;;;-1:-1:-1;12376:256:0;;;;;:::i;:::-;;:::i;5702:45::-;;;;;;;;;;;;5743:4;5702:45;;4992:62;;;;;;;;;;;;;:::i;18187:696::-;;;;;;;;;;-1:-1:-1;18187:696:0;;;;;:::i;:::-;;:::i;11585:356::-;;;;;;;;;;-1:-1:-1;11585:356:0;;;;;:::i;:::-;;:::i;5616:79::-;;;;;;;;;;;;;;;;17503:234;;;;;;;;;;-1:-1:-1;17503:234:0;;;;;:::i;:::-;;:::i;8126:370::-;;;;;;;;;;-1:-1:-1;8126:370:0;;;;;:::i;:::-;;:::i;18044:137::-;;;;;;;;;;;;;:::i;2755:103::-;;;;;;;;;;-1:-1:-1;2755:103:0;;;;;:::i;:::-;2810:4;2845:5;-1:-1:-1;;;;;2834:16:0;;;2845:5;;2834:16;;2755:103;6097:26;;;;;;;;;;-1:-1:-1;6097:26:0;;;;-1:-1:-1;;;6097:26:0;;;;;;4949:34;;;;;;;;;;;;4982:1;4949:34;;;;;4741:4:1;4729:17;;;4711:36;;4699:2;4684:18;4949:34:0;4569:184:1;5296:44:0;;;;;;;;;;-1:-1:-1;5296:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12723:79;;;;;;;;;;;;;:::i;15059:360::-;;;;;;;;;;-1:-1:-1;15059:360:0;;;;;:::i;:::-;;:::i;7832:122::-;;;;;;;;;;-1:-1:-1;7832:122:0;;;;;:::i;:::-;;:::i;5581:26::-;;;;;;;;;;;;;;;;5501:32;;;;;;;;;;;;;;;;16371:225;;;;;;;;;;-1:-1:-1;16371:225:0;;;;;:::i;:::-;;:::i;6168:31::-;;;;;;;;;;-1:-1:-1;6168:31:0;;;;-1:-1:-1;;;6168:31:0;;;;;;5908:37;;;;;;;;;;-1:-1:-1;5908:37:0;;;;-1:-1:-1;;;;;5908:37:0;;;;;;-1:-1:-1;;;;;5243:32:1;;;5225:51;;5213:2;5198:18;5908:37:0;5079:203:1;5174:45:0;;;;;;;;;;-1:-1:-1;5174:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;11949:419;;;;;;;;;;-1:-1:-1;11949:419:0;;;;;:::i;:::-;;:::i;5116:49::-;;;;;;;;;;;;;;;;12640:77;;;;;;;;;;;;;:::i;3252:472::-;;;;;;;;;;;;;:::i;5063:46::-;;;;;;;;;;;;;;;;7383:78;;;;;;;;;;-1:-1:-1;7435:7:0;7453:5;-1:-1:-1;;;;;7453:5:0;7383:78;;5347:48;;;;;;;;;;-1:-1:-1;5347:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4903:39;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4903:39:0;;;;;5463:31;;;;;;;;;;;;;;;;12810:309;;;;;;;;;;-1:-1:-1;12810:309:0;;;;;:::i;:::-;;:::i;16980:515::-;;;;;;;;;;-1:-1:-1;16980:515:0;;;;;:::i;:::-;;:::i;5540:34::-;;;;;;;;;;;;;;;;6021:29;;;;;;;;;;;;;;;7962:156;;;;;;;;;;-1:-1:-1;7962:156:0;;;;;:::i;:::-;;:::i;6130:29::-;;;;;;;;;;-1:-1:-1;6130:29:0;;;;-1:-1:-1;;;6130:29:0;;;;;;2397:138;;;;;;;;;;-1:-1:-1;2397:138:0;;;;;:::i;:::-;;:::i;8820:313::-;;;;;;;;;;-1:-1:-1;8820:313:0;;;;;:::i;:::-;;:::i;5402:52::-;;;;;;;;;;-1:-1:-1;5402:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5952:29;;;;;;;;;;-1:-1:-1;5952:29:0;;;;-1:-1:-1;;;;;5952:29:0;;;7467:133;;;;;;;;;;-1:-1:-1;7467:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7569:19:0;;;7551:7;7569:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7467:133;17745:287;;;;;;;;;;-1:-1:-1;17745:287:0;;;;;:::i;:::-;;:::i;5866:35::-;;;;;;;;;;-1:-1:-1;5866:35:0;;;;-1:-1:-1;;;;;5866:35:0;;;16604:368;;;;;;;;;;-1:-1:-1;16604:368:0;;;;;:::i;:::-;;:::i;2543:204::-;;;;;;;;;;-1:-1:-1;2543:204:0;;;;;:::i;:::-;;:::i;2981:263::-;;;;;;;;;;-1:-1:-1;2981:263:0;;;;;:::i;:::-;;:::i;5990:24::-;;;;;;;;;;-1:-1:-1;5990:24:0;;;;-1:-1:-1;;;;;5990:24:0;;;2866:107;;;;;;;;;;-1:-1:-1;2866:107:0;;;;;:::i;:::-;;:::i;6059:31::-;;;;;;;;;;-1:-1:-1;6059:31:0;;;;-1:-1:-1;;;6059:31:0;;;;;;15427:373;2338:24;2351:10;2338:12;:24::i;:::-;2330:48;;;;-1:-1:-1;;;2330:48:0;;;;;;;:::i;:::-;;;;;;;;;15562:3:::1;15543:22:::0;::::1;15535:71;;;;-1:-1:-1::0;;;15535:71:0::1;;;;;;;:::i;:::-;15622:9;15617:176;15635:20:::0;;::::1;15617:176;;;15713:6;15677:19;:33;15697:9;;15707:1;15697:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15677:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15677:33:0;:42;;-1:-1:-1;;15677:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15739::::1;15760:9:::0;;15770:1;15760:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;15774:6;15739:42;;;;;;;:::i;:::-;;;;;;;;15657:3;::::0;::::1;:::i;:::-;;;15617:176;;;;15427:373:::0;;;:::o;14698:353::-;2338:24;2351:10;2338:12;:24::i;:::-;2330:48;;;;-1:-1:-1;;;2330:48:0;;;;;;;:::i;:::-;14825:3:::1;14806:22:::0;::::1;14798:71;;;;-1:-1:-1::0;;;14798:71:0::1;;;;;;;:::i;:::-;14885:9;14880:164;14898:20:::0;;::::1;14880:164;;;14968:6;14940:11;:25;14952:9;;14962:1;14952:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14940:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14940:25:0;:34;;-1:-1:-1;;14940:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14994:38:::1;15011:9:::0;;15021:1;15011:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;15025:6;14994:38;;;;;;;:::i;:::-;;;;;;;;14920:3;::::0;::::1;:::i;:::-;;;14880:164;;8504:310:::0;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;8640:1:::1;8613:23;:28;;8605:76;;;::::0;-1:-1:-1;;;8605:76:0;;8455:2:1;8605:76:0::1;::::0;::::1;8437:21:1::0;8494:2;8474:18;;;8467:30;8533:34;8513:18;;;8506:62;-1:-1:-1;;;8584:18:1;;;8577:34;8628:19;;8605:76:0::1;8253:400:1::0;8605:76:0::1;8753:4;8725:23:::0;5042:12:::1;4982:1;5042:2;:12;:::i;:::-;5030:24;::::0;:9:::1;:24;:::i;:::-;8711:37;;;;:::i;:::-;8710:47;;;;:::i;:::-;8692:15;:65:::0;;;8773:33:::1;::::0;1226:25:1;;;8773:33:0::1;::::0;1214:2:1;1199:18;8773:33:0::1;;;;;;;;8504:310:::0;:::o;7608:216::-;7712:10;7683:4;7700:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7700:32:0;;;;;;;;;;:41;;;7757:37;7683:4;;7700:32;;7757:37;;;;7735:6;1226:25:1;;1214:2;1199:18;;1080:177;7757:37:0;;;;;;;;-1:-1:-1;7812:4:0;7608:216;;;;;:::o;12376:256::-;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;12447:7:::1;12443:101;;12478:10;::::0;-1:-1:-1;;;12478:10:0;::::1;;;12470:62;;;::::0;-1:-1:-1;;;12470:62:0;;10638:2:1;12470:62:0::1;::::0;::::1;10620:21:1::0;10677:2;10657:18;;;10650:30;10716:34;10696:18;;;10689:62;-1:-1:-1;;;10767:18:1;;;10760:38;10815:19;;12470:62:0::1;10436:404:1::0;12470:62:0::1;12554:11;:21:::0;;-1:-1:-1;;;;12554:21:0::1;-1:-1:-1::0;;;12554:21:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;12591:33:::1;::::0;12554:21:::1;12612:11:::0;;;::::1;;2670:14:1::0;2663:22;2645:41;;12591:33:0::1;::::0;2633:2:1;2618:18;12591:33:0::1;2505:187:1::0;4992:62:0;5042:12;4982:1;5042:2;:12;:::i;:::-;5030:24;;:9;:24;:::i;:::-;4992:62;:::o;18187:696::-;2338:24;2351:10;2338:12;:24::i;:::-;2330:48;;;;-1:-1:-1;;;2330:48:0;;;;;;;:::i;:::-;18311:10:::1;-1:-1:-1::0;;;;;18311:18:0;::::1;;18308:103;;18349:10;::::0;-1:-1:-1;;;18349:10:0;::::1;;;18341:62;;;::::0;-1:-1:-1;;;18341:62:0;;11047:2:1;18341:62:0::1;::::0;::::1;11029:21:1::0;11086:2;11066:18;;;11059:30;11125:34;11105:18;;;11098:62;-1:-1:-1;;;11176:18:1;;;11169:38;11224:19;;18341:62:0::1;10845:404:1::0;18341:62:0::1;18446:3;18427:22:::0;::::1;18419:71;;;;-1:-1:-1::0;;;18419:71:0::1;;;;;;;:::i;:::-;18505:33:::0;;::::1;18497:85;;;::::0;-1:-1:-1;;;18497:85:0;;11456:2:1;18497:85:0::1;::::0;::::1;11438:21:1::0;11495:2;11475:18;;;11468:30;11534:34;11514:18;;;11507:62;-1:-1:-1;;;11585:18:1;;;11578:38;11633:19;;18497:85:0::1;11254:404:1::0;18497:85:0::1;18591:12;18620:6:::0;18616:82:::1;18630:20:::0;;::::1;18616:82;;;18681:6;;18688:1;18681:9;;;;;;;:::i;:::-;;;;;;;18674:4;:16;;;;:::i;:::-;18667:23:::0;-1:-1:-1;18652:3:0;::::1;::::0;::::1;:::i;:::-;;;;18616:82;;;-1:-1:-1::0;;;;;;18714:15:0;::::1;;::::0;;;:9:::1;:15;::::0;;;;;:23;-1:-1:-1;18714:23:0::1;18706:63;;;::::0;-1:-1:-1;;;18706:63:0;;11998:2:1;18706:63:0::1;::::0;::::1;11980:21:1::0;12037:2;12017:18;;;12010:30;12076:29;12056:18;;;12049:57;12123:18;;18706:63:0::1;11796:351:1::0;18706:63:0::1;18782:6;18778:102;18792:20:::0;;::::1;18778:102;;;18829:43;18844:4;18849:9;;18859:1;18849:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18862:6;;18869:1;18862:9;;;;;;;:::i;:::-;;;;;;;18829:14;:43::i;:::-;-1:-1:-1::0;18814:3:0;::::1;::::0;::::1;:::i;:::-;;;;18778:102;;;;18301:582;18187:696:::0;;;;;:::o;11585:356::-;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;11695:3:::1;11676:16;:22;11668:43;;;::::0;-1:-1:-1;;;11668:43:0;;12354:2:1;11668:43:0::1;::::0;::::1;12336:21:1::0;12393:1;12373:18;;;12366:29;-1:-1:-1;;;12411:18:1;;;12404:38;12459:18;;11668:43:0::1;12152:331:1::0;11668:43:0::1;11742:21;11722:17;11833:3;11800:28;11812:16:::0;11742:21;11800:28:::1;:::i;:::-;11798:38;;;;:::i;:::-;11847:43;::::0;11774:62;;-1:-1:-1;11855:10:0::1;::::0;11847:43;::::1;;;::::0;11774:62;;11847:43:::1;::::0;;;11774:62;11855:10;11847:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;11906:27:0::1;::::0;1226:25:1;;;11906:27:0::1;::::0;1214:2:1;1199:18;11906:27:0::1;;;;;;;11657:284;;11585:356:::0;:::o;17503:234::-;17597:14;;-1:-1:-1;;;;;17597:14:0;17583:10;:28;17575:66;;;;-1:-1:-1;;;17575:66:0;;12690:2:1;17575:66:0;;;12672:21:1;12729:2;12709:18;;;12702:30;12768:28;12748:18;;;12741:56;12814:18;;17575:66:0;12488:350:1;17575:66:0;17652:14;:30;;-1:-1:-1;;;;;;17652:30:0;-1:-1:-1;;;;;17652:30:0;;;;;;;;17698:31;;5225:51:1;;;17698:31:0;;5213:2:1;5198:18;17698:31:0;5079:203:1;8126:370:0;-1:-1:-1;;;;;8246:19:0;;8226:4;8246:19;;;:11;:19;;;;;;;;8266:10;8246:31;;;;;;;;-1:-1:-1;;8246:52:0;8243:186;;8348:69;;;;;;;;;;;-1:-1:-1;;;8348:69:0;;;;;;;;-1:-1:-1;;;;;8348:19:0;;-1:-1:-1;8348:19:0;;;:11;:19;;;;;8368:10;8348:31;;;;;;;;;;:69;;8384:6;;8348:35;:69::i;:::-;-1:-1:-1;;;;;8314:19:0;;;;;;:11;:19;;;;;;;;8334:10;8314:31;;;;;;;:103;8243:186;8448:40;8462:6;8470:9;8481:6;8448:13;:40::i;:::-;8441:47;;8126:370;;;;;;:::o;18044:137::-;18157:9;:15;;;;4723:42;18097:7;18139:15;;;;;18097:7;;18157:15;5042:12;4982:1;5042:2;:12;:::i;:::-;5030:24;;:9;:24;:::i;:::-;18125:29;;;;:::i;:::-;:47;;;;:::i;:::-;18117:56;;18044:137;:::o;12723:79::-;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;12779:7:::1;:15:::0;;-1:-1:-1;;;;12779:15:0::1;::::0;;12723:79::o;15059:360::-;2338:24;2351:10;2338:12;:24::i;:::-;2330:48;;;;-1:-1:-1;;;2330:48:0;;;;;;;:::i;:::-;15190:3:::1;15171:22:::0;::::1;15163:71;;;;-1:-1:-1::0;;;15163:71:0::1;;;;;;;:::i;:::-;15250:9;15245:167;15263:20:::0;;::::1;15245:167;;;15337:6;15305:15;:29;15321:9;;15331:1;15321:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15305:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15305:29:0;:38;;-1:-1:-1;;15305:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15363:37:::1;15379:9:::0;;15389:1;15379:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;15393:6;15363:37;;;;;;;:::i;:::-;;;;;;;;15285:3;::::0;::::1;:::i;:::-;;;15245:167;;7832:122:::0;7887:4;7911:35;7919:7;-1:-1:-1;;7911:7:0;:35::i;16371:225::-;2338:24;2351:10;2338:12;:24::i;:::-;2330:48;;;;-1:-1:-1;;;2330:48:0;;;;;;;:::i;:::-;16471:14:::1;:22:::0;;;16504:13:::1;:20:::0;;;16535:18:::1;:27:::0;;;16575:13:::1;:11;:13::i;:::-;16371:225:::0;;;:::o;11949:419::-;12040:12;2845:5;;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;12097:4:::1;-1:-1:-1::0;;;;;12073:29:0;::::1;::::0;12065:70:::1;;;::::0;-1:-1:-1;;;12065:70:0;;13175:2:1;12065:70:0::1;::::0;::::1;13157:21:1::0;13214:2;13194:18;;;13187:30;13253;13233:18;;;13226:58;13301:18;;12065:70:0::1;12973:352:1::0;12065:70:0::1;12151:6;12161:1;12151:11:::0;12148:95:::1;;12187:44;::::0;-1:-1:-1;;;12187:44:0;;12225:4:::1;12187:44;::::0;::::1;5225:51:1::0;-1:-1:-1;;;;;12187:29:0;::::1;::::0;::::1;::::0;5198:18:1;;12187:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12178:53;;12148:95;12260:32;::::0;;-1:-1:-1;;;;;13711:32:1;;13693:51;;13775:2;13760:18;;13753:34;;;12260:32:0::1;::::0;13666:18:1;12260:32:0::1;;;;;;;12312:48;::::0;-1:-1:-1;;;12312:48:0;;12341:10:::1;12312:48;::::0;::::1;13693:51:1::0;13760:18;;;13753:34;;;-1:-1:-1;;;;;12312:28:0;::::1;::::0;::::1;::::0;13666:18:1;;12312:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12640:77::-:0;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;12695:7:::1;:14:::0;;-1:-1:-1;;;;12695:14:0::1;-1:-1:-1::0;;;12695:14:0::1;::::0;;12640:77::o;3252:472::-;3321:14;;-1:-1:-1;;;;;3321:14:0;3307:10;:28;3299:113;;;;-1:-1:-1;;;3299:113:0;;14250:2:1;3299:113:0;;;14232:21:1;14289:2;14269:18;;;14262:30;14328:34;14308:18;;;14301:62;14399:34;14379:18;;;14372:62;-1:-1:-1;;;14450:19:1;;;14443:39;14499:19;;3299:113:0;14048:476:1;3299:113:0;3447:5;3438;;-1:-1:-1;;;;;3438:5:0;;;3423:21;;:14;:21;;;;;;:29;;-1:-1:-1;;3423:29:0;;;;;;3438:5;3478:14;;;;3463:30;;;;;:37;;;;;;;;3535:5;;3518:29;;-1:-1:-1;;;;;;;;;;;3518:29:0;;;3535:5;;;;;3447;3518:29;:::i;:::-;;;;;;;;3580:14;;;3563:37;;-1:-1:-1;;;;;;;;;;;3563:37:0;;;-1:-1:-1;;;;;3580:14:0;;3563:37;:::i;:::-;;;;;;;;3621:14;;;;3613:22;;-1:-1:-1;;;;;3621:14:0;;-1:-1:-1;;;;;;3613:22:0;;;;;;;;3646:27;;;;;;3689;;5225:51:1;;;3689:27:0;;5213:2:1;5198:18;3689:27:0;;;;;;;;3252:472::o;12810:309::-;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;12899:7:::1;12910:9;12899:20;12891:48;;;::::0;-1:-1:-1;;;12891:48:0;;14731:2:1;12891:48:0::1;::::0;::::1;14713:21:1::0;14770:2;14750:18;;;14743:30;-1:-1:-1;;;14789:18:1;;;14782:46;14845:18;;12891:48:0::1;14529:340:1::0;12891:48:0::1;12975:11;::::0;-1:-1:-1;;;12975:11:0;::::1;;;12967:70;;;::::0;-1:-1:-1;;;12967:70:0;;15076:2:1;12967:70:0::1;::::0;::::1;15058:21:1::0;15115:2;15095:18;;;15088:30;15154:34;15134:18;;;15127:62;-1:-1:-1;;;15205:18:1;;;15198:45;15260:19;;12967:70:0::1;14874:411:1::0;12967:70:0::1;13048:10;:18:::0;;-1:-1:-1;;;;13048:18:0::1;::::0;;;;13082:29:::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;13100:10:0;;::::1;13048:18;13100:10;2670:14:1::0;2663:22;2645:41;;2633:2;2618:18;;2505:187;16980:515:0;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17107:35:0;::::1;17099:91;;;::::0;-1:-1:-1;;;17099:91:0;;15492:2:1;17099:91:0::1;::::0;::::1;15474:21:1::0;15531:2;15511:18;;;15504:30;15570:34;15550:18;;;15543:62;-1:-1:-1;;;15621:18:1;;;15614:42;15673:19;;17099:91:0::1;15290:408:1::0;17099:91:0::1;-1:-1:-1::0;;;;;17209:37:0;::::1;17201:95;;;::::0;-1:-1:-1;;;17201:95:0;;15905:2:1;17201:95:0::1;::::0;::::1;15887:21:1::0;15944:2;15924:18;;;15917:30;15983:34;15963:18;;;15956:62;-1:-1:-1;;;16034:18:1;;;16027:44;16088:19;;17201:95:0::1;15703:410:1::0;17201:95:0::1;17309:20;:44:::0;;-1:-1:-1;;;;;17309:44:0;;::::1;-1:-1:-1::0;;;;;;17309:44:0;;::::1;::::0;::::1;::::0;;;17364:22:::1;:48:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;17430:57:::1;::::0;;16330:34:1;;;16395:2;16380:18;;16373:43;;;;17430:57:0::1;::::0;16265:18:1;17430:57:0::1;;;;;;;;16980:515:::0;;:::o;7962:156::-;8042:4;8066:44;8080:10;8092:9;8103:6;8066:13;:44::i;2397:138::-;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2459:19:0;::::1;;::::0;;;:14:::1;:19;::::0;;;;;;:26;;-1:-1:-1;;2459:26:0::1;2481:4;2459:26:::0;;::::1;::::0;;;2501;;-1:-1:-1;;;;;;;;;;;2501:26:0;::::1;::::0;2474:3;;2481:4;2501:26:::1;:::i;8820:313::-:0;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;8954:1:::1;8926:24;:29;;8918:82;;;::::0;-1:-1:-1;;;8918:82:0;;16629:2:1;8918:82:0::1;::::0;::::1;16611:21:1::0;16668:2;16648:18;;;16641:30;16707:34;16687:18;;;16680:62;-1:-1:-1;;;16758:18:1;;;16751:39;16807:19;;8918:82:0::1;16427:405:1::0;8918:82:0::1;9070:4;9041:24:::0;5042:12:::1;4982:1;5042:2;:12;:::i;:::-;5030:24;::::0;:9:::1;:24;:::i;:::-;9027:38;;;;:::i;:::-;9026:48;;;;:::i;:::-;9011:12;:63:::0;;;9090:35:::1;::::0;1226:25:1;;;9090:35:0::1;::::0;1214:2:1;1199:18;9090:35:0::1;1080:177:1::0;17745:287:0;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;17867:2:::1;5042:12;4982:1;17867:2:::0;5042:12:::1;:::i;:::-;5030:24;::::0;:9:::1;:24;:::i;:::-;17855:14;;;;:::i;:::-;17844:7;:26;17836:54;;;::::0;-1:-1:-1;;;17836:54:0;;17039:2:1;17836:54:0::1;::::0;::::1;17021:21:1::0;17078:2;17058:18;;;17051:30;-1:-1:-1;;;17097:18:1;;;17090:45;17152:18;;17836:54:0::1;16837:339:1::0;17836:54:0::1;17903:11;:22:::0;;-1:-1:-1;;;;17903:22:0::1;-1:-1:-1::0;;;17903:22:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;17936:13:::1;:23:::0;;;17977:47:::1;::::0;;17349:25:1;;;17903:22:0::1;18012:11:::0;;;::::1;::::0;;;::::1;17417:14:1::0;17410:22;17405:2;17390:18;;17383:50;17977:47:0::1;::::0;17322:18:1;17977:47:0::1;17181:258:1::0;16604:368:0;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;16732:12:::1;:28:::0;;;16771:12:::1;:28:::0;;;16810:14:::1;:32:::0;;;16924:6:::1;::::0;16827:15;16874:29:::1;16786:13:::0;16747;16874:29:::1;:::i;:::-;:47;;;;:::i;:::-;:56;;;;:::i;:::-;16863:8;:67:::0;16951:13:::1;:11;:13::i;2543:204::-:0;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;2622:5:::1;::::0;-1:-1:-1;;;;;2622:5:0;;::::1;2615:12:::0;;::::1;::::0;2607:51:::1;;;::::0;-1:-1:-1;;;2607:51:0;;17646:2:1;2607:51:0::1;::::0;::::1;17628:21:1::0;17685:2;17665:18;;;17658:30;17724:28;17704:18;;;17697:56;17770:18;;2607:51:0::1;17444:350:1::0;2607:51:0::1;-1:-1:-1::0;;;;;2669:19:0;::::1;2691:5;2669:19:::0;;;:14:::1;:19;::::0;;;;;:27;;-1:-1:-1;;2669:27:0::1;::::0;;2712;-1:-1:-1;;;;;;;;;;;2712:27:0;::::1;::::0;2684:3;;2691:5;2712:27:::1;:::i;2981:263::-:0;2810:4;2845:5;-1:-1:-1;;;;;2845:5:0;2256:10;2834:16;2240:38;;;;-1:-1:-1;;;2240:38:0;;;;;;;:::i;:::-;3074:5:::1;::::0;-1:-1:-1;;;;;3074:5:0;;::::1;3067:12:::0;;::::1;::::0;3059:42:::1;;;::::0;-1:-1:-1;;;3059:42:0;;18001:2:1;3059:42:0::1;::::0;::::1;17983:21:1::0;18040:2;18020:18;;;18013:30;-1:-1:-1;;;18059:18:1;;;18052:47;18116:18;;3059:42:0::1;17799:341:1::0;3059:42:0::1;-1:-1:-1::0;;;;;3120:17:0;::::1;3112:54;;;::::0;-1:-1:-1;;;3112:54:0;;18347:2:1;3112:54:0::1;::::0;::::1;18329:21:1::0;18386:2;18366:18;;;18359:30;18425:26;18405:18;;;18398:54;18469:18;;3112:54:0::1;18145:348:1::0;3112:54:0::1;3177:14;:20:::0;;-1:-1:-1;;;;;;3177:20:0::1;-1:-1:-1::0;;;;;3177:20:0;::::1;::::0;;::::1;::::0;;;3213:23:::1;::::0;5225:51:1;;;3213:23:0::1;::::0;5213:2:1;5198:18;3213:23:0::1;5079:203:1::0;2866:107:0;-1:-1:-1;;;;;2946:19:0;2922:4;2946:19;;;:14;:19;;;;;;;;;2866:107::o;10311:330::-;10441:53;;;;;;;;;;;-1:-1:-1;;;10441:53:0;;;;;;;;-1:-1:-1;;;;;10441:17:0;;10404:4;10441:17;;;:9;:17;;;;;;;:53;;10463:6;;10441:21;:53::i;:::-;-1:-1:-1;;;;;10421:17:0;;;;;;;:9;:17;;;;;;:73;;;;10528:20;;;;;;;:32;;10553:6;10528:24;:32::i;:::-;-1:-1:-1;;;;;10505:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10576:35;;;;;;;;;;10604:6;1226:25:1;;1214:2;1199:18;;1080:177;10576:35:0;;;;;;;;-1:-1:-1;10629:4:0;10311:330;;;;;:::o;422:192::-;508:7;544:12;536:6;;;;528:29;;;;-1:-1:-1;;;528:29:0;;;;;;;;:::i;:::-;-1:-1:-1;568:9:0;580:5;584:1;580;:5;:::i;:::-;568:17;422:192;-1:-1:-1;;;;;422:192:0:o;9141:1158::-;9253:6;;9233:4;;9253:6;;9250:63;;;9269:41;9284:6;9292:9;9303:6;9269:14;:41::i;:::-;9262:48;;;;9250:63;-1:-1:-1;;;;;9329:22:0;;;;;;:14;:22;;;;;;;;9328:23;:53;;;;-1:-1:-1;;;;;;9356:25:0;;;;;;:14;:25;;;;;;;;9355:26;9328:53;9325:127;;;9405:11;;-1:-1:-1;;;9405:11:0;;;;9397:43;;;;-1:-1:-1;;;9397:43:0;;18916:2:1;9397:43:0;;;18898:21:1;18955:2;18935:18;;;18928:30;-1:-1:-1;;;18974:18:1;;;18967:50;19034:18;;9397:43:0;18714:344:1;9397:43:0;-1:-1:-1;;;;;9469:22:0;;;;;;:14;:22;;;;;;;;9468:23;:55;;;;-1:-1:-1;;;;;;9496:27:0;;;;;;:19;:27;;;;;;;;9495:28;9468:55;:90;;;;-1:-1:-1;;;;;;9528:30:0;;;;;;:19;:30;;;;;;;;9527:31;9468:90;:111;;;;;9575:4;-1:-1:-1;;;;;9562:17:0;:9;-1:-1:-1;;;;;9562:17:0;;;9468:111;9464:230;;;9639:15;;-1:-1:-1;;;;;9605:20:0;;;;;;:9;:20;;;;;;:29;;9628:6;;9605:29;:::i;:::-;9604:50;;9596:86;;;;-1:-1:-1;;;9596:86:0;;19265:2:1;9596:86:0;;;19247:21:1;19304:2;19284:18;;;19277:30;19343:26;19323:18;;;19316:54;19387:18;;9596:86:0;19063:348:1;9596:86:0;9770:12;;9760:6;:22;;9759:51;;;-1:-1:-1;;;;;;9787:23:0;;;;;;:15;:23;;;;;;;;9759:51;:81;;;-1:-1:-1;;;;;;9814:26:0;;;;;;:15;:26;;;;;;;;9759:81;9751:115;;;;-1:-1:-1;;;9751:115:0;;19618:2:1;9751:115:0;;;19600:21:1;19657:2;19637:18;;;19630:30;-1:-1:-1;;;19676:18:1;;;19669:51;19737:18;;9751:115:0;19416:345:1;9751:115:0;9882:16;:14;:16::i;:::-;9879:35;;;9901:10;:8;:10::i;:::-;9946:53;;;;;;;;;;;-1:-1:-1;;;9946:53:0;;;;;;;;-1:-1:-1;;;;;9946:17:0;;-1:-1:-1;9946:17:0;;;:9;:17;;;;;;;;:53;;9968:6;;9946:21;:53::i;:::-;-1:-1:-1;;;;;9926:17:0;;;;;;:9;:17;;;;;;;;:73;;;;10038:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;10061:22:0;;;;;;:11;:22;;;;;;;;10038:45;10037:93;;10096:34;10104:6;10112;10120:9;10096:7;:34::i;:::-;10037:93;;;10087:6;10037:93;-1:-1:-1;;;;;10166:20:0;;;;;;:9;:20;;;;;;10012:118;;-1:-1:-1;10166:40:0;;10012:118;10166:24;:40::i;:::-;-1:-1:-1;;;;;10143:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10226:43;;;;;;;;;;10254:14;1226:25:1;;1214:2;1199:18;;1080:177;10226:43:0;;;;;;;;-1:-1:-1;10287:4:0;;9141:1158;-1:-1:-1;;;;9141:1158:0:o;15808:555::-;15899:3;15859:36;15891:3;15859:27;15872:13;;15859:8;;:12;;:27;;;;:::i;:::-;:31;;:36::i;:::-;:43;;15851:87;;;;-1:-1:-1;;;15851:87:0;;19968:2:1;15851:87:0;;;19950:21:1;20007:2;19987:18;;;19980:30;20046:33;20026:18;;;20019:61;20097:18;;15851:87:0;19766:355:1;15851:87:0;15998:3;15957:37;15990:3;15957:28;15970:14;;15957:8;;:12;;:28;;;;:::i;:37::-;:44;;15949:89;;;;-1:-1:-1;;;15949:89:0;;20328:2:1;15949:89:0;;;20310:21:1;;;20347:18;;;20340:30;20406:34;20386:18;;;20379:62;20458:18;;15949:89:0;20126:356:1;15949:89:0;16102:3;16057:41;16094:3;16057:32;16070:18;;16057:8;;:12;;:32;;;;:::i;:41::-;:48;;16049:97;;;;-1:-1:-1;;;16049:97:0;;20689:2:1;16049:97:0;;;20671:21:1;20728:2;20708:18;;;20701:30;20767:34;20747:18;;;20740:62;-1:-1:-1;;;20818:18:1;;;20811:34;20862:19;;16049:97:0;20487:400:1;16049:97:0;16164:191;16181:36;16213:3;16181:27;16194:13;;16181:8;;:12;;:27;;;;:::i;:36::-;16239:37;16272:3;16239:28;16252:14;;16239:8;;:12;;:28;;;;:::i;:37::-;16298:41;16335:3;16298:32;16311:18;;16298:8;;:12;;:32;;;;:::i;:41::-;16164:191;;;21112:4:1;21100:17;;;21082:36;;21154:17;;;21149:2;21134:18;;21127:45;21208:17;;21188:18;;;21181:45;;;;21070:2;21055:18;16164:191:0;20892:340:1;93:181:0;151:7;;183:5;187:1;183;:5;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;-1:-1:-1;;;199:46:0;;21439:2:1;199:46:0;;;21421:21:1;21478:2;21458:18;;;21451:30;21517:29;21497:18;;;21490:57;21564:18;;199:46:0;21237:351:1;11380:197:0;11429:4;11453:10;-1:-1:-1;;;;;11467:4:0;11453:18;;;;;:38;;-1:-1:-1;11485:6:0;;;;11484:7;11453:38;:62;;;;-1:-1:-1;11504:11:0;;-1:-1:-1;;;11504:11:0;;;;11453:62;:116;;;;-1:-1:-1;;11556:13:0;;11546:4;11528:24;;;;:9;:24;;;;;;:41;;;11380:197::o;13127:1563::-;6302:6;:13;;-1:-1:-1;;6302:13:0;6311:4;6302:13;;;13200:8:::1;::::0;6302:6;13279:15:::1;13200:8:::0;13293:1:::1;13279:15;:::i;:::-;13264:12;;13248:13;;:28;;;;:::i;:::-;13247:48;;;;:::i;:::-;13221:74;;13306:20;13345:15;13329:13;;:31;;;;:::i;:::-;13397:16;::::0;;13411:1:::1;13397:16:::0;;;;;::::1;::::0;;13306:54;;-1:-1:-1;13373:21:0::1;::::0;13397:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13397:16:0::1;13373:40;;13442:4;13424;13429:1;13424:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;13424:23:0::1;;;-1:-1:-1::0;;;;;13424:23:0::1;;;::::0;::::1;13468:4;13458;13463:1;13458:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13458:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;13485:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;13485:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;13557:12;;13485:6:::1;::::0;13600:4;;13627::::1;::::0;13647:15:::1;::::0;13485:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13770:12:0::1;::::0;13706:21:::1;::::0;-1:-1:-1;13770:16:0::1;::::0;-1:-1:-1;13785:1:0::1;::::0;13770:16:::1;:::i;:::-;13755:32;::::0;:11;:32:::1;:::i;:::-;13741:46:::0;-1:-1:-1;13808:26:0::1;13867:15;13741:46:::0;13881:1:::1;13867:15;:::i;:::-;13850:12;::::0;13838:24:::1;::::0;:9;:24:::1;:::i;:::-;13837:46;;;;:::i;:::-;13808:75;;13894:26;13952:11;13936:12;;13924:9;:24;;;;:::i;:::-;13923:40;;;;:::i;:::-;13894:69;;13974:28;14036:11;14018:14;;14006:9;:26;;;;:::i;:::-;14005:42;;;;:::i;:::-;13974:73;;14058:20;14104:11;14094:6;;14082:9;:18;;;;:::i;:::-;14081:34;;;;:::i;:::-;14136:20;::::0;14128:58:::1;::::0;14058:57;;-1:-1:-1;;;;;;14136:20:0::1;::::0;14128:58;::::1;;;::::0;14167:18;;14136:20:::1;14128:58:::0;14136:20;14128:58;14167:18;14136:20;14128:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14205:22:0::1;::::0;14197:62:::1;::::0;-1:-1:-1;;;;;14205:22:0;;::::1;::::0;14197:62;::::1;;;::::0;14238:20;;14205:22:::1;14197:62:::0;14205:22;14197:62;14238:20;14205:22;14197:62;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14278:14:0::1;::::0;14270:46:::1;::::0;-1:-1:-1;;;;;14278:14:0;;::::1;::::0;14270:46;::::1;;;::::0;14303:12;;14278:14:::1;14270:46:::0;14278:14;14270:46;14303:12;14278:14;14270:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14332:19:0;;14329:354:::1;;14367:6;::::0;:236:::1;::::0;-1:-1:-1;;;14367:236:0;;14443:4:::1;14367:236;::::0;::::1;23051:34:1::0;;;23101:18;;;23094:34;;;14367:6:0::1;23144:18:1::0;;;23137:34;;;23187:18;;;23180:34;23230:19;;;23223:44;14573:15:0::1;23283:19:1::0;;;23276:35;-1:-1:-1;;;;;14367:6:0;;::::1;::::0;:22:::1;::::0;14397:18;;22985:19:1;;14367:236:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14623:48:0::1;::::0;;23807:25:1;;;23863:2;23848:18;;23841:34;;;14623:48:0::1;::::0;-1:-1:-1;23780:18:1;14623:48:0::1;;;;;;;14329:354;-1:-1:-1::0;;6320:6:0;:14;;-1:-1:-1;;6320:14:0;;;-1:-1:-1;;;;;;;13127:1563:0:o;10649:723::-;10735:7;10758:11;;;:28;;-1:-1:-1;10773:8:0;;:13;10758:28;10755:72;;;-1:-1:-1;10809:6:0;10802:13;;10755:72;10860:18;;-1:-1:-1;;;;;10907:4:0;10894:17;;;;;;10891:154;;-1:-1:-1;10941:14:0;;10891:154;;;10986:4;-1:-1:-1;;;;;10976:14:0;:6;-1:-1:-1;;;;;10976:14:0;;10973:72;;-1:-1:-1;11020:13:0;;10973:72;11057:17;11077:62;11118:20;5743:4;11135:3;11118:20;:::i;:::-;11077:36;11102:10;11077:20;11088:8;;11077:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:62::-;11057:82;-1:-1:-1;11155:13:0;;11152:172;;11229:4;11211:24;;;;:9;:24;;;;;;:39;;11240:9;11211:28;:39::i;:::-;11202:4;11184:24;;;;:9;:24;;;;;;;:66;;;;11270:42;;-1:-1:-1;;;;;11270:42:0;;;;;;;11302:9;1226:25:1;;1214:2;1199:18;;1080:177;11270:42:0;;;;;;;;11152:172;11343:21;:6;11354:9;11343:10;:21::i;:::-;11336:28;10649:723;-1:-1:-1;;;;;;10649:723:0:o;620:250::-;678:7;702:1;707;702:6;698:47;;-1:-1:-1;732:1:0;725:8;;698:47;757:9;769:5;773:1;769;:5;:::i;:::-;757:17;-1:-1:-1;802:1:0;793:5;797:1;757:17;793:5;:::i;:::-;:10;785:56;;;;-1:-1:-1;;;785:56:0;;24088:2:1;785:56:0;;;24070:21:1;24127:2;24107:18;;;24100:30;24166:34;24146:18;;;24139:62;-1:-1:-1;;;24217:18:1;;;24210:31;24258:19;;785:56:0;23886:397:1;876:132:0;934:7;961:39;965:1;968;961:39;;;;;;;;;;;;;;;;;:3;:39::i;280:136::-;338:7;365:43;369:1;372;365:43;;;;;;;;;;;;;;;;;:3;:43::i;1014:189::-;1100:7;1135:12;1128:5;1120:28;;;;-1:-1:-1;;;1120:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1159:9:0;1171:5;1175:1;1171;:5;:::i;14:367:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:1;;225:18;214:30;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:118::-;472:5;465:13;458:21;451:5;448:32;438:60;;494:1;491;484:12;438:60;386:118;:::o;509:566::-;601:6;609;617;670:2;658:9;649:7;645:23;641:32;638:52;;;686:1;683;676:12;638:52;726:9;713:23;759:18;751:6;748:30;745:50;;;791:1;788;781:12;745:50;830:70;892:7;883:6;872:9;868:22;830:70;:::i;:::-;919:8;;-1:-1:-1;804:96:1;-1:-1:-1;;1004:2:1;989:18;;976:32;1017:28;976:32;1017:28;:::i;:::-;1064:5;1054:15;;;509:566;;;;;:::o;1262:597::-;1374:4;1403:2;1432;1421:9;1414:21;1464:6;1458:13;1507:6;1502:2;1491:9;1487:18;1480:34;1532:1;1542:140;1556:6;1553:1;1550:13;1542:140;;;1651:14;;;1647:23;;1641:30;1617:17;;;1636:2;1613:26;1606:66;1571:10;;1542:140;;;1700:6;1697:1;1694:13;1691:91;;;1770:1;1765:2;1756:6;1745:9;1741:22;1737:31;1730:42;1691:91;-1:-1:-1;1843:2:1;1822:15;-1:-1:-1;;1818:29:1;1803:45;;;;1850:2;1799:54;;1262:597;-1:-1:-1;;;1262:597:1:o;1864:180::-;1923:6;1976:2;1964:9;1955:7;1951:23;1947:32;1944:52;;;1992:1;1989;1982:12;1944:52;-1:-1:-1;2015:23:1;;1864:180;-1:-1:-1;1864:180:1:o;2049:131::-;-1:-1:-1;;;;;2124:31:1;;2114:42;;2104:70;;2170:1;2167;2160:12;2185:315;2253:6;2261;2314:2;2302:9;2293:7;2289:23;2285:32;2282:52;;;2330:1;2327;2320:12;2282:52;2369:9;2356:23;2388:31;2413:5;2388:31;:::i;:::-;2438:5;2490:2;2475:18;;;;2462:32;;-1:-1:-1;;;2185:315:1:o;2697:241::-;2753:6;2806:2;2794:9;2785:7;2781:23;2777:32;2774:52;;;2822:1;2819;2812:12;2774:52;2861:9;2848:23;2880:28;2902:5;2880:28;:::i;2943:908::-;3074:6;3082;3090;3098;3106;3159:2;3147:9;3138:7;3134:23;3130:32;3127:52;;;3175:1;3172;3165:12;3127:52;3214:9;3201:23;3233:31;3258:5;3233:31;:::i;:::-;3283:5;-1:-1:-1;3339:2:1;3324:18;;3311:32;3362:18;3392:14;;;3389:34;;;3419:1;3416;3409:12;3389:34;3458:70;3520:7;3511:6;3500:9;3496:22;3458:70;:::i;:::-;3547:8;;-1:-1:-1;3432:96:1;-1:-1:-1;3635:2:1;3620:18;;3607:32;;-1:-1:-1;3651:16:1;;;3648:36;;;3680:1;3677;3670:12;3648:36;;3719:72;3783:7;3772:8;3761:9;3757:24;3719:72;:::i;:::-;2943:908;;;;-1:-1:-1;2943:908:1;;-1:-1:-1;3810:8:1;;3693:98;2943:908;-1:-1:-1;;;2943:908:1:o;3856:247::-;3915:6;3968:2;3956:9;3947:7;3943:23;3939:32;3936:52;;;3984:1;3981;3974:12;3936:52;4023:9;4010:23;4042:31;4067:5;4042:31;:::i;4108:456::-;4185:6;4193;4201;4254:2;4242:9;4233:7;4229:23;4225:32;4222:52;;;4270:1;4267;4260:12;4222:52;4309:9;4296:23;4328:31;4353:5;4328:31;:::i;:::-;4378:5;-1:-1:-1;4435:2:1;4420:18;;4407:32;4448:33;4407:32;4448:33;:::i;:::-;4108:456;;4500:7;;-1:-1:-1;;;4554:2:1;4539:18;;;;4526:32;;4108:456::o;4758:316::-;4835:6;4843;4851;4904:2;4892:9;4883:7;4879:23;4875:32;4872:52;;;4920:1;4917;4910:12;4872:52;-1:-1:-1;;4943:23:1;;;5013:2;4998:18;;4985:32;;-1:-1:-1;5064:2:1;5049:18;;;5036:32;;4758:316;-1:-1:-1;4758:316:1:o;5287:388::-;5355:6;5363;5416:2;5404:9;5395:7;5391:23;5387:32;5384:52;;;5432:1;5429;5422:12;5384:52;5471:9;5458:23;5490:31;5515:5;5490:31;:::i;:::-;5540:5;-1:-1:-1;5597:2:1;5582:18;;5569:32;5610:33;5569:32;5610:33;:::i;:::-;5662:7;5652:17;;;5287:388;;;;;:::o;5680:309::-;5745:6;5753;5806:2;5794:9;5785:7;5781:23;5777:32;5774:52;;;5822:1;5819;5812:12;5774:52;5861:9;5848:23;5880:28;5902:5;5880:28;:::i;6480:335::-;6682:2;6664:21;;;6721:2;6701:18;;;6694:30;-1:-1:-1;;;6755:2:1;6740:18;;6733:41;6806:2;6791:18;;6480:335::o;6820:401::-;7022:2;7004:21;;;7061:2;7041:18;;;7034:30;7100:34;7095:2;7080:18;;7073:62;-1:-1:-1;;;7166:2:1;7151:18;;7144:35;7211:3;7196:19;;6820:401::o;7226:127::-;7287:10;7282:3;7278:20;7275:1;7268:31;7318:4;7315:1;7308:15;7342:4;7339:1;7332:15;7358:284;-1:-1:-1;;;;;7544:32:1;;;;7526:51;;7620:14;7613:22;7608:2;7593:18;;7586:50;7514:2;7499:18;;7358:284::o;7647:127::-;7708:10;7703:3;7699:20;7696:1;7689:31;7739:4;7736:1;7729:15;7763:4;7760:1;7753:15;7779:135;7818:3;7839:17;;;7836:43;;7859:18;;:::i;:::-;-1:-1:-1;7906:1:1;7895:13;;7779:135::o;7919:329::-;8121:2;8103:21;;;8160:1;8140:18;;;8133:29;-1:-1:-1;;;8193:2:1;8178:18;;8171:36;8239:2;8224:18;;7919:329::o;8658:422::-;8747:1;8790:5;8747:1;8804:270;8825:7;8815:8;8812:21;8804:270;;;8884:4;8880:1;8876:6;8872:17;8866:4;8863:27;8860:53;;;8893:18;;:::i;:::-;8943:7;8933:8;8929:22;8926:55;;;8963:16;;;;8926:55;9042:22;;;;9002:15;;;;8804:270;;;8808:3;8658:422;;;;;:::o;9085:806::-;9134:5;9164:8;9154:80;;-1:-1:-1;9205:1:1;9219:5;;9154:80;9253:4;9243:76;;-1:-1:-1;9290:1:1;9304:5;;9243:76;9335:4;9353:1;9348:59;;;;9421:1;9416:130;;;;9328:218;;9348:59;9378:1;9369:10;;9392:5;;;9416:130;9453:3;9443:8;9440:17;9437:43;;;9460:18;;:::i;:::-;-1:-1:-1;;9516:1:1;9502:16;;9531:5;;9328:218;;9630:2;9620:8;9617:16;9611:3;9605:4;9602:13;9598:36;9592:2;9582:8;9579:16;9574:2;9568:4;9565:12;9561:35;9558:77;9555:159;;;-1:-1:-1;9667:19:1;;;9699:5;;9555:159;9746:34;9771:8;9765:4;9746:34;:::i;:::-;9816:6;9812:1;9808:6;9804:19;9795:7;9792:32;9789:58;;;9827:18;;:::i;:::-;9865:20;;9085:806;-1:-1:-1;;;9085:806:1:o;9896:140::-;9954:5;9983:47;10024:4;10014:8;10010:19;10004:4;9983:47;:::i;10041:168::-;10081:7;10147:1;10143;10139:6;10135:14;10132:1;10129:21;10124:1;10117:9;10110:17;10106:45;10103:71;;;10154:18;;:::i;:::-;-1:-1:-1;10194:9:1;;10041:168::o;10214:217::-;10254:1;10280;10270:132;;10324:10;10319:3;10315:20;10312:1;10305:31;10359:4;10356:1;10349:15;10387:4;10384:1;10377:15;10270:132;-1:-1:-1;10416:9:1;;10214:217::o;11663:128::-;11703:3;11734:1;11730:6;11727:1;11724:13;11721:39;;;11740:18;;:::i;:::-;-1:-1:-1;11776:9:1;;11663:128::o;12843:125::-;12883:4;12911:1;12908;12905:8;12902:34;;;12916:18;;:::i;:::-;-1:-1:-1;12953:9:1;;12843:125::o;13330:184::-;13400:6;13453:2;13441:9;13432:7;13428:23;13424:32;13421:52;;;13469:1;13466;13459:12;13421:52;-1:-1:-1;13492:16:1;;13330:184;-1:-1:-1;13330:184:1:o;13798:245::-;13865:6;13918:2;13906:9;13897:7;13893:23;13889:32;13886:52;;;13934:1;13931;13924:12;13886:52;13966:9;13960:16;13985:28;14007:5;13985:28;:::i;21725:980::-;21987:4;22035:3;22024:9;22020:19;22066:6;22055:9;22048:25;22092:2;22130:6;22125:2;22114:9;22110:18;22103:34;22173:3;22168:2;22157:9;22153:18;22146:31;22197:6;22232;22226:13;22263:6;22255;22248:22;22301:3;22290:9;22286:19;22279:26;;22340:2;22332:6;22328:15;22314:29;;22361:1;22371:195;22385:6;22382:1;22379:13;22371:195;;;22450:13;;-1:-1:-1;;;;;22446:39:1;22434:52;;22541:15;;;;22506:12;;;;22482:1;22400:9;22371:195;;;-1:-1:-1;;;;;;;22622:32:1;;;;22617:2;22602:18;;22595:60;-1:-1:-1;;;22686:3:1;22671:19;22664:35;22583:3;21725:980;-1:-1:-1;;;21725:980:1:o;23322:306::-;23410:6;23418;23426;23479:2;23467:9;23458:7;23454:23;23450:32;23447:52;;;23495:1;23492;23485:12;23447:52;23524:9;23518:16;23508:26;;23574:2;23563:9;23559:18;23553:25;23543:35;;23618:2;23607:9;23603:18;23597:25;23587:35;;23322:306;;;;;:::o

Swarm Source

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