ETH Price: $2,412.94 (-1.20%)

Token

BearBurns (BEARBURNS)
 

Overview

Max Total Supply

1,000,000,000 BEARBURNS

Holders

10

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
BEARBURNS

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**                                                                                                                                          
                                          :.                                                                          
                                   :-=     ==:                                                                        
                               .:=++++-     =++-                                                                      
                            :-=++++++++.    :++++-        ::                                                          
                        .:=++++++++++=-.     ++++++:       .==-.                                                      
                     :-=++++++++++=:.        =++++++=.       -+++-:                                                   
                 .:=+++++++++++-:            =++++++++-       -+++++=:.                                               
              .-=++++++++++=-.               +++++++=++=.      -+++++++=-:                                            
          .:=+++++++++++-:                  .+++++++=:++=.      -++++++++++=:.                                        
        :=++++++++++=-.                     -++++++++-.=+=.      .-=++++++++++=:                                      
       =+++++++++=:.                        ++++++++++. =+=          :-+++++++++=                                     
      =++++++=-.                           =++++++++++= .++=            .-=++++++=                                    
     .++++++=                             -++++++++++++. -++.              -++++++:                                   
     :++++++:                            :+++++++++++++- .++-              :++++++:                                   
     :++++++-                           -+++++++++++++++  +++              :++++++:                                   
     :++++++-             -=.          -++++++++++++++++  +++              :++++++:                                   
     :++++++-           :++++=       .=+++++++++++++++++  +++              :++++++:                                   
     :++++++-          =++++++=     :++++++++++++++++++= :++=              :++++++:                                   
     :++++++-        .+++++++++:   =+++++++++++++++++++: +++:   :-         :++++++-                                   
     :++++++-       :++++++++++: -+++++++++++++++++++++ =+++   .++.        :++++++-                                   
     :++++++-      :+++++===+++-++++++++++++++++++++++:=+++.  .+++=        :++++++-                                   
     :++++++-     :++++=-:==---=++++++++++++++++++++++++++:  -+++++        :++++++-                                   
     :++++++-     ++++:===- .-=------------=+++++++++-----::+++++++:       :++++++-                                   
     :++++++-    -+++:        .:=++++++++++=----------:.::=:=++++++-       :++++++-                                   
     :++++++-    ++++=       +++++++++++++++++++++++=:.    ==++++++=       :++++++-                                   
     :++++++-   :+++++=     :++++++++++=++===++++++++++=   .+++++++=       :++++++-                                   
     :++++++-   -++++++=   .++++++++-   ::.-++=:---:-=+++ -++++++++:       :++++++-                                   
     :++++++-   -+++++++- .++++++++:  - .-=++.        :++.+++++++++.       :++++++-                                   
     :++++++-   :+++++++: ++++++++.    =++++=        . ++.++++++++=        -++++++-                                   
     :******-    +*+++++ ++++++++=-:  .++++++:     :-: :*-:++*****.        -++++++-                                   
     .******+:   -*****+:.:*++++++:   +++++*=::.   +++:**:+-*****=        :+******.                                   
      -*******+=::******+ -*****:    -**=:.:.:::-::=*+-**:+*****+     .-+********-                                    
       :+***************+-. .::.     +*-   +    .:*:*--*+--****+   :=+*********+-                                     
         -+****************=.        :*:   .     :.-+..--+****+:-=***********+-                                       
            :=+*************=        -*:          ==  .+*****************+=:                                          
               .-+***********+=-.    +*:         -+  -****************+-.                                             
                   :=************+=: **=  -    :.*.:+**************=:                                                 
                      .-+***********+:+*  -:.. -:+.************+-:                                                    
                          :=**********:=+       --=*********=:.                                                       
                             .-+*******--+     .=.******+-:                                                           
                                 :=*****=---::=--****=:.                                                              
                                    .-+****+*=-**+-.                                                                  
                                        :-====-:.                                                                     
                                                                                                                      
            88""Yb 888888    db    88""Yb 88""Yb 88   88 88""Yb 88b 88 .dP"Y8 
            88__dP 88__     dPYb   88__dP 88__dP 88   88 88__dP 88Yb88 `Ybo." 
            88""Yb 88""    dP__Yb  88"Yb  88""Yb Y8   8P 88"Yb  88 Y88 o.`Y8b 
            88oodP 888888 dP""""Yb 88  Yb 88oodP `YbodP' 88  Yb 88  Y8 8bodP'                                   
                                                                                                                                                   
BearBurns was creted by the BearBucks team in order to burn $BEAR tokens with consecutive and short 
lived token launches under the name: BEARBURNS! It's goal is to increase BearBucks price and to provide
a safe launch experience for those who love to ride the token launches and earn some quick bucks!

Join the BEARBURNS ride with it's 24-72h lifespan launches, that will keep coming...

Learn more about BearBurns at https://www.bearbucks.capital/bearburns

Find us on:
Twitter: https://twitter.com/bearbucks_
Telegram: https://t.me/BearBucksERC
Instagram: @bearbuckscrypto
*/
 
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;
 
/**
 * ERC20 standard interface
 */
 
interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    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);
}
 
/**
 * Basic access control mechanism
 */
 
abstract contract Ownable {
    address internal owner;
    address private _previousOwner;
 
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 
    constructor(address _owner) {
        owner = _owner;
    }
 
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!YOU ARE NOT THE OWNER"); _;
    }
 
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(owner, address(0));
        owner = address(0);
    }
}
 
/**
 * Router Interfaces
 */
 
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 addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
 
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
 
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
 
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
 
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
 
/**
 * Token Contract Code
 */
 
contract BEARBURNS is ERC20, Ownable {
    // -- Mappings --
    mapping(address => bool) public _blacklisted;
    mapping(address => bool) private _whitelisted;
    mapping(address => bool) public _automatedMarketMakers;
    mapping(address => bool) private _isLimitless;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
 
    // -- Basic Token Information --
    string constant _name = "BearBurns";
    string constant _symbol = "BEARBURNS";
    uint8 constant _decimals = 18;
    uint256 private _totalSupply = 1_000_000_000 * 10 ** _decimals;
 
 
    // -- Transaction & Wallet Limits --
    uint256 public maxBuyPercentage;
    uint256 public maxSellPercentage;
    uint256 public maxWalletPercentage;
 
    uint256 private maxBuyAmount;
    uint256 private maxSellAmount;
    uint256 private maxWalletAmount;
 
    // -- Contract Variables --
    address[] private sniperList;
    uint256 tokenTax;
    uint256 transferFee;
    uint256 private targetLiquidity = 50;
 
    // -- Fee Structs --
    struct BuyFee {
        uint256 liquidityFee;
        uint256 developerFee;
        uint256 burningFee;
        uint256 total;
    }
 
    struct SellFee {
        uint256 liquidityFee;
        uint256 developerFee;
        uint256 burningFee;
        uint256 total;
    }
 
    BuyFee public buyFee;
    SellFee public sellFee;
 
    // -- Addresses --
    address public _exchangeRouterAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
 
    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;
 
    address public developerReceiver = msg.sender;
    address public burningReceiver = msg.sender;
 
    IDEXRouter public router;
    address public pair;
 
    // -- Misc Variables --
    bool public antiSniperMode = true;  // AntiSniper active at launch by default
    bool private _addingLP;
    bool private inSwap;
    bool private _initialDistributionFinished;
 
    // -- Swap Variables --
    bool public swapEnabled = true;
    uint256 private swapThreshold = _totalSupply / 1000;
 
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor () Ownable(msg.sender) {
 
        // Initialize Uniswap Pair
        router = IDEXRouter(_exchangeRouterAddress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        _automatedMarketMakers[pair]=true;
 
        // Set Initial Buy Fees -- Base 1000 Set 10 for 1%
        buyFee.liquidityFee = 10; 
        buyFee.developerFee = 0; 
        buyFee.burningFee = 50;

        buyFee.total = buyFee.liquidityFee + buyFee.developerFee + buyFee.burningFee;
 
        // Set Initial Sell Fees -- Base 1000 Set 10 for 1%
        sellFee.liquidityFee = 10; 
        sellFee.developerFee = 0; 
        sellFee.burningFee = 50;

        sellFee.total = sellFee.liquidityFee + sellFee.developerFee + sellFee.burningFee;
 
        // Set Initial Buy, Sell & Wallet Limits -- Base 1000 Set 10 for 1%
        maxBuyPercentage = 60; 
        maxBuyAmount = _totalSupply /1000 * maxBuyPercentage;

        maxSellPercentage = 60; 
        maxSellAmount = _totalSupply /1000 * maxSellPercentage;

        maxWalletPercentage = 60; 
        maxWalletAmount = _totalSupply /1000 * maxWalletPercentage;
 
        // Exclude from fees & limits
        _isLimitless[owner] = _isLimitless[address(this)] = true;
 
        // Mint _totalSupply to owner address
        _balances[owner] = _totalSupply;
        emit Transfer(address(0x0), owner, _totalSupply);
    }
 
 
    ///////////////////////////////////////// -- Setter Functions -- /////////////////////////////////////////
 
        // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerSetLimits(uint256 _maxBuyPercentage, uint256 _maxSellPercentage, uint256 _maxWalletPercentage) external onlyOwner {
        maxBuyPercentage = _maxBuyPercentage;           
        maxBuyAmount = _totalSupply /1000 * maxBuyPercentage;

        maxSellPercentage = _maxSellPercentage;         
        maxSellAmount = _totalSupply /1000 * maxSellPercentage;

        maxWalletPercentage= _maxWalletPercentage;      
        maxWalletAmount = _totalSupply /1000 * maxWalletPercentage;
    }
 
    function ownerSetInitialDistributionFinished() external onlyOwner {
        _initialDistributionFinished = true;
    }
 
    function ownerSetLimitlessAddress(address _addr, bool _status) external onlyOwner {
        _isLimitless[_addr] = _status;
    }
 
    function ownerSetSwapBackSettings(bool _enabled, uint256 _percentageBase1000) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _totalSupply / 1000 * _percentageBase1000;
    }
 
    function ownerSetTargetLiquidity(uint256 target) external onlyOwner {
        targetLiquidity = target;
    }
       // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerUpdateBuyFees (uint256 _liquidityFee, uint256 _developerFee, uint256 _burningFee) external onlyOwner {
        buyFee.liquidityFee = _liquidityFee;
        buyFee.developerFee = _developerFee;
        buyFee.burningFee = _burningFee;
        buyFee.total = buyFee.liquidityFee + buyFee.developerFee + buyFee.burningFee;
    }
        // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerUpdateSellFees (uint256 _liquidityFee, uint256 _developerFee, uint256 _burningFee) external onlyOwner {
        sellFee.liquidityFee = _liquidityFee;
        sellFee.developerFee = _developerFee;
        sellFee.burningFee = _burningFee;
        sellFee.total = sellFee.liquidityFee + sellFee.developerFee + sellFee.burningFee;
    }
        // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerUpdateTransferFee (uint256 _transferFee) external onlyOwner {
        transferFee = _transferFee;
    }
 
    function ownerSetReceivers (address _developer, address _burning) external onlyOwner {
        developerReceiver = _developer;
        burningReceiver = _burning;
    }
 
    function reverseSniper(address sniper) external onlyOwner {
        _blacklisted[sniper] = false;
    }
 
    function addNewMarketMaker(address newAMM) external onlyOwner {
        _automatedMarketMakers[newAMM]=true;
        _isLimitless[newAMM]=true;
    }
 
    function controlAntiSniperMode(bool value) external onlyOwner {
        antiSniperMode = value;
    }
 
    function clearStuckBalance() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(owner).transfer(contractETHBalance);
    }
 
    function clearStuckToken(address _token) public onlyOwner {
        uint256 _contractBalance = ERC20(_token).balanceOf(address(this));
        payable(developerReceiver).transfer(_contractBalance);
    }
    ///////////////////////////////////////// -- Getter Functions -- /////////////////////////////////////////
 
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
    }
 
    function showSniperList() public view returns(address[] memory){
        return sniperList;
    }
 
    function showSniperListLength() public view returns(uint256){
        return sniperList.length;
    }
 
    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy * (balanceOf(pair) * (2)) / (getCirculatingSupply());
    }
 
    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }
 
    ///////////////////////////////////////// -- Internal Functions -- /////////////////////////////////////////
 
    function _transfer(address sender,address recipient,uint256 amount) private {
        require(sender!=address(0)&&recipient!=address(0),"Cannot be address(0).");
        bool isBuy=_automatedMarketMakers[sender];
        bool isSell=_automatedMarketMakers[recipient];
        bool isExcluded=_isLimitless[sender]||_isLimitless[recipient]||_addingLP;
 
        if(isExcluded)_transferExcluded(sender,recipient,amount);
        else { require(_initialDistributionFinished);
            // Punish for Snipers
            if(antiSniperMode)_punishSnipers(sender,recipient,amount);
            // Buy Tokens
            else if(isBuy)_buyTokens(sender,recipient,amount);
            // Sell Tokens
            else if(isSell) {
                // Swap & Liquify
                if (shouldSwapBack()) {swapBack();}
                _sellTokens(sender,recipient,amount);
            } else {
                // P2P Transfer
                require(!_blacklisted[sender]&&!_blacklisted[recipient]);
                require(balanceOf(recipient)+amount<=maxWalletAmount, "Total amount exceed wallet limit");
                _P2PTransfer(sender,recipient,amount);
            }
        }
    }
 
    function _punishSnipers(address sender,address recipient,uint256 amount) private {
        require(!_blacklisted[recipient]);
        require(amount <= maxBuyAmount, "Buy exceeds limit");
        tokenTax = amount*90/100;
        _blacklisted[recipient]=true;
        sniperList.push(address(recipient));
        _transferIncluded(sender,recipient,amount,tokenTax);
    }
 
    function _buyTokens(address sender,address recipient,uint256 amount) private {
        require(!_blacklisted[recipient]);
        require(amount <= maxBuyAmount, "Buy exceeds limit");
        require(balanceOf(recipient)+amount<=maxWalletAmount, "Total amount exceed wallet limit");
        if(!_whitelisted[recipient]){
        tokenTax = amount*buyFee.total/1000;}
        else tokenTax = 0;
        _transferIncluded(sender,recipient,amount,tokenTax);
    }
    function _sellTokens(address sender,address recipient,uint256 amount) private {
        require(!_blacklisted[sender]);
        require(amount <= maxSellAmount);
        if(!_whitelisted[sender]){
        tokenTax = amount*sellFee.total/1000;}
        else tokenTax = 0;
        _transferIncluded(sender,recipient,amount,tokenTax);
    }
 
    function _P2PTransfer(address sender,address recipient,uint256 amount) private {
        tokenTax = amount * transferFee/1000;
        if( tokenTax > 0) {_transferIncluded(sender,recipient,amount,tokenTax);}
        else {_transferExcluded(sender,recipient,amount);}
    }
 
    function _transferExcluded(address sender,address recipient,uint256 amount) private {
        _updateBalance(sender,_balances[sender]-amount);
        _updateBalance(recipient,_balances[recipient]+amount);
        emit Transfer(sender,recipient,amount);
    }
 
    function _transferIncluded(address sender,address recipient,uint256 amount,uint256 taxAmount) private {
        uint256 newAmount = amount-tokenTax;
        _updateBalance(sender,_balances[sender]-amount);
        _updateBalance(address(this),_balances[address(this)]+taxAmount);
        _updateBalance(recipient,_balances[recipient]+newAmount);
        emit Transfer(sender,recipient,newAmount);
        emit Transfer(sender,address(this),taxAmount);
    }
 
    function _updateBalance(address account,uint256 newBalance) private {
        _balances[account] = newBalance;
    }
 
    function shouldSwapBack() private view returns (bool) {
        return
            !inSwap &&
            swapEnabled &&
            _balances[address(this)] >= swapThreshold;
    }   
 
    function swapBack() private swapping {
        uint256 toSwap = balanceOf(address(this));
 
        uint256 totalLPTokens=toSwap*(sellFee.liquidityFee + buyFee.liquidityFee)/(sellFee.total + buyFee.total);
        uint256 tokensLeft=toSwap-totalLPTokens;
        uint256 LPTokens=totalLPTokens/2;
        uint256 LPETHTokens=totalLPTokens-LPTokens;
        toSwap=tokensLeft+LPETHTokens;
        uint256 oldETH=address(this).balance;
        _swapTokensForETH(toSwap);
        uint256 newETH=address(this).balance-oldETH;
        uint256 LPETH=(newETH*LPETHTokens)/toSwap;
        _addLiquidity(LPTokens,LPETH);
        uint256 remainingETH=address(this).balance-oldETH;
        _distributeETH(remainingETH);
    }
 
    function _distributeETH(uint256 remainingETH) private {
        uint256 burningFee = (buyFee.burningFee + sellFee.burningFee);
        uint256 developerFee = (buyFee.developerFee + sellFee.developerFee);
        uint256 totalFee = (burningFee + developerFee);
 
        uint256 amountETHburning = remainingETH * (burningFee) / (totalFee);
        uint256 amountETHdeveloper = remainingETH * (developerFee) / (totalFee);
 
        if(amountETHdeveloper > 0){
        (bool developerSuccess, /* bytes memory data */) = payable(developerReceiver).call{value: amountETHdeveloper, gas: 30000}("");
        require(developerSuccess, "receiver rejected ETH transfer"); }
 
        if(amountETHburning > 0){
        (bool burningSuccess, /* bytes memory data */) = payable(burningReceiver).call{value: amountETHburning, gas: 30000}("");
        require(burningSuccess, "receiver rejected ETH transfer"); }
    }
 
    function _swapTokensForETH(uint256 amount) private {
        address[] memory path=new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function _addLiquidity(uint256 amountTokens,uint256 amountETH) private {
        _addingLP=true;
        router.addLiquidityETH{value: amountETH}(
            address(this),
            amountTokens,
            0,
            0,
            developerReceiver,
            block.timestamp
        );
        _addingLP=false;
    }
 
/**
 * IERC20
 */
 
    receive() external payable { }
 
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account];}
    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 transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
 
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        uint256 allowance_ = _allowances[sender][msg.sender];
        require(allowance_ >= amount);
 
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        _transfer(sender, recipient, amount);
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_automatedMarketMakers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_exchangeRouterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAMM","type":"address"}],"name":"addNewMarketMaker","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":"antiSniperMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burningReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"developerFee","type":"uint256"},{"internalType":"uint256","name":"burningFee","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"controlAntiSniperMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developerReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"ownerSetInitialDistributionFinished","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ownerSetLimitlessAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuyPercentage","type":"uint256"},{"internalType":"uint256","name":"_maxSellPercentage","type":"uint256"},{"internalType":"uint256","name":"_maxWalletPercentage","type":"uint256"}],"name":"ownerSetLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_developer","type":"address"},{"internalType":"address","name":"_burning","type":"address"}],"name":"ownerSetReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_percentageBase1000","type":"uint256"}],"name":"ownerSetSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"}],"name":"ownerSetTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_developerFee","type":"uint256"},{"internalType":"uint256","name":"_burningFee","type":"uint256"}],"name":"ownerUpdateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_developerFee","type":"uint256"},{"internalType":"uint256","name":"_burningFee","type":"uint256"}],"name":"ownerUpdateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"ownerUpdateTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"reverseSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"developerFee","type":"uint256"},{"internalType":"uint256","name":"burningFee","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSniperList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSniperListLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a620000149190620009bc565b633b9aca0062000025919062000a0d565b6008556032601255737a250d5630b4cf539739df2c5dacb4c659f2488d601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601f60146101000a81548160ff0219169083151502179055506001601f60186101000a81548160ff0219169083151502179055506103e86008546200014c919062000a9d565b6020553480156200015c57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000270573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000296919062000b3f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200031f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000345919062000b3f565b306040518363ffffffff1660e01b81526004016200036592919062000b82565b6020604051808303816000875af115801562000385573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ab919062000b3f565b601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a6013600001819055506000601360010181905550603260136002018190555060136002015460136001015460136000015462000567919062000baf565b62000573919062000baf565b601360030181905550600a60176000018190555060006017600101819055506032601760020181905550601760020154601760010154601760000154620005bb919062000baf565b620005c7919062000baf565b601760030181905550603c6009819055506009546103e8600854620005ed919062000a9d565b620005f9919062000a0d565b600c81905550603c600a81905550600a546103e86008546200061c919062000a9d565b62000628919062000a0d565b600d81905550603c600b81905550600b546103e86008546200064b919062000a9d565b62000657919062000a0d565b600e819055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600854600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60085460405162000814919062000c1d565b60405180910390a362000c3a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620008b05780860481111562000888576200088762000822565b5b6001851615620008985780820291505b8081029050620008a88562000851565b945062000868565b94509492505050565b600082620008cb57600190506200099e565b81620008db57600090506200099e565b8160018114620008f45760028114620008ff5762000935565b60019150506200099e565b60ff84111562000914576200091362000822565b5b8360020a9150848211156200092e576200092d62000822565b5b506200099e565b5060208310610133831016604e8410600b84101617156200096f5782820a90508381111562000969576200096862000822565b5b6200099e565b6200097e84848460016200085e565b9250905081840481111562000998576200099762000822565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009c982620009a5565b9150620009d683620009af565b925062000a057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008b9565b905092915050565b600062000a1a82620009a5565b915062000a2783620009a5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a635762000a6262000822565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000aaa82620009a5565b915062000ab783620009a5565b92508262000aca5762000ac962000a6e565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b078262000ada565b9050919050565b62000b198162000afa565b811462000b2557600080fd5b50565b60008151905062000b398162000b0e565b92915050565b60006020828403121562000b585762000b5762000ad5565b5b600062000b688482850162000b28565b91505092915050565b62000b7c8162000afa565b82525050565b600060408201905062000b99600083018562000b71565b62000ba8602083018462000b71565b9392505050565b600062000bbc82620009a5565b915062000bc983620009a5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c015762000c0062000822565b5b828201905092915050565b62000c1781620009a5565b82525050565b600060208201905062000c34600083018462000c0c565b92915050565b613d6d8062000c4a6000396000f3fe6080604052600436106102815760003560e01c80636ddd17131161014f5780639be953b3116100c1578063dca3cef11161007a578063dca3cef11461099d578063dd62ed3e146109c6578063e065099714610a03578063e5a772d214610a2e578063f2fde38b14610a57578063f887ea4014610a8057610288565b80639be953b31461087b578063a8aa1b31146108a4578063a9059cbb146108cf578063b46ba24b1461090c578063b704a9f614610935578063d51ed1c81461096057610288565b806387cfc4931161011357806387cfc4931461077f578063893d20e8146107a85780638ca42e4e146107d35780638ee41ca8146107fc57806391c10f071461082557806395d89b411461085057610288565b80636ddd17131461069a57806370a08231146106c5578063715018a6146107025780637a6d69b41461071957806383bd84851461075657610288565b80632f54bf6e116101f357806352aae9dd116101ac57806352aae9dd1461059c57806353cd6210146105c5578063599ca397146105f057806359d3cac21461061b5780636390aeeb146106445780636dc53a0a1461066f57610288565b80632f54bf6e146104af578063313ce567146104ec578063364333f414610517578063470624021461052e57806347375a371461055c5780634c5d87101461057357610288565b806318160ddd1161024557806318160ddd146103985780631ca0b1d0146103c357806323b872dd146103ee5780632b112e491461042b5780632b14ca56146104565780632d3b40471461048457610288565b806306fdde031461028d578063095ea7b3146102b85780630c5b1d93146102f55780630cb23d861461031e5780631161ae391461035b57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610aab565b6040516102af91906130f1565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906131ac565b610ae8565b6040516102ec9190613207565b60405180910390f35b34801561030157600080fd5b5061031c6004803603810190610317919061324e565b610bda565b005b34801561032a57600080fd5b506103456004803603810190610340919061328e565b610c7d565b6040516103529190613207565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d91906132bb565b610c9d565b60405161038f9190613207565b60405180910390f35b3480156103a457600080fd5b506103ad610cb2565b6040516103ba919061330a565b60405180910390f35b3480156103cf57600080fd5b506103d8610cbc565b6040516103e591906133e3565b60405180910390f35b3480156103fa57600080fd5b5061041560048036038101906104109190613405565b610d4a565b6040516104229190613207565b60405180910390f35b34801561043757600080fd5b50610440610f9c565b60405161044d919061330a565b60405180910390f35b34801561046257600080fd5b5061046b610fcf565b60405161047b9493929190613458565b60405180910390f35b34801561049057600080fd5b50610499610fed565b6040516104a691906134ac565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d1919061328e565b611013565b6040516104e39190613207565b60405180910390f35b3480156104f857600080fd5b5061050161106c565b60405161050e91906134e3565b60405180910390f35b34801561052357600080fd5b5061052c611075565b005b34801561053a57600080fd5b5061054361112c565b6040516105539493929190613458565b60405180910390f35b34801561056857600080fd5b5061057161114a565b005b34801561057f57600080fd5b5061059a600480360381019061059591906134fe565b6111af565b005b3480156105a857600080fd5b506105c360048036038101906105be9190613551565b61127a565b005b3480156105d157600080fd5b506105da6112cc565b6040516105e79190613207565b60405180910390f35b3480156105fc57600080fd5b506106056112df565b604051610612919061330a565b60405180910390f35b34801561062757600080fd5b50610642600480360381019061063d91906134fe565b6112e5565b005b34801561065057600080fd5b5061065961137f565b604051610666919061330a565b60405180910390f35b34801561067b57600080fd5b5061068461138c565b60405161069191906134ac565b60405180910390f35b3480156106a657600080fd5b506106af6113b2565b6040516106bc9190613207565b60405180910390f35b3480156106d157600080fd5b506106ec60048036038101906106e7919061328e565b6113c5565b6040516106f9919061330a565b60405180910390f35b34801561070e57600080fd5b5061071761140e565b005b34801561072557600080fd5b50610740600480360381019061073b919061328e565b611514565b60405161074d9190613207565b60405180910390f35b34801561076257600080fd5b5061077d6004803603810190610778919061357e565b611534565b005b34801561078b57600080fd5b506107a660048036038101906107a1919061328e565b611599565b005b3480156107b457600080fd5b506107bd61163c565b6040516107ca91906134ac565b60405180910390f35b3480156107df57600080fd5b506107fa60048036038101906107f59190613551565b611665565b005b34801561080857600080fd5b50610823600480360381019061081e91906135ab565b6116b7565b005b34801561083157600080fd5b5061083a61173e565b60405161084791906134ac565b60405180910390f35b34801561085c57600080fd5b50610865611764565b60405161087291906130f1565b60405180910390f35b34801561088757600080fd5b506108a2600480360381019061089d919061328e565b6117a1565b005b3480156108b057600080fd5b506108b96118d4565b6040516108c691906134ac565b60405180910390f35b3480156108db57600080fd5b506108f660048036038101906108f191906131ac565b6118fa565b6040516109039190613207565b60405180910390f35b34801561091857600080fd5b50610933600480360381019061092e91906134fe565b611911565b005b34801561094157600080fd5b5061094a6119ab565b604051610957919061330a565b60405180910390f35b34801561096c57600080fd5b5061098760048036038101906109829190613551565b6119b1565b604051610994919061330a565b60405180910390f35b3480156109a957600080fd5b506109c460048036038101906109bf91906135eb565b611a0e565b005b3480156109d257600080fd5b506109ed60048036038101906109e891906135eb565b611adc565b6040516109fa919061330a565b60405180910390f35b348015610a0f57600080fd5b50610a18611b63565b604051610a25919061330a565b60405180910390f35b348015610a3a57600080fd5b50610a556004803603810190610a50919061328e565b611b69565b005b348015610a6357600080fd5b50610a7e6004803603810190610a79919061328e565b611c64565b005b348015610a8c57600080fd5b50610a95611dd9565b604051610aa2919061368a565b60405180910390f35b60606040518060400160405280600981526020017f426561724275726e730000000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bc8919061330a565b60405180910390a36001905092915050565b610be333611013565b610c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c19906136f1565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60046020528060005260406000206000915054906101000a900460ff1681565b600082610ca9836119b1565b11905092915050565b6000600854905090565b6060600f805480602002602001604051908101604052809291908181526020018280548015610d4057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610cf6575b5050505050905090565b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dd957600080fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f855782600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f049190613740565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f90858585611dff565b60019150509392505050565b6000610fa860006113c5565b610fb361dead6113c5565b600854610fc09190613740565b610fca9190613740565b905090565b60178060000154908060010154908060020154908060030154905084565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b61107e33611013565b6110bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b4906136f1565b60405180910390fd5b600047905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611128573d6000803e3d6000fd5b5050565b60138060000154908060010154908060020154908060030154905084565b61115333611013565b611192576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611189906136f1565b60405180910390fd5b6001601f60176101000a81548160ff021916908315150217905550565b6111b833611013565b6111f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ee906136f1565b60405180910390fd5b826009819055506009546103e860085461121191906137a3565b61121b91906137d4565b600c8190555081600a81905550600a546103e860085461123b91906137a3565b61124591906137d4565b600d8190555080600b81905550600b546103e860085461126591906137a3565b61126f91906137d4565b600e81905550505050565b61128333611013565b6112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b9906136f1565b60405180910390fd5b8060128190555050565b601f60149054906101000a900460ff1681565b600b5481565b6112ee33611013565b61132d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611324906136f1565b60405180910390fd5b826017600001819055508160176001018190555080601760020181905550601760020154601760010154601760000154611367919061382e565b611371919061382e565b601760030181905550505050565b6000600f80549050905090565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60189054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61141733611013565b611456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144d906136f1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60026020528060005260406000206000915054906101000a900460ff1681565b61153d33611013565b61157c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611573906136f1565b60405180910390fd5b80601f60146101000a81548160ff02191690831515021790555050565b6115a233611013565b6115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d8906136f1565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61166e33611013565b6116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a4906136f1565b60405180910390fd5b8060118190555050565b6116c033611013565b6116ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f6906136f1565b60405180910390fd5b81601f60186101000a81548160ff021916908315150217905550806103e860085461172a91906137a3565b61173491906137d4565b6020819055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600981526020017f424541524255524e530000000000000000000000000000000000000000000000815250905090565b6117aa33611013565b6117e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e0906136f1565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161182491906134ac565b602060405180830381865afa158015611841573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118659190613899565b9050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156118cf573d6000803e3d6000fd5b505050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611907338484611dff565b6001905092915050565b61191a33611013565b611959576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611950906136f1565b60405180910390fd5b826013600001819055508160136001018190555080601360020181905550601360020154601360010154601360000154611993919061382e565b61199d919061382e565b601360030181905550505050565b600a5481565b60006119bb610f9c565b60026119e8601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113c5565b6119f291906137d4565b836119fd91906137d4565b611a0791906137a3565b9050919050565b611a1733611013565b611a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4d906136f1565b60405180910390fd5b81601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b611b7233611013565b611bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba8906136f1565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611c6d33611013565b611cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca3906136f1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1390613938565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e695750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9f906139a4565b60405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611fed5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120045750601f60159054906101000a900460ff165b9050801561201c576120178686866121b8565b6121b0565b601f60179054906101000a900460ff1661203557600080fd5b601f60149054906101000a900460ff161561205a576120558686866122ca565b6121af565b82156120705761206b868686612453565b6121ae565b811561209c5761207e6125dd565b1561208c5761208b61265a565b5b612097868686612788565b6121ad565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121405750600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61214957600080fd5b600e5484612156876113c5565b612160919061382e565b11156121a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219890613a10565b60405180910390fd5b6121ac868686612884565b5b5b5b5b505050505050565b61220c8382600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122079190613740565b6128d4565b6122608282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225b919061382e565b6128d4565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122bd919061330a565b60405180910390a3505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561232157600080fd5b600c54811115612366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235d90613a7c565b60405180910390fd5b6064605a8261237591906137d4565b61237f91906137a3565b6010819055506001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600f829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061244e83838360105461291c565b505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124aa57600080fd5b600c548111156124ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e690613a7c565b60405180910390fd5b600e54816124fc846113c5565b612506919061382e565b1115612547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253e90613a10565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125c1576103e8601360030154826125ac91906137d4565b6125b691906137a3565b6010819055506125ca565b60006010819055505b6125d883838360105461291c565b505050565b6000601f60169054906101000a900460ff161580156126085750601f60189054906101000a900460ff165b80156126555750602054600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601f60166101000a81548160ff0219169083151502179055506000612680306113c5565b9050600060136003015460176003015461269a919061382e565b6013600001546017600001546126b0919061382e565b836126bb91906137d4565b6126c591906137a3565b9050600081836126d59190613740565b905060006002836126e691906137a3565b9050600081846126f69190613740565b90508083612704919061382e565b9450600047905061271486612afb565b600081476127229190613740565b9050600087848361273391906137d4565b61273d91906137a3565b90506127498582612d11565b600083476127579190613740565b905061276281612e1a565b5050505050505050506000601f60166101000a81548160ff021916908315150217905550565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127df57600080fd5b600d548111156127ee57600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612868576103e86017600301548261285391906137d4565b61285d91906137a3565b601081905550612871565b60006010819055505b61287f83838360105461291c565b505050565b6103e86011548261289591906137d4565b61289f91906137a3565b601081905550600060105411156128c3576128be83838360105461291c565b6128cf565b6128ce8383836121b8565b5b505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60006010548361292c9190613740565b90506129828584600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297d9190613740565b6128d4565b6129d63083600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129d1919061382e565b6128d4565b612a2a8482600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a25919061382e565b6128d4565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a87919061330a565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612aec919061330a565b60405180910390a35050505050565b6000600267ffffffffffffffff811115612b1857612b17613a9c565b5b604051908082528060200260200182016040528015612b465781602001602082028036833780820191505090505b5090503081600081518110612b5e57612b5d613acb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c299190613b0f565b81600181518110612c3d57612c3c613acb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612cdb959493929190613b77565b600060405180830381600087803b158015612cf557600080fd5b505af1158015612d09573d6000803e3d6000fd5b505050505050565b6001601f60156101000a81548160ff021916908315150217905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612db596959493929190613bd1565b60606040518083038185885af1158015612dd3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612df89190613c32565b5050506000601f60156101000a81548160ff0219169083151502179055505050565b6000601760020154601360020154612e32919061382e565b90506000601760010154601360010154612e4c919061382e565b905060008183612e5c919061382e565b90506000818486612e6d91906137d4565b612e7791906137a3565b90506000828487612e8891906137d4565b612e9291906137a3565b90506000811115612f72576000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612ee990613cb6565b600060405180830381858888f193505050503d8060008114612f27576040519150601f19603f3d011682016040523d82523d6000602084013e612f2c565b606091505b5050905080612f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6790613d17565b60405180910390fd5b505b6000821115613050576000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051612fc790613cb6565b600060405180830381858888f193505050503d8060008114613005576040519150601f19603f3d011682016040523d82523d6000602084013e61300a565b606091505b505090508061304e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161304590613d17565b60405180910390fd5b505b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613092578082015181840152602081019050613077565b838111156130a1576000848401525b50505050565b6000601f19601f8301169050919050565b60006130c382613058565b6130cd8185613063565b93506130dd818560208601613074565b6130e6816130a7565b840191505092915050565b6000602082019050818103600083015261310b81846130b8565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061314382613118565b9050919050565b61315381613138565b811461315e57600080fd5b50565b6000813590506131708161314a565b92915050565b6000819050919050565b61318981613176565b811461319457600080fd5b50565b6000813590506131a681613180565b92915050565b600080604083850312156131c3576131c2613113565b5b60006131d185828601613161565b92505060206131e285828601613197565b9150509250929050565b60008115159050919050565b613201816131ec565b82525050565b600060208201905061321c60008301846131f8565b92915050565b61322b816131ec565b811461323657600080fd5b50565b60008135905061324881613222565b92915050565b6000806040838503121561326557613264613113565b5b600061327385828601613161565b925050602061328485828601613239565b9150509250929050565b6000602082840312156132a4576132a3613113565b5b60006132b284828501613161565b91505092915050565b600080604083850312156132d2576132d1613113565b5b60006132e085828601613197565b92505060206132f185828601613197565b9150509250929050565b61330481613176565b82525050565b600060208201905061331f60008301846132fb565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61335a81613138565b82525050565b600061336c8383613351565b60208301905092915050565b6000602082019050919050565b600061339082613325565b61339a8185613330565b93506133a583613341565b8060005b838110156133d65781516133bd8882613360565b97506133c883613378565b9250506001810190506133a9565b5085935050505092915050565b600060208201905081810360008301526133fd8184613385565b905092915050565b60008060006060848603121561341e5761341d613113565b5b600061342c86828701613161565b935050602061343d86828701613161565b925050604061344e86828701613197565b9150509250925092565b600060808201905061346d60008301876132fb565b61347a60208301866132fb565b61348760408301856132fb565b61349460608301846132fb565b95945050505050565b6134a681613138565b82525050565b60006020820190506134c1600083018461349d565b92915050565b600060ff82169050919050565b6134dd816134c7565b82525050565b60006020820190506134f860008301846134d4565b92915050565b60008060006060848603121561351757613516613113565b5b600061352586828701613197565b935050602061353686828701613197565b925050604061354786828701613197565b9150509250925092565b60006020828403121561356757613566613113565b5b600061357584828501613197565b91505092915050565b60006020828403121561359457613593613113565b5b60006135a284828501613239565b91505092915050565b600080604083850312156135c2576135c1613113565b5b60006135d085828601613239565b92505060206135e185828601613197565b9150509250929050565b6000806040838503121561360257613601613113565b5b600061361085828601613161565b925050602061362185828601613161565b9150509250929050565b6000819050919050565b600061365061364b61364684613118565b61362b565b613118565b9050919050565b600061366282613635565b9050919050565b600061367482613657565b9050919050565b61368481613669565b82525050565b600060208201905061369f600083018461367b565b92915050565b7f21594f5520415245204e4f5420544845204f574e455200000000000000000000600082015250565b60006136db601683613063565b91506136e6826136a5565b602082019050919050565b6000602082019050818103600083015261370a816136ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061374b82613176565b915061375683613176565b92508282101561376957613768613711565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137ae82613176565b91506137b983613176565b9250826137c9576137c8613774565b5b828204905092915050565b60006137df82613176565b91506137ea83613176565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561382357613822613711565b5b828202905092915050565b600061383982613176565b915061384483613176565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561387957613878613711565b5b828201905092915050565b60008151905061389381613180565b92915050565b6000602082840312156138af576138ae613113565b5b60006138bd84828501613884565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613922602683613063565b915061392d826138c6565b604082019050919050565b6000602082019050818103600083015261395181613915565b9050919050565b7f43616e6e6f7420626520616464726573732830292e0000000000000000000000600082015250565b600061398e601583613063565b915061399982613958565b602082019050919050565b600060208201905081810360008301526139bd81613981565b9050919050565b7f546f74616c20616d6f756e74206578636565642077616c6c6574206c696d6974600082015250565b60006139fa602083613063565b9150613a05826139c4565b602082019050919050565b60006020820190508181036000830152613a29816139ed565b9050919050565b7f4275792065786365656473206c696d6974000000000000000000000000000000600082015250565b6000613a66601183613063565b9150613a7182613a30565b602082019050919050565b60006020820190508181036000830152613a9581613a59565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613b098161314a565b92915050565b600060208284031215613b2557613b24613113565b5b6000613b3384828501613afa565b91505092915050565b6000819050919050565b6000613b61613b5c613b5784613b3c565b61362b565b613176565b9050919050565b613b7181613b46565b82525050565b600060a082019050613b8c60008301886132fb565b613b996020830187613b68565b8181036040830152613bab8186613385565b9050613bba606083018561349d565b613bc760808301846132fb565b9695505050505050565b600060c082019050613be6600083018961349d565b613bf360208301886132fb565b613c006040830187613b68565b613c0d6060830186613b68565b613c1a608083018561349d565b613c2760a08301846132fb565b979650505050505050565b600080600060608486031215613c4b57613c4a613113565b5b6000613c5986828701613884565b9350506020613c6a86828701613884565b9250506040613c7b86828701613884565b9150509250925092565b600081905092915050565b50565b6000613ca0600083613c85565b9150613cab82613c90565b600082019050919050565b6000613cc182613c93565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000613d01601e83613063565b9150613d0c82613ccb565b602082019050919050565b60006020820190508181036000830152613d3081613cf4565b905091905056fea26469706673582212208b29359e60b03a40414c788ddead7a7e1c6064353bda573b8f9d84c03eb6572364736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106102815760003560e01c80636ddd17131161014f5780639be953b3116100c1578063dca3cef11161007a578063dca3cef11461099d578063dd62ed3e146109c6578063e065099714610a03578063e5a772d214610a2e578063f2fde38b14610a57578063f887ea4014610a8057610288565b80639be953b31461087b578063a8aa1b31146108a4578063a9059cbb146108cf578063b46ba24b1461090c578063b704a9f614610935578063d51ed1c81461096057610288565b806387cfc4931161011357806387cfc4931461077f578063893d20e8146107a85780638ca42e4e146107d35780638ee41ca8146107fc57806391c10f071461082557806395d89b411461085057610288565b80636ddd17131461069a57806370a08231146106c5578063715018a6146107025780637a6d69b41461071957806383bd84851461075657610288565b80632f54bf6e116101f357806352aae9dd116101ac57806352aae9dd1461059c57806353cd6210146105c5578063599ca397146105f057806359d3cac21461061b5780636390aeeb146106445780636dc53a0a1461066f57610288565b80632f54bf6e146104af578063313ce567146104ec578063364333f414610517578063470624021461052e57806347375a371461055c5780634c5d87101461057357610288565b806318160ddd1161024557806318160ddd146103985780631ca0b1d0146103c357806323b872dd146103ee5780632b112e491461042b5780632b14ca56146104565780632d3b40471461048457610288565b806306fdde031461028d578063095ea7b3146102b85780630c5b1d93146102f55780630cb23d861461031e5780631161ae391461035b57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610aab565b6040516102af91906130f1565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906131ac565b610ae8565b6040516102ec9190613207565b60405180910390f35b34801561030157600080fd5b5061031c6004803603810190610317919061324e565b610bda565b005b34801561032a57600080fd5b506103456004803603810190610340919061328e565b610c7d565b6040516103529190613207565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d91906132bb565b610c9d565b60405161038f9190613207565b60405180910390f35b3480156103a457600080fd5b506103ad610cb2565b6040516103ba919061330a565b60405180910390f35b3480156103cf57600080fd5b506103d8610cbc565b6040516103e591906133e3565b60405180910390f35b3480156103fa57600080fd5b5061041560048036038101906104109190613405565b610d4a565b6040516104229190613207565b60405180910390f35b34801561043757600080fd5b50610440610f9c565b60405161044d919061330a565b60405180910390f35b34801561046257600080fd5b5061046b610fcf565b60405161047b9493929190613458565b60405180910390f35b34801561049057600080fd5b50610499610fed565b6040516104a691906134ac565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d1919061328e565b611013565b6040516104e39190613207565b60405180910390f35b3480156104f857600080fd5b5061050161106c565b60405161050e91906134e3565b60405180910390f35b34801561052357600080fd5b5061052c611075565b005b34801561053a57600080fd5b5061054361112c565b6040516105539493929190613458565b60405180910390f35b34801561056857600080fd5b5061057161114a565b005b34801561057f57600080fd5b5061059a600480360381019061059591906134fe565b6111af565b005b3480156105a857600080fd5b506105c360048036038101906105be9190613551565b61127a565b005b3480156105d157600080fd5b506105da6112cc565b6040516105e79190613207565b60405180910390f35b3480156105fc57600080fd5b506106056112df565b604051610612919061330a565b60405180910390f35b34801561062757600080fd5b50610642600480360381019061063d91906134fe565b6112e5565b005b34801561065057600080fd5b5061065961137f565b604051610666919061330a565b60405180910390f35b34801561067b57600080fd5b5061068461138c565b60405161069191906134ac565b60405180910390f35b3480156106a657600080fd5b506106af6113b2565b6040516106bc9190613207565b60405180910390f35b3480156106d157600080fd5b506106ec60048036038101906106e7919061328e565b6113c5565b6040516106f9919061330a565b60405180910390f35b34801561070e57600080fd5b5061071761140e565b005b34801561072557600080fd5b50610740600480360381019061073b919061328e565b611514565b60405161074d9190613207565b60405180910390f35b34801561076257600080fd5b5061077d6004803603810190610778919061357e565b611534565b005b34801561078b57600080fd5b506107a660048036038101906107a1919061328e565b611599565b005b3480156107b457600080fd5b506107bd61163c565b6040516107ca91906134ac565b60405180910390f35b3480156107df57600080fd5b506107fa60048036038101906107f59190613551565b611665565b005b34801561080857600080fd5b50610823600480360381019061081e91906135ab565b6116b7565b005b34801561083157600080fd5b5061083a61173e565b60405161084791906134ac565b60405180910390f35b34801561085c57600080fd5b50610865611764565b60405161087291906130f1565b60405180910390f35b34801561088757600080fd5b506108a2600480360381019061089d919061328e565b6117a1565b005b3480156108b057600080fd5b506108b96118d4565b6040516108c691906134ac565b60405180910390f35b3480156108db57600080fd5b506108f660048036038101906108f191906131ac565b6118fa565b6040516109039190613207565b60405180910390f35b34801561091857600080fd5b50610933600480360381019061092e91906134fe565b611911565b005b34801561094157600080fd5b5061094a6119ab565b604051610957919061330a565b60405180910390f35b34801561096c57600080fd5b5061098760048036038101906109829190613551565b6119b1565b604051610994919061330a565b60405180910390f35b3480156109a957600080fd5b506109c460048036038101906109bf91906135eb565b611a0e565b005b3480156109d257600080fd5b506109ed60048036038101906109e891906135eb565b611adc565b6040516109fa919061330a565b60405180910390f35b348015610a0f57600080fd5b50610a18611b63565b604051610a25919061330a565b60405180910390f35b348015610a3a57600080fd5b50610a556004803603810190610a50919061328e565b611b69565b005b348015610a6357600080fd5b50610a7e6004803603810190610a79919061328e565b611c64565b005b348015610a8c57600080fd5b50610a95611dd9565b604051610aa2919061368a565b60405180910390f35b60606040518060400160405280600981526020017f426561724275726e730000000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bc8919061330a565b60405180910390a36001905092915050565b610be333611013565b610c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c19906136f1565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60046020528060005260406000206000915054906101000a900460ff1681565b600082610ca9836119b1565b11905092915050565b6000600854905090565b6060600f805480602002602001604051908101604052809291908181526020018280548015610d4057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610cf6575b5050505050905090565b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dd957600080fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f855782600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f049190613740565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f90858585611dff565b60019150509392505050565b6000610fa860006113c5565b610fb361dead6113c5565b600854610fc09190613740565b610fca9190613740565b905090565b60178060000154908060010154908060020154908060030154905084565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b61107e33611013565b6110bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b4906136f1565b60405180910390fd5b600047905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611128573d6000803e3d6000fd5b5050565b60138060000154908060010154908060020154908060030154905084565b61115333611013565b611192576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611189906136f1565b60405180910390fd5b6001601f60176101000a81548160ff021916908315150217905550565b6111b833611013565b6111f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ee906136f1565b60405180910390fd5b826009819055506009546103e860085461121191906137a3565b61121b91906137d4565b600c8190555081600a81905550600a546103e860085461123b91906137a3565b61124591906137d4565b600d8190555080600b81905550600b546103e860085461126591906137a3565b61126f91906137d4565b600e81905550505050565b61128333611013565b6112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b9906136f1565b60405180910390fd5b8060128190555050565b601f60149054906101000a900460ff1681565b600b5481565b6112ee33611013565b61132d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611324906136f1565b60405180910390fd5b826017600001819055508160176001018190555080601760020181905550601760020154601760010154601760000154611367919061382e565b611371919061382e565b601760030181905550505050565b6000600f80549050905090565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60189054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61141733611013565b611456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144d906136f1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60026020528060005260406000206000915054906101000a900460ff1681565b61153d33611013565b61157c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611573906136f1565b60405180910390fd5b80601f60146101000a81548160ff02191690831515021790555050565b6115a233611013565b6115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d8906136f1565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61166e33611013565b6116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a4906136f1565b60405180910390fd5b8060118190555050565b6116c033611013565b6116ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f6906136f1565b60405180910390fd5b81601f60186101000a81548160ff021916908315150217905550806103e860085461172a91906137a3565b61173491906137d4565b6020819055505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600981526020017f424541524255524e530000000000000000000000000000000000000000000000815250905090565b6117aa33611013565b6117e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e0906136f1565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161182491906134ac565b602060405180830381865afa158015611841573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118659190613899565b9050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156118cf573d6000803e3d6000fd5b505050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611907338484611dff565b6001905092915050565b61191a33611013565b611959576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611950906136f1565b60405180910390fd5b826013600001819055508160136001018190555080601360020181905550601360020154601360010154601360000154611993919061382e565b61199d919061382e565b601360030181905550505050565b600a5481565b60006119bb610f9c565b60026119e8601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113c5565b6119f291906137d4565b836119fd91906137d4565b611a0791906137a3565b9050919050565b611a1733611013565b611a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4d906136f1565b60405180910390fd5b81601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b611b7233611013565b611bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba8906136f1565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611c6d33611013565b611cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca3906136f1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1390613938565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e695750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9f906139a4565b60405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611fed5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120045750601f60159054906101000a900460ff165b9050801561201c576120178686866121b8565b6121b0565b601f60179054906101000a900460ff1661203557600080fd5b601f60149054906101000a900460ff161561205a576120558686866122ca565b6121af565b82156120705761206b868686612453565b6121ae565b811561209c5761207e6125dd565b1561208c5761208b61265a565b5b612097868686612788565b6121ad565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121405750600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61214957600080fd5b600e5484612156876113c5565b612160919061382e565b11156121a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219890613a10565b60405180910390fd5b6121ac868686612884565b5b5b5b5b505050505050565b61220c8382600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122079190613740565b6128d4565b6122608282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225b919061382e565b6128d4565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122bd919061330a565b60405180910390a3505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561232157600080fd5b600c54811115612366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235d90613a7c565b60405180910390fd5b6064605a8261237591906137d4565b61237f91906137a3565b6010819055506001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600f829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061244e83838360105461291c565b505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124aa57600080fd5b600c548111156124ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e690613a7c565b60405180910390fd5b600e54816124fc846113c5565b612506919061382e565b1115612547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253e90613a10565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125c1576103e8601360030154826125ac91906137d4565b6125b691906137a3565b6010819055506125ca565b60006010819055505b6125d883838360105461291c565b505050565b6000601f60169054906101000a900460ff161580156126085750601f60189054906101000a900460ff165b80156126555750602054600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601f60166101000a81548160ff0219169083151502179055506000612680306113c5565b9050600060136003015460176003015461269a919061382e565b6013600001546017600001546126b0919061382e565b836126bb91906137d4565b6126c591906137a3565b9050600081836126d59190613740565b905060006002836126e691906137a3565b9050600081846126f69190613740565b90508083612704919061382e565b9450600047905061271486612afb565b600081476127229190613740565b9050600087848361273391906137d4565b61273d91906137a3565b90506127498582612d11565b600083476127579190613740565b905061276281612e1a565b5050505050505050506000601f60166101000a81548160ff021916908315150217905550565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127df57600080fd5b600d548111156127ee57600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612868576103e86017600301548261285391906137d4565b61285d91906137a3565b601081905550612871565b60006010819055505b61287f83838360105461291c565b505050565b6103e86011548261289591906137d4565b61289f91906137a3565b601081905550600060105411156128c3576128be83838360105461291c565b6128cf565b6128ce8383836121b8565b5b505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60006010548361292c9190613740565b90506129828584600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297d9190613740565b6128d4565b6129d63083600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129d1919061382e565b6128d4565b612a2a8482600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a25919061382e565b6128d4565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a87919061330a565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612aec919061330a565b60405180910390a35050505050565b6000600267ffffffffffffffff811115612b1857612b17613a9c565b5b604051908082528060200260200182016040528015612b465781602001602082028036833780820191505090505b5090503081600081518110612b5e57612b5d613acb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c299190613b0f565b81600181518110612c3d57612c3c613acb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612cdb959493929190613b77565b600060405180830381600087803b158015612cf557600080fd5b505af1158015612d09573d6000803e3d6000fd5b505050505050565b6001601f60156101000a81548160ff021916908315150217905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612db596959493929190613bd1565b60606040518083038185885af1158015612dd3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612df89190613c32565b5050506000601f60156101000a81548160ff0219169083151502179055505050565b6000601760020154601360020154612e32919061382e565b90506000601760010154601360010154612e4c919061382e565b905060008183612e5c919061382e565b90506000818486612e6d91906137d4565b612e7791906137a3565b90506000828487612e8891906137d4565b612e9291906137a3565b90506000811115612f72576000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612ee990613cb6565b600060405180830381858888f193505050503d8060008114612f27576040519150601f19603f3d011682016040523d82523d6000602084013e612f2c565b606091505b5050905080612f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6790613d17565b60405180910390fd5b505b6000821115613050576000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051612fc790613cb6565b600060405180830381858888f193505050503d8060008114613005576040519150601f19603f3d011682016040523d82523d6000602084013e61300a565b606091505b505090508061304e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161304590613d17565b60405180910390fd5b505b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613092578082015181840152602081019050613077565b838111156130a1576000848401525b50505050565b6000601f19601f8301169050919050565b60006130c382613058565b6130cd8185613063565b93506130dd818560208601613074565b6130e6816130a7565b840191505092915050565b6000602082019050818103600083015261310b81846130b8565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061314382613118565b9050919050565b61315381613138565b811461315e57600080fd5b50565b6000813590506131708161314a565b92915050565b6000819050919050565b61318981613176565b811461319457600080fd5b50565b6000813590506131a681613180565b92915050565b600080604083850312156131c3576131c2613113565b5b60006131d185828601613161565b92505060206131e285828601613197565b9150509250929050565b60008115159050919050565b613201816131ec565b82525050565b600060208201905061321c60008301846131f8565b92915050565b61322b816131ec565b811461323657600080fd5b50565b60008135905061324881613222565b92915050565b6000806040838503121561326557613264613113565b5b600061327385828601613161565b925050602061328485828601613239565b9150509250929050565b6000602082840312156132a4576132a3613113565b5b60006132b284828501613161565b91505092915050565b600080604083850312156132d2576132d1613113565b5b60006132e085828601613197565b92505060206132f185828601613197565b9150509250929050565b61330481613176565b82525050565b600060208201905061331f60008301846132fb565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61335a81613138565b82525050565b600061336c8383613351565b60208301905092915050565b6000602082019050919050565b600061339082613325565b61339a8185613330565b93506133a583613341565b8060005b838110156133d65781516133bd8882613360565b97506133c883613378565b9250506001810190506133a9565b5085935050505092915050565b600060208201905081810360008301526133fd8184613385565b905092915050565b60008060006060848603121561341e5761341d613113565b5b600061342c86828701613161565b935050602061343d86828701613161565b925050604061344e86828701613197565b9150509250925092565b600060808201905061346d60008301876132fb565b61347a60208301866132fb565b61348760408301856132fb565b61349460608301846132fb565b95945050505050565b6134a681613138565b82525050565b60006020820190506134c1600083018461349d565b92915050565b600060ff82169050919050565b6134dd816134c7565b82525050565b60006020820190506134f860008301846134d4565b92915050565b60008060006060848603121561351757613516613113565b5b600061352586828701613197565b935050602061353686828701613197565b925050604061354786828701613197565b9150509250925092565b60006020828403121561356757613566613113565b5b600061357584828501613197565b91505092915050565b60006020828403121561359457613593613113565b5b60006135a284828501613239565b91505092915050565b600080604083850312156135c2576135c1613113565b5b60006135d085828601613239565b92505060206135e185828601613197565b9150509250929050565b6000806040838503121561360257613601613113565b5b600061361085828601613161565b925050602061362185828601613161565b9150509250929050565b6000819050919050565b600061365061364b61364684613118565b61362b565b613118565b9050919050565b600061366282613635565b9050919050565b600061367482613657565b9050919050565b61368481613669565b82525050565b600060208201905061369f600083018461367b565b92915050565b7f21594f5520415245204e4f5420544845204f574e455200000000000000000000600082015250565b60006136db601683613063565b91506136e6826136a5565b602082019050919050565b6000602082019050818103600083015261370a816136ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061374b82613176565b915061375683613176565b92508282101561376957613768613711565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137ae82613176565b91506137b983613176565b9250826137c9576137c8613774565b5b828204905092915050565b60006137df82613176565b91506137ea83613176565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561382357613822613711565b5b828202905092915050565b600061383982613176565b915061384483613176565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561387957613878613711565b5b828201905092915050565b60008151905061389381613180565b92915050565b6000602082840312156138af576138ae613113565b5b60006138bd84828501613884565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613922602683613063565b915061392d826138c6565b604082019050919050565b6000602082019050818103600083015261395181613915565b9050919050565b7f43616e6e6f7420626520616464726573732830292e0000000000000000000000600082015250565b600061398e601583613063565b915061399982613958565b602082019050919050565b600060208201905081810360008301526139bd81613981565b9050919050565b7f546f74616c20616d6f756e74206578636565642077616c6c6574206c696d6974600082015250565b60006139fa602083613063565b9150613a05826139c4565b602082019050919050565b60006020820190508181036000830152613a29816139ed565b9050919050565b7f4275792065786365656473206c696d6974000000000000000000000000000000600082015250565b6000613a66601183613063565b9150613a7182613a30565b602082019050919050565b60006020820190508181036000830152613a9581613a59565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613b098161314a565b92915050565b600060208284031215613b2557613b24613113565b5b6000613b3384828501613afa565b91505092915050565b6000819050919050565b6000613b61613b5c613b5784613b3c565b61362b565b613176565b9050919050565b613b7181613b46565b82525050565b600060a082019050613b8c60008301886132fb565b613b996020830187613b68565b8181036040830152613bab8186613385565b9050613bba606083018561349d565b613bc760808301846132fb565b9695505050505050565b600060c082019050613be6600083018961349d565b613bf360208301886132fb565b613c006040830187613b68565b613c0d6060830186613b68565b613c1a608083018561349d565b613c2760a08301846132fb565b979650505050505050565b600080600060608486031215613c4b57613c4a613113565b5b6000613c5986828701613884565b9350506020613c6a86828701613884565b9250506040613c7b86828701613884565b9150509250925092565b600081905092915050565b50565b6000613ca0600083613c85565b9150613cab82613c90565b600082019050919050565b6000613cc182613c93565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000613d01601e83613063565b9150613d0c82613ccb565b602082019050919050565b60006020820190508181036000830152613d3081613cf4565b905091905056fea26469706673582212208b29359e60b03a40414c788ddead7a7e1c6064353bda573b8f9d84c03eb6572364736f6c634300080a0033

Deployed Bytecode Sourcemap

10030:15876:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24627:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25048:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14729:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10200:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17842:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24357:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17449:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25447:456;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17304:136;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11461:22;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;11517:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7959:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24451:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16797:171;;;;;;;;;;;;;:::i;:::-;;11434:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;14600:120;;;;;;;;;;;;;:::i;:::-;;14080:511;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15083:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11968:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10796:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15679:352;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17557:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11774:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12186:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24797:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8322:146;;;;;;;;;;;;;:::i;:::-;;10097:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16685:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16410:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24713:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16102:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14868:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11826:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24537:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16977:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11910:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25273:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15264:344;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10757:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17669:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16230:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24907:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10719:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16524:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8071:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11879:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24627:80;24675:13;24699:5;;;;;;;;;;;;;;;;;24692:12;;24627:80;:::o;25048:216::-;25123:4;25175:6;25140:11;:23;25152:10;25140:23;;;;;;;;;;;;;;;:32;25164:7;25140:32;;;;;;;;;;;;;;;:41;;;;25218:7;25197:37;;25206:10;25197:37;;;25227:6;25197:37;;;;;;:::i;:::-;;;;;;;;25252:4;25245:11;;25048:216;;;;:::o;14729:130::-;7893:19;7901:10;7893:7;:19::i;:::-;7885:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;14844:7:::1;14822:12;:19;14835:5;14822:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14729:130:::0;;:::o;10200:54::-;;;;;;;;;;;;;;;;;;;;;;:::o;17842:150::-;17922:4;17978:6;17946:29;17966:8;17946:19;:29::i;:::-;:38;17939:45;;17842:150;;;;:::o;24357:88::-;24412:7;24430:12;;24423:19;;24357:88;:::o;17449:99::-;17495:16;17530:10;17523:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17449:99;:::o;25447:456::-;25545:4;25562:18;25583:11;:19;25595:6;25583:19;;;;;;;;;;;;;;;:31;25603:10;25583:31;;;;;;;;;;;;;;;;25562:52;;25647:6;25633:10;:20;;25625:29;;;;;;25707:17;25672:11;:19;25684:6;25672:19;;;;;;;;;;;;;;;:31;25692:10;25672:31;;;;;;;;;;;;;;;;:52;25668:159;;25809:6;25775:11;:19;25787:6;25775:19;;;;;;;;;;;;;;;:31;25795:10;25775:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;25741:11;:19;25753:6;25741:19;;;;;;;;;;;;;;;:31;25761:10;25741:31;;;;;;;;;;;;;;;:74;;;;25668:159;25837:36;25847:6;25855:9;25866:6;25837:9;:36::i;:::-;25891:4;25884:11;;;25447:456;;;;;:::o;17304:136::-;17357:7;17417:15;11722:42;17417:9;:15::i;:::-;17399;11641:42;17399:9;:15::i;:::-;17384:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;17377:55;;17304:136;:::o;11461:22::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;11517:82::-;;;;;;;;;;;;;:::o;7959:103::-;8014:4;8049:5;;;;;;;;;;;8038:16;;:7;:16;;;8031:23;;7959:103;;;:::o;24451:80::-;24503:5;10593:2;24512:16;;24451:80;:::o;16797:171::-;7893:19;7901:10;7893:7;:19::i;:::-;7885:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;16856:26:::1;16885:21;16856:50;;16925:5;::::0;::::1;;;;;;;;16917:23;;:43;16941:18;16917:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16845:123;16797:171::o:0;11434:20::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14600:120::-;7893:19;7901:10;7893:7;:19::i;:::-;7885:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;14708:4:::1;14677:28;;:35;;;;;;;;;;;;;;;;;;14600:120::o:0;14080:511::-;7893:19;7901:10;7893:7;:19::i;:::-;7885:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;14238:17:::1;14219:16;:36;;;;14313:16;;14306:4;14292:12;;:18;;;;:::i;:::-;:37;;;;:::i;:::-;14277:12;:52;;;;14362:18;14342:17;:38;;;;14437:17;;14430:4;14416:12;;:18;;;;:::i;:::-;:38;;;;:::i;:::-;14400:13;:54;;;;14488:20;14467:19;:41;;;;14564:19;;14557:4;14543:12;;:18;;;;:::i;:::-;:40;;;;:::i;:::-;14525:15;:58;;;;14080:511:::0;;;:::o;15083:111::-;7893:19;7901:10;7893:7;:19::i;:::-;7885:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;15180:6:::1;15162:15;:24;;;;15083:111:::0;:::o;11968:33::-;;;;;;;;;;;;;:::o;10796:34::-;;;;:::o;15679:352::-;7893:19;7901:10;7893:7;:19::i;:::-;7885:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;15829:13:::1;15806:7;:20;;:36;;;;15876:13;15853:7;:20;;:36;;;;15921:11;15900:7;:18;;:32;;;;16005:7;:18;;;15982:7;:20;;;15959:7;:20;;;:43;;;;:::i;:::-;:64;;;;:::i;:::-;15943:7;:13;;:80;;;;15679:352:::0;;;:::o;17557:103::-;17609:7;17635:10;:17;;;;17628:24;;17557:103;:::o;11774:45::-;;;;;;;;;;;;;:::o;12186:30::-;;;;;;;;;;;;;:::o;24797:104::-;24863:7;24881:9;:18;24891:7;24881:18;;;;;;;;;;;;;;;;24874:25;;24797:104;;;:::o;8322:146::-;7893:19;7901:10;7893:7;:19::i;:::-;7885:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;8428:1:::1;8392:39;;8413:5;::::0;::::1;;;;;;;;8392:39;;;;;;;;;;;;8458:1;8442:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;8322:146::o:0;10097:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;16685:103::-;7893:19;7901:10;7893:7;:19::i;:::-;7885:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;16775:5:::1;16758:14;;:22;;;;;;;;;;;;;;;;;;16685:103:::0;:::o;16410:105::-;7893:19;7901:10;7893:7;:19::i;:::-;7885:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;16502:5:::1;16479:12;:20;16492:6;16479:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16410:105:::0;:::o;24713:78::-;24765:7;24783:5;;;;;;;;;;;24776:12;;24713:78;:::o;16102:119::-;7893:19;7901:10;7893:7;:19::i;:::-;7885:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;16201:12:::1;16187:11;:26;;;;16102:119:::0;:::o;14868:206::-;7893:19;7901:10;7893:7;:19::i;:::-;7885:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;14990:8:::1;14976:11;;:22;;;;;;;;;;;;;;;;;;15047:19;15040:4;15025:12;;:19;;;;:::i;:::-;:41;;;;:::i;:::-;15009:13;:57;;;;14868:206:::0;;:::o;11826:43::-;;;;;;;;;;;;;:::o;24537:84::-;24587:13;24611:7;;;;;;;;;;;;;;;;;24604:14;;24537:84;:::o;16977:206::-;7893:19;7901:10;7893:7;:19::i;:::-;7885:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;17046:24:::1;17079:6;17073:23;;;17105:4;17073:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17046:65;;17130:17;;;;;;;;;;;17122:35;;:53;17158:16;17122:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17035:148;16977:206:::0;:::o;11910:19::-;;;;;;;;;;;;;:::o;25273:165::-;25351:4;25368:40;25378:10;25390:9;25401:6;25368:9;:40::i;:::-;25426:4;25419:11;;25273:165;;;;:::o;15264:344::-;7893:19;7901:10;7893:7;:19::i;:::-;7885:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;15412:13:::1;15390:6;:19;;:35;;;;15458:13;15436:6;:19;;:35;;;;15502:11;15482:6;:17;;:31;;;;15583:6;:17;;;15561:6;:19;;;15539:6;:19;;;:41;;;;:::i;:::-;:61;;;;:::i;:::-;15524:6;:12;;:76;;;;15264:344:::0;;;:::o;10757:32::-;;;;:::o;17669:164::-;17737:7;17802:22;:20;:22::i;:::-;17795:1;17776:15;17786:4;;;;;;;;;;;17776:9;:15::i;:::-;:21;;;;:::i;:::-;17764:8;:34;;;;:::i;:::-;:61;;;;:::i;:::-;17757:68;;17669:164;;;:::o;16230:171::-;7893:19;7901:10;7893:7;:19::i;:::-;7885:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;16346:10:::1;16326:17;;:30;;;;;;;;;;;;;;;;;;16385:8;16367:15;;:26;;;;;;;;;;;;;;;;;;16230:171:::0;;:::o;24907:132::-;24991:7;25009:11;:19;25021:6;25009:19;;;;;;;;;;;;;;;:28;25029:7;25009:28;;;;;;;;;;;;;;;;25002:35;;24907:132;;;;:::o;10719:31::-;;;;:::o;16524:152::-;7893:19;7901:10;7893:7;:19::i;:::-;7885:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;16628:4:::1;16597:22;:30;16620:6;16597:30;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16664:4;16643:12;:20;16656:6;16643:20;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;16524:152:::0;:::o;8071:242::-;7893:19;7901:10;7893:7;:19::i;:::-;7885:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;8180:1:::1;8160:22;;:8;:22;;;;8152:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8269:8;8241:37;;8262:5;::::0;::::1;;;;;;;;8241:37;;;;;;;;;;;;8297:8;8289:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;8071:242:::0;:::o;11879:24::-;;;;;;;;;;;;;:::o;18118:1205::-;18229:1;18213:18;;:6;:18;;;;:41;;;;;18252:1;18233:21;;:9;:21;;;;18213:41;18205:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;18290:10;18301:22;:30;18324:6;18301:30;;;;;;;;;;;;;;;;;;;;;;;;;18290:41;;18342:11;18354:22;:33;18377:9;18354:33;;;;;;;;;;;;;;;;;;;;;;;;;18342:45;;18398:15;18414:12;:20;18427:6;18414:20;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;18436:12;:23;18449:9;18436:23;;;;;;;;;;;;;;;;;;;;;;;;;18414:45;:56;;;;18461:9;;;;;;;;;;;18414:56;18398:72;;18487:10;18484:832;;;18498:42;18516:6;18523:9;18533:6;18498:17;:42::i;:::-;18484:832;;;18566:28;;;;;;;;;;;18558:37;;;;;;18648:14;;;;;;;;;;;18645:660;;;18663:39;18678:6;18685:9;18695:6;18663:14;:39::i;:::-;18645:660;;;18752:5;18749:556;;;18758:35;18769:6;18776:9;18786:6;18758:10;:35::i;:::-;18749:556;;;18844:6;18841:464;;;18910:16;:14;:16::i;:::-;18906:35;;;18929:10;:8;:10::i;:::-;18906:35;18959:36;18971:6;18978:9;18988:6;18959:11;:36::i;:::-;18841:464;;;19078:12;:20;19091:6;19078:20;;;;;;;;;;;;;;;;;;;;;;;;;19077:21;:47;;;;;19101:12;:23;19114:9;19101:23;;;;;;;;;;;;;;;;;;;;;;;;;19100:24;19077:47;19069:56;;;;;;19181:15;;19173:6;19152:20;19162:9;19152;:20::i;:::-;:27;;;;:::i;:::-;:44;;19144:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;19252:37;19265:6;19272:9;19282:6;19252:12;:37::i;:::-;18841:464;18749:556;18645:660;18484:832;18194:1129;;;18118:1205;;;:::o;20831:263::-;20926:47;20941:6;20966;20948:9;:17;20958:6;20948:17;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;20926:14;:47::i;:::-;20984:53;20999:9;21030:6;21009:9;:20;21019:9;21009:20;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;20984:14;:53::i;:::-;21069:9;21053:33;;21062:6;21053:33;;;21079:6;21053:33;;;;;;:::i;:::-;;;;;;;;20831:263;;;:::o;19332:378::-;19433:12;:23;19446:9;19433:23;;;;;;;;;;;;;;;;;;;;;;;;;19432:24;19424:33;;;;;;19486:12;;19476:6;:22;;19468:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;19552:3;19549:2;19542:6;:9;;;;:::i;:::-;:13;;;;:::i;:::-;19531:8;:24;;;;19590:4;19566:12;:23;19579:9;19566:23;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19605:10;19629:9;19605:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19651:51;19669:6;19676:9;19686:6;19693:8;;19651:17;:51::i;:::-;19332:378;;;:::o;19719:468::-;19816:12;:23;19829:9;19816:23;;;;;;;;;;;;;;;;;;;;;;;;;19815:24;19807:33;;;;;;19869:12;;19859:6;:22;;19851:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;19951:15;;19943:6;19922:20;19932:9;19922;:20::i;:::-;:27;;;;:::i;:::-;:44;;19914:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;20018:12;:23;20031:9;20018:23;;;;;;;;;;;;;;;;;;;;;;;;;20014:103;;20084:4;20071:6;:12;;;20064:6;:19;;;;:::i;:::-;:24;;;;:::i;:::-;20053:8;:35;;;;20014:103;;;20116:1;20105:8;:12;;;;20014:103;20128:51;20146:6;20153:9;20163:6;20170:8;;20128:17;:51::i;:::-;19719:468;;;:::o;21703:186::-;21751:4;21789:6;;;;;;;;;;;21788:7;:35;;;;;21812:11;;;;;;;;;;;21788:35;:93;;;;;21868:13;;21840:9;:24;21858:4;21840:24;;;;;;;;;;;;;;;;:41;;21788:93;21768:113;;21703:186;:::o;21901:729::-;12324:4;12315:6;;:13;;;;;;;;;;;;;;;;;;21949:14:::1;21966:24;21984:4;21966:9;:24::i;:::-;21949:41;;22004:21;22095:6;:12;;;22079:7;:13;;;:28;;;;:::i;:::-;22057:6;:19;;;22034:7;:20;;;:42;;;;:::i;:::-;22026:6;:51;;;;:::i;:::-;:82;;;;:::i;:::-;22004:104;;22119:18;22145:13;22138:6;:20;;;;:::i;:::-;22119:39;;22169:16;22200:1;22186:13;:15;;;;:::i;:::-;22169:32;;22212:19;22246:8;22232:13;:22;;;;:::i;:::-;22212:42;;22283:11;22272:10;:22;;;;:::i;:::-;22265:29;;22305:14;22320:21;22305:36;;22352:25;22370:6;22352:17;:25::i;:::-;22388:14;22425:6;22403:21;:28;;;;:::i;:::-;22388:43;;22442:13;22477:6;22464:11;22457:6;:18;;;;:::i;:::-;22456:27;;;;:::i;:::-;22442:41;;22494:29;22508:8;22517:5;22494:13;:29::i;:::-;22534:20;22577:6;22555:21;:28;;;;:::i;:::-;22534:49;;22594:28;22609:12;22594:14;:28::i;:::-;21938:692;;;;;;;;;12360:5:::0;12351:6;;:14;;;;;;;;;;;;;;;;;;21901:729::o;20193:344::-;20291:12;:20;20304:6;20291:20;;;;;;;;;;;;;;;;;;;;;;;;;20290:21;20282:30;;;;;;20341:13;;20331:6;:23;;20323:32;;;;;;20370:12;:20;20383:6;20370:20;;;;;;;;;;;;;;;;;;;;;;;;;20366:101;;20434:4;20420:7;:13;;;20413:6;:20;;;;:::i;:::-;:25;;;;:::i;:::-;20402:8;:36;;;;20366:101;;;20466:1;20455:8;:12;;;;20366:101;20478:51;20496:6;20503:9;20513:6;20520:8;;20478:17;:51::i;:::-;20193:344;;;:::o;20546:276::-;20668:4;20656:11;;20647:6;:20;;;;:::i;:::-;:25;;;;:::i;:::-;20636:8;:36;;;;20698:1;20687:8;;:12;20683:132;;;20702:51;20720:6;20727:9;20737:6;20744:8;;20702:17;:51::i;:::-;20683:132;;;20771:42;20789:6;20796:9;20806:6;20771:17;:42::i;:::-;20683:132;20546:276;;;:::o;21576:118::-;21676:10;21655:9;:18;21665:7;21655:18;;;;;;;;;;;;;;;:31;;;;21576:118;;:::o;21103:464::-;21216:17;21243:8;;21236:6;:15;;;;:::i;:::-;21216:35;;21262:47;21277:6;21302;21284:9;:17;21294:6;21284:17;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;21262:14;:47::i;:::-;21320:64;21343:4;21374:9;21349;:24;21367:4;21349:24;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;21320:14;:64::i;:::-;21395:56;21410:9;21441;21420;:20;21430:9;21420:20;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;21395:14;:56::i;:::-;21483:9;21467:36;;21476:6;21467:36;;;21493:9;21467:36;;;;;;:::i;:::-;;;;;;;;21543:4;21519:40;;21528:6;21519:40;;;21549:9;21519:40;;;;;;:::i;:::-;;;;;;;;21205:362;21103:464;;;;:::o;23566:369::-;23628:21;23664:1;23650:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23628:38;;23695:4;23677;23682:1;23677:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23721:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23711:4;23716:1;23711:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23745:6;;;;;;;;;;;:57;;;23817:6;23838:1;23854:4;23881;23901:15;23745:182;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23617:318;23566:369;:::o;23944:341::-;24036:4;24026:9;;:14;;;;;;;;;;;;;;;;;;24051:6;;;;;;;;;;;:22;;;24081:9;24114:4;24134:12;24161:1;24177;24193:17;;;;;;;;;;;24225:15;24051:200;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24272:5;24262:9;;:15;;;;;;;;;;;;;;;;;;23944:341;;:::o;22639:918::-;22704:18;22746:7;:18;;;22726:6;:17;;;:38;;;;:::i;:::-;22704:61;;22776:20;22822:7;:20;;;22800:6;:19;;;:42;;;;:::i;:::-;22776:67;;22854:16;22887:12;22874:10;:25;;;;:::i;:::-;22854:46;;22914:24;22972:8;22957:10;22941:12;:27;;;;:::i;:::-;:40;;;;:::i;:::-;22914:67;;22992:26;23054:8;23037:12;23021;:29;;;;:::i;:::-;:42;;;;:::i;:::-;22992:71;;23101:1;23080:18;:22;23077:235;;;23115:21;23173:17;;;;;;;;;;;23165:31;;23204:18;23229:5;23165:74;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23114:125;;;23258:16;23250:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;23103:209;23077:235;23347:1;23328:16;:20;23325:225;;;23361:19;23417:15;;;;;;;;;;;23409:29;;23446:16;23469:5;23409:70;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23360:119;;;23498:14;23490:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;23349:201;23325:225;22693:864;;;;;22639:918;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:116::-;3564:21;3579:5;3564:21;:::i;:::-;3557:5;3554:32;3544:60;;3600:1;3597;3590:12;3544:60;3494:116;:::o;3616:133::-;3659:5;3697:6;3684:20;3675:29;;3713:30;3737:5;3713:30;:::i;:::-;3616:133;;;;:::o;3755:468::-;3820:6;3828;3877:2;3865:9;3856:7;3852:23;3848:32;3845:119;;;3883:79;;:::i;:::-;3845:119;4003:1;4028:53;4073:7;4064:6;4053:9;4049:22;4028:53;:::i;:::-;4018:63;;3974:117;4130:2;4156:50;4198:7;4189:6;4178:9;4174:22;4156:50;:::i;:::-;4146:60;;4101:115;3755:468;;;;;:::o;4229:329::-;4288:6;4337:2;4325:9;4316:7;4312:23;4308:32;4305:119;;;4343:79;;:::i;:::-;4305:119;4463:1;4488:53;4533:7;4524:6;4513:9;4509:22;4488:53;:::i;:::-;4478:63;;4434:117;4229:329;;;;:::o;4564:474::-;4632:6;4640;4689:2;4677:9;4668:7;4664:23;4660:32;4657:119;;;4695:79;;:::i;:::-;4657:119;4815:1;4840:53;4885:7;4876:6;4865:9;4861:22;4840:53;:::i;:::-;4830:63;;4786:117;4942:2;4968:53;5013:7;5004:6;4993:9;4989:22;4968:53;:::i;:::-;4958:63;;4913:118;4564:474;;;;;:::o;5044:118::-;5131:24;5149:5;5131:24;:::i;:::-;5126:3;5119:37;5044:118;;:::o;5168:222::-;5261:4;5299:2;5288:9;5284:18;5276:26;;5312:71;5380:1;5369:9;5365:17;5356:6;5312:71;:::i;:::-;5168:222;;;;:::o;5396:114::-;5463:6;5497:5;5491:12;5481:22;;5396:114;;;:::o;5516:184::-;5615:11;5649:6;5644:3;5637:19;5689:4;5684:3;5680:14;5665:29;;5516:184;;;;:::o;5706:132::-;5773:4;5796:3;5788:11;;5826:4;5821:3;5817:14;5809:22;;5706:132;;;:::o;5844:108::-;5921:24;5939:5;5921:24;:::i;:::-;5916:3;5909:37;5844:108;;:::o;5958:179::-;6027:10;6048:46;6090:3;6082:6;6048:46;:::i;:::-;6126:4;6121:3;6117:14;6103:28;;5958:179;;;;:::o;6143:113::-;6213:4;6245;6240:3;6236:14;6228:22;;6143:113;;;:::o;6292:732::-;6411:3;6440:54;6488:5;6440:54;:::i;:::-;6510:86;6589:6;6584:3;6510:86;:::i;:::-;6503:93;;6620:56;6670:5;6620:56;:::i;:::-;6699:7;6730:1;6715:284;6740:6;6737:1;6734:13;6715:284;;;6816:6;6810:13;6843:63;6902:3;6887:13;6843:63;:::i;:::-;6836:70;;6929:60;6982:6;6929:60;:::i;:::-;6919:70;;6775:224;6762:1;6759;6755:9;6750:14;;6715:284;;;6719:14;7015:3;7008:10;;6416:608;;;6292:732;;;;:::o;7030:373::-;7173:4;7211:2;7200:9;7196:18;7188:26;;7260:9;7254:4;7250:20;7246:1;7235:9;7231:17;7224:47;7288:108;7391:4;7382:6;7288:108;:::i;:::-;7280:116;;7030:373;;;;:::o;7409:619::-;7486:6;7494;7502;7551:2;7539:9;7530:7;7526:23;7522:32;7519:119;;;7557:79;;:::i;:::-;7519:119;7677:1;7702:53;7747:7;7738:6;7727:9;7723:22;7702:53;:::i;:::-;7692:63;;7648:117;7804:2;7830:53;7875:7;7866:6;7855:9;7851:22;7830:53;:::i;:::-;7820:63;;7775:118;7932:2;7958:53;8003:7;7994:6;7983:9;7979:22;7958:53;:::i;:::-;7948:63;;7903:118;7409:619;;;;;:::o;8034:553::-;8211:4;8249:3;8238:9;8234:19;8226:27;;8263:71;8331:1;8320:9;8316:17;8307:6;8263:71;:::i;:::-;8344:72;8412:2;8401:9;8397:18;8388:6;8344:72;:::i;:::-;8426;8494:2;8483:9;8479:18;8470:6;8426:72;:::i;:::-;8508;8576:2;8565:9;8561:18;8552:6;8508:72;:::i;:::-;8034:553;;;;;;;:::o;8593:118::-;8680:24;8698:5;8680:24;:::i;:::-;8675:3;8668:37;8593:118;;:::o;8717:222::-;8810:4;8848:2;8837:9;8833:18;8825:26;;8861:71;8929:1;8918:9;8914:17;8905:6;8861:71;:::i;:::-;8717:222;;;;:::o;8945:86::-;8980:7;9020:4;9013:5;9009:16;8998:27;;8945:86;;;:::o;9037:112::-;9120:22;9136:5;9120:22;:::i;:::-;9115:3;9108:35;9037:112;;:::o;9155:214::-;9244:4;9282:2;9271:9;9267:18;9259:26;;9295:67;9359:1;9348:9;9344:17;9335:6;9295:67;:::i;:::-;9155:214;;;;:::o;9375:619::-;9452:6;9460;9468;9517:2;9505:9;9496:7;9492:23;9488:32;9485:119;;;9523:79;;:::i;:::-;9485:119;9643:1;9668:53;9713:7;9704:6;9693:9;9689:22;9668:53;:::i;:::-;9658:63;;9614:117;9770:2;9796:53;9841:7;9832:6;9821:9;9817:22;9796:53;:::i;:::-;9786:63;;9741:118;9898:2;9924:53;9969:7;9960:6;9949:9;9945:22;9924:53;:::i;:::-;9914:63;;9869:118;9375:619;;;;;:::o;10000:329::-;10059:6;10108:2;10096:9;10087:7;10083:23;10079:32;10076:119;;;10114:79;;:::i;:::-;10076:119;10234:1;10259:53;10304:7;10295:6;10284:9;10280:22;10259:53;:::i;:::-;10249:63;;10205:117;10000:329;;;;:::o;10335:323::-;10391:6;10440:2;10428:9;10419:7;10415:23;10411:32;10408:119;;;10446:79;;:::i;:::-;10408:119;10566:1;10591:50;10633:7;10624:6;10613:9;10609:22;10591:50;:::i;:::-;10581:60;;10537:114;10335:323;;;;:::o;10664:468::-;10729:6;10737;10786:2;10774:9;10765:7;10761:23;10757:32;10754:119;;;10792:79;;:::i;:::-;10754:119;10912:1;10937:50;10979:7;10970:6;10959:9;10955:22;10937:50;:::i;:::-;10927:60;;10883:114;11036:2;11062:53;11107:7;11098:6;11087:9;11083:22;11062:53;:::i;:::-;11052:63;;11007:118;10664:468;;;;;:::o;11138:474::-;11206:6;11214;11263:2;11251:9;11242:7;11238:23;11234:32;11231:119;;;11269:79;;:::i;:::-;11231:119;11389:1;11414:53;11459:7;11450:6;11439:9;11435:22;11414:53;:::i;:::-;11404:63;;11360:117;11516:2;11542:53;11587:7;11578:6;11567:9;11563:22;11542:53;:::i;:::-;11532:63;;11487:118;11138:474;;;;;:::o;11618:60::-;11646:3;11667:5;11660:12;;11618:60;;;:::o;11684:142::-;11734:9;11767:53;11785:34;11794:24;11812:5;11794:24;:::i;:::-;11785:34;:::i;:::-;11767:53;:::i;:::-;11754:66;;11684:142;;;:::o;11832:126::-;11882:9;11915:37;11946:5;11915:37;:::i;:::-;11902:50;;11832:126;;;:::o;11964:144::-;12032:9;12065:37;12096:5;12065:37;:::i;:::-;12052:50;;11964:144;;;:::o;12114:167::-;12219:55;12268:5;12219:55;:::i;:::-;12214:3;12207:68;12114:167;;:::o;12287:258::-;12398:4;12436:2;12425:9;12421:18;12413:26;;12449:89;12535:1;12524:9;12520:17;12511:6;12449:89;:::i;:::-;12287:258;;;;:::o;12551:172::-;12691:24;12687:1;12679:6;12675:14;12668:48;12551:172;:::o;12729:366::-;12871:3;12892:67;12956:2;12951:3;12892:67;:::i;:::-;12885:74;;12968:93;13057:3;12968:93;:::i;:::-;13086:2;13081:3;13077:12;13070:19;;12729:366;;;:::o;13101:419::-;13267:4;13305:2;13294:9;13290:18;13282:26;;13354:9;13348:4;13344:20;13340:1;13329:9;13325:17;13318:47;13382:131;13508:4;13382:131;:::i;:::-;13374:139;;13101:419;;;:::o;13526:180::-;13574:77;13571:1;13564:88;13671:4;13668:1;13661:15;13695:4;13692:1;13685:15;13712:191;13752:4;13772:20;13790:1;13772:20;:::i;:::-;13767:25;;13806:20;13824:1;13806:20;:::i;:::-;13801:25;;13845:1;13842;13839:8;13836:34;;;13850:18;;:::i;:::-;13836:34;13895:1;13892;13888:9;13880:17;;13712:191;;;;:::o;13909:180::-;13957:77;13954:1;13947:88;14054:4;14051:1;14044:15;14078:4;14075:1;14068:15;14095:185;14135:1;14152:20;14170:1;14152:20;:::i;:::-;14147:25;;14186:20;14204:1;14186:20;:::i;:::-;14181:25;;14225:1;14215:35;;14230:18;;:::i;:::-;14215:35;14272:1;14269;14265:9;14260:14;;14095:185;;;;:::o;14286:348::-;14326:7;14349:20;14367:1;14349:20;:::i;:::-;14344:25;;14383:20;14401:1;14383:20;:::i;:::-;14378:25;;14571:1;14503:66;14499:74;14496:1;14493:81;14488:1;14481:9;14474:17;14470:105;14467:131;;;14578:18;;:::i;:::-;14467:131;14626:1;14623;14619:9;14608:20;;14286:348;;;;:::o;14640:305::-;14680:3;14699:20;14717:1;14699:20;:::i;:::-;14694:25;;14733:20;14751:1;14733:20;:::i;:::-;14728:25;;14887:1;14819:66;14815:74;14812:1;14809:81;14806:107;;;14893:18;;:::i;:::-;14806:107;14937:1;14934;14930:9;14923:16;;14640:305;;;;:::o;14951:143::-;15008:5;15039:6;15033:13;15024:22;;15055:33;15082:5;15055:33;:::i;:::-;14951:143;;;;:::o;15100:351::-;15170:6;15219:2;15207:9;15198:7;15194:23;15190:32;15187:119;;;15225:79;;:::i;:::-;15187:119;15345:1;15370:64;15426:7;15417:6;15406:9;15402:22;15370:64;:::i;:::-;15360:74;;15316:128;15100:351;;;;:::o;15457:225::-;15597:34;15593:1;15585:6;15581:14;15574:58;15666:8;15661:2;15653:6;15649:15;15642:33;15457:225;:::o;15688:366::-;15830:3;15851:67;15915:2;15910:3;15851:67;:::i;:::-;15844:74;;15927:93;16016:3;15927:93;:::i;:::-;16045:2;16040:3;16036:12;16029:19;;15688:366;;;:::o;16060:419::-;16226:4;16264:2;16253:9;16249:18;16241:26;;16313:9;16307:4;16303:20;16299:1;16288:9;16284:17;16277:47;16341:131;16467:4;16341:131;:::i;:::-;16333:139;;16060:419;;;:::o;16485:171::-;16625:23;16621:1;16613:6;16609:14;16602:47;16485:171;:::o;16662:366::-;16804:3;16825:67;16889:2;16884:3;16825:67;:::i;:::-;16818:74;;16901:93;16990:3;16901:93;:::i;:::-;17019:2;17014:3;17010:12;17003:19;;16662:366;;;:::o;17034:419::-;17200:4;17238:2;17227:9;17223:18;17215:26;;17287:9;17281:4;17277:20;17273:1;17262:9;17258:17;17251:47;17315:131;17441:4;17315:131;:::i;:::-;17307:139;;17034:419;;;:::o;17459:182::-;17599:34;17595:1;17587:6;17583:14;17576:58;17459:182;:::o;17647:366::-;17789:3;17810:67;17874:2;17869:3;17810:67;:::i;:::-;17803:74;;17886:93;17975:3;17886:93;:::i;:::-;18004:2;17999:3;17995:12;17988:19;;17647:366;;;:::o;18019:419::-;18185:4;18223:2;18212:9;18208:18;18200:26;;18272:9;18266:4;18262:20;18258:1;18247:9;18243:17;18236:47;18300:131;18426:4;18300:131;:::i;:::-;18292:139;;18019:419;;;:::o;18444:167::-;18584:19;18580:1;18572:6;18568:14;18561:43;18444:167;:::o;18617:366::-;18759:3;18780:67;18844:2;18839:3;18780:67;:::i;:::-;18773:74;;18856:93;18945:3;18856:93;:::i;:::-;18974:2;18969:3;18965:12;18958:19;;18617:366;;;:::o;18989:419::-;19155:4;19193:2;19182:9;19178:18;19170:26;;19242:9;19236:4;19232:20;19228:1;19217:9;19213:17;19206:47;19270:131;19396:4;19270:131;:::i;:::-;19262:139;;18989:419;;;:::o;19414:180::-;19462:77;19459:1;19452:88;19559:4;19556:1;19549:15;19583:4;19580:1;19573:15;19600:180;19648:77;19645:1;19638:88;19745:4;19742:1;19735:15;19769:4;19766:1;19759:15;19786:143;19843:5;19874:6;19868:13;19859:22;;19890:33;19917:5;19890:33;:::i;:::-;19786:143;;;;:::o;19935:351::-;20005:6;20054:2;20042:9;20033:7;20029:23;20025:32;20022:119;;;20060:79;;:::i;:::-;20022:119;20180:1;20205:64;20261:7;20252:6;20241:9;20237:22;20205:64;:::i;:::-;20195:74;;20151:128;19935:351;;;;:::o;20292:85::-;20337:7;20366:5;20355:16;;20292:85;;;:::o;20383:158::-;20441:9;20474:61;20492:42;20501:32;20527:5;20501:32;:::i;:::-;20492:42;:::i;:::-;20474:61;:::i;:::-;20461:74;;20383:158;;;:::o;20547:147::-;20642:45;20681:5;20642:45;:::i;:::-;20637:3;20630:58;20547:147;;:::o;20700:831::-;20963:4;21001:3;20990:9;20986:19;20978:27;;21015:71;21083:1;21072:9;21068:17;21059:6;21015:71;:::i;:::-;21096:80;21172:2;21161:9;21157:18;21148:6;21096:80;:::i;:::-;21223:9;21217:4;21213:20;21208:2;21197:9;21193:18;21186:48;21251:108;21354:4;21345:6;21251:108;:::i;:::-;21243:116;;21369:72;21437:2;21426:9;21422:18;21413:6;21369:72;:::i;:::-;21451:73;21519:3;21508:9;21504:19;21495:6;21451:73;:::i;:::-;20700:831;;;;;;;;:::o;21537:807::-;21786:4;21824:3;21813:9;21809:19;21801:27;;21838:71;21906:1;21895:9;21891:17;21882:6;21838:71;:::i;:::-;21919:72;21987:2;21976:9;21972:18;21963:6;21919:72;:::i;:::-;22001:80;22077:2;22066:9;22062:18;22053:6;22001:80;:::i;:::-;22091;22167:2;22156:9;22152:18;22143:6;22091:80;:::i;:::-;22181:73;22249:3;22238:9;22234:19;22225:6;22181:73;:::i;:::-;22264;22332:3;22321:9;22317:19;22308:6;22264:73;:::i;:::-;21537:807;;;;;;;;;:::o;22350:663::-;22438:6;22446;22454;22503:2;22491:9;22482:7;22478:23;22474:32;22471:119;;;22509:79;;:::i;:::-;22471:119;22629:1;22654:64;22710:7;22701:6;22690:9;22686:22;22654:64;:::i;:::-;22644:74;;22600:128;22767:2;22793:64;22849:7;22840:6;22829:9;22825:22;22793:64;:::i;:::-;22783:74;;22738:129;22906:2;22932:64;22988:7;22979:6;22968:9;22964:22;22932:64;:::i;:::-;22922:74;;22877:129;22350:663;;;;;:::o;23019:147::-;23120:11;23157:3;23142:18;;23019:147;;;;:::o;23172:114::-;;:::o;23292:398::-;23451:3;23472:83;23553:1;23548:3;23472:83;:::i;:::-;23465:90;;23564:93;23653:3;23564:93;:::i;:::-;23682:1;23677:3;23673:11;23666:18;;23292:398;;;:::o;23696:379::-;23880:3;23902:147;24045:3;23902:147;:::i;:::-;23895:154;;24066:3;24059:10;;23696:379;;;:::o;24081:180::-;24221:32;24217:1;24209:6;24205:14;24198:56;24081:180;:::o;24267:366::-;24409:3;24430:67;24494:2;24489:3;24430:67;:::i;:::-;24423:74;;24506:93;24595:3;24506:93;:::i;:::-;24624:2;24619:3;24615:12;24608:19;;24267:366;;;:::o;24639:419::-;24805:4;24843:2;24832:9;24828:18;24820:26;;24892:9;24886:4;24882:20;24878:1;24867:9;24863:17;24856:47;24920:131;25046:4;24920:131;:::i;:::-;24912:139;;24639:419;;;:::o

Swarm Source

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