ETH Price: $2,278.98 (+1.56%)

Token

Cryptoflation (FLATION)
 

Overview

Max Total Supply

10,000,000 FLATION

Holders

22

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
293,997.060000000006561925 FLATION

Value
$0.00
0x54a1f9674dAAad0C61b346bf4018F4dD60390363
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:
Cryptoflation

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-10
*/

//--------You are safu. You are the chosen one--------\\

// SPDX-License-Identifier: MIT
pragma solidity >=0.8.10;

interface IERC20 {
  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);
}

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

interface IRouter01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function 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 getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}


contract Cryptoflation is IERC20 {
    address private _owner;

    mapping (address => uint256) private _tOwned;
    address private lpPair;
    address public marketingWallet;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    mapping (address => bool) private _isExcludedFromLimits;
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) private _liquidityHolders;
    mapping (address => bool) private _blacklist;

    string constant private _name = "Cryptoflation";
    string constant private _symbol = 'FLATION';
    uint8 constant private _decimals = 18;

    uint256 constant private _tTotal = 10000000 * 10 ** _decimals;

   struct Fees {
        uint16 buyFeeLP;
        uint16 buyFeeMarketing;
        uint16 sellFeeLP;
        uint16 sellFeeMarketing;
    }

    Fees public _taxRates = Fees({
        buyFeeLP: 1,
        buyFeeMarketing:1,
        sellFeeLP: 1,
        sellFeeMarketing:1
        });

    IRouter02 public dexRouter;
    
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    address public secondPair;
    
    uint256 private _maxTxAmountBuy = (_tTotal * 1) / 100; // 1%
    uint256 private _maxTxAmountSell = (_tTotal * 1) / 100; // 1%
    uint256 private _maxWalletSize = (_tTotal * 3) / 100; // 3%

    bool public tradingEnabled = false;
    bool public _hasLiqBeenAdded = false;
    
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    
    
    modifier onlyOwner() {
        require(_owner == msg.sender, "Only Owner can call this function.");
        _;
    }
    
    constructor () {
        marketingWallet = 0xa8daaac13cE23B96dF07d6788F0aeC04B1D6309F;
        _tOwned[msg.sender] = _tTotal;
        emit Transfer(address(0), msg.sender, _tTotal);

        _owner = msg.sender;

        dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        secondPair = dexRouter.WETH(); 
        lpPair = IFactoryV2(dexRouter.factory()).createPair(secondPair, address(this)); 

        _isExcludedFromFees[_owner]=true;
        _approve(_owner, address(dexRouter), type(uint256).max);
        _approve(address(this), address(dexRouter), type(uint256).max);

    }

    receive() external payable {}


    function setMarketingWallet(address newMarketingAddress) public onlyOwner {
        marketingWallet = newMarketingAddress;
    }
    function setNewFees(uint16 buyFeeLP,
        uint16 buyFeeMarketing,
        uint16 sellFeeLP,
        uint16 sellFeeMarketing) public onlyOwner {
            _taxRates.sellFeeMarketing = sellFeeMarketing;
            require(buyFeeLP <= 8,"You are safu. 8% is the max");
            require(buyFeeMarketing <= 8,"You are safu. 8% is the max");
            require(sellFeeLP <= 8,"You are safu. 8% is the max");
            require(sellFeeMarketing <= 8,"You are safu. 8% is the max");
            _taxRates.sellFeeLP = sellFeeLP;
            _taxRates.buyFeeMarketing = buyFeeMarketing;
            _taxRates.buyFeeLP = buyFeeLP;    
        }


    function transferOwner(address newOwner) external onlyOwner {
        require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
        require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
        
        if(balanceOf(_owner) > 0) {
            _transfer(_owner, newOwner, balanceOf(_owner));
        }
        
        _owner = newOwner;
        emit OwnershipTransferred(_owner, newOwner);
        
    }

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

    function totalSupply() external pure override returns (uint256) { if (_tTotal == 0) { revert(); } return _tTotal; }
    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 allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

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

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

    function _approve(address sender, address spender, uint256 amount) private {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

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

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

        return _transfer(sender, recipient, amount);
    }

    function setNewRouter(address newRouter) public onlyOwner {
        IRouter02 _newRouter = IRouter02(newRouter);
        address get_pair = IFactoryV2(_newRouter.factory()).getPair(secondPair,address(this));
        if (get_pair == address(0)) {
            lpPair = IFactoryV2(_newRouter.factory()).createPair(secondPair,address(this));
        }
        else {
            lpPair = get_pair;
        }
        dexRouter = _newRouter;
        _approve(address(this), address(dexRouter), type(uint256).max);
    }

    

    function setBlacklistEnabled(address account, bool enabled) external onlyOwner {
        _blacklist[account] = enabled;
    }

    function setBlacklistEnabledMultiple(address[] calldata accounts, bool enabled) external onlyOwner {
        for(uint index=0;index<accounts.length;index++)_blacklist[accounts[index]] = enabled;
    }

    function isBlacklisted(address account) public view returns (bool) {
        return _blacklist[account];
    }



    function setMaxTxPercents(uint256 percentBuy, uint256 percentSell) external onlyOwner {
        require((_tTotal * percentBuy) / 1000 >= (_tTotal / 5000), "You are safu. Must be above 0.5%");
        require((_tTotal * percentSell) / 1000 >= (_tTotal / 5000), "You are safu. Must be above 0.5%");
        _maxTxAmountBuy = (_tTotal * percentBuy) / 1000;
        _maxTxAmountSell = (_tTotal * percentSell) / 1000;
    }

    function setMaxWalletSize(uint256 percent) external onlyOwner {
        require((_tTotal * percent) / 1000 >= (_tTotal / 100), "You are safu. Must be above 1%");
        _maxWalletSize = (_tTotal * percent) / 1000;
    }


    function setExcludedFromFees(address account, bool enabled) external onlyOwner {
        _isExcludedFromFees[account] = enabled;
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function setExcludedFromLimits(address account, bool enabled) external onlyOwner {
        _isExcludedFromLimits[account] = enabled;
    }

    function isExcludedFromLimits(address account) public view returns (bool) {
        return _isExcludedFromLimits[account];
    }

    function getMaxTXs() public view returns (uint256, uint256) {
        return (_maxTxAmountBuy / (10**_decimals), _maxTxAmountSell / (10**_decimals));
    }

    function getMaxWallet() public view returns (uint256) {
        return _maxWalletSize / (10**_decimals);
    }


    function _hasLimits(address from, address to) private view returns (bool) {
        return from != _owner
            && to != _owner
            && tx.origin != _owner
            && to != DEAD
            && to != address(0)
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && from != address(this);
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(_blacklist[from]==false, "ERC20: address is blacklisted");
        require(_blacklist[to]==false, "ERC20: address is blacklisted");
        require(amount > 0, "Transfer amount must be greater than zero");
        


        uint256 _fee = 0;
        bool _hasCurrentLimits = _hasLimits(from, to);

        if(!tradingEnabled && _hasCurrentLimits) {
            revert("Trading not yet enabled!");
        }
        if(from == lpPair){ // buy
            if (!_isExcludedFromLimits[from] && !_isExcludedFromLimits[to] && _hasCurrentLimits) {
                require(amount <= _maxTxAmountBuy, "Transfer amount exceeds the maxTxAmount.");
            }
            if(!_isExcludedFromFees[from] && !_isExcludedFromFees[to]){
                uint256 fee1 = (amount * _taxRates.buyFeeLP) / 100 ;
                uint256 fee2 = (amount * _taxRates.buyFeeMarketing) / 100 ;       
                _tOwned[lpPair] += fee1;
                _tOwned[marketingWallet] += fee2;
                _fee += fee1 + fee2;
            }

        } else if (to == lpPair) { // sell
            if (!_isExcludedFromLimits[from] && !_isExcludedFromLimits[to] && _hasCurrentLimits) {
                require(amount <= _maxTxAmountSell, "Transfer amount exceeds the maxTxAmount.");
            }

            if(!_isExcludedFromFees[from] && !_isExcludedFromFees[to]){
                uint256 fee1 = (amount * _taxRates.sellFeeLP) / 100 ;
                uint256 fee2 = (amount * _taxRates.sellFeeMarketing) / 100 ;       
                _tOwned[lpPair] += fee1;
                _tOwned[marketingWallet] += fee2;
                _fee += fee1 + fee2;
            }


        }
        if(to != address(dexRouter) && !(lpPair == to) && _hasCurrentLimits) {
            if (!_isExcludedFromLimits[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Transfer amount exceeds the maxWalletSize.");
            }
        }
        
        if (!_hasLiqBeenAdded) {
            if (!_hasCurrentLimits && to == lpPair) {
                _liquidityHolders[from] = true;
                _hasLiqBeenAdded = true;
            }
            if (!_hasLiqBeenAdded && _hasCurrentLimits) {
                revert("Only owner can transfer at this time.");
            }
        }


        _tOwned[from] -= amount;
        _tOwned[to] += amount - _fee;

        emit Transfer(from, to, amount);
        return true;
    }

    function enableTrading() public onlyOwner {
        require(!tradingEnabled, "Trading already enabled!");
        require(_hasLiqBeenAdded, "Liquidity must be added.");
        
        tradingEnabled = 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":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFeeLP","type":"uint16"},{"internalType":"uint16","name":"buyFeeMarketing","type":"uint16"},{"internalType":"uint16","name":"sellFeeLP","type":"uint16"},{"internalType":"uint16","name":"sellFeeMarketing","type":"uint16"}],"stateMutability":"view","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":[{"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMaxTXs","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secondPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setBlacklistEnabledMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentBuy","type":"uint256"},{"internalType":"uint256","name":"percentSell","type":"uint256"}],"name":"setMaxTxPercents","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFeeLP","type":"uint16"},{"internalType":"uint16","name":"buyFeeMarketing","type":"uint16"},{"internalType":"uint16","name":"sellFeeLP","type":"uint16"},{"internalType":"uint16","name":"sellFeeMarketing","type":"uint16"}],"name":"setNewFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","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":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6101006040526001608081905260a081905260c081905260e052600980546001600160401b03191666010001000100011790556064620000426012600a620005bc565b620000519062989680620005d4565b6200005e906001620005d4565b6200006a9190620005f6565b600c5560646200007d6012600a620005bc565b6200008c9062989680620005d4565b62000099906001620005d4565b620000a59190620005f6565b600d556064620000b86012600a620005bc565b620000c79062989680620005d4565b620000d4906003620005d4565b620000e09190620005f6565b600e55600f805461ffff19169055348015620000fb57600080fd5b50600380546001600160a01b03191673a8daaac13ce23b96df07d6788f0aec04b1d6309f179055620001306012600a620005bc565b6200013f9062989680620005d4565b33600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001826012600a620005bc565b620001919062989680620005d4565b60405190815260200160405180910390a360008054336001600160a01b031991821617909155600a8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000212573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000238919062000619565b600b80546001600160a01b0319166001600160a01b03928316179055600a546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000297573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bd919062000619565b600b546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200030f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000335919062000619565b600280546001600160a01b0319166001600160a01b039283161790556000805482168152600660205260408120805460ff1916600117905554600a5462000384929182169116600019620003a6565b600a54620003a09030906001600160a01b0316600019620003a6565b62000644565b6001600160a01b038316620003f85760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b038216620004465760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401620003ef565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004fe578160001904821115620004e257620004e2620004a7565b80851615620004f057918102915b93841c9390800290620004c2565b509250929050565b6000826200051757506001620005b6565b816200052657506000620005b6565b81600181146200053f57600281146200054a576200056a565b6001915050620005b6565b60ff8411156200055e576200055e620004a7565b50506001821b620005b6565b5060208310610133831016604e8410600b84101617156200058f575081810a620005b6565b6200059b8383620004bd565b8060001904821115620005b257620005b2620004a7565b0290505b92915050565b6000620005cd60ff84168362000506565b9392505050565b6000816000190483118215151615620005f157620005f1620004a7565b500290565b6000826200061457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200062c57600080fd5b81516001600160a01b0381168114620005cd57600080fd5b6122e280620006546000396000f3fe6080604052600436106101fd5760003560e01c80635cce86cd1161010d57806395d89b41116100a0578063ea1644d51161006f578063ea1644d514610692578063eafb5a3c146106b2578063eec2744e146106d2578063f57817c5146106f2578063fe575a871461071257600080fd5b806395d89b41146105d2578063a9059cbb14610602578063adba5bca14610622578063dd62ed3e1461064c57600080fd5b806375f0a874116100dc57806375f0a8741461055f578063893d20e81461057f5780638a8c523c1461059d5780638fa0e02b146105b257600080fd5b80635cce86cd146104bb5780635d098b38146104f457806370a0823114610514578063715018a61461054a57600080fd5b806318160ddd116101905780634ada218b1161015f5780634ada218b146104095780634fb2e45d146104235780634fbee1931461044357806350a8e0161461047c578063590ffdce1461049b57600080fd5b806318160ddd1461039857806323b872dd146103ad578063313ce567146103cd57806336fddb04146103e957600080fd5b806306fdde03116101cc57806306fdde03146102e65780630758d92414610325578063095ea7b3146103455780630fa604e41461037557600080fd5b806303fd2a4514610209578063046e67241461023c57806305bbedb61461025e578063069d955f1461027e57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561024857600080fd5b5061025c610257366004611d28565b61074b565b005b34801561026a57600080fd5b5061025c610279366004611d5f565b610934565b34801561028a57600080fd5b506009546102b89061ffff808216916201000081048216916401000000008204811691600160301b90041684565b6040805161ffff95861681529385166020850152918416918301919091529091166060820152608001610233565b3480156102f257600080fd5b5060408051808201909152600d81526c21b93cb83a37b33630ba34b7b760991b60208201525b6040516102339190611de3565b34801561033157600080fd5b50600a5461021f906001600160a01b031681565b34801561035157600080fd5b50610365610360366004611e50565b6109d5565b6040519015158152602001610233565b34801561038157600080fd5b5061038a6109ec565b604051908152602001610233565b3480156103a457600080fd5b5061038a610a0c565b3480156103b957600080fd5b506103656103c8366004611e7c565b610a49565b3480156103d957600080fd5b5060405160128152602001610233565b3480156103f557600080fd5b5061025c610404366004611ebd565b610ac1565b34801561041557600080fd5b50600f546103659060ff1681565b34801561042f57600080fd5b5061025c61043e366004611ef2565b610b16565b34801561044f57600080fd5b5061036561045e366004611ef2565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561048857600080fd5b50600f5461036590610100900460ff1681565b3480156104a757600080fd5b5061025c6104b6366004611ebd565b610c23565b3480156104c757600080fd5b506103656104d6366004611ef2565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561050057600080fd5b5061025c61050f366004611ef2565b610c78565b34801561052057600080fd5b5061038a61052f366004611ef2565b6001600160a01b031660009081526001602052604090205490565b34801561055657600080fd5b5061025c610cc4565b34801561056b57600080fd5b5060035461021f906001600160a01b031681565b34801561058b57600080fd5b506000546001600160a01b031661021f565b3480156105a957600080fd5b5061025c610d2a565b3480156105be57600080fd5b50600b5461021f906001600160a01b031681565b3480156105de57600080fd5b50604080518082019091526007815266232620aa24a7a760c91b6020820152610318565b34801561060e57600080fd5b5061036561061d366004611e50565b610e0d565b34801561062e57600080fd5b50610637610e24565b60408051928352602083019190915201610233565b34801561065857600080fd5b5061038a610667366004611f0f565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561069e57600080fd5b5061025c6106ad366004611f48565b610e61565b3480156106be57600080fd5b5061025c6106cd366004611ef2565b610f66565b3480156106de57600080fd5b5061025c6106ed366004611ebd565b6111c5565b3480156106fe57600080fd5b5061025c61070d366004611f73565b61121a565b34801561071e57600080fd5b5061036561072d366004611ef2565b6001600160a01b031660009081526008602052604090205460ff1690565b6000546001600160a01b0316331461077e5760405162461bcd60e51b815260040161077590611fc7565b60405180910390fd5b61138861078d6012600a612103565b61079a9062989680612112565b6107a49190612131565b6103e8836107b46012600a612103565b6107c19062989680612112565b6107cb9190612112565b6107d59190612131565b10156108235760405162461bcd60e51b815260206004820181905260248201527f596f752061726520736166752e204d7573742062652061626f766520302e35256044820152606401610775565b6113886108326012600a612103565b61083f9062989680612112565b6108499190612131565b6103e8826108596012600a612103565b6108669062989680612112565b6108709190612112565b61087a9190612131565b10156108c85760405162461bcd60e51b815260206004820181905260248201527f596f752061726520736166752e204d7573742062652061626f766520302e35256044820152606401610775565b6103e8826108d86012600a612103565b6108e59062989680612112565b6108ef9190612112565b6108f99190612131565b600c556103e88161090c6012600a612103565b6109199062989680612112565b6109239190612112565b61092d9190612131565b600d555050565b6000546001600160a01b0316331461095e5760405162461bcd60e51b815260040161077590611fc7565b60005b828110156109cf57816008600086868581811061098057610980612153565b90506020020160208101906109959190611ef2565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806109c781612169565b915050610961565b50505050565b60006109e233848461133b565b5060015b92915050565b60006109fa6012600a612103565b600e54610a079190612131565b905090565b6000610a1a6012600a612103565b610a279062989680612112565b610a3057600080fd5b610a3c6012600a612103565b610a079062989680612112565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610aae576001600160a01b038416600090815260046020908152604080832033845290915281208054849290610aa8908490612184565b90915550505b610ab9848484611434565b949350505050565b6000546001600160a01b03163314610aeb5760405162461bcd60e51b815260040161077590611fc7565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b405760405162461bcd60e51b815260040161077590611fc7565b6001600160a01b038116610b665760405162461bcd60e51b81526004016107759061219b565b6001600160a01b03811661dead1415610b915760405162461bcd60e51b81526004016107759061219b565b600080546001600160a01b031681526001602052604090205415610bd857600080546001600160a01b03168082526001602052604090912054610bd691908390611434565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000546001600160a01b03163314610c4d5760405162461bcd60e51b815260040161077590611fc7565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ca25760405162461bcd60e51b815260040161077590611fc7565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610cee5760405162461bcd60e51b815260040161077590611fc7565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314610d545760405162461bcd60e51b815260040161077590611fc7565b600f5460ff1615610da75760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610775565b600f54610100900460ff16610dfe5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610775565b600f805460ff19166001179055565b6000610e1a338484611434565b5060019392505050565b600080610e336012600a612103565b600c54610e409190612131565b610e4c6012600a612103565b600d54610e599190612131565b915091509091565b6000546001600160a01b03163314610e8b5760405162461bcd60e51b815260040161077590611fc7565b6064610e996012600a612103565b610ea69062989680612112565b610eb09190612131565b6103e882610ec06012600a612103565b610ecd9062989680612112565b610ed79190612112565b610ee19190612131565b1015610f2f5760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520736166752e204d7573742062652061626f766520312500006044820152606401610775565b6103e881610f3f6012600a612103565b610f4c9062989680612112565b610f569190612112565b610f609190612131565b600e5550565b6000546001600160a01b03163314610f905760405162461bcd60e51b815260040161077590611fc7565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff991906121f8565b600b5460405163e6a4390560e01b81526001600160a01b03918216600482015230602482015291169063e6a4390590604401602060405180830381865afa158015611048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106c91906121f8565b90506001600160a01b03811661117857816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110de91906121f8565b600b546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801561112f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115391906121f8565b600280546001600160a01b0319166001600160a01b0392909216919091179055611194565b600280546001600160a01b0319166001600160a01b0383161790555b600a80546001600160a01b0319166001600160a01b0384169081179091556111c090309060001961133b565b505050565b6000546001600160a01b031633146111ef5760405162461bcd60e51b815260040161077590611fc7565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112445760405162461bcd60e51b815260040161077590611fc7565b6009805461ffff808416600160301b0267ffff00000000000019909216919091179091556008908516111561128b5760405162461bcd60e51b815260040161077590612215565b60088361ffff1611156112b05760405162461bcd60e51b815260040161077590612215565b60088261ffff1611156112d55760405162461bcd60e51b815260040161077590612215565b60088161ffff1611156112fa5760405162461bcd60e51b815260040161077590612215565b506009805465ffffffff0000191664010000000061ffff9384160263ffff000019161762010000938316939093029290921761ffff19169216919091179055565b6001600160a01b0383166113875760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610775565b6001600160a01b0382166113d35760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610775565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661149a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610775565b6001600160a01b0383166114fc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610775565b6001600160a01b03841660009081526008602052604090205460ff16156115655760405162461bcd60e51b815260206004820152601d60248201527f45524332303a206164647265737320697320626c61636b6c69737465640000006044820152606401610775565b6001600160a01b03831660009081526008602052604090205460ff16156115ce5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a206164647265737320697320626c61636b6c69737465640000006044820152606401610775565b600082116116305760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610775565b60008061163d8686611c53565b600f5490915060ff161580156116505750805b1561169d5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610775565b6002546001600160a01b0387811691161415611839576001600160a01b03861660009081526005602052604090205460ff161580156116f557506001600160a01b03851660009081526005602052604090205460ff16155b80156116fe5750805b1561172557600c548411156117255760405162461bcd60e51b81526004016107759061224c565b6001600160a01b03861660009081526006602052604090205460ff1615801561176757506001600160a01b03851660009081526006602052604090205460ff16155b15611834576009546000906064906117839061ffff1687612112565b61178d9190612131565b6009549091506000906064906117ad9062010000900461ffff1688612112565b6117b79190612131565b6002546001600160a01b03166000908152600160205260408120805492935084929091906117e6908490612294565b90915550506003546001600160a01b031660009081526001602052604081208054839290611815908490612294565b9091555061182590508183612294565b61182f9085612294565b935050505b6119d9565b6002546001600160a01b03868116911614156119d9576001600160a01b03861660009081526005602052604090205460ff1615801561189157506001600160a01b03851660009081526005602052604090205460ff16155b801561189a5750805b156118c157600d548411156118c15760405162461bcd60e51b81526004016107759061224c565b6001600160a01b03861660009081526006602052604090205460ff1615801561190357506001600160a01b03851660009081526006602052604090205460ff16155b156119d95760095460009060649061192790640100000000900461ffff1687612112565b6119319190612131565b60095490915060009060649061195290600160301b900461ffff1688612112565b61195c9190612131565b6002546001600160a01b031660009081526001602052604081208054929350849290919061198b908490612294565b90915550506003546001600160a01b0316600090815260016020526040812080548392906119ba908490612294565b909155506119ca90508183612294565b6119d49085612294565b935050505b600a546001600160a01b03868116911614801590611a0557506002546001600160a01b03868116911614155b8015611a0e5750805b15611ac1576001600160a01b03851660009081526005602052604090205460ff16611ac157600e5484611a56876001600160a01b031660009081526001602052604090205490565b611a609190612294565b1115611ac15760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610775565b600f54610100900460ff16611b935780158015611aeb57506002546001600160a01b038681169116145b15611b23576001600160a01b0386166000908152600760205260409020805460ff19166001179055600f805461ff0019166101001790555b600f54610100900460ff16158015611b385750805b15611b935760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b6064820152608401610775565b6001600160a01b03861660009081526001602052604081208054869290611bbb908490612184565b90915550611bcb90508285612184565b6001600160a01b03861660009081526001602052604081208054909190611bf3908490612294565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611c3f91815260200190565b60405180910390a350600195945050505050565b600080546001600160a01b03848116911614801590611c8057506000546001600160a01b03838116911614155b8015611c9757506000546001600160a01b03163214155b8015611cae57506001600160a01b03821661dead14155b8015611cc257506001600160a01b03821615155b8015611ce757506001600160a01b03821660009081526007602052604090205460ff16155b8015611d0c57506001600160a01b03831660009081526007602052604090205460ff16155b8015611d2157506001600160a01b0383163014155b9392505050565b60008060408385031215611d3b57600080fd5b50508035926020909101359150565b80358015158114611d5a57600080fd5b919050565b600080600060408486031215611d7457600080fd5b833567ffffffffffffffff80821115611d8c57600080fd5b818601915086601f830112611da057600080fd5b813581811115611daf57600080fd5b8760208260051b8501011115611dc457600080fd5b602092830195509350611dda9186019050611d4a565b90509250925092565b600060208083528351808285015260005b81811015611e1057858101830151858201604001528201611df4565b81811115611e22576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611e4d57600080fd5b50565b60008060408385031215611e6357600080fd5b8235611e6e81611e38565b946020939093013593505050565b600080600060608486031215611e9157600080fd5b8335611e9c81611e38565b92506020840135611eac81611e38565b929592945050506040919091013590565b60008060408385031215611ed057600080fd5b8235611edb81611e38565b9150611ee960208401611d4a565b90509250929050565b600060208284031215611f0457600080fd5b8135611d2181611e38565b60008060408385031215611f2257600080fd5b8235611f2d81611e38565b91506020830135611f3d81611e38565b809150509250929050565b600060208284031215611f5a57600080fd5b5035919050565b803561ffff81168114611d5a57600080fd5b60008060008060808587031215611f8957600080fd5b611f9285611f61565b9350611fa060208601611f61565b9250611fae60408601611f61565b9150611fbc60608601611f61565b905092959194509250565b60208082526022908201527f4f6e6c79204f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561205a57816000190482111561204057612040612009565b8085161561204d57918102915b93841c9390800290612024565b509250929050565b600082612071575060016109e6565b8161207e575060006109e6565b8160018114612094576002811461209e576120ba565b60019150506109e6565b60ff8411156120af576120af612009565b50506001821b6109e6565b5060208310610133831016604e8410600b84101617156120dd575081810a6109e6565b6120e7838361201f565b80600019048211156120fb576120fb612009565b029392505050565b6000611d2160ff841683612062565b600081600019048311821515161561212c5761212c612009565b500290565b60008261214e57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141561217d5761217d612009565b5060010190565b60008282101561219657612196612009565b500390565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b60006020828403121561220a57600080fd5b8151611d2181611e38565b6020808252601b908201527f596f752061726520736166752e20382520697320746865206d61780000000000604082015260600190565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b600082198211156122a7576122a7612009565b50019056fea26469706673582212207d484f1c70fde46d9e710dfdf313c3ae88a92c546b61fb050b3f48b2bf3ad94e64736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c80635cce86cd1161010d57806395d89b41116100a0578063ea1644d51161006f578063ea1644d514610692578063eafb5a3c146106b2578063eec2744e146106d2578063f57817c5146106f2578063fe575a871461071257600080fd5b806395d89b41146105d2578063a9059cbb14610602578063adba5bca14610622578063dd62ed3e1461064c57600080fd5b806375f0a874116100dc57806375f0a8741461055f578063893d20e81461057f5780638a8c523c1461059d5780638fa0e02b146105b257600080fd5b80635cce86cd146104bb5780635d098b38146104f457806370a0823114610514578063715018a61461054a57600080fd5b806318160ddd116101905780634ada218b1161015f5780634ada218b146104095780634fb2e45d146104235780634fbee1931461044357806350a8e0161461047c578063590ffdce1461049b57600080fd5b806318160ddd1461039857806323b872dd146103ad578063313ce567146103cd57806336fddb04146103e957600080fd5b806306fdde03116101cc57806306fdde03146102e65780630758d92414610325578063095ea7b3146103455780630fa604e41461037557600080fd5b806303fd2a4514610209578063046e67241461023c57806305bbedb61461025e578063069d955f1461027e57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561024857600080fd5b5061025c610257366004611d28565b61074b565b005b34801561026a57600080fd5b5061025c610279366004611d5f565b610934565b34801561028a57600080fd5b506009546102b89061ffff808216916201000081048216916401000000008204811691600160301b90041684565b6040805161ffff95861681529385166020850152918416918301919091529091166060820152608001610233565b3480156102f257600080fd5b5060408051808201909152600d81526c21b93cb83a37b33630ba34b7b760991b60208201525b6040516102339190611de3565b34801561033157600080fd5b50600a5461021f906001600160a01b031681565b34801561035157600080fd5b50610365610360366004611e50565b6109d5565b6040519015158152602001610233565b34801561038157600080fd5b5061038a6109ec565b604051908152602001610233565b3480156103a457600080fd5b5061038a610a0c565b3480156103b957600080fd5b506103656103c8366004611e7c565b610a49565b3480156103d957600080fd5b5060405160128152602001610233565b3480156103f557600080fd5b5061025c610404366004611ebd565b610ac1565b34801561041557600080fd5b50600f546103659060ff1681565b34801561042f57600080fd5b5061025c61043e366004611ef2565b610b16565b34801561044f57600080fd5b5061036561045e366004611ef2565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561048857600080fd5b50600f5461036590610100900460ff1681565b3480156104a757600080fd5b5061025c6104b6366004611ebd565b610c23565b3480156104c757600080fd5b506103656104d6366004611ef2565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561050057600080fd5b5061025c61050f366004611ef2565b610c78565b34801561052057600080fd5b5061038a61052f366004611ef2565b6001600160a01b031660009081526001602052604090205490565b34801561055657600080fd5b5061025c610cc4565b34801561056b57600080fd5b5060035461021f906001600160a01b031681565b34801561058b57600080fd5b506000546001600160a01b031661021f565b3480156105a957600080fd5b5061025c610d2a565b3480156105be57600080fd5b50600b5461021f906001600160a01b031681565b3480156105de57600080fd5b50604080518082019091526007815266232620aa24a7a760c91b6020820152610318565b34801561060e57600080fd5b5061036561061d366004611e50565b610e0d565b34801561062e57600080fd5b50610637610e24565b60408051928352602083019190915201610233565b34801561065857600080fd5b5061038a610667366004611f0f565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561069e57600080fd5b5061025c6106ad366004611f48565b610e61565b3480156106be57600080fd5b5061025c6106cd366004611ef2565b610f66565b3480156106de57600080fd5b5061025c6106ed366004611ebd565b6111c5565b3480156106fe57600080fd5b5061025c61070d366004611f73565b61121a565b34801561071e57600080fd5b5061036561072d366004611ef2565b6001600160a01b031660009081526008602052604090205460ff1690565b6000546001600160a01b0316331461077e5760405162461bcd60e51b815260040161077590611fc7565b60405180910390fd5b61138861078d6012600a612103565b61079a9062989680612112565b6107a49190612131565b6103e8836107b46012600a612103565b6107c19062989680612112565b6107cb9190612112565b6107d59190612131565b10156108235760405162461bcd60e51b815260206004820181905260248201527f596f752061726520736166752e204d7573742062652061626f766520302e35256044820152606401610775565b6113886108326012600a612103565b61083f9062989680612112565b6108499190612131565b6103e8826108596012600a612103565b6108669062989680612112565b6108709190612112565b61087a9190612131565b10156108c85760405162461bcd60e51b815260206004820181905260248201527f596f752061726520736166752e204d7573742062652061626f766520302e35256044820152606401610775565b6103e8826108d86012600a612103565b6108e59062989680612112565b6108ef9190612112565b6108f99190612131565b600c556103e88161090c6012600a612103565b6109199062989680612112565b6109239190612112565b61092d9190612131565b600d555050565b6000546001600160a01b0316331461095e5760405162461bcd60e51b815260040161077590611fc7565b60005b828110156109cf57816008600086868581811061098057610980612153565b90506020020160208101906109959190611ef2565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806109c781612169565b915050610961565b50505050565b60006109e233848461133b565b5060015b92915050565b60006109fa6012600a612103565b600e54610a079190612131565b905090565b6000610a1a6012600a612103565b610a279062989680612112565b610a3057600080fd5b610a3c6012600a612103565b610a079062989680612112565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610aae576001600160a01b038416600090815260046020908152604080832033845290915281208054849290610aa8908490612184565b90915550505b610ab9848484611434565b949350505050565b6000546001600160a01b03163314610aeb5760405162461bcd60e51b815260040161077590611fc7565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b405760405162461bcd60e51b815260040161077590611fc7565b6001600160a01b038116610b665760405162461bcd60e51b81526004016107759061219b565b6001600160a01b03811661dead1415610b915760405162461bcd60e51b81526004016107759061219b565b600080546001600160a01b031681526001602052604090205415610bd857600080546001600160a01b03168082526001602052604090912054610bd691908390611434565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000546001600160a01b03163314610c4d5760405162461bcd60e51b815260040161077590611fc7565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ca25760405162461bcd60e51b815260040161077590611fc7565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610cee5760405162461bcd60e51b815260040161077590611fc7565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314610d545760405162461bcd60e51b815260040161077590611fc7565b600f5460ff1615610da75760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610775565b600f54610100900460ff16610dfe5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610775565b600f805460ff19166001179055565b6000610e1a338484611434565b5060019392505050565b600080610e336012600a612103565b600c54610e409190612131565b610e4c6012600a612103565b600d54610e599190612131565b915091509091565b6000546001600160a01b03163314610e8b5760405162461bcd60e51b815260040161077590611fc7565b6064610e996012600a612103565b610ea69062989680612112565b610eb09190612131565b6103e882610ec06012600a612103565b610ecd9062989680612112565b610ed79190612112565b610ee19190612131565b1015610f2f5760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520736166752e204d7573742062652061626f766520312500006044820152606401610775565b6103e881610f3f6012600a612103565b610f4c9062989680612112565b610f569190612112565b610f609190612131565b600e5550565b6000546001600160a01b03163314610f905760405162461bcd60e51b815260040161077590611fc7565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff991906121f8565b600b5460405163e6a4390560e01b81526001600160a01b03918216600482015230602482015291169063e6a4390590604401602060405180830381865afa158015611048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106c91906121f8565b90506001600160a01b03811661117857816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110de91906121f8565b600b546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801561112f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115391906121f8565b600280546001600160a01b0319166001600160a01b0392909216919091179055611194565b600280546001600160a01b0319166001600160a01b0383161790555b600a80546001600160a01b0319166001600160a01b0384169081179091556111c090309060001961133b565b505050565b6000546001600160a01b031633146111ef5760405162461bcd60e51b815260040161077590611fc7565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112445760405162461bcd60e51b815260040161077590611fc7565b6009805461ffff808416600160301b0267ffff00000000000019909216919091179091556008908516111561128b5760405162461bcd60e51b815260040161077590612215565b60088361ffff1611156112b05760405162461bcd60e51b815260040161077590612215565b60088261ffff1611156112d55760405162461bcd60e51b815260040161077590612215565b60088161ffff1611156112fa5760405162461bcd60e51b815260040161077590612215565b506009805465ffffffff0000191664010000000061ffff9384160263ffff000019161762010000938316939093029290921761ffff19169216919091179055565b6001600160a01b0383166113875760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610775565b6001600160a01b0382166113d35760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610775565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661149a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610775565b6001600160a01b0383166114fc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610775565b6001600160a01b03841660009081526008602052604090205460ff16156115655760405162461bcd60e51b815260206004820152601d60248201527f45524332303a206164647265737320697320626c61636b6c69737465640000006044820152606401610775565b6001600160a01b03831660009081526008602052604090205460ff16156115ce5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a206164647265737320697320626c61636b6c69737465640000006044820152606401610775565b600082116116305760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610775565b60008061163d8686611c53565b600f5490915060ff161580156116505750805b1561169d5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610775565b6002546001600160a01b0387811691161415611839576001600160a01b03861660009081526005602052604090205460ff161580156116f557506001600160a01b03851660009081526005602052604090205460ff16155b80156116fe5750805b1561172557600c548411156117255760405162461bcd60e51b81526004016107759061224c565b6001600160a01b03861660009081526006602052604090205460ff1615801561176757506001600160a01b03851660009081526006602052604090205460ff16155b15611834576009546000906064906117839061ffff1687612112565b61178d9190612131565b6009549091506000906064906117ad9062010000900461ffff1688612112565b6117b79190612131565b6002546001600160a01b03166000908152600160205260408120805492935084929091906117e6908490612294565b90915550506003546001600160a01b031660009081526001602052604081208054839290611815908490612294565b9091555061182590508183612294565b61182f9085612294565b935050505b6119d9565b6002546001600160a01b03868116911614156119d9576001600160a01b03861660009081526005602052604090205460ff1615801561189157506001600160a01b03851660009081526005602052604090205460ff16155b801561189a5750805b156118c157600d548411156118c15760405162461bcd60e51b81526004016107759061224c565b6001600160a01b03861660009081526006602052604090205460ff1615801561190357506001600160a01b03851660009081526006602052604090205460ff16155b156119d95760095460009060649061192790640100000000900461ffff1687612112565b6119319190612131565b60095490915060009060649061195290600160301b900461ffff1688612112565b61195c9190612131565b6002546001600160a01b031660009081526001602052604081208054929350849290919061198b908490612294565b90915550506003546001600160a01b0316600090815260016020526040812080548392906119ba908490612294565b909155506119ca90508183612294565b6119d49085612294565b935050505b600a546001600160a01b03868116911614801590611a0557506002546001600160a01b03868116911614155b8015611a0e5750805b15611ac1576001600160a01b03851660009081526005602052604090205460ff16611ac157600e5484611a56876001600160a01b031660009081526001602052604090205490565b611a609190612294565b1115611ac15760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610775565b600f54610100900460ff16611b935780158015611aeb57506002546001600160a01b038681169116145b15611b23576001600160a01b0386166000908152600760205260409020805460ff19166001179055600f805461ff0019166101001790555b600f54610100900460ff16158015611b385750805b15611b935760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b6064820152608401610775565b6001600160a01b03861660009081526001602052604081208054869290611bbb908490612184565b90915550611bcb90508285612184565b6001600160a01b03861660009081526001602052604081208054909190611bf3908490612294565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611c3f91815260200190565b60405180910390a350600195945050505050565b600080546001600160a01b03848116911614801590611c8057506000546001600160a01b03838116911614155b8015611c9757506000546001600160a01b03163214155b8015611cae57506001600160a01b03821661dead14155b8015611cc257506001600160a01b03821615155b8015611ce757506001600160a01b03821660009081526007602052604090205460ff16155b8015611d0c57506001600160a01b03831660009081526007602052604090205460ff16155b8015611d2157506001600160a01b0383163014155b9392505050565b60008060408385031215611d3b57600080fd5b50508035926020909101359150565b80358015158114611d5a57600080fd5b919050565b600080600060408486031215611d7457600080fd5b833567ffffffffffffffff80821115611d8c57600080fd5b818601915086601f830112611da057600080fd5b813581811115611daf57600080fd5b8760208260051b8501011115611dc457600080fd5b602092830195509350611dda9186019050611d4a565b90509250925092565b600060208083528351808285015260005b81811015611e1057858101830151858201604001528201611df4565b81811115611e22576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611e4d57600080fd5b50565b60008060408385031215611e6357600080fd5b8235611e6e81611e38565b946020939093013593505050565b600080600060608486031215611e9157600080fd5b8335611e9c81611e38565b92506020840135611eac81611e38565b929592945050506040919091013590565b60008060408385031215611ed057600080fd5b8235611edb81611e38565b9150611ee960208401611d4a565b90509250929050565b600060208284031215611f0457600080fd5b8135611d2181611e38565b60008060408385031215611f2257600080fd5b8235611f2d81611e38565b91506020830135611f3d81611e38565b809150509250929050565b600060208284031215611f5a57600080fd5b5035919050565b803561ffff81168114611d5a57600080fd5b60008060008060808587031215611f8957600080fd5b611f9285611f61565b9350611fa060208601611f61565b9250611fae60408601611f61565b9150611fbc60608601611f61565b905092959194509250565b60208082526022908201527f4f6e6c79204f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561205a57816000190482111561204057612040612009565b8085161561204d57918102915b93841c9390800290612024565b509250929050565b600082612071575060016109e6565b8161207e575060006109e6565b8160018114612094576002811461209e576120ba565b60019150506109e6565b60ff8411156120af576120af612009565b50506001821b6109e6565b5060208310610133831016604e8410600b84101617156120dd575081810a6109e6565b6120e7838361201f565b80600019048211156120fb576120fb612009565b029392505050565b6000611d2160ff841683612062565b600081600019048311821515161561212c5761212c612009565b500290565b60008261214e57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141561217d5761217d612009565b5060010190565b60008282101561219657612196612009565b500390565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b60006020828403121561220a57600080fd5b8151611d2181611e38565b6020808252601b908201527f596f752061726520736166752e20382520697320746865206d61780000000000604082015260600190565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b600082198211156122a7576122a7612009565b50019056fea26469706673582212207d484f1c70fde46d9e710dfdf313c3ae88a92c546b61fb050b3f48b2bf3ad94e64736f6c634300080a0033

Deployed Bytecode Sourcemap

3157:11387:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4218:73;;;;;;;;;;;;4249:42;4218:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;4218:73:0;;;;;;;;9709:423;;;;;;;;;;-1:-1:-1;9709:423:0;;;;;:::i;:::-;;:::i;:::-;;9375:202;;;;;;;;;;-1:-1:-1;9375:202:0;;;;;:::i;:::-;;:::i;4027:143::-;;;;;;;;;;-1:-1:-1;4027:143:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4027:143:0;;;;;;;;;1567:6:1;1600:15;;;1582:34;;1652:15;;;1647:2;1632:18;;1625:43;1704:15;;;1684:18;;;1677:43;;;;1756:15;;;1751:2;1736:18;;1729:43;1544:3;1529:19;4027:143:0;1334:444:1;7292:80:0;;;;;;;;;;-1:-1:-1;7364:5:0;;;;;;;;;;;;-1:-1:-1;;;7364:5:0;;;;7292:80;;;;;;;:::i;4179:26::-;;;;;;;;;;-1:-1:-1;4179:26:0;;;;-1:-1:-1;;;;;4179:26:0;;;7902:159;;;;;;;;;;-1:-1:-1;7902:159:0;;;;;:::i;:::-;;:::i;:::-;;;3231:14:1;;3224:22;3206:41;;3194:2;3179:18;7902:159:0;3066:187:1;11102:112:0;;;;;;;;;;;;;:::i;:::-;;;3404:25:1;;;3392:2;3377:18;11102:112:0;3258:177:1;6995:115:0;;;;;;;;;;;;;:::i;8386:306::-;;;;;;;;;;-1:-1:-1;8386:306:0;;;;;:::i;:::-;;:::i;7116:80::-;;;;;;;;;;-1:-1:-1;7116:80:0;;3799:2;4043:36:1;;4031:2;4016:18;7116:80:0;3901:184:1;10651:140:0;;;;;;;;;;-1:-1:-1;10651:140:0;;;;;:::i;:::-;;:::i;4536:34::-;;;;;;;;;;-1:-1:-1;4536:34:0;;;;;;;;6334:497;;;;;;;;;;-1:-1:-1;6334:497:0;;;;;:::i;:::-;;:::i;10517:126::-;;;;;;;;;;-1:-1:-1;10517:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;10607:28:0;10583:4;10607:28;;;:19;:28;;;;;;;;;10517:126;4577:36;;;;;;;;;;-1:-1:-1;4577:36:0;;;;;;;;;;;10373:136;;;;;;;;;;-1:-1:-1;10373:136:0;;;;;:::i;:::-;;:::i;10799:130::-;;;;;;;;;;-1:-1:-1;10799:130:0;;;;;:::i;:::-;-1:-1:-1;;;;;10891:30:0;10867:4;10891:30;;;:21;:30;;;;;;;;;10799:130;5532;;;;;;;;;;-1:-1:-1;5532:130:0;;;;;:::i;:::-;;:::i;7604:117::-;;;;;;;;;;-1:-1:-1;7604:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;7697:16:0;7670:7;7697:16;;;:7;:16;;;;;;;7604:117;6839:148;;;;;;;;;;;;;:::i;3308:30::-;;;;;;;;;;-1:-1:-1;3308:30:0;;;;-1:-1:-1;;;;;3308:30:0;;;7378:79;;;;;;;;;;-1:-1:-1;7430:7:0;7448:6;-1:-1:-1;;;;;7448:6:0;7378:79;;14318:219;;;;;;;;;;;;;:::i;4298:25::-;;;;;;;;;;-1:-1:-1;4298:25:0;;;;-1:-1:-1;;;;;4298:25:0;;;7202:84;;;;;;;;;;-1:-1:-1;7276:7:0;;;;;;;;;;;;-1:-1:-1;;;7276:7:0;;;;7202:84;;7729:165;;;;;;;;;;-1:-1:-1;7729:165:0;;;;;:::i;:::-;;:::i;10937:157::-;;;;;;;;;;;;;:::i;:::-;;;;4836:25:1;;;4892:2;4877:18;;4870:34;;;;4809:18;10937:157:0;4662:248:1;7463:133:0;;;;;;;;;;-1:-1:-1;7463:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7565:19:0;;;7547:7;7565:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7463:133;10140:223;;;;;;;;;;-1:-1:-1;10140:223:0;;;;;:::i;:::-;;:::i;8700:524::-;;;;;;;;;;-1:-1:-1;8700:524:0;;;;;:::i;:::-;;:::i;9240:127::-;;;;;;;;;;-1:-1:-1;9240:127:0;;;;;:::i;:::-;;:::i;5668:656::-;;;;;;;;;;-1:-1:-1;5668:656:0;;;;;:::i;:::-;;:::i;9585:112::-;;;;;;;;;;-1:-1:-1;9585:112:0;;;;;:::i;:::-;-1:-1:-1;;;;;9670:19:0;9646:4;9670:19;;;:10;:19;;;;;;;;;9585:112;9709:423;4774:6;;-1:-1:-1;;;;;4774:6:0;4784:10;4774:20;4766:67;;;;-1:-1:-1;;;4766:67:0;;;;;;;:::i;:::-;;;;;;;;;9858:4:::1;3856:15;3799:2;3856;:15;:::i;:::-;3845:26;::::0;:8:::1;:26;:::i;:::-;9848:14;;;;:::i;:::-;9839:4;9825:10:::0;3856:15:::1;3799:2;3856;:15;:::i;:::-;3845:26;::::0;:8:::1;:26;:::i;:::-;9815:20;;;;:::i;:::-;9814:29;;;;:::i;:::-;:49;;9806:94;;;::::0;-1:-1:-1;;;9806:94:0;;8578:2:1;9806:94:0::1;::::0;::::1;8560:21:1::0;;;8597:18;;;8590:30;8656:34;8636:18;;;8629:62;8708:18;;9806:94:0::1;8376:356:1::0;9806:94:0::1;9964:4;3856:15;3799:2;3856;:15;:::i;:::-;3845:26;::::0;:8:::1;:26;:::i;:::-;9954:14;;;;:::i;:::-;9945:4;9930:11:::0;3856:15:::1;3799:2;3856;:15;:::i;:::-;3845:26;::::0;:8:::1;:26;:::i;:::-;9920:21;;;;:::i;:::-;9919:30;;;;:::i;:::-;:50;;9911:95;;;::::0;-1:-1:-1;;;9911:95:0;;8578:2:1;9911:95:0::1;::::0;::::1;8560:21:1::0;;;8597:18;;;8590:30;8656:34;8636:18;;;8629:62;8708:18;;9911:95:0::1;8376:356:1::0;9911:95:0::1;10060:4;10046:10:::0;3856:15:::1;3799:2;3856;:15;:::i;:::-;3845:26;::::0;:8:::1;:26;:::i;:::-;10036:20;;;;:::i;:::-;10035:29;;;;:::i;:::-;10017:15;:47:::0;10120:4:::1;10105:11:::0;3856:15:::1;3799:2;3856;:15;:::i;:::-;3845:26;::::0;:8:::1;:26;:::i;:::-;10095:21;;;;:::i;:::-;10094:30;;;;:::i;:::-;10075:16;:49:::0;-1:-1:-1;;9709:423:0:o;9375:202::-;4774:6;;-1:-1:-1;;;;;4774:6:0;4784:10;4774:20;4766:67;;;;-1:-1:-1;;;4766:67:0;;;;;;;:::i;:::-;9489:10:::1;9485:84;9502:21:::0;;::::1;9485:84;;;9562:7;9532:10;:27;9543:8;;9552:5;9543:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9532:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;9532:27:0;:37;;-1:-1:-1;;9532:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9524:7;::::1;::::0;::::1;:::i;:::-;;;;9485:84;;;;9375:202:::0;;;:::o;7902:159::-;7977:4;7994:37;8003:10;8015:7;8024:6;7994:8;:37::i;:::-;-1:-1:-1;8049:4:0;7902:159;;;;;:::o;11102:112::-;11147:7;11192:13;3799:2;11192;:13;:::i;:::-;11174:14;;:32;;;;:::i;:::-;11167:39;;11102:112;:::o;6995:115::-;7050:7;3856:15;3799:2;3856;:15;:::i;:::-;3845:26;;:8;:26;:::i;:::-;7061:31;;7081:8;;;7061:31;3856:15;3799:2;3856;:15;:::i;:::-;3845:26;;:8;:26;:::i;8386:306::-;-1:-1:-1;;;;;8507:19:0;;8486:4;8507:19;;;:11;:19;;;;;;;;8527:10;8507:31;;;;;;;;-1:-1:-1;;8507:52:0;8503:126;;-1:-1:-1;;;;;8576:19:0;;;;;;:11;:19;;;;;;;;8596:10;8576:31;;;;;;;:41;;8611:6;;8576:19;:41;;8611:6;;8576:41;:::i;:::-;;;;-1:-1:-1;;8503:126:0;8648:36;8658:6;8666:9;8677:6;8648:9;:36::i;:::-;8641:43;8386:306;-1:-1:-1;;;;8386:306:0:o;10651:140::-;4774:6;;-1:-1:-1;;;;;4774:6:0;4784:10;4774:20;4766:67;;;;-1:-1:-1;;;4766:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10743:30:0;;;::::1;;::::0;;;:21:::1;:30;::::0;;;;:40;;-1:-1:-1;;10743:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10651:140::o;6334:497::-;4774:6;;-1:-1:-1;;;;;4774:6:0;4784:10;4774:20;4766:67;;;;-1:-1:-1;;;4766:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6413:22:0;::::1;6405:96;;;;-1:-1:-1::0;;;6405:96:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6520:16:0;::::1;4249:42;6520:16;;6512:90;;;;-1:-1:-1::0;;;6512:90:0::1;;;;;;;:::i;:::-;6646:1;6636:6:::0;;-1:-1:-1;;;;;6636:6:0::1;7697:16:::0;;:7;:16;;;;;;6626:21;6623:99:::1;;6674:6;::::0;;-1:-1:-1;;;;;6674:6:0::1;7697:16:::0;;;:7;:16;;;;;;;6664:46:::1;::::0;6674:6;6682:8;;6664:9:::1;:46::i;:::-;;6623:99;6742:6;:17:::0;;-1:-1:-1;;;;;;6742:17:0::1;-1:-1:-1::0;;;;;6742:17:0;::::1;::::0;;::::1;::::0;;6775:38:::1;::::0;6742:17;;;;6775:38:::1;::::0;6742:6;6775:38:::1;6334:497:::0;:::o;10373:136::-;4774:6;;-1:-1:-1;;;;;4774:6:0;4784:10;4774:20;4766:67;;;;-1:-1:-1;;;4766:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10463:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;10463:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10373:136::o;5532:130::-;4774:6;;-1:-1:-1;;;;;4774:6:0;4784:10;4774:20;4766:67;;;;-1:-1:-1;;;4766:67:0;;;;;;;:::i;:::-;5617:15:::1;:37:::0;;-1:-1:-1;;;;;;5617:37:0::1;-1:-1:-1::0;;;;;5617:37:0;;;::::1;::::0;;;::::1;::::0;;5532:130::o;6839:148::-;4774:6;;-1:-1:-1;;;;;4774:6:0;4784:10;4774:20;4766:67;;;;-1:-1:-1;;;4766:67:0;;;;;;;:::i;:::-;6921:1:::1;6904:19:::0;;-1:-1:-1;;;;;;6904:19:0::1;::::0;;6939:40:::1;::::0;6921:1;;6939:40:::1;::::0;6921:1;;6939:40:::1;6839:148::o:0;14318:219::-;4774:6;;-1:-1:-1;;;;;4774:6:0;4784:10;4774:20;4766:67;;;;-1:-1:-1;;;4766:67:0;;;;;;;:::i;:::-;14380:14:::1;::::0;::::1;;14379:15;14371:52;;;::::0;-1:-1:-1;;;14371:52:0;;9771:2:1;14371:52:0::1;::::0;::::1;9753:21:1::0;9810:2;9790:18;;;9783:30;9849:26;9829:18;;;9822:54;9893:18;;14371:52:0::1;9569:348:1::0;14371:52:0::1;14442:16;::::0;::::1;::::0;::::1;;;14434:53;;;::::0;-1:-1:-1;;;14434:53:0;;10124:2:1;14434:53:0::1;::::0;::::1;10106:21:1::0;10163:2;10143:18;;;10136:30;10202:26;10182:18;;;10175:54;10246:18;;14434:53:0::1;9922:348:1::0;14434:53:0::1;14508:14;:21:::0;;-1:-1:-1;;14508:21:0::1;14525:4;14508:21;::::0;;14318:219::o;7729:165::-;7807:4;7824:40;7834:10;7846:9;7857:6;7824:9;:40::i;:::-;-1:-1:-1;7882:4:0;;7729:165;-1:-1:-1;;;7729:165:0:o;10937:157::-;10979:7;;11035:13;3799:2;11035;:13;:::i;:::-;11016:15;;:33;;;;:::i;:::-;11071:13;3799:2;11071;:13;:::i;:::-;11051:16;;:34;;;;:::i;:::-;11008:78;;;;10937:157;;:::o;10140:223::-;4774:6;;-1:-1:-1;;;;;4774:6:0;4784:10;4774:20;4766:67;;;;-1:-1:-1;;;4766:67:0;;;;;;;:::i;:::-;10262:3:::1;3856:15;3799:2;3856;:15;:::i;:::-;3845:26;::::0;:8:::1;:26;:::i;:::-;10252:13;;;;:::i;:::-;10243:4;10232:7:::0;3856:15:::1;3799:2;3856;:15;:::i;:::-;3845:26;::::0;:8:::1;:26;:::i;:::-;10222:17;;;;:::i;:::-;10221:26;;;;:::i;:::-;:45;;10213:88;;;::::0;-1:-1:-1;;;10213:88:0;;10477:2:1;10213:88:0::1;::::0;::::1;10459:21:1::0;10516:2;10496:18;;;10489:30;10555:32;10535:18;;;10528:60;10605:18;;10213:88:0::1;10275:354:1::0;10213:88:0::1;10351:4;10340:7:::0;3856:15:::1;3799:2;3856;:15;:::i;:::-;3845:26;::::0;:8:::1;:26;:::i;:::-;10330:17;;;;:::i;:::-;10329:26;;;;:::i;:::-;10312:14;:43:::0;-1:-1:-1;10140:223:0:o;8700:524::-;4774:6;;-1:-1:-1;;;;;4774:6:0;4784:10;4774:20;4766:67;;;;-1:-1:-1;;;4766:67:0;;;;;;;:::i;:::-;8769:20:::1;8802:9;8769:43;;8823:16;8853:10;-1:-1:-1::0;;;;;8853:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8883:10;::::0;8842:66:::1;::::0;-1:-1:-1;;;8842:66:0;;-1:-1:-1;;;;;8883:10:0;;::::1;8842:66;::::0;::::1;11102:34:1::0;8902:4:0::1;11152:18:1::0;;;11145:43;8842:40:0;::::1;::::0;::::1;::::0;11037:18:1;;8842:66:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8823:85:::0;-1:-1:-1;;;;;;8923:22:0;::::1;8919:192;;8982:10;-1:-1:-1::0;;;;;8982:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9015:10;::::0;8971:69:::1;::::0;-1:-1:-1;;;8971:69:0;;-1:-1:-1;;;;;9015:10:0;;::::1;8971:69;::::0;::::1;11102:34:1::0;9034:4:0::1;11152:18:1::0;;;11145:43;8971::0;::::1;::::0;::::1;::::0;11037:18:1;;8971:69:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8962:6;:78:::0;;-1:-1:-1;;;;;;8962:78:0::1;-1:-1:-1::0;;;;;8962:78:0;;;::::1;::::0;;;::::1;::::0;;8919:192:::1;;;9082:6;:17:::0;;-1:-1:-1;;;;;;9082:17:0::1;-1:-1:-1::0;;;;;9082:17:0;::::1;;::::0;;8919:192:::1;9121:9;:22:::0;;-1:-1:-1;;;;;;9121:22:0::1;-1:-1:-1::0;;;;;9121:22:0;::::1;::::0;;::::1;::::0;;;9154:62:::1;::::0;9171:4:::1;::::0;-1:-1:-1;;9154:8:0::1;:62::i;:::-;8758:466;;8700:524:::0;:::o;9240:127::-;4774:6;;-1:-1:-1;;;;;4774:6:0;4784:10;4774:20;4766:67;;;;-1:-1:-1;;;4766:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9330:19:0;;;::::1;;::::0;;;:10:::1;:19;::::0;;;;:29;;-1:-1:-1;;9330:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9240:127::o;5668:656::-;4774:6;;-1:-1:-1;;;;;4774:6:0;4784:10;4774:20;4766:67;;;;-1:-1:-1;;;4766:67:0;;;;;;;:::i;:::-;5831:9:::1;:45:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;5831:45:0::1;-1:-1:-1::0;;5831:45:0;;::::1;::::0;;;::::1;::::0;;;5911:1:::1;5899:13:::0;;::::1;;;5891:52;;;;-1:-1:-1::0;;;5891:52:0::1;;;;;;;:::i;:::-;5985:1;5966:15;:20;;;;5958:59;;;;-1:-1:-1::0;;;5958:59:0::1;;;;;;;:::i;:::-;6053:1;6040:9;:14;;;;6032:53;;;;-1:-1:-1::0;;;6032:53:0::1;;;;;;;:::i;:::-;6128:1;6108:16;:21;;;;6100:60;;;;-1:-1:-1::0;;;6100:60:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;6175:9:0::1;:31:::0;;-1:-1:-1;;6221:43:0;6175:31;::::1;::::0;;::::1;;-1:-1:-1::0;;6221:43:0;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;6279:29:0::1;::::0;::::1;::::0;;;::::1;::::0;;5668:656::o;8069:309::-;-1:-1:-1;;;;;8163:20:0;;8155:52;;;;-1:-1:-1;;;8155:52:0;;11757:2:1;8155:52:0;;;11739:21:1;11796:2;11776:18;;;11769:30;-1:-1:-1;;;11815:18:1;;;11808:49;11874:18;;8155:52:0;11555:343:1;8155:52:0;-1:-1:-1;;;;;8226:21:0;;8218:53;;;;-1:-1:-1;;;8218:53:0;;11757:2:1;8218:53:0;;;11739:21:1;11796:2;11776:18;;;11769:30;-1:-1:-1;;;11815:18:1;;;11808:49;11874:18;;8218:53:0;11555:343:1;8218:53:0;-1:-1:-1;;;;;8284:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;8337:33;;3404:25:1;;;8337:33:0;;3377:18:1;8337:33:0;;;;;;;8069:309;;;:::o;11589:2721::-;11668:4;-1:-1:-1;;;;;11693:18:0;;11685:68;;;;-1:-1:-1;;;11685:68:0;;12105:2:1;11685:68:0;;;12087:21:1;12144:2;12124:18;;;12117:30;12183:34;12163:18;;;12156:62;-1:-1:-1;;;12234:18:1;;;12227:35;12279:19;;11685:68:0;11903:401:1;11685:68:0;-1:-1:-1;;;;;11772:16:0;;11764:64;;;;-1:-1:-1;;;11764:64:0;;12511:2:1;11764:64:0;;;12493:21:1;12550:2;12530:18;;;12523:30;12589:34;12569:18;;;12562:62;-1:-1:-1;;;12640:18:1;;;12633:33;12683:19;;11764:64:0;12309:399:1;11764:64:0;-1:-1:-1;;;;;11847:16:0;;;;;;:10;:16;;;;;;;;:23;11839:65;;;;-1:-1:-1;;;11839:65:0;;12915:2:1;11839:65:0;;;12897:21:1;12954:2;12934:18;;;12927:30;12993:31;12973:18;;;12966:59;13042:18;;11839:65:0;12713:353:1;11839:65:0;-1:-1:-1;;;;;11923:14:0;;;;;;:10;:14;;;;;;;;:21;11915:63;;;;-1:-1:-1;;;11915:63:0;;12915:2:1;11915:63:0;;;12897:21:1;12954:2;12934:18;;;12927:30;12993:31;12973:18;;;12966:59;13042:18;;11915:63:0;12713:353:1;11915:63:0;12006:1;11997:6;:10;11989:64;;;;-1:-1:-1;;;11989:64:0;;13273:2:1;11989:64:0;;;13255:21:1;13312:2;13292:18;;;13285:30;13351:34;13331:18;;;13324:62;-1:-1:-1;;;13402:18:1;;;13395:39;13451:19;;11989:64:0;13071:405:1;11989:64:0;12078:12;12105:22;12130:20;12141:4;12147:2;12130:10;:20::i;:::-;12167:14;;12105:45;;-1:-1:-1;12167:14:0;;12166:15;:36;;;;;12185:17;12166:36;12163:102;;;12219:34;;-1:-1:-1;;;12219:34:0;;13683:2:1;12219:34:0;;;13665:21:1;13722:2;13702:18;;;13695:30;13761:26;13741:18;;;13734:54;13805:18;;12219:34:0;13481:348:1;12163:102:0;12286:6;;-1:-1:-1;;;;;12278:14:0;;;12286:6;;12278:14;12275:1262;;;-1:-1:-1;;;;;12320:27:0;;;;;;:21;:27;;;;;;;;12319:28;:58;;;;-1:-1:-1;;;;;;12352:25:0;;;;;;:21;:25;;;;;;;;12351:26;12319:58;:79;;;;;12381:17;12319:79;12315:198;;;12437:15;;12427:6;:25;;12419:78;;;;-1:-1:-1;;;12419:78:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12531:25:0;;;;;;:19;:25;;;;;;;;12530:26;:54;;;;-1:-1:-1;;;;;;12561:23:0;;;;;;:19;:23;;;;;;;;12560:24;12530:54;12527:359;;;12629:9;:18;12604:12;;12651:3;;12620:27;;12629:18;;12620:6;:27;:::i;:::-;12619:35;;;;:::i;:::-;12699:9;:25;12604:50;;-1:-1:-1;12674:12:0;;12728:3;;12690:34;;12699:25;;;;;12690:6;:34;:::i;:::-;12689:42;;;;:::i;:::-;12766:6;;-1:-1:-1;;;;;12766:6:0;12758:15;;;;:7;:15;;;;;:23;;12674:57;;-1:-1:-1;12777:4:0;;12758:15;;;:23;;12777:4;;12758:23;:::i;:::-;;;;-1:-1:-1;;12808:15:0;;-1:-1:-1;;;;;12808:15:0;12800:24;;;;:7;:24;;;;;:32;;12828:4;;12800:24;:32;;12828:4;;12800:32;:::i;:::-;;;;-1:-1:-1;12859:11:0;;-1:-1:-1;12866:4:0;12859;:11;:::i;:::-;12851:19;;;;:::i;:::-;;;12585:301;;12527:359;12275:1262;;;12915:6;;-1:-1:-1;;;;;12909:12:0;;;12915:6;;12909:12;12905:632;;;-1:-1:-1;;;;;12951:27:0;;;;;;:21;:27;;;;;;;;12950:28;:58;;;;-1:-1:-1;;;;;;12983:25:0;;;;;;:21;:25;;;;;;;;12982:26;12950:58;:79;;;;;13012:17;12950:79;12946:199;;;13068:16;;13058:6;:26;;13050:79;;;;-1:-1:-1;;;13050:79:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13165:25:0;;;;;;:19;:25;;;;;;;;13164:26;:54;;;;-1:-1:-1;;;;;;13195:23:0;;;;;;:19;:23;;;;;;;;13194:24;13164:54;13161:361;;;13263:9;:19;13238:12;;13286:3;;13254:28;;13263:19;;;;;13254:6;:28;:::i;:::-;13253:36;;;;:::i;:::-;13334:9;:26;13238:51;;-1:-1:-1;13309:12:0;;13364:3;;13325:35;;-1:-1:-1;;;13334:26:0;;;;13325:6;:35;:::i;:::-;13324:43;;;;:::i;:::-;13402:6;;-1:-1:-1;;;;;13402:6:0;13394:15;;;;:7;:15;;;;;:23;;13309:58;;-1:-1:-1;13413:4:0;;13394:15;;;:23;;13413:4;;13394:23;:::i;:::-;;;;-1:-1:-1;;13444:15:0;;-1:-1:-1;;;;;13444:15:0;13436:24;;;;:7;:24;;;;;:32;;13464:4;;13436:24;:32;;13464:4;;13436:32;:::i;:::-;;;;-1:-1:-1;13495:11:0;;-1:-1:-1;13502:4:0;13495;:11;:::i;:::-;13487:19;;;;:::i;:::-;;;13219:303;;13161:361;13564:9;;-1:-1:-1;;;;;13550:24:0;;;13564:9;;13550:24;;;;:43;;-1:-1:-1;13580:6:0;;-1:-1:-1;;;;;13580:12:0;;;:6;;:12;13578:15;13550:43;:64;;;;;13597:17;13550:64;13547:257;;;-1:-1:-1;;;;;13636:25:0;;;;;;:21;:25;;;;;;;;13631:162;;13716:14;;13706:6;13690:13;13700:2;-1:-1:-1;;;;;7697:16:0;7670:7;7697:16;;;:7;:16;;;;;;;7604:117;13690:13;:22;;;;:::i;:::-;:40;;13682:95;;;;-1:-1:-1;;;13682:95:0;;14578:2:1;13682:95:0;;;14560:21:1;14617:2;14597:18;;;14590:30;14656:34;14636:18;;;14629:62;-1:-1:-1;;;14707:18:1;;;14700:40;14757:19;;13682:95:0;14376:406:1;13682:95:0;13829:16;;;;;;;13824:336;;13867:17;13866:18;:34;;;;-1:-1:-1;13894:6:0;;-1:-1:-1;;;;;13888:12:0;;;13894:6;;13888:12;13866:34;13862:147;;;-1:-1:-1;;;;;13921:23:0;;;;;;:17;:23;;;;;:30;;-1:-1:-1;;13921:30:0;13947:4;13921:30;;;13970:16;:23;;-1:-1:-1;;13970:23:0;13921:30;13970:23;;;13862:147;14028:16;;;;;;;14027:17;:38;;;;;14048:17;14027:38;14023:126;;;14086:47;;-1:-1:-1;;;14086:47:0;;14989:2:1;14086:47:0;;;14971:21:1;15028:2;15008:18;;;15001:30;15067:34;15047:18;;;15040:62;-1:-1:-1;;;15118:18:1;;;15111:35;15163:19;;14086:47:0;14787:401:1;14023:126:0;-1:-1:-1;;;;;14174:13:0;;;;;;:7;:13;;;;;:23;;14191:6;;14174:13;:23;;14191:6;;14174:23;:::i;:::-;;;;-1:-1:-1;14223:13:0;;-1:-1:-1;14232:4:0;14223:6;:13;:::i;:::-;-1:-1:-1;;;;;14208:11:0;;;;;;:7;:11;;;;;:28;;:11;;;:28;;;;;:::i;:::-;;;;;;;;14269:2;-1:-1:-1;;;;;14254:26:0;14263:4;-1:-1:-1;;;;;14254:26:0;;14273:6;14254:26;;;;3404:25:1;;3392:2;3377:18;;3258:177;14254:26:0;;;;;;;;-1:-1:-1;14298:4:0;;11589:2721;-1:-1:-1;;;;;11589:2721:0:o;11224:357::-;11292:4;11324:6;;-1:-1:-1;;;;;11316:14:0;;;11324:6;;11316:14;;;;:43;;-1:-1:-1;11353:6:0;;-1:-1:-1;;;;;11347:12:0;;;11353:6;;11347:12;;11316:43;:79;;;;-1:-1:-1;11389:6:0;;-1:-1:-1;;;;;11389:6:0;11376:9;:19;;11316:79;:106;;;;-1:-1:-1;;;;;;11412:10:0;;4249:42;11412:10;;11316:106;:139;;;;-1:-1:-1;;;;;;11439:16:0;;;;11316:139;:178;;;;-1:-1:-1;;;;;;11473:21:0;;;;;;:17;:21;;;;;;;;11472:22;11316:178;:219;;;;-1:-1:-1;;;;;;11512:23:0;;;;;;:17;:23;;;;;;;;11511:24;11316:219;:257;;;;-1:-1:-1;;;;;;11552:21:0;;11568:4;11552:21;;11316:257;11309:264;11224:357;-1:-1:-1;;;11224:357:0:o;222:248:1:-;290:6;298;351:2;339:9;330:7;326:23;322:32;319:52;;;367:1;364;357:12;319:52;-1:-1:-1;;390:23:1;;;460:2;445:18;;;432:32;;-1:-1:-1;222:248:1:o;475:160::-;540:20;;596:13;;589:21;579:32;;569:60;;625:1;622;615:12;569:60;475:160;;;:::o;640:689::-;732:6;740;748;801:2;789:9;780:7;776:23;772:32;769:52;;;817:1;814;807:12;769:52;857:9;844:23;886:18;927:2;919:6;916:14;913:34;;;943:1;940;933:12;913:34;981:6;970:9;966:22;956:32;;1026:7;1019:4;1015:2;1011:13;1007:27;997:55;;1048:1;1045;1038:12;997:55;1088:2;1075:16;1114:2;1106:6;1103:14;1100:34;;;1130:1;1127;1120:12;1100:34;1185:7;1178:4;1168:6;1165:1;1161:14;1157:2;1153:23;1149:34;1146:47;1143:67;;;1206:1;1203;1196:12;1143:67;1237:4;1229:13;;;;-1:-1:-1;1261:6:1;-1:-1:-1;1286:37:1;;1302:20;;;-1:-1:-1;1286:37:1;:::i;:::-;1276:47;;640:689;;;;;:::o;1783:597::-;1895:4;1924:2;1953;1942:9;1935:21;1985:6;1979:13;2028:6;2023:2;2012:9;2008:18;2001:34;2053:1;2063:140;2077:6;2074:1;2071:13;2063:140;;;2172:14;;;2168:23;;2162:30;2138:17;;;2157:2;2134:26;2127:66;2092:10;;2063:140;;;2221:6;2218:1;2215:13;2212:91;;;2291:1;2286:2;2277:6;2266:9;2262:22;2258:31;2251:42;2212:91;-1:-1:-1;2364:2:1;2343:15;-1:-1:-1;;2339:29:1;2324:45;;;;2371:2;2320:54;;1783:597;-1:-1:-1;;;1783:597:1:o;2610:131::-;-1:-1:-1;;;;;2685:31:1;;2675:42;;2665:70;;2731:1;2728;2721:12;2665:70;2610:131;:::o;2746:315::-;2814:6;2822;2875:2;2863:9;2854:7;2850:23;2846:32;2843:52;;;2891:1;2888;2881:12;2843:52;2930:9;2917:23;2949:31;2974:5;2949:31;:::i;:::-;2999:5;3051:2;3036:18;;;;3023:32;;-1:-1:-1;;;2746:315:1:o;3440:456::-;3517:6;3525;3533;3586:2;3574:9;3565:7;3561:23;3557:32;3554:52;;;3602:1;3599;3592:12;3554:52;3641:9;3628:23;3660:31;3685:5;3660:31;:::i;:::-;3710:5;-1:-1:-1;3767:2:1;3752:18;;3739:32;3780:33;3739:32;3780:33;:::i;:::-;3440:456;;3832:7;;-1:-1:-1;;;3886:2:1;3871:18;;;;3858:32;;3440:456::o;4090:315::-;4155:6;4163;4216:2;4204:9;4195:7;4191:23;4187:32;4184:52;;;4232:1;4229;4222:12;4184:52;4271:9;4258:23;4290:31;4315:5;4290:31;:::i;:::-;4340:5;-1:-1:-1;4364:35:1;4395:2;4380:18;;4364:35;:::i;:::-;4354:45;;4090:315;;;;;:::o;4410:247::-;4469:6;4522:2;4510:9;4501:7;4497:23;4493:32;4490:52;;;4538:1;4535;4528:12;4490:52;4577:9;4564:23;4596:31;4621:5;4596:31;:::i;4915:388::-;4983:6;4991;5044:2;5032:9;5023:7;5019:23;5015:32;5012:52;;;5060:1;5057;5050:12;5012:52;5099:9;5086:23;5118:31;5143:5;5118:31;:::i;:::-;5168:5;-1:-1:-1;5225:2:1;5210:18;;5197:32;5238:33;5197:32;5238:33;:::i;:::-;5290:7;5280:17;;;4915:388;;;;;:::o;5308:180::-;5367:6;5420:2;5408:9;5399:7;5395:23;5391:32;5388:52;;;5436:1;5433;5426:12;5388:52;-1:-1:-1;5459:23:1;;5308:180;-1:-1:-1;5308:180:1:o;5493:159::-;5560:20;;5620:6;5609:18;;5599:29;;5589:57;;5642:1;5639;5632:12;5657:401;5739:6;5747;5755;5763;5816:3;5804:9;5795:7;5791:23;5787:33;5784:53;;;5833:1;5830;5823:12;5784:53;5856:28;5874:9;5856:28;:::i;:::-;5846:38;;5903:37;5936:2;5925:9;5921:18;5903:37;:::i;:::-;5893:47;;5959:37;5992:2;5981:9;5977:18;5959:37;:::i;:::-;5949:47;;6015:37;6048:2;6037:9;6033:18;6015:37;:::i;:::-;6005:47;;5657:401;;;;;;;:::o;6063:398::-;6265:2;6247:21;;;6304:2;6284:18;;;6277:30;6343:34;6338:2;6323:18;;6316:62;-1:-1:-1;;;6409:2:1;6394:18;;6387:32;6451:3;6436:19;;6063:398::o;6466:127::-;6527:10;6522:3;6518:20;6515:1;6508:31;6558:4;6555:1;6548:15;6582:4;6579:1;6572:15;6598:422;6687:1;6730:5;6687:1;6744:270;6765:7;6755:8;6752:21;6744:270;;;6824:4;6820:1;6816:6;6812:17;6806:4;6803:27;6800:53;;;6833:18;;:::i;:::-;6883:7;6873:8;6869:22;6866:55;;;6903:16;;;;6866:55;6982:22;;;;6942:15;;;;6744:270;;;6748:3;6598:422;;;;;:::o;7025:806::-;7074:5;7104:8;7094:80;;-1:-1:-1;7145:1:1;7159:5;;7094:80;7193:4;7183:76;;-1:-1:-1;7230:1:1;7244:5;;7183:76;7275:4;7293:1;7288:59;;;;7361:1;7356:130;;;;7268:218;;7288:59;7318:1;7309:10;;7332:5;;;7356:130;7393:3;7383:8;7380:17;7377:43;;;7400:18;;:::i;:::-;-1:-1:-1;;7456:1:1;7442:16;;7471:5;;7268:218;;7570:2;7560:8;7557:16;7551:3;7545:4;7542:13;7538:36;7532:2;7522:8;7519:16;7514:2;7508:4;7505:12;7501:35;7498:77;7495:159;;;-1:-1:-1;7607:19:1;;;7639:5;;7495:159;7686:34;7711:8;7705:4;7686:34;:::i;:::-;7756:6;7752:1;7748:6;7744:19;7735:7;7732:32;7729:58;;;7767:18;;:::i;:::-;7805:20;;7025:806;-1:-1:-1;;;7025:806:1:o;7836:140::-;7894:5;7923:47;7964:4;7954:8;7950:19;7944:4;7923:47;:::i;7981:168::-;8021:7;8087:1;8083;8079:6;8075:14;8072:1;8069:21;8064:1;8057:9;8050:17;8046:45;8043:71;;;8094:18;;:::i;:::-;-1:-1:-1;8134:9:1;;7981:168::o;8154:217::-;8194:1;8220;8210:132;;8264:10;8259:3;8255:20;8252:1;8245:31;8299:4;8296:1;8289:15;8327:4;8324:1;8317:15;8210:132;-1:-1:-1;8356:9:1;;8154:217::o;8737:127::-;8798:10;8793:3;8789:20;8786:1;8779:31;8829:4;8826:1;8819:15;8853:4;8850:1;8843:15;8869:135;8908:3;-1:-1:-1;;8929:17:1;;8926:43;;;8949:18;;:::i;:::-;-1:-1:-1;8996:1:1;8985:13;;8869:135::o;9009:125::-;9049:4;9077:1;9074;9071:8;9068:34;;;9082:18;;:::i;:::-;-1:-1:-1;9119:9:1;;9009:125::o;9139:425::-;9341:2;9323:21;;;9380:2;9360:18;;;9353:30;9419:34;9414:2;9399:18;;9392:62;9490:31;9485:2;9470:18;;9463:59;9554:3;9539:19;;9139:425::o;10634:251::-;10704:6;10757:2;10745:9;10736:7;10732:23;10728:32;10725:52;;;10773:1;10770;10763:12;10725:52;10805:9;10799:16;10824:31;10849:5;10824:31;:::i;11199:351::-;11401:2;11383:21;;;11440:2;11420:18;;;11413:30;11479:29;11474:2;11459:18;;11452:57;11541:2;11526:18;;11199:351::o;13834:404::-;14036:2;14018:21;;;14075:2;14055:18;;;14048:30;14114:34;14109:2;14094:18;;14087:62;-1:-1:-1;;;14180:2:1;14165:18;;14158:38;14228:3;14213:19;;13834:404::o;14243:128::-;14283:3;14314:1;14310:6;14307:1;14304:13;14301:39;;;14320:18;;:::i;:::-;-1:-1:-1;14356:9:1;;14243:128::o

Swarm Source

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