ETH Price: $3,108.83 (-0.22%)

Token

4thenewsafu (Binance)
 

Overview

Max Total Supply

100,000,000 Binance

Holders

101

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
250,000 Binance

Value
$0.00
0x732422A4afDe3DaE61657F0731AC1101b061918B
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:
thenewsafu

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-22
*/

// Telegram: http://t.me/binancecoinerc

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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


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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

    function WETH() external pure returns (address);
    function factory() external pure returns (address);

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


    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

contract thenewsafu is IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address payable;

    string private constant _name = "4thenewsafu";

    string private constant _symbol = "Binance";

    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 100_000_000 * 10**_decimals;

    uint256 private  _maxWallet = 20_000_000 * 10**_decimals;

    uint256 private _maxBuyAmount = 20_000_000 * 10**_decimals;

    uint256 private  _maxSellAmount = 20_000_000 * 10**_decimals;

    uint256 private  _swapTH = 100_000 * 10**_decimals;

    address public Dev = 0x7A68E0Dc888172D562B8556C8CEF1ae7bcACfcCd;

    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isWhiteList;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    address private _owner;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    bool public _AutoSwap = true;
    bool public _Launch = false;
    bool public _transfersEnabled = false;
    bool private _TokenSwap = true;
    bool private _autoLP = true;
    bool private _isSelling = false;
    
    uint256 private _swapPercent = 100;

    uint256 private _devTaxRate = 0; // thenewsafu buying tax rate
    uint256 private AmountBuyRate = _devTaxRate;
    uint256 private _devTaxSellRate = 0; // thenewsafu selling tax rate
    uint256 private AmountSellRate = _devTaxSellRate;

    constructor() {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        _owner = msg.sender;

        uint256 tsupply = _totalSupply;

        _balances[msg.sender] = tsupply;


        _isExcludedFromFee[_owner] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[Dev] = true;
        
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);
    }

    function getOwner() public view returns (address) {
        return owner();
    }
    
    function name() public pure returns (string memory) {
        return _name;
    }
    
    function symbol() public pure returns (string memory) {
        return _symbol;
    }

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

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


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

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

    function isWhitelist(address account) public view returns (bool) {
        return _isWhiteList[account];
    }

    function ViewBuyRate() public view returns (
        uint256 devBuyRate,
        uint256 totalBuyRate,
        uint256 maxWallet,
        uint256 maxBuyAmount
    ) {
        devBuyRate = _devTaxRate;
        totalBuyRate = AmountBuyRate;
        maxWallet = _maxWallet;
        maxBuyAmount = _maxBuyAmount;
    }

    function ViewSellRate() public view returns (
        uint256 devSellRate,
        uint256 totalSellRate,
        uint256 maxSellAmount
    ) {
        devSellRate = _devTaxSellRate;
        totalSellRate = AmountSellRate;
        maxSellAmount = _maxSellAmount;
    }


    function transfer(address recipient, uint256 amount) public override returns (bool) {

        if(recipient != uniswapV2Pair && recipient != owner() && !_isExcludedFromFee[recipient]){

            require(_balances[recipient] + amount <= _maxWallet, "Token: recipient wallet balance exceeds the maximum limit");

        }

        _transfer(msg.sender, recipient, amount);
        
        return true;
    }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        _transfer(sender, recipient, amount);
        return true;
    }

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

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

    function _transfer(address sender, address recipient, uint256 amount) private {

        require(sender != address(0), "Token: transfer from zero address");
        require(recipient != address(0), "Token: transfer to the zero address");
        require(amount > 0, "Token: transfer amount must be greater than zero");
        if(!_Launch){require(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient] || _isWhiteList[sender] || _isWhiteList[recipient], "we not launch yet");}
        if(!_Launch && recipient != uniswapV2Pair && sender != uniswapV2Pair) {require(_transfersEnabled, "Transfers are currently disabled");}

        bool _AutoTaxes = true;


        if (recipient == uniswapV2Pair && sender == owner()) {

            _balances[sender] -= amount;
            _balances[recipient] += amount;
            emit Transfer(sender, recipient, amount);
            return;
        }

        //sell   
        if(recipient == uniswapV2Pair && !_isExcludedFromFee[sender] && sender != owner()){

                require(amount <= _maxSellAmount, "Sell amount exceeds max limit");

                _isSelling = true;
               
                if(_AutoSwap && balanceOf(address(this)) >= _swapTH){

                    CanSwap();
                }  
        }

        //buy
        if(sender == uniswapV2Pair && !_isExcludedFromFee[recipient] && recipient != owner()){
                    
            require(amount <= _maxBuyAmount, "Buy amount exceeds the max limit");
            
        }

        if (_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]) { _AutoTaxes = false; }
        if (recipient != uniswapV2Pair && sender != uniswapV2Pair) { _AutoTaxes = false; }

        if (_AutoTaxes) {

                if(!_isSelling){

                    uint256 totalTaxAmount = amount * AmountBuyRate / 100;
                    uint256 transferAmount = amount - totalTaxAmount;
                    
                   
                    _balances[address(this)] = _balances[address(this)].add(totalTaxAmount);
                    _balances[sender] = _balances[sender].sub(amount);
                    _balances[recipient] = _balances[recipient].add(transferAmount);

                    emit Transfer(sender, recipient, transferAmount);
                    emit Transfer(sender, address(this), totalTaxAmount);

                }else{

                    uint256 totalTaxAmount = amount * AmountSellRate / 100;
                    uint256 transferAmount = amount - totalTaxAmount;
                    

                    _balances[address(this)] = _balances[address(this)].add(totalTaxAmount);
                    _balances[sender] = _balances[sender].sub(amount);
                    _balances[recipient] = _balances[recipient].add(transferAmount);

                    emit Transfer(sender, recipient, transferAmount);
                    emit Transfer(sender, address(this), totalTaxAmount);

                    _isSelling = false;
                }
            
        }else{

                _balances[sender] = _balances[sender].sub(amount);
                _balances[recipient] = _balances[recipient].add(amount);

                emit Transfer(sender, recipient, amount);

        }
    }


    function swapTokensForEth(uint256 tokenAmount) private {

        // Contract address setup and the token to be swapped
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        // Approve tokens transfer of to the contract address
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // The swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }


    function CanSwap() private {

        uint256 contractTokenBalance = balanceOf(address(this));

        if(contractTokenBalance > 0) {

            if(_TokenSwap){

                if(contractTokenBalance > 0){
                    
                    uint256 caBalance = balanceOf(address(this)) * _swapPercent / 100;

                    uint256 toSwap = caBalance;

                    swapTokensForEth(toSwap);

                    uint256 receivedBalance = address(this).balance;

                    if (receivedBalance > 0) {payable(Dev).transfer(receivedBalance);}

                }else{

                    revert("No tokens available to swap");
                }

            }

        }else{

           revert("No Balance available to swap");     
           
        }
            
    }

   receive() external payable {}

    function setDevAddress(address newAddress) public onlyOwner {
        require(newAddress != address(0), "Invalid address");
        Dev = newAddress;
        _isExcludedFromFee[newAddress] = true;
    }


   function enableLaunch() external {
        _Launch = true;
        _transfersEnabled = true;
    }

    function SwapEnable(bool status) external onlyOwner {
        _AutoSwap = status;
    }

    function SetSwapPercentage(uint256 SwapPercent) external onlyOwner {
        _swapPercent = SwapPercent;
    }

    function setAutoSwap(uint256 newAutoSwap) external onlyOwner {
        require(newAutoSwap <= (totalSupply() * 1) / 100, "Invalid value: exceeds 1% of total supply");
        _swapTH = newAutoSwap * 10**_decimals;
    }

    function updateLimits(uint256 maxWallet, uint256 maxBuyAmount, uint256 maxSellAmount) external onlyOwner {
        _maxWallet = maxWallet * 10**_decimals;
        _maxBuyAmount = maxBuyAmount * 10**_decimals;
        _maxSellAmount = maxSellAmount * 10**_decimals;
    }

    function setBuyTaxRates(uint256 devTaxRate) external onlyOwner {
        _devTaxRate = devTaxRate;
        AmountBuyRate = _devTaxRate;
    }


    function setSellTaxRates(uint256 devTaxRate) external onlyOwner {
        _devTaxSellRate = devTaxRate;
        AmountSellRate = _devTaxSellRate;
    }

}

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":"Dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"SwapPercent","type":"uint256"}],"name":"SetSwapPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"SwapEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ViewBuyRate","outputs":[{"internalType":"uint256","name":"devBuyRate","type":"uint256"},{"internalType":"uint256","name":"totalBuyRate","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"},{"internalType":"uint256","name":"maxBuyAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ViewSellRate","outputs":[{"internalType":"uint256","name":"devSellRate","type":"uint256"},{"internalType":"uint256","name":"totalSellRate","type":"uint256"},{"internalType":"uint256","name":"maxSellAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_AutoSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Launch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transfersEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAutoSwap","type":"uint256"}],"name":"setAutoSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"devTaxRate","type":"uint256"}],"name":"setBuyTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"devTaxRate","type":"uint256"}],"name":"setSellTaxRates","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"},{"internalType":"uint256","name":"maxBuyAmount","type":"uint256"},{"internalType":"uint256","name":"maxSellAmount","type":"uint256"}],"name":"updateLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000883565b6305f5e100620000259190620009c0565b6001556009600a62000038919062000883565b6301312d00620000499190620009c0565b6002556009600a6200005c919062000883565b6301312d006200006d9190620009c0565b6003556009600a62000080919062000883565b6301312d00620000919190620009c0565b6004556009600a620000a4919062000883565b620186a0620000b49190620009c0565b600555737a68e0dc888172d562b8556c8cef1ae7bcacfccd600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506000600e60026101000a81548160ff0219169083151502179055506001600e60036101000a81548160ff0219169083151502179055506001600e60046101000a81548160ff0219169083151502179055506000600e60056101000a81548160ff0219169083151502179055506064600f5560006010556010546011556000601255601254601355348015620001d657600080fd5b50620001f7620001eb620006ad60201b60201c565b620006b560201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200029857600080fd5b505afa158015620002ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d3919062000790565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200033657600080fd5b505afa1580156200034b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000371919062000790565b6040518363ffffffff1660e01b815260040162000390929190620007de565b602060405180830381600087803b158015620003ab57600080fd5b505af1158015620003c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e6919062000790565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600154905080600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160076000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200069d91906200080b565b60405180910390a3505062000ac2565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000815190506200078a8162000aa8565b92915050565b600060208284031215620007a357600080fd5b6000620007b38482850162000779565b91505092915050565b620007c78162000a21565b82525050565b620007d88162000a55565b82525050565b6000604082019050620007f56000830185620007bc565b620008046020830184620007bc565b9392505050565b6000602082019050620008226000830184620007cd565b92915050565b6000808291508390505b60018511156200087a5780860481111562000852576200085162000a6c565b5b6001851615620008625780820291505b8081029050620008728562000a9b565b945062000832565b94509492505050565b6000620008908262000a55565b91506200089d8362000a5f565b9250620008cc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008d4565b905092915050565b600082620008e65760019050620009b9565b81620008f65760009050620009b9565b81600181146200090f57600281146200091a5762000950565b6001915050620009b9565b60ff8411156200092f576200092e62000a6c565b5b8360020a91508482111562000949576200094862000a6c565b5b50620009b9565b5060208310610133831016604e8410600b84101617156200098a5782820a90508381111562000984576200098362000a6c565b5b620009b9565b62000999848484600162000828565b92509050818404811115620009b357620009b262000a6c565b5b81810290505b9392505050565b6000620009cd8262000a55565b9150620009da8362000a55565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a165762000a1562000a6c565b5b828202905092915050565b600062000a2e8262000a35565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b62000ab38162000a21565b811462000abf57600080fd5b50565b613d698062000ad26000396000f3fe6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063d8a0663c11610095578063f7de4dfd11610064578063f7de4dfd146106cf578063fcd2e049146106fa578063feae65e714610723578063ff5211bb14610751576101e3565b8063d8a0663c14610617578063dd62ed3e14610640578063f2fde38b1461067d578063f515a55c146106a6576101e3565b8063a9059cbb116100d1578063a9059cbb14610547578063c683630d14610584578063c6da3051146105c1578063d0d41fe1146105ee576101e3565b80638da5cb5b1461049d57806392554287146104c857806395d89b41146104f3578063a14aee611461051e576101e3565b8063313ce5671161017a57806370a082311161014957806370a08231146103f3578063715018a61461043057806385438bc014610447578063893d20e814610472576101e3565b8063313ce5671461033757806336a0f8a51461036257806349bd5a5e1461038b5780635342acb4146103b6576101e3565b80630a80c0cc116101b65780630a80c0cc1461027b5780631694505e146102a457806318160ddd146102cf57806323b872dd146102fa576101e3565b806301e51ae8146101e857806306fdde0314610213578063095ea7b31461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610768565b60405161020a919061353a565b60405180910390f35b34801561021f57600080fd5b5061022861078e565b604051610235919061358b565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612e21565b6107cb565b6040516102729190613555565b60405180910390f35b34801561028757600080fd5b506102a2600480360381019061029d9190612e86565b6107e2565b005b3480156102b057600080fd5b506102b9610871565b6040516102c69190613570565b60405180910390f35b3480156102db57600080fd5b506102e4610897565b6040516102f191906137cd565b60405180910390f35b34801561030657600080fd5b50610321600480360381019061031c9190612dd2565b6108a1565b60405161032e9190613555565b60405180910390f35b34801561034357600080fd5b5061034c61094b565b60405161035991906138be565b60405180910390f35b34801561036e57600080fd5b5061038960048036038101906103849190612eaf565b610954565b005b34801561039757600080fd5b506103a0610a32565b6040516103ad919061353a565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d89190612d44565b610a58565b6040516103ea9190613555565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190612d44565b610aae565b60405161042791906137cd565b60405180910390f35b34801561043c57600080fd5b50610445610af7565b005b34801561045357600080fd5b5061045c610b7f565b6040516104699190613555565b60405180910390f35b34801561047e57600080fd5b50610487610b92565b604051610494919061353a565b60405180910390f35b3480156104a957600080fd5b506104b2610ba1565b6040516104bf919061353a565b60405180910390f35b3480156104d457600080fd5b506104dd610bca565b6040516104ea9190613555565b60405180910390f35b3480156104ff57600080fd5b50610508610bdd565b604051610515919061358b565b60405180910390f35b34801561052a57600080fd5b5061054560048036038101906105409190612e5d565b610c1a565b005b34801561055357600080fd5b5061056e60048036038101906105699190612e21565b610cb3565b60405161057b9190613555565b60405180910390f35b34801561059057600080fd5b506105ab60048036038101906105a69190612d44565b610e46565b6040516105b89190613555565b60405180910390f35b3480156105cd57600080fd5b506105d6610e9c565b6040516105e593929190613842565b60405180910390f35b3480156105fa57600080fd5b5061061560048036038101906106109190612d44565b610eb5565b005b34801561062357600080fd5b5061063e60048036038101906106399190612e86565b61103d565b005b34801561064c57600080fd5b5061066760048036038101906106629190612d96565b61113d565b60405161067491906137cd565b60405180910390f35b34801561068957600080fd5b506106a4600480360381019061069f9190612d44565b6111c4565b005b3480156106b257600080fd5b506106cd60048036038101906106c89190612e86565b6112bc565b005b3480156106db57600080fd5b506106e4611342565b6040516106f19190613555565b60405180910390f35b34801561070657600080fd5b50610721600480360381019061071c9190612e86565b611355565b005b34801561072f57600080fd5b506107386113e4565b6040516107489493929190613879565b60405180910390f35b34801561075d57600080fd5b50610766611404565b005b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600b81526020017f347468656e657773616675000000000000000000000000000000000000000000815250905090565b60006107d833848461143c565b6001905092915050565b6107ea611607565b73ffffffffffffffffffffffffffffffffffffffff16610808610ba1565b73ffffffffffffffffffffffffffffffffffffffff161461085e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108559061372d565b60405180910390fd5b8060128190555060125460138190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600154905090565b6000610935843384600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109309190613b80565b61143c565b61094084848461160f565b600190509392505050565b60006009905090565b61095c611607565b73ffffffffffffffffffffffffffffffffffffffff1661097a610ba1565b73ffffffffffffffffffffffffffffffffffffffff16146109d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c79061372d565b60405180910390fd5b6009600a6109de9190613a08565b836109e99190613b26565b6002819055506009600a6109fd9190613a08565b82610a089190613b26565b6003819055506009600a610a1c9190613a08565b81610a279190613b26565b600481905550505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610aff611607565b73ffffffffffffffffffffffffffffffffffffffff16610b1d610ba1565b73ffffffffffffffffffffffffffffffffffffffff1614610b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6a9061372d565b60405180910390fd5b610b7d60006126f5565b565b600e60029054906101000a900460ff1681565b6000610b9c610ba1565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60009054906101000a900460ff1681565b60606040518060400160405280600781526020017f42696e616e636500000000000000000000000000000000000000000000000000815250905090565b610c22611607565b73ffffffffffffffffffffffffffffffffffffffff16610c40610ba1565b73ffffffffffffffffffffffffffffffffffffffff1614610c96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8d9061372d565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610d465750610d16610ba1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610d9c5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610e315760025482600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610def919061392e565b1115610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e27906135ad565b60405180910390fd5b5b610e3c33848461160f565b6001905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000806000601254925060135491506004549050909192565b610ebd611607565b73ffffffffffffffffffffffffffffffffffffffff16610edb610ba1565b73ffffffffffffffffffffffffffffffffffffffff1614610f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f289061372d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f98906135ed565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611045611607565b73ffffffffffffffffffffffffffffffffffffffff16611063610ba1565b73ffffffffffffffffffffffffffffffffffffffff16146110b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b09061372d565b60405180910390fd5b606460016110c5610897565b6110cf9190613b26565b6110d99190613984565b81111561111b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611112906136ed565b60405180910390fd5b6009600a6111299190613a08565b816111349190613b26565b60058190555050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111cc611607565b73ffffffffffffffffffffffffffffffffffffffff166111ea610ba1565b73ffffffffffffffffffffffffffffffffffffffff1614611240576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112379061372d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a79061360d565b60405180910390fd5b6112b9816126f5565b50565b6112c4611607565b73ffffffffffffffffffffffffffffffffffffffff166112e2610ba1565b73ffffffffffffffffffffffffffffffffffffffff1614611338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132f9061372d565b60405180910390fd5b80600f8190555050565b600e60019054906101000a900460ff1681565b61135d611607565b73ffffffffffffffffffffffffffffffffffffffff1661137b610ba1565b73ffffffffffffffffffffffffffffffffffffffff16146113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c89061372d565b60405180910390fd5b8060108190555060105460118190555050565b600080600080601054935060115492506002549150600354905090919293565b6001600e60016101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a39061366d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561151c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115139061370d565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115fa91906137cd565b60405180910390a3505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561167f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116769061374d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e69061368d565b60405180910390fd5b60008111611732576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611729906136ad565b60405180910390fd5b600e60019054906101000a900460ff166118cf57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117e75750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061183b5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061188f5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c59061378d565b60405180910390fd5b5b600e60019054906101000a900460ff1615801561193a5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119945750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119e957600e60029054906101000a900460ff166119e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119df9061376d565b60405180910390fd5b5b600060019050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a7e5750611a4f610ba1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611b9a5781600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ad29190613b80565b9250508190555081600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b28919061392e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b8c91906137cd565b60405180910390a3506126f0565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c415750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c805750611c50610ba1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d1a57600454821115611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc1906136cd565b60405180910390fd5b6001600e60056101000a81548160ff021916908315150217905550600e60009054906101000a900460ff168015611d0b5750600554611d0830610aae565b10155b15611d1957611d186127b9565b5b5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611dc15750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e005750611dd0610ba1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e4b57600354821115611e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e41906135cd565b60405180910390fd5b5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611eec5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ef657600090505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fa25750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611fac57600090505b801561255e57600e60059054906101000a900460ff16612284576000606460115484611fd89190613b26565b611fe29190613984565b905060008184611ff29190613b80565b905061204682600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292090919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120db84600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297e90919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061217081600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292090919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161221091906137cd565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161227591906137cd565b60405180910390a35050612559565b60006064601354846122969190613b26565b6122a09190613984565b9050600081846122b09190613b80565b905061230482600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292090919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061239984600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297e90919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242e81600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292090919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124ce91906137cd565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161253391906137cd565b60405180910390a36000600e60056101000a81548160ff02191690831515021790555050505b6126ee565b6125b082600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297e90919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061264582600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292090919063ffffffff16565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126e591906137cd565b60405180910390a35b505b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006127c430610aae565b905060008111156128e257600e60039054906101000a900460ff16156128dd5760008111156128a15760006064600f546127fd30610aae565b6128079190613b26565b6128119190613984565b90506000819050612821816129c8565b6000479050600081111561289957600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612897573d6000803e3d6000fd5b505b5050506128dc565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d3906137ad565b60405180910390fd5b5b61291d565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129149061364d565b60405180910390fd5b50565b600080828461292f919061392e565b905083811015612974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296b9061362d565b60405180910390fd5b8091505092915050565b60006129c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c8c565b905092915050565b6000600267ffffffffffffffff811115612a0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612a395781602001602082028036833780820191505090505b5090503081600081518110612a77577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612b1957600080fd5b505afa158015612b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b519190612d6d565b81600181518110612b8b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612bf230600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461143c565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612c569594939291906137e8565b600060405180830381600087803b158015612c7057600080fd5b505af1158015612c84573d6000803e3d6000fd5b505050505050565b6000838311158290612cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ccb919061358b565b60405180910390fd5b5060008385612ce39190613b80565b9050809150509392505050565b600081359050612cff81613cee565b92915050565b600081519050612d1481613cee565b92915050565b600081359050612d2981613d05565b92915050565b600081359050612d3e81613d1c565b92915050565b600060208284031215612d5657600080fd5b6000612d6484828501612cf0565b91505092915050565b600060208284031215612d7f57600080fd5b6000612d8d84828501612d05565b91505092915050565b60008060408385031215612da957600080fd5b6000612db785828601612cf0565b9250506020612dc885828601612cf0565b9150509250929050565b600080600060608486031215612de757600080fd5b6000612df586828701612cf0565b9350506020612e0686828701612cf0565b9250506040612e1786828701612d2f565b9150509250925092565b60008060408385031215612e3457600080fd5b6000612e4285828601612cf0565b9250506020612e5385828601612d2f565b9150509250929050565b600060208284031215612e6f57600080fd5b6000612e7d84828501612d1a565b91505092915050565b600060208284031215612e9857600080fd5b6000612ea684828501612d2f565b91505092915050565b600080600060608486031215612ec457600080fd5b6000612ed286828701612d2f565b9350506020612ee386828701612d2f565b9250506040612ef486828701612d2f565b9150509250925092565b6000612f0a8383612f16565b60208301905092915050565b612f1f81613bb4565b82525050565b612f2e81613bb4565b82525050565b6000612f3f826138e9565b612f49818561390c565b9350612f54836138d9565b8060005b83811015612f85578151612f6c8882612efe565b9750612f77836138ff565b925050600181019050612f58565b5085935050505092915050565b612f9b81613bc6565b82525050565b612faa81613c09565b82525050565b612fb981613c2d565b82525050565b6000612fca826138f4565b612fd4818561391d565b9350612fe4818560208601613c3f565b612fed81613cd0565b840191505092915050565b600061300560398361391d565b91507f546f6b656e3a20726563697069656e742077616c6c65742062616c616e63652060008301527f6578636565647320746865206d6178696d756d206c696d6974000000000000006020830152604082019050919050565b600061306b60208361391d565b91507f42757920616d6f756e74206578636565647320746865206d6178206c696d69746000830152602082019050919050565b60006130ab600f8361391d565b91507f496e76616c6964206164647265737300000000000000000000000000000000006000830152602082019050919050565b60006130eb60268361391d565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613151601b8361391d565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000613191601c8361391d565b91507f4e6f2042616c616e636520617661696c61626c6520746f2073776170000000006000830152602082019050919050565b60006131d160208361391d565b91507f546f6b656e3a20617070726f76652066726f6d207a65726f20616464726573736000830152602082019050919050565b600061321160238361391d565b91507f546f6b656e3a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061327760308361391d565b91507f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760008301527f726561746572207468616e207a65726f000000000000000000000000000000006020830152604082019050919050565b60006132dd601d8361391d565b91507f53656c6c20616d6f756e742065786365656473206d6178206c696d69740000006000830152602082019050919050565b600061331d60298361391d565b91507f496e76616c69642076616c75653a2065786365656473203125206f6620746f7460008301527f616c20737570706c7900000000000000000000000000000000000000000000006020830152604082019050919050565b6000613383601e8361391d565b91507f546f6b656e3a20617070726f766520746f207a65726f206164647265737300006000830152602082019050919050565b60006133c360208361391d565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061340360218361391d565b91507f546f6b656e3a207472616e736665722066726f6d207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061346960208361391d565b91507f5472616e7366657273206172652063757272656e746c792064697361626c65646000830152602082019050919050565b60006134a960118361391d565b91507f7765206e6f74206c61756e6368207965740000000000000000000000000000006000830152602082019050919050565b60006134e9601b8361391d565b91507f4e6f20746f6b656e7320617661696c61626c6520746f207377617000000000006000830152602082019050919050565b61352581613bf2565b82525050565b61353481613bfc565b82525050565b600060208201905061354f6000830184612f25565b92915050565b600060208201905061356a6000830184612f92565b92915050565b60006020820190506135856000830184612fa1565b92915050565b600060208201905081810360008301526135a58184612fbf565b905092915050565b600060208201905081810360008301526135c681612ff8565b9050919050565b600060208201905081810360008301526135e68161305e565b9050919050565b600060208201905081810360008301526136068161309e565b9050919050565b60006020820190508181036000830152613626816130de565b9050919050565b6000602082019050818103600083015261364681613144565b9050919050565b6000602082019050818103600083015261366681613184565b9050919050565b60006020820190508181036000830152613686816131c4565b9050919050565b600060208201905081810360008301526136a681613204565b9050919050565b600060208201905081810360008301526136c68161326a565b9050919050565b600060208201905081810360008301526136e6816132d0565b9050919050565b6000602082019050818103600083015261370681613310565b9050919050565b6000602082019050818103600083015261372681613376565b9050919050565b60006020820190508181036000830152613746816133b6565b9050919050565b60006020820190508181036000830152613766816133f6565b9050919050565b600060208201905081810360008301526137868161345c565b9050919050565b600060208201905081810360008301526137a68161349c565b9050919050565b600060208201905081810360008301526137c6816134dc565b9050919050565b60006020820190506137e2600083018461351c565b92915050565b600060a0820190506137fd600083018861351c565b61380a6020830187612fb0565b818103604083015261381c8186612f34565b905061382b6060830185612f25565b613838608083018461351c565b9695505050505050565b6000606082019050613857600083018661351c565b613864602083018561351c565b613871604083018461351c565b949350505050565b600060808201905061388e600083018761351c565b61389b602083018661351c565b6138a8604083018561351c565b6138b5606083018461351c565b95945050505050565b60006020820190506138d3600083018461352b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061393982613bf2565b915061394483613bf2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561397957613978613c72565b5b828201905092915050565b600061398f82613bf2565b915061399a83613bf2565b9250826139aa576139a9613ca1565b5b828204905092915050565b6000808291508390505b60018511156139ff578086048111156139db576139da613c72565b5b60018516156139ea5780820291505b80810290506139f885613ce1565b94506139bf565b94509492505050565b6000613a1382613bf2565b9150613a1e83613bfc565b9250613a4b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613a53565b905092915050565b600082613a635760019050613b1f565b81613a715760009050613b1f565b8160018114613a875760028114613a9157613ac0565b6001915050613b1f565b60ff841115613aa357613aa2613c72565b5b8360020a915084821115613aba57613ab9613c72565b5b50613b1f565b5060208310610133831016604e8410600b8410161715613af55782820a905083811115613af057613aef613c72565b5b613b1f565b613b0284848460016139b5565b92509050818404811115613b1957613b18613c72565b5b81810290505b9392505050565b6000613b3182613bf2565b9150613b3c83613bf2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b7557613b74613c72565b5b828202905092915050565b6000613b8b82613bf2565b9150613b9683613bf2565b925082821015613ba957613ba8613c72565b5b828203905092915050565b6000613bbf82613bd2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613c1482613c1b565b9050919050565b6000613c2682613bd2565b9050919050565b6000613c3882613bf2565b9050919050565b60005b83811015613c5d578082015181840152602081019050613c42565b83811115613c6c576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b613cf781613bb4565b8114613d0257600080fd5b50565b613d0e81613bc6565b8114613d1957600080fd5b50565b613d2581613bf2565b8114613d3057600080fd5b5056fea264697066735822122026ffd40793c488ecf4aa34e4102602f2e459c7abd3c3fadaeb44605535f57cf464736f6c63430008000033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063d8a0663c11610095578063f7de4dfd11610064578063f7de4dfd146106cf578063fcd2e049146106fa578063feae65e714610723578063ff5211bb14610751576101e3565b8063d8a0663c14610617578063dd62ed3e14610640578063f2fde38b1461067d578063f515a55c146106a6576101e3565b8063a9059cbb116100d1578063a9059cbb14610547578063c683630d14610584578063c6da3051146105c1578063d0d41fe1146105ee576101e3565b80638da5cb5b1461049d57806392554287146104c857806395d89b41146104f3578063a14aee611461051e576101e3565b8063313ce5671161017a57806370a082311161014957806370a08231146103f3578063715018a61461043057806385438bc014610447578063893d20e814610472576101e3565b8063313ce5671461033757806336a0f8a51461036257806349bd5a5e1461038b5780635342acb4146103b6576101e3565b80630a80c0cc116101b65780630a80c0cc1461027b5780631694505e146102a457806318160ddd146102cf57806323b872dd146102fa576101e3565b806301e51ae8146101e857806306fdde0314610213578063095ea7b31461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610768565b60405161020a919061353a565b60405180910390f35b34801561021f57600080fd5b5061022861078e565b604051610235919061358b565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612e21565b6107cb565b6040516102729190613555565b60405180910390f35b34801561028757600080fd5b506102a2600480360381019061029d9190612e86565b6107e2565b005b3480156102b057600080fd5b506102b9610871565b6040516102c69190613570565b60405180910390f35b3480156102db57600080fd5b506102e4610897565b6040516102f191906137cd565b60405180910390f35b34801561030657600080fd5b50610321600480360381019061031c9190612dd2565b6108a1565b60405161032e9190613555565b60405180910390f35b34801561034357600080fd5b5061034c61094b565b60405161035991906138be565b60405180910390f35b34801561036e57600080fd5b5061038960048036038101906103849190612eaf565b610954565b005b34801561039757600080fd5b506103a0610a32565b6040516103ad919061353a565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d89190612d44565b610a58565b6040516103ea9190613555565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190612d44565b610aae565b60405161042791906137cd565b60405180910390f35b34801561043c57600080fd5b50610445610af7565b005b34801561045357600080fd5b5061045c610b7f565b6040516104699190613555565b60405180910390f35b34801561047e57600080fd5b50610487610b92565b604051610494919061353a565b60405180910390f35b3480156104a957600080fd5b506104b2610ba1565b6040516104bf919061353a565b60405180910390f35b3480156104d457600080fd5b506104dd610bca565b6040516104ea9190613555565b60405180910390f35b3480156104ff57600080fd5b50610508610bdd565b604051610515919061358b565b60405180910390f35b34801561052a57600080fd5b5061054560048036038101906105409190612e5d565b610c1a565b005b34801561055357600080fd5b5061056e60048036038101906105699190612e21565b610cb3565b60405161057b9190613555565b60405180910390f35b34801561059057600080fd5b506105ab60048036038101906105a69190612d44565b610e46565b6040516105b89190613555565b60405180910390f35b3480156105cd57600080fd5b506105d6610e9c565b6040516105e593929190613842565b60405180910390f35b3480156105fa57600080fd5b5061061560048036038101906106109190612d44565b610eb5565b005b34801561062357600080fd5b5061063e60048036038101906106399190612e86565b61103d565b005b34801561064c57600080fd5b5061066760048036038101906106629190612d96565b61113d565b60405161067491906137cd565b60405180910390f35b34801561068957600080fd5b506106a4600480360381019061069f9190612d44565b6111c4565b005b3480156106b257600080fd5b506106cd60048036038101906106c89190612e86565b6112bc565b005b3480156106db57600080fd5b506106e4611342565b6040516106f19190613555565b60405180910390f35b34801561070657600080fd5b50610721600480360381019061071c9190612e86565b611355565b005b34801561072f57600080fd5b506107386113e4565b6040516107489493929190613879565b60405180910390f35b34801561075d57600080fd5b50610766611404565b005b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600b81526020017f347468656e657773616675000000000000000000000000000000000000000000815250905090565b60006107d833848461143c565b6001905092915050565b6107ea611607565b73ffffffffffffffffffffffffffffffffffffffff16610808610ba1565b73ffffffffffffffffffffffffffffffffffffffff161461085e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108559061372d565b60405180910390fd5b8060128190555060125460138190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600154905090565b6000610935843384600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109309190613b80565b61143c565b61094084848461160f565b600190509392505050565b60006009905090565b61095c611607565b73ffffffffffffffffffffffffffffffffffffffff1661097a610ba1565b73ffffffffffffffffffffffffffffffffffffffff16146109d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c79061372d565b60405180910390fd5b6009600a6109de9190613a08565b836109e99190613b26565b6002819055506009600a6109fd9190613a08565b82610a089190613b26565b6003819055506009600a610a1c9190613a08565b81610a279190613b26565b600481905550505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610aff611607565b73ffffffffffffffffffffffffffffffffffffffff16610b1d610ba1565b73ffffffffffffffffffffffffffffffffffffffff1614610b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6a9061372d565b60405180910390fd5b610b7d60006126f5565b565b600e60029054906101000a900460ff1681565b6000610b9c610ba1565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60009054906101000a900460ff1681565b60606040518060400160405280600781526020017f42696e616e636500000000000000000000000000000000000000000000000000815250905090565b610c22611607565b73ffffffffffffffffffffffffffffffffffffffff16610c40610ba1565b73ffffffffffffffffffffffffffffffffffffffff1614610c96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8d9061372d565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610d465750610d16610ba1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610d9c5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610e315760025482600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610def919061392e565b1115610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e27906135ad565b60405180910390fd5b5b610e3c33848461160f565b6001905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000806000601254925060135491506004549050909192565b610ebd611607565b73ffffffffffffffffffffffffffffffffffffffff16610edb610ba1565b73ffffffffffffffffffffffffffffffffffffffff1614610f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f289061372d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f98906135ed565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611045611607565b73ffffffffffffffffffffffffffffffffffffffff16611063610ba1565b73ffffffffffffffffffffffffffffffffffffffff16146110b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b09061372d565b60405180910390fd5b606460016110c5610897565b6110cf9190613b26565b6110d99190613984565b81111561111b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611112906136ed565b60405180910390fd5b6009600a6111299190613a08565b816111349190613b26565b60058190555050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111cc611607565b73ffffffffffffffffffffffffffffffffffffffff166111ea610ba1565b73ffffffffffffffffffffffffffffffffffffffff1614611240576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112379061372d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a79061360d565b60405180910390fd5b6112b9816126f5565b50565b6112c4611607565b73ffffffffffffffffffffffffffffffffffffffff166112e2610ba1565b73ffffffffffffffffffffffffffffffffffffffff1614611338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132f9061372d565b60405180910390fd5b80600f8190555050565b600e60019054906101000a900460ff1681565b61135d611607565b73ffffffffffffffffffffffffffffffffffffffff1661137b610ba1565b73ffffffffffffffffffffffffffffffffffffffff16146113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c89061372d565b60405180910390fd5b8060108190555060105460118190555050565b600080600080601054935060115492506002549150600354905090919293565b6001600e60016101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a39061366d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561151c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115139061370d565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115fa91906137cd565b60405180910390a3505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561167f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116769061374d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e69061368d565b60405180910390fd5b60008111611732576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611729906136ad565b60405180910390fd5b600e60019054906101000a900460ff166118cf57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117e75750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061183b5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061188f5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c59061378d565b60405180910390fd5b5b600e60019054906101000a900460ff1615801561193a5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119945750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119e957600e60029054906101000a900460ff166119e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119df9061376d565b60405180910390fd5b5b600060019050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a7e5750611a4f610ba1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611b9a5781600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ad29190613b80565b9250508190555081600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b28919061392e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b8c91906137cd565b60405180910390a3506126f0565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c415750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c805750611c50610ba1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d1a57600454821115611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc1906136cd565b60405180910390fd5b6001600e60056101000a81548160ff021916908315150217905550600e60009054906101000a900460ff168015611d0b5750600554611d0830610aae565b10155b15611d1957611d186127b9565b5b5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611dc15750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e005750611dd0610ba1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e4b57600354821115611e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e41906135cd565b60405180910390fd5b5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611eec5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ef657600090505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fa25750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611fac57600090505b801561255e57600e60059054906101000a900460ff16612284576000606460115484611fd89190613b26565b611fe29190613984565b905060008184611ff29190613b80565b905061204682600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292090919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120db84600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297e90919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061217081600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292090919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161221091906137cd565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161227591906137cd565b60405180910390a35050612559565b60006064601354846122969190613b26565b6122a09190613984565b9050600081846122b09190613b80565b905061230482600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292090919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061239984600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297e90919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242e81600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292090919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124ce91906137cd565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161253391906137cd565b60405180910390a36000600e60056101000a81548160ff02191690831515021790555050505b6126ee565b6125b082600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297e90919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061264582600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292090919063ffffffff16565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126e591906137cd565b60405180910390a35b505b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006127c430610aae565b905060008111156128e257600e60039054906101000a900460ff16156128dd5760008111156128a15760006064600f546127fd30610aae565b6128079190613b26565b6128119190613984565b90506000819050612821816129c8565b6000479050600081111561289957600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612897573d6000803e3d6000fd5b505b5050506128dc565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d3906137ad565b60405180910390fd5b5b61291d565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129149061364d565b60405180910390fd5b50565b600080828461292f919061392e565b905083811015612974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296b9061362d565b60405180910390fd5b8091505092915050565b60006129c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c8c565b905092915050565b6000600267ffffffffffffffff811115612a0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612a395781602001602082028036833780820191505090505b5090503081600081518110612a77577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612b1957600080fd5b505afa158015612b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b519190612d6d565b81600181518110612b8b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612bf230600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461143c565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612c569594939291906137e8565b600060405180830381600087803b158015612c7057600080fd5b505af1158015612c84573d6000803e3d6000fd5b505050505050565b6000838311158290612cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ccb919061358b565b60405180910390fd5b5060008385612ce39190613b80565b9050809150509392505050565b600081359050612cff81613cee565b92915050565b600081519050612d1481613cee565b92915050565b600081359050612d2981613d05565b92915050565b600081359050612d3e81613d1c565b92915050565b600060208284031215612d5657600080fd5b6000612d6484828501612cf0565b91505092915050565b600060208284031215612d7f57600080fd5b6000612d8d84828501612d05565b91505092915050565b60008060408385031215612da957600080fd5b6000612db785828601612cf0565b9250506020612dc885828601612cf0565b9150509250929050565b600080600060608486031215612de757600080fd5b6000612df586828701612cf0565b9350506020612e0686828701612cf0565b9250506040612e1786828701612d2f565b9150509250925092565b60008060408385031215612e3457600080fd5b6000612e4285828601612cf0565b9250506020612e5385828601612d2f565b9150509250929050565b600060208284031215612e6f57600080fd5b6000612e7d84828501612d1a565b91505092915050565b600060208284031215612e9857600080fd5b6000612ea684828501612d2f565b91505092915050565b600080600060608486031215612ec457600080fd5b6000612ed286828701612d2f565b9350506020612ee386828701612d2f565b9250506040612ef486828701612d2f565b9150509250925092565b6000612f0a8383612f16565b60208301905092915050565b612f1f81613bb4565b82525050565b612f2e81613bb4565b82525050565b6000612f3f826138e9565b612f49818561390c565b9350612f54836138d9565b8060005b83811015612f85578151612f6c8882612efe565b9750612f77836138ff565b925050600181019050612f58565b5085935050505092915050565b612f9b81613bc6565b82525050565b612faa81613c09565b82525050565b612fb981613c2d565b82525050565b6000612fca826138f4565b612fd4818561391d565b9350612fe4818560208601613c3f565b612fed81613cd0565b840191505092915050565b600061300560398361391d565b91507f546f6b656e3a20726563697069656e742077616c6c65742062616c616e63652060008301527f6578636565647320746865206d6178696d756d206c696d6974000000000000006020830152604082019050919050565b600061306b60208361391d565b91507f42757920616d6f756e74206578636565647320746865206d6178206c696d69746000830152602082019050919050565b60006130ab600f8361391d565b91507f496e76616c6964206164647265737300000000000000000000000000000000006000830152602082019050919050565b60006130eb60268361391d565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613151601b8361391d565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000613191601c8361391d565b91507f4e6f2042616c616e636520617661696c61626c6520746f2073776170000000006000830152602082019050919050565b60006131d160208361391d565b91507f546f6b656e3a20617070726f76652066726f6d207a65726f20616464726573736000830152602082019050919050565b600061321160238361391d565b91507f546f6b656e3a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061327760308361391d565b91507f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760008301527f726561746572207468616e207a65726f000000000000000000000000000000006020830152604082019050919050565b60006132dd601d8361391d565b91507f53656c6c20616d6f756e742065786365656473206d6178206c696d69740000006000830152602082019050919050565b600061331d60298361391d565b91507f496e76616c69642076616c75653a2065786365656473203125206f6620746f7460008301527f616c20737570706c7900000000000000000000000000000000000000000000006020830152604082019050919050565b6000613383601e8361391d565b91507f546f6b656e3a20617070726f766520746f207a65726f206164647265737300006000830152602082019050919050565b60006133c360208361391d565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061340360218361391d565b91507f546f6b656e3a207472616e736665722066726f6d207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061346960208361391d565b91507f5472616e7366657273206172652063757272656e746c792064697361626c65646000830152602082019050919050565b60006134a960118361391d565b91507f7765206e6f74206c61756e6368207965740000000000000000000000000000006000830152602082019050919050565b60006134e9601b8361391d565b91507f4e6f20746f6b656e7320617661696c61626c6520746f207377617000000000006000830152602082019050919050565b61352581613bf2565b82525050565b61353481613bfc565b82525050565b600060208201905061354f6000830184612f25565b92915050565b600060208201905061356a6000830184612f92565b92915050565b60006020820190506135856000830184612fa1565b92915050565b600060208201905081810360008301526135a58184612fbf565b905092915050565b600060208201905081810360008301526135c681612ff8565b9050919050565b600060208201905081810360008301526135e68161305e565b9050919050565b600060208201905081810360008301526136068161309e565b9050919050565b60006020820190508181036000830152613626816130de565b9050919050565b6000602082019050818103600083015261364681613144565b9050919050565b6000602082019050818103600083015261366681613184565b9050919050565b60006020820190508181036000830152613686816131c4565b9050919050565b600060208201905081810360008301526136a681613204565b9050919050565b600060208201905081810360008301526136c68161326a565b9050919050565b600060208201905081810360008301526136e6816132d0565b9050919050565b6000602082019050818103600083015261370681613310565b9050919050565b6000602082019050818103600083015261372681613376565b9050919050565b60006020820190508181036000830152613746816133b6565b9050919050565b60006020820190508181036000830152613766816133f6565b9050919050565b600060208201905081810360008301526137868161345c565b9050919050565b600060208201905081810360008301526137a68161349c565b9050919050565b600060208201905081810360008301526137c6816134dc565b9050919050565b60006020820190506137e2600083018461351c565b92915050565b600060a0820190506137fd600083018861351c565b61380a6020830187612fb0565b818103604083015261381c8186612f34565b905061382b6060830185612f25565b613838608083018461351c565b9695505050505050565b6000606082019050613857600083018661351c565b613864602083018561351c565b613871604083018461351c565b949350505050565b600060808201905061388e600083018761351c565b61389b602083018661351c565b6138a8604083018561351c565b6138b5606083018461351c565b95945050505050565b60006020820190506138d3600083018461352b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061393982613bf2565b915061394483613bf2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561397957613978613c72565b5b828201905092915050565b600061398f82613bf2565b915061399a83613bf2565b9250826139aa576139a9613ca1565b5b828204905092915050565b6000808291508390505b60018511156139ff578086048111156139db576139da613c72565b5b60018516156139ea5780820291505b80810290506139f885613ce1565b94506139bf565b94509492505050565b6000613a1382613bf2565b9150613a1e83613bfc565b9250613a4b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613a53565b905092915050565b600082613a635760019050613b1f565b81613a715760009050613b1f565b8160018114613a875760028114613a9157613ac0565b6001915050613b1f565b60ff841115613aa357613aa2613c72565b5b8360020a915084821115613aba57613ab9613c72565b5b50613b1f565b5060208310610133831016604e8410600b8410161715613af55782820a905083811115613af057613aef613c72565b5b613b1f565b613b0284848460016139b5565b92509050818404811115613b1957613b18613c72565b5b81810290505b9392505050565b6000613b3182613bf2565b9150613b3c83613bf2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b7557613b74613c72565b5b828202905092915050565b6000613b8b82613bf2565b9150613b9683613bf2565b925082821015613ba957613ba8613c72565b5b828203905092915050565b6000613bbf82613bd2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613c1482613c1b565b9050919050565b6000613c2682613bd2565b9050919050565b6000613c3882613bf2565b9050919050565b60005b83811015613c5d578082015181840152602081019050613c42565b83811115613c6c576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b613cf781613bb4565b8114613d0257600080fd5b50565b613d0e81613bc6565b8114613d1957600080fd5b50565b613d2581613bf2565b8114613d3057600080fd5b5056fea264697066735822122026ffd40793c488ecf4aa34e4102602f2e459c7abd3c3fadaeb44605535f57cf464736f6c63430008000033

Deployed Bytecode Sourcemap

4527:11276:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5126:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6830:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8798:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15644:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5310:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7111:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8965:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7020:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15208:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5358:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7348:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7221:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2715:94;;;;;;;;;;;;;:::i;:::-;;5624:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6735:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2492:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5555:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6925:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14761:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8218:421;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7480:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7932:276;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;14437:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14978:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8647:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2817:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14858:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5590:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15490:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7600:324;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;14652:101;;;;;;;;;;;;;:::i;:::-;;5126:63;;;;;;;;;;;;;:::o;6830:83::-;6867:13;6900:5;;;;;;;;;;;;;;;;;6893:12;;6830:83;:::o;8798:159::-;8873:4;8890:37;8899:10;8911:7;8920:6;8890:8;:37::i;:::-;8945:4;8938:11;;8798:159;;;;:::o;15644:154::-;2638:12;:10;:12::i;:::-;2627:23;;:7;:5;:7::i;:::-;:23;;;2619:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15737:10:::1;15719:15;:28;;;;15775:15;;15758:14;:32;;;;15644:154:::0;:::o;5310:41::-;;;;;;;;;;;;;:::o;7111:100::-;7164:7;7191:12;;7184:19;;7111:100;:::o;8965:262::-;9063:4;9080:70;9089:6;9097:10;9143:6;9109:11;:19;9121:6;9109:19;;;;;;;;;;;;;;;:31;9129:10;9109:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;9080:8;:70::i;:::-;9161:36;9171:6;9179:9;9190:6;9161:9;:36::i;:::-;9215:4;9208:11;;8965:262;;;;;:::o;7020:83::-;7061:5;4789:1;7079:16;;7020:83;:::o;15208:274::-;2638:12;:10;:12::i;:::-;2627:23;;:7;:5;:7::i;:::-;:23;;;2619:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4789:1:::1;15349:2;:13;;;;:::i;:::-;15337:9;:25;;;;:::i;:::-;15324:10;:38;;;;4789:1;15404:2;:13;;;;:::i;:::-;15389:12;:28;;;;:::i;:::-;15373:13;:44;;;;4789:1;15461:2;:13;;;;:::i;:::-;15445;:29;;;;:::i;:::-;15428:14;:46;;;;15208:274:::0;;;:::o;5358:28::-;;;;;;;;;;;;;:::o;7348:124::-;7413:4;7437:18;:27;7456:7;7437:27;;;;;;;;;;;;;;;;;;;;;;;;;7430:34;;7348:124;;;:::o;7221:119::-;7287:7;7314:9;:18;7324:7;7314:18;;;;;;;;;;;;;;;;7307:25;;7221:119;;;:::o;2715:94::-;2638:12;:10;:12::i;:::-;2627:23;;:7;:5;:7::i;:::-;:23;;;2619:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2780:21:::1;2798:1;2780:9;:21::i;:::-;2715:94::o:0;5624:37::-;;;;;;;;;;;;;:::o;6735:83::-;6776:7;6803;:5;:7::i;:::-;6796:14;;6735:83;:::o;2492:87::-;2538:7;2565:6;;;;;;;;;;;2558:13;;2492:87;:::o;5555:28::-;;;;;;;;;;;;;:::o;6925:87::-;6964:13;6997:7;;;;;;;;;;;;;;;;;6990:14;;6925:87;:::o;14761:89::-;2638:12;:10;:12::i;:::-;2627:23;;:7;:5;:7::i;:::-;:23;;;2619:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14836:6:::1;14824:9;;:18;;;;;;;;;;;;;;;;;;14761:89:::0;:::o;8218:421::-;8296:4;8331:13;;;;;;;;;;;8318:26;;:9;:26;;;;:50;;;;;8361:7;:5;:7::i;:::-;8348:20;;:9;:20;;;;8318:50;:84;;;;;8373:18;:29;8392:9;8373:29;;;;;;;;;;;;;;;;;;;;;;;;;8372:30;8318:84;8315:232;;;8461:10;;8451:6;8428:9;:20;8438:9;8428:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:43;;8420:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;8315:232;8559:40;8569:10;8581:9;8592:6;8559:9;:40::i;:::-;8627:4;8620:11;;8218:421;;;;:::o;7480:112::-;7539:4;7563:12;:21;7576:7;7563:21;;;;;;;;;;;;;;;;;;;;;;;;;7556:28;;7480:112;;;:::o;7932:276::-;7987:19;8017:21;8049;8103:15;;8089:29;;8145:14;;8129:30;;8186:14;;8170:30;;7932:276;;;:::o;14437:206::-;2638:12;:10;:12::i;:::-;2627:23;;:7;:5;:7::i;:::-;:23;;;2619:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14538:1:::1;14516:24;;:10;:24;;;;14508:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;14577:10;14571:3;;:16;;;;;;;;;;;;;;;;;;14631:4;14598:18;:30;14617:10;14598:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;14437:206:::0;:::o;14978:222::-;2638:12;:10;:12::i;:::-;2627:23;;:7;:5;:7::i;:::-;:23;;;2619:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15095:3:::1;15090:1;15074:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15073:25;;;;:::i;:::-;15058:11;:40;;15050:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;4789:1;15179:2;:13;;;;:::i;:::-;15165:11;:27;;;;:::i;:::-;15155:7;:37;;;;14978:222:::0;:::o;8647:143::-;8728:7;8755:11;:18;8767:5;8755:18;;;;;;;;;;;;;;;:27;8774:7;8755:27;;;;;;;;;;;;;;;;8748:34;;8647:143;;;;:::o;2817:192::-;2638:12;:10;:12::i;:::-;2627:23;;:7;:5;:7::i;:::-;:23;;;2619:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2926:1:::1;2906:22;;:8;:22;;;;2898:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2982:19;2992:8;2982:9;:19::i;:::-;2817:192:::0;:::o;14858:112::-;2638:12;:10;:12::i;:::-;2627:23;;:7;:5;:7::i;:::-;:23;;;2619:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14951:11:::1;14936:12;:26;;;;14858:112:::0;:::o;5590:27::-;;;;;;;;;;;;;:::o;15490:144::-;2638:12;:10;:12::i;:::-;2627:23;;:7;:5;:7::i;:::-;:23;;;2619:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15578:10:::1;15564:11;:24;;;;15615:11;;15599:13;:27;;;;15490:144:::0;:::o;7600:324::-;7654:18;7683:20;7714:17;7742:20;7794:11;;7781:24;;7831:13;;7816:28;;7867:10;;7855:22;;7903:13;;7888:28;;7600:324;;;;:::o;14652:101::-;14706:4;14696:7;;:14;;;;;;;;;;;;;;;;;;14741:4;14721:17;;:24;;;;;;;;;;;;;;;;;;14652:101::o;9235:329::-;9345:1;9328:19;;:5;:19;;;;9320:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9422:1;9403:21;;:7;:21;;;;9395:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9502:6;9472:11;:18;9484:5;9472:18;;;;;;;;;;;;;;;:27;9491:7;9472:27;;;;;;;;;;;;;;;:36;;;;9540:7;9524:32;;9533:5;9524:32;;;9549:6;9524:32;;;;;;:::i;:::-;;;;;;;;9235:329;;;:::o;815:98::-;868:7;895:10;888:17;;815:98;:::o;9572:3313::-;9689:1;9671:20;;:6;:20;;;;9663:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9769:1;9748:23;;:9;:23;;;;9740:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9839:1;9830:6;:10;9822:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9908:7;;;;;;;;;;;9904:155;;9925:18;:26;9944:6;9925:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;9955:18;:29;9974:9;9955:29;;;;;;;;;;;;;;;;;;;;;;;;;9925:59;:83;;;;9988:12;:20;10001:6;9988:20;;;;;;;;;;;;;;;;;;;;;;;;;9925:83;:110;;;;10012:12;:23;10025:9;10012:23;;;;;;;;;;;;;;;;;;;;;;;;;9925:110;9917:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9904:155;10073:7;;;;;;;;;;;10072:8;:38;;;;;10097:13;;;;;;;;;;;10084:26;;:9;:26;;;;10072:38;:65;;;;;10124:13;;;;;;;;;;;10114:23;;:6;:23;;;;10072:65;10069:135;;;10148:17;;;;;;;;;;;10140:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10069:135;10216:15;10234:4;10216:22;;10270:13;;;;;;;;;;;10257:26;;:9;:26;;;:47;;;;;10297:7;:5;:7::i;:::-;10287:17;;:6;:17;;;10257:47;10253:230;;;10344:6;10323:9;:17;10333:6;10323:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;10389:6;10365:9;:20;10375:9;10365:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;10432:9;10415:35;;10424:6;10415:35;;;10443:6;10415:35;;;;;;:::i;:::-;;;;;;;;10465:7;;;10253:230;10530:13;;;;;;;;;;;10517:26;;:9;:26;;;:57;;;;;10548:18;:26;10567:6;10548:26;;;;;;;;;;;;;;;;;;;;;;;;;10547:27;10517:57;:78;;;;;10588:7;:5;:7::i;:::-;10578:17;;:6;:17;;;;10517:78;10514:362;;;10635:14;;10625:6;:24;;10617:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10717:4;10704:10;;:17;;;;;;;;;;;;;;;;;;10760:9;;;;;;;;;;;:48;;;;;10801:7;;10773:24;10791:4;10773:9;:24::i;:::-;:35;;10760:48;10757:106;;;10834:9;:7;:9::i;:::-;10757:106;10514:362;10916:13;;;;;;;;;;;10906:23;;:6;:23;;;:57;;;;;10934:18;:29;10953:9;10934:29;;;;;;;;;;;;;;;;;;;;;;;;;10933:30;10906:57;:81;;;;;10980:7;:5;:7::i;:::-;10967:20;;:9;:20;;;;10906:81;10903:216;;;11043:13;;11033:6;:23;;11025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10903:216;11135:18;:26;11154:6;11135:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;11165:18;:29;11184:9;11165:29;;;;;;;;;;;;;;;;;;;;;;;;;11135:59;11131:88;;;11211:5;11198:18;;11131:88;11246:13;;;;;;;;;;;11233:26;;:9;:26;;;;:53;;;;;11273:13;;;;;;;;;;;11263:23;;:6;:23;;;;11233:53;11229:82;;;11303:5;11290:18;;11229:82;11327:10;11323:1555;;;11364:10;;;;;;;;;;;11360:1270;;11400:22;11450:3;11434:13;;11425:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;11400:53;;11476:22;11510:14;11501:6;:23;;;;:::i;:::-;11476:48;;11617:44;11646:14;11617:9;:24;11635:4;11617:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;11590:9;:24;11608:4;11590:24;;;;;;;;;;;;;;;:71;;;;11704:29;11726:6;11704:9;:17;11714:6;11704:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;11684:9;:17;11694:6;11684:17;;;;;;;;;;;;;;;:49;;;;11779:40;11804:14;11779:9;:20;11789:9;11779:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11756:9;:20;11766:9;11756:20;;;;;;;;;;;;;;;:63;;;;11866:9;11849:43;;11858:6;11849:43;;;11877:14;11849:43;;;;;;:::i;:::-;;;;;;;;11945:4;11920:47;;11929:6;11920:47;;;11952:14;11920:47;;;;;;:::i;:::-;;;;;;;;11360:1270;;;;;12018:22;12069:3;12052:14;;12043:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;12018:54;;12095:22;12129:14;12120:6;:23;;;;:::i;:::-;12095:48;;12217:44;12246:14;12217:9;:24;12235:4;12217:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;12190:9;:24;12208:4;12190:24;;;;;;;;;;;;;;;:71;;;;12304:29;12326:6;12304:9;:17;12314:6;12304:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;12284:9;:17;12294:6;12284:17;;;;;;;;;;;;;;;:49;;;;12379:40;12404:14;12379:9;:20;12389:9;12379:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;12356:9;:20;12366:9;12356:20;;;;;;;;;;;;;;;:63;;;;12466:9;12449:43;;12458:6;12449:43;;;12477:14;12449:43;;;;;;:::i;:::-;;;;;;;;12545:4;12520:47;;12529:6;12520:47;;;12552:14;12520:47;;;;;;:::i;:::-;;;;;;;;12605:5;12592:10;;:18;;;;;;;;;;;;;;;;;;11360:1270;;;11323:1555;;;12700:29;12722:6;12700:9;:17;12710:6;12700:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;12680:9;:17;12690:6;12680:17;;;;;;;;;;;;;;;:49;;;;12771:32;12796:6;12771:9;:20;12781:9;12771:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12748:9;:20;12758:9;12748:20;;;;;;;;;;;;;;;:55;;;;12846:9;12829:35;;12838:6;12829:35;;;12857:6;12829:35;;;;;;:::i;:::-;;;;;;;;11323:1555;9572:3313;;;;;:::o;3017:173::-;3073:16;3092:6;;;;;;;;;;;3073:25;;3118:8;3109:6;;:17;;;;;;;;;;;;;;;;;;3173:8;3142:40;;3163:8;3142:40;;;;;;;;;;;;3017:173;;:::o;13557:836::-;13597:28;13628:24;13646:4;13628:9;:24::i;:::-;13597:55;;13691:1;13668:20;:24;13665:707;;;13714:10;;;;;;;;;;;13711:560;;;13772:1;13749:20;:24;13746:508;;;13819:17;13881:3;13866:12;;13839:24;13857:4;13839:9;:24::i;:::-;:39;;;;:::i;:::-;:45;;;;:::i;:::-;13819:65;;13909:14;13926:9;13909:26;;13960:24;13977:6;13960:16;:24::i;:::-;14009:23;14035:21;14009:47;;14103:1;14085:15;:19;14081:66;;;14115:3;;;;;;;;;;;14107:21;;:38;14129:15;14107:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14081:66;13746:508;;;;;;14197:37;;;;;;;;;;:::i;:::-;;;;;;;;13746:508;13711:560;13665:707;;;14304:38;;;;;;;;;;:::i;:::-;;;;;;;;13665:707;13557:836;:::o;1069:179::-;1127:7;1147:9;1163:1;1159;:5;;;;:::i;:::-;1147:17;;1188:1;1183;:6;;1175:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1239:1;1232:8;;;1069:179;;;;:::o;1257:136::-;1315:7;1342:43;1346:1;1349;1342:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1335:50;;1257:136;;;;:::o;12895:652::-;13026:21;13064:1;13050:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13026:40;;13095:4;13077;13082:1;13077:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;13121:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13111:4;13116:1;13111:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;13219:62;13236:4;13251:15;;;;;;;;;;;13269:11;13219:8;:62::i;:::-;13315:15;;;;;;;;;;;:66;;;13396:11;13422:1;13466:4;13493;13513:15;13315:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12895:652;;:::o;1402:224::-;1522:7;1555:1;1550;:6;;1558:12;1542:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1582:9;1598:1;1594;:5;;;;:::i;:::-;1582:17;;1617:1;1610:8;;;1402:224;;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:139::-;;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;492:87;;;;:::o;585:262::-;;693:2;681:9;672:7;668:23;664:32;661:2;;;709:1;706;699:12;661:2;752:1;777:53;822:7;813:6;802:9;798:22;777:53;:::i;:::-;767:63;;723:117;651:196;;;;:::o;853:284::-;;972:2;960:9;951:7;947:23;943:32;940:2;;;988:1;985;978:12;940:2;1031:1;1056:64;1112:7;1103:6;1092:9;1088:22;1056:64;:::i;:::-;1046:74;;1002:128;930:207;;;;:::o;1143:407::-;;;1268:2;1256:9;1247:7;1243:23;1239:32;1236:2;;;1284:1;1281;1274:12;1236:2;1327:1;1352:53;1397:7;1388:6;1377:9;1373:22;1352:53;:::i;:::-;1342:63;;1298:117;1454:2;1480:53;1525:7;1516:6;1505:9;1501:22;1480:53;:::i;:::-;1470:63;;1425:118;1226:324;;;;;:::o;1556:552::-;;;;1698:2;1686:9;1677:7;1673:23;1669:32;1666:2;;;1714:1;1711;1704:12;1666:2;1757:1;1782:53;1827:7;1818:6;1807:9;1803:22;1782:53;:::i;:::-;1772:63;;1728:117;1884:2;1910:53;1955:7;1946:6;1935:9;1931:22;1910:53;:::i;:::-;1900:63;;1855:118;2012:2;2038:53;2083:7;2074:6;2063:9;2059:22;2038:53;:::i;:::-;2028:63;;1983:118;1656:452;;;;;:::o;2114:407::-;;;2239:2;2227:9;2218:7;2214:23;2210:32;2207:2;;;2255:1;2252;2245:12;2207:2;2298:1;2323:53;2368:7;2359:6;2348:9;2344:22;2323:53;:::i;:::-;2313:63;;2269:117;2425:2;2451:53;2496:7;2487:6;2476:9;2472:22;2451:53;:::i;:::-;2441:63;;2396:118;2197:324;;;;;:::o;2527:256::-;;2632:2;2620:9;2611:7;2607:23;2603:32;2600:2;;;2648:1;2645;2638:12;2600:2;2691:1;2716:50;2758:7;2749:6;2738:9;2734:22;2716:50;:::i;:::-;2706:60;;2662:114;2590:193;;;;:::o;2789:262::-;;2897:2;2885:9;2876:7;2872:23;2868:32;2865:2;;;2913:1;2910;2903:12;2865:2;2956:1;2981:53;3026:7;3017:6;3006:9;3002:22;2981:53;:::i;:::-;2971:63;;2927:117;2855:196;;;;:::o;3057:552::-;;;;3199:2;3187:9;3178:7;3174:23;3170:32;3167:2;;;3215:1;3212;3205:12;3167:2;3258:1;3283:53;3328:7;3319:6;3308:9;3304:22;3283:53;:::i;:::-;3273:63;;3229:117;3385:2;3411:53;3456:7;3447:6;3436:9;3432:22;3411:53;:::i;:::-;3401:63;;3356:118;3513:2;3539:53;3584:7;3575:6;3564:9;3560:22;3539:53;:::i;:::-;3529:63;;3484:118;3157:452;;;;;:::o;3615:179::-;;3705:46;3747:3;3739:6;3705:46;:::i;:::-;3783:4;3778:3;3774:14;3760:28;;3695:99;;;;:::o;3800:108::-;3877:24;3895:5;3877:24;:::i;:::-;3872:3;3865:37;3855:53;;:::o;3914:118::-;4001:24;4019:5;4001:24;:::i;:::-;3996:3;3989:37;3979:53;;:::o;4068:732::-;;4216:54;4264:5;4216:54;:::i;:::-;4286:86;4365:6;4360:3;4286:86;:::i;:::-;4279:93;;4396:56;4446:5;4396:56;:::i;:::-;4475:7;4506:1;4491:284;4516:6;4513:1;4510:13;4491:284;;;4592:6;4586:13;4619:63;4678:3;4663:13;4619:63;:::i;:::-;4612:70;;4705:60;4758:6;4705:60;:::i;:::-;4695:70;;4551:224;4538:1;4535;4531:9;4526:14;;4491:284;;;4495:14;4791:3;4784:10;;4192:608;;;;;;;:::o;4806:109::-;4887:21;4902:5;4887:21;:::i;:::-;4882:3;4875:34;4865:50;;:::o;4921:183::-;5034:63;5091:5;5034:63;:::i;:::-;5029:3;5022:76;5012:92;;:::o;5110:147::-;5205:45;5244:5;5205:45;:::i;:::-;5200:3;5193:58;5183:74;;:::o;5263:364::-;;5379:39;5412:5;5379:39;:::i;:::-;5434:71;5498:6;5493:3;5434:71;:::i;:::-;5427:78;;5514:52;5559:6;5554:3;5547:4;5540:5;5536:16;5514:52;:::i;:::-;5591:29;5613:6;5591:29;:::i;:::-;5586:3;5582:39;5575:46;;5355:272;;;;;:::o;5633:389::-;;5796:67;5860:2;5855:3;5796:67;:::i;:::-;5789:74;;5893:34;5889:1;5884:3;5880:11;5873:55;5959:27;5954:2;5949:3;5945:12;5938:49;6013:2;6008:3;6004:12;5997:19;;5779:243;;;:::o;6028:330::-;;6191:67;6255:2;6250:3;6191:67;:::i;:::-;6184:74;;6288:34;6284:1;6279:3;6275:11;6268:55;6349:2;6344:3;6340:12;6333:19;;6174:184;;;:::o;6364:313::-;;6527:67;6591:2;6586:3;6527:67;:::i;:::-;6520:74;;6624:17;6620:1;6615:3;6611:11;6604:38;6668:2;6663:3;6659:12;6652:19;;6510:167;;;:::o;6683:370::-;;6846:67;6910:2;6905:3;6846:67;:::i;:::-;6839:74;;6943:34;6939:1;6934:3;6930:11;6923:55;7009:8;7004:2;6999:3;6995:12;6988:30;7044:2;7039:3;7035:12;7028:19;;6829:224;;;:::o;7059:325::-;;7222:67;7286:2;7281:3;7222:67;:::i;:::-;7215:74;;7319:29;7315:1;7310:3;7306:11;7299:50;7375:2;7370:3;7366:12;7359:19;;7205:179;;;:::o;7390:326::-;;7553:67;7617:2;7612:3;7553:67;:::i;:::-;7546:74;;7650:30;7646:1;7641:3;7637:11;7630:51;7707:2;7702:3;7698:12;7691:19;;7536:180;;;:::o;7722:330::-;;7885:67;7949:2;7944:3;7885:67;:::i;:::-;7878:74;;7982:34;7978:1;7973:3;7969:11;7962:55;8043:2;8038:3;8034:12;8027:19;;7868:184;;;:::o;8058:367::-;;8221:67;8285:2;8280:3;8221:67;:::i;:::-;8214:74;;8318:34;8314:1;8309:3;8305:11;8298:55;8384:5;8379:2;8374:3;8370:12;8363:27;8416:2;8411:3;8407:12;8400:19;;8204:221;;;:::o;8431:380::-;;8594:67;8658:2;8653:3;8594:67;:::i;:::-;8587:74;;8691:34;8687:1;8682:3;8678:11;8671:55;8757:18;8752:2;8747:3;8743:12;8736:40;8802:2;8797:3;8793:12;8786:19;;8577:234;;;:::o;8817:327::-;;8980:67;9044:2;9039:3;8980:67;:::i;:::-;8973:74;;9077:31;9073:1;9068:3;9064:11;9057:52;9135:2;9130:3;9126:12;9119:19;;8963:181;;;:::o;9150:373::-;;9313:67;9377:2;9372:3;9313:67;:::i;:::-;9306:74;;9410:34;9406:1;9401:3;9397:11;9390:55;9476:11;9471:2;9466:3;9462:12;9455:33;9514:2;9509:3;9505:12;9498:19;;9296:227;;;:::o;9529:328::-;;9692:67;9756:2;9751:3;9692:67;:::i;:::-;9685:74;;9789:32;9785:1;9780:3;9776:11;9769:53;9848:2;9843:3;9839:12;9832:19;;9675:182;;;:::o;9863:330::-;;10026:67;10090:2;10085:3;10026:67;:::i;:::-;10019:74;;10123:34;10119:1;10114:3;10110:11;10103:55;10184:2;10179:3;10175:12;10168:19;;10009:184;;;:::o;10199:365::-;;10362:67;10426:2;10421:3;10362:67;:::i;:::-;10355:74;;10459:34;10455:1;10450:3;10446:11;10439:55;10525:3;10520:2;10515:3;10511:12;10504:25;10555:2;10550:3;10546:12;10539:19;;10345:219;;;:::o;10570:330::-;;10733:67;10797:2;10792:3;10733:67;:::i;:::-;10726:74;;10830:34;10826:1;10821:3;10817:11;10810:55;10891:2;10886:3;10882:12;10875:19;;10716:184;;;:::o;10906:315::-;;11069:67;11133:2;11128:3;11069:67;:::i;:::-;11062:74;;11166:19;11162:1;11157:3;11153:11;11146:40;11212:2;11207:3;11203:12;11196:19;;11052:169;;;:::o;11227:325::-;;11390:67;11454:2;11449:3;11390:67;:::i;:::-;11383:74;;11487:29;11483:1;11478:3;11474:11;11467:50;11543:2;11538:3;11534:12;11527:19;;11373:179;;;:::o;11558:118::-;11645:24;11663:5;11645:24;:::i;:::-;11640:3;11633:37;11623:53;;:::o;11682:112::-;11765:22;11781:5;11765:22;:::i;:::-;11760:3;11753:35;11743:51;;:::o;11800:222::-;;11931:2;11920:9;11916:18;11908:26;;11944:71;12012:1;12001:9;11997:17;11988:6;11944:71;:::i;:::-;11898:124;;;;:::o;12028:210::-;;12153:2;12142:9;12138:18;12130:26;;12166:65;12228:1;12217:9;12213:17;12204:6;12166:65;:::i;:::-;12120:118;;;;:::o;12244:274::-;;12401:2;12390:9;12386:18;12378:26;;12414:97;12508:1;12497:9;12493:17;12484:6;12414:97;:::i;:::-;12368:150;;;;:::o;12524:313::-;;12675:2;12664:9;12660:18;12652:26;;12724:9;12718:4;12714:20;12710:1;12699:9;12695:17;12688:47;12752:78;12825:4;12816:6;12752:78;:::i;:::-;12744:86;;12642:195;;;;:::o;12843:419::-;;13047:2;13036:9;13032:18;13024:26;;13096:9;13090:4;13086:20;13082:1;13071:9;13067:17;13060:47;13124:131;13250:4;13124:131;:::i;:::-;13116:139;;13014:248;;;:::o;13268:419::-;;13472:2;13461:9;13457:18;13449:26;;13521:9;13515:4;13511:20;13507:1;13496:9;13492:17;13485:47;13549:131;13675:4;13549:131;:::i;:::-;13541:139;;13439:248;;;:::o;13693:419::-;;13897:2;13886:9;13882:18;13874:26;;13946:9;13940:4;13936:20;13932:1;13921:9;13917:17;13910:47;13974:131;14100:4;13974:131;:::i;:::-;13966:139;;13864:248;;;:::o;14118:419::-;;14322:2;14311:9;14307:18;14299:26;;14371:9;14365:4;14361:20;14357:1;14346:9;14342:17;14335:47;14399:131;14525:4;14399:131;:::i;:::-;14391:139;;14289:248;;;:::o;14543:419::-;;14747:2;14736:9;14732:18;14724:26;;14796:9;14790:4;14786:20;14782:1;14771:9;14767:17;14760:47;14824:131;14950:4;14824:131;:::i;:::-;14816:139;;14714:248;;;:::o;14968:419::-;;15172:2;15161:9;15157:18;15149:26;;15221:9;15215:4;15211:20;15207:1;15196:9;15192:17;15185:47;15249:131;15375:4;15249:131;:::i;:::-;15241:139;;15139:248;;;:::o;15393:419::-;;15597:2;15586:9;15582:18;15574:26;;15646:9;15640:4;15636:20;15632:1;15621:9;15617:17;15610:47;15674:131;15800:4;15674:131;:::i;:::-;15666:139;;15564:248;;;:::o;15818:419::-;;16022:2;16011:9;16007:18;15999:26;;16071:9;16065:4;16061:20;16057:1;16046:9;16042:17;16035:47;16099:131;16225:4;16099:131;:::i;:::-;16091:139;;15989:248;;;:::o;16243:419::-;;16447:2;16436:9;16432:18;16424:26;;16496:9;16490:4;16486:20;16482:1;16471:9;16467:17;16460:47;16524:131;16650:4;16524:131;:::i;:::-;16516:139;;16414:248;;;:::o;16668:419::-;;16872:2;16861:9;16857:18;16849:26;;16921:9;16915:4;16911:20;16907:1;16896:9;16892:17;16885:47;16949:131;17075:4;16949:131;:::i;:::-;16941:139;;16839:248;;;:::o;17093:419::-;;17297:2;17286:9;17282:18;17274:26;;17346:9;17340:4;17336:20;17332:1;17321:9;17317:17;17310:47;17374:131;17500:4;17374:131;:::i;:::-;17366:139;;17264:248;;;:::o;17518:419::-;;17722:2;17711:9;17707:18;17699:26;;17771:9;17765:4;17761:20;17757:1;17746:9;17742:17;17735:47;17799:131;17925:4;17799:131;:::i;:::-;17791:139;;17689:248;;;:::o;17943:419::-;;18147:2;18136:9;18132:18;18124:26;;18196:9;18190:4;18186:20;18182:1;18171:9;18167:17;18160:47;18224:131;18350:4;18224:131;:::i;:::-;18216:139;;18114:248;;;:::o;18368:419::-;;18572:2;18561:9;18557:18;18549:26;;18621:9;18615:4;18611:20;18607:1;18596:9;18592:17;18585:47;18649:131;18775:4;18649:131;:::i;:::-;18641:139;;18539:248;;;:::o;18793:419::-;;18997:2;18986:9;18982:18;18974:26;;19046:9;19040:4;19036:20;19032:1;19021:9;19017:17;19010:47;19074:131;19200:4;19074:131;:::i;:::-;19066:139;;18964:248;;;:::o;19218:419::-;;19422:2;19411:9;19407:18;19399:26;;19471:9;19465:4;19461:20;19457:1;19446:9;19442:17;19435:47;19499:131;19625:4;19499:131;:::i;:::-;19491:139;;19389:248;;;:::o;19643:419::-;;19847:2;19836:9;19832:18;19824:26;;19896:9;19890:4;19886:20;19882:1;19871:9;19867:17;19860:47;19924:131;20050:4;19924:131;:::i;:::-;19916:139;;19814:248;;;:::o;20068:222::-;;20199:2;20188:9;20184:18;20176:26;;20212:71;20280:1;20269:9;20265:17;20256:6;20212:71;:::i;:::-;20166:124;;;;:::o;20296:831::-;;20597:3;20586:9;20582:19;20574:27;;20611:71;20679:1;20668:9;20664:17;20655:6;20611:71;:::i;:::-;20692:80;20768:2;20757:9;20753:18;20744:6;20692:80;:::i;:::-;20819:9;20813:4;20809:20;20804:2;20793:9;20789:18;20782:48;20847:108;20950:4;20941:6;20847:108;:::i;:::-;20839:116;;20965:72;21033:2;21022:9;21018:18;21009:6;20965:72;:::i;:::-;21047:73;21115:3;21104:9;21100:19;21091:6;21047:73;:::i;:::-;20564:563;;;;;;;;:::o;21133:442::-;;21320:2;21309:9;21305:18;21297:26;;21333:71;21401:1;21390:9;21386:17;21377:6;21333:71;:::i;:::-;21414:72;21482:2;21471:9;21467:18;21458:6;21414:72;:::i;:::-;21496;21564:2;21553:9;21549:18;21540:6;21496:72;:::i;:::-;21287:288;;;;;;:::o;21581:553::-;;21796:3;21785:9;21781:19;21773:27;;21810:71;21878:1;21867:9;21863:17;21854:6;21810:71;:::i;:::-;21891:72;21959:2;21948:9;21944:18;21935:6;21891:72;:::i;:::-;21973;22041:2;22030:9;22026:18;22017:6;21973:72;:::i;:::-;22055;22123:2;22112:9;22108:18;22099:6;22055:72;:::i;:::-;21763:371;;;;;;;:::o;22140:214::-;;22267:2;22256:9;22252:18;22244:26;;22280:67;22344:1;22333:9;22329:17;22320:6;22280:67;:::i;:::-;22234:120;;;;:::o;22360:132::-;;22450:3;22442:11;;22480:4;22475:3;22471:14;22463:22;;22432:60;;;:::o;22498:114::-;;22599:5;22593:12;22583:22;;22572:40;;;:::o;22618:99::-;;22704:5;22698:12;22688:22;;22677:40;;;:::o;22723:113::-;;22825:4;22820:3;22816:14;22808:22;;22798:38;;;:::o;22842:184::-;;22975:6;22970:3;22963:19;23015:4;23010:3;23006:14;22991:29;;22953:73;;;;:::o;23032:169::-;;23150:6;23145:3;23138:19;23190:4;23185:3;23181:14;23166:29;;23128:73;;;;:::o;23207:305::-;;23266:20;23284:1;23266:20;:::i;:::-;23261:25;;23300:20;23318:1;23300:20;:::i;:::-;23295:25;;23454:1;23386:66;23382:74;23379:1;23376:81;23373:2;;;23460:18;;:::i;:::-;23373:2;23504:1;23501;23497:9;23490:16;;23251:261;;;;:::o;23518:185::-;;23575:20;23593:1;23575:20;:::i;:::-;23570:25;;23609:20;23627:1;23609:20;:::i;:::-;23604:25;;23648:1;23638:2;;23653:18;;:::i;:::-;23638:2;23695:1;23692;23688:9;23683:14;;23560:143;;;;:::o;23709:848::-;;;23801:6;23792:15;;23825:5;23816:14;;23839:712;23860:1;23850:8;23847:15;23839:712;;;23955:4;23950:3;23946:14;23940:4;23937:24;23934:2;;;23964:18;;:::i;:::-;23934:2;24014:1;24004:8;24000:16;23997:2;;;24429:4;24422:5;24418:16;24409:25;;23997:2;24479:4;24473;24469:15;24461:23;;24509:32;24532:8;24509:32;:::i;:::-;24497:44;;23839:712;;;23782:775;;;;;;;:::o;24563:281::-;;24645:23;24663:4;24645:23;:::i;:::-;24637:31;;24689:25;24705:8;24689:25;:::i;:::-;24677:37;;24733:104;24770:66;24760:8;24754:4;24733:104;:::i;:::-;24724:113;;24627:217;;;;:::o;24850:1073::-;;25095:8;25085:2;;25116:1;25107:10;;25118:5;;25085:2;25144:4;25134:2;;25161:1;25152:10;;25163:5;;25134:2;25230:4;25278:1;25273:27;;;;25314:1;25309:191;;;;25223:277;;25273:27;25291:1;25282:10;;25293:5;;;25309:191;25354:3;25344:8;25341:17;25338:2;;;25361:18;;:::i;:::-;25338:2;25410:8;25407:1;25403:16;25394:25;;25445:3;25438:5;25435:14;25432:2;;;25452:18;;:::i;:::-;25432:2;25485:5;;;25223:277;;25609:2;25599:8;25596:16;25590:3;25584:4;25581:13;25577:36;25559:2;25549:8;25546:16;25541:2;25535:4;25532:12;25528:35;25512:111;25509:2;;;25665:8;25659:4;25655:19;25646:28;;25700:3;25693:5;25690:14;25687:2;;;25707:18;;:::i;:::-;25687:2;25740:5;;25509:2;25780:42;25818:3;25808:8;25802:4;25799:1;25780:42;:::i;:::-;25765:57;;;;25854:4;25849:3;25845:14;25838:5;25835:25;25832:2;;;25863:18;;:::i;:::-;25832:2;25912:4;25905:5;25901:16;25892:25;;24910:1013;;;;;;:::o;25929:348::-;;25992:20;26010:1;25992:20;:::i;:::-;25987:25;;26026:20;26044:1;26026:20;:::i;:::-;26021:25;;26214:1;26146:66;26142:74;26139:1;26136:81;26131:1;26124:9;26117:17;26113:105;26110:2;;;26221:18;;:::i;:::-;26110:2;26269:1;26266;26262:9;26251:20;;25977:300;;;;:::o;26283:191::-;;26343:20;26361:1;26343:20;:::i;:::-;26338:25;;26377:20;26395:1;26377:20;:::i;:::-;26372:25;;26416:1;26413;26410:8;26407:2;;;26421:18;;:::i;:::-;26407:2;26466:1;26463;26459:9;26451:17;;26328:146;;;;:::o;26480:96::-;;26546:24;26564:5;26546:24;:::i;:::-;26535:35;;26525:51;;;:::o;26582:90::-;;26659:5;26652:13;26645:21;26634:32;;26624:48;;;:::o;26678:126::-;;26755:42;26748:5;26744:54;26733:65;;26723:81;;;:::o;26810:77::-;;26876:5;26865:16;;26855:32;;;:::o;26893:86::-;;26968:4;26961:5;26957:16;26946:27;;26936:43;;;:::o;26985:178::-;;27094:63;27151:5;27094:63;:::i;:::-;27081:76;;27071:92;;;:::o;27169:139::-;;27278:24;27296:5;27278:24;:::i;:::-;27265:37;;27255:53;;;:::o;27314:121::-;;27405:24;27423:5;27405:24;:::i;:::-;27392:37;;27382:53;;;:::o;27441:307::-;27509:1;27519:113;27533:6;27530:1;27527:13;27519:113;;;27618:1;27613:3;27609:11;27603:18;27599:1;27594:3;27590:11;27583:39;27555:2;27552:1;27548:10;27543:15;;27519:113;;;27650:6;27647:1;27644:13;27641:2;;;27730:1;27721:6;27716:3;27712:16;27705:27;27641:2;27490:258;;;;:::o;27754:180::-;27802:77;27799:1;27792:88;27899:4;27896:1;27889:15;27923:4;27920:1;27913:15;27940:180;27988:77;27985:1;27978:88;28085:4;28082:1;28075:15;28109:4;28106:1;28099:15;28126:102;;28218:2;28214:7;28209:2;28202:5;28198:14;28194:28;28184:38;;28174:54;;;:::o;28234:102::-;;28323:5;28320:1;28316:13;28295:34;;28285:51;;;:::o;28342:122::-;28415:24;28433:5;28415:24;:::i;:::-;28408:5;28405:35;28395:2;;28454:1;28451;28444:12;28395:2;28385:79;:::o;28470:116::-;28540:21;28555:5;28540:21;:::i;:::-;28533:5;28530:32;28520:2;;28576:1;28573;28566:12;28520:2;28510:76;:::o;28592:122::-;28665:24;28683:5;28665:24;:::i;:::-;28658:5;28655:35;28645:2;;28704:1;28701;28694:12;28645:2;28635:79;:::o

Swarm Source

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