ETH Price: $2,430.82 (+0.33%)

Token

wouldntitbeniceifthepriceonlywentup (UPONLY)
 

Overview

Max Total Supply

200,000,000,000 UPONLY

Holders

143

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,003,628,453.793893119 UPONLY

Value
$0.00
0x0aff42ca6bd687a4ccf1f9499a675d2618ff156a
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:
UPONLY

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-10-11
*/

// 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 UPONLY is IERC20, Ownable {

    using SafeMath for uint256;
    using Address for address payable;

    string private constant _name = "wouldntitbeniceifthepriceonlywentup";
    string private constant _symbol = "UPONLY";

    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 200_000_000_000 * 10**_decimals;

    uint256 private _maxWallet = 1_600_000_000 * 10**_decimals;
    uint256 private _maxBuyAmount = 1_600_000_000 * 10**_decimals;
    uint256 private _maxSellAmount = 1_600_000_000 * 10**_decimals;
    uint256 private _swapTH = 200_000_000 * 10**_decimals;


    address public Dev = 0xE8a0163027377c5E6467e43a9262C0F0EED15339;
    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; // 0% buy tax

    uint256 private AmountBuyRate = _devTaxRate;

    uint256 private _devTaxSellRate = 0; // 0% sell tax

    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, "UPONLY: recipient wallet balance exceeds the maximum");

        }

        _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), "UPONLY: approve from the zero address");
        require(spender != address(0), "UPONLY: approve to the zero address");

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

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

        require(sender != address(0), "UPONLY: transfer from zero address");
        require(recipient != address(0), "UPONLY: transfer to zero address");
        require(amount > 0, "UPONLY: transfer amount must be greater than zero");
        if(!_Launch){require(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient] || _isWhiteList[sender] || _isWhiteList[recipient], "we have 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 the 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 {

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

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

        // Make 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 UPONLY tokens available to swap");
                }

            }

        }else{

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

   receive() external payable {}

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


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

    function setExcludedFromFee(address account, bool status) external onlyOwner {
        _isExcludedFromFee[account] = status;
    }

    function setWhitelist(address account, bool status) external onlyOwner {
        _isWhiteList[account] = status;
    }

    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":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"devTaxRate","type":"uint256"}],"name":"setSellTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setWhitelist","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"}]

60806040526009600a62000014919062000885565b642e90edd000620000269190620009c2565b6001556009600a62000039919062000885565b635f5e10006200004a9190620009c2565b6002556009600a6200005d919062000885565b635f5e10006200006e9190620009c2565b6003556009600a62000081919062000885565b635f5e1000620000929190620009c2565b6004556009600a620000a5919062000885565b630bebc200620000b69190620009c2565b60055573e8a0163027377c5e6467e43a9262c0f0eed15339600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506000600e60026101000a81548160ff0219169083151502179055506001600e60036101000a81548160ff0219169083151502179055506001600e60046101000a81548160ff0219169083151502179055506000600e60056101000a81548160ff0219169083151502179055506064600f5560006010556010546011556000601255601254601355348015620001d857600080fd5b50620001f9620001ed620006af60201b60201c565b620006b760201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200029a57600080fd5b505afa158015620002af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d5919062000792565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200033857600080fd5b505afa1580156200034d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000373919062000792565b6040518363ffffffff1660e01b815260040162000392929190620007e0565b602060405180830381600087803b158015620003ad57600080fd5b505af1158015620003c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e8919062000792565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600154905080600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160076000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200069f91906200080d565b60405180910390a3505062000ac4565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000815190506200078c8162000aaa565b92915050565b600060208284031215620007a557600080fd5b6000620007b5848285016200077b565b91505092915050565b620007c98162000a23565b82525050565b620007da8162000a57565b82525050565b6000604082019050620007f76000830185620007be565b620008066020830184620007be565b9392505050565b6000602082019050620008246000830184620007cf565b92915050565b6000808291508390505b60018511156200087c5780860481111562000854576200085362000a6e565b5b6001851615620008645780820291505b8081029050620008748562000a9d565b945062000834565b94509492505050565b6000620008928262000a57565b91506200089f8362000a61565b9250620008ce7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008d6565b905092915050565b600082620008e85760019050620009bb565b81620008f85760009050620009bb565b81600181146200091157600281146200091c5762000952565b6001915050620009bb565b60ff84111562000931576200093062000a6e565b5b8360020a9150848211156200094b576200094a62000a6e565b5b50620009bb565b5060208310610133831016604e8410600b84101617156200098c5782820a90508381111562000986576200098562000a6e565b5b620009bb565b6200099b84848460016200082a565b92509050818404811115620009b557620009b462000a6e565b5b81810290505b9392505050565b6000620009cf8262000a57565b9150620009dc8362000a57565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a185762000a1762000a6e565b5b828202905092915050565b600062000a308262000a37565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b62000ab58162000a23565b811462000ac157600080fd5b50565b6140598062000ad46000396000f3fe6080604052600436106101f25760003560e01c8063893d20e81161010d578063d0d41fe1116100a0578063f515a55c1161006f578063f515a55c1461070e578063f7de4dfd14610737578063fcd2e04914610762578063feae65e71461078b578063ff5211bb146107b9576101f9565b8063d0d41fe114610656578063d8a0663c1461067f578063dd62ed3e146106a8578063f2fde38b146106e5576101f9565b8063a14aee61116100dc578063a14aee6114610586578063a9059cbb146105af578063c683630d146105ec578063c6da305114610629576101f9565b8063893d20e8146104da5780638da5cb5b14610505578063925542871461053057806395d89b411461055b576101f9565b806336a0f8a5116101855780636612e66f116101545780636612e66f1461043257806370a082311461045b578063715018a61461049857806385438bc0146104af576101f9565b806336a0f8a51461037857806349bd5a5e146103a15780635342acb4146103cc57806353d6fd5914610409576101f9565b80631694505e116101c15780631694505e146102ba57806318160ddd146102e557806323b872dd14610310578063313ce5671461034d576101f9565b806301e51ae8146101fe57806306fdde0314610229578063095ea7b3146102545780630a80c0cc14610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b506102136107d0565b6040516102209190613807565b60405180910390f35b34801561023557600080fd5b5061023e6107f6565b60405161024b9190613858565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190613056565b610816565b6040516102889190613822565b60405180910390f35b34801561029d57600080fd5b506102b860048036038101906102b391906130bb565b61082d565b005b3480156102c657600080fd5b506102cf6108bc565b6040516102dc919061383d565b60405180910390f35b3480156102f157600080fd5b506102fa6108e2565b6040516103079190613a9a565b60405180910390f35b34801561031c57600080fd5b5061033760048036038101906103329190612fcb565b6108ec565b6040516103449190613822565b60405180910390f35b34801561035957600080fd5b50610362610996565b60405161036f9190613b8b565b60405180910390f35b34801561038457600080fd5b5061039f600480360381019061039a91906130e4565b61099f565b005b3480156103ad57600080fd5b506103b6610a7d565b6040516103c39190613807565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee9190612f3d565b610aa3565b6040516104009190613822565b60405180910390f35b34801561041557600080fd5b50610430600480360381019061042b919061301a565b610af9565b005b34801561043e57600080fd5b506104596004803603810190610454919061301a565b610bd0565b005b34801561046757600080fd5b50610482600480360381019061047d9190612f3d565b610ca7565b60405161048f9190613a9a565b60405180910390f35b3480156104a457600080fd5b506104ad610cf0565b005b3480156104bb57600080fd5b506104c4610d78565b6040516104d19190613822565b60405180910390f35b3480156104e657600080fd5b506104ef610d8b565b6040516104fc9190613807565b60405180910390f35b34801561051157600080fd5b5061051a610d9a565b6040516105279190613807565b60405180910390f35b34801561053c57600080fd5b50610545610dc3565b6040516105529190613822565b60405180910390f35b34801561056757600080fd5b50610570610dd6565b60405161057d9190613858565b60405180910390f35b34801561059257600080fd5b506105ad60048036038101906105a89190613092565b610e13565b005b3480156105bb57600080fd5b506105d660048036038101906105d19190613056565b610eac565b6040516105e39190613822565b60405180910390f35b3480156105f857600080fd5b50610613600480360381019061060e9190612f3d565b61103f565b6040516106209190613822565b60405180910390f35b34801561063557600080fd5b5061063e611095565b60405161064d93929190613b0f565b60405180910390f35b34801561066257600080fd5b5061067d60048036038101906106789190612f3d565b6110ae565b005b34801561068b57600080fd5b506106a660048036038101906106a191906130bb565b611236565b005b3480156106b457600080fd5b506106cf60048036038101906106ca9190612f8f565b611336565b6040516106dc9190613a9a565b60405180910390f35b3480156106f157600080fd5b5061070c60048036038101906107079190612f3d565b6113bd565b005b34801561071a57600080fd5b50610735600480360381019061073091906130bb565b6114b5565b005b34801561074357600080fd5b5061074c61153b565b6040516107599190613822565b60405180910390f35b34801561076e57600080fd5b50610789600480360381019061078491906130bb565b61154e565b005b34801561079757600080fd5b506107a06115dd565b6040516107b09493929190613b46565b60405180910390f35b3480156107c557600080fd5b506107ce6115fd565b005b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060405180606001604052806023815260200161400160239139905090565b6000610823338484611635565b6001905092915050565b610835611800565b73ffffffffffffffffffffffffffffffffffffffff16610853610d9a565b73ffffffffffffffffffffffffffffffffffffffff16146108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a09061397a565b60405180910390fd5b8060128190555060125460138190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600154905090565b6000610980843384600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461097b9190613e4d565b611635565b61098b848484611808565b600190509392505050565b60006009905090565b6109a7611800565b73ffffffffffffffffffffffffffffffffffffffff166109c5610d9a565b73ffffffffffffffffffffffffffffffffffffffff1614610a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a129061397a565b60405180910390fd5b6009600a610a299190613cd5565b83610a349190613df3565b6002819055506009600a610a489190613cd5565b82610a539190613df3565b6003819055506009600a610a679190613cd5565b81610a729190613df3565b600481905550505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610b01611800565b73ffffffffffffffffffffffffffffffffffffffff16610b1f610d9a565b73ffffffffffffffffffffffffffffffffffffffff1614610b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6c9061397a565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610bd8611800565b73ffffffffffffffffffffffffffffffffffffffff16610bf6610d9a565b73ffffffffffffffffffffffffffffffffffffffff1614610c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c439061397a565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cf8611800565b73ffffffffffffffffffffffffffffffffffffffff16610d16610d9a565b73ffffffffffffffffffffffffffffffffffffffff1614610d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d639061397a565b60405180910390fd5b610d7660006128ee565b565b600e60029054906101000a900460ff1681565b6000610d95610d9a565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60009054906101000a900460ff1681565b60606040518060400160405280600681526020017f55504f4e4c590000000000000000000000000000000000000000000000000000815250905090565b610e1b611800565b73ffffffffffffffffffffffffffffffffffffffff16610e39610d9a565b73ffffffffffffffffffffffffffffffffffffffff1614610e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e869061397a565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f3f5750610f0f610d9a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610f955750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561102a5760025482600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fe89190613bfb565b1115611029576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611020906139da565b60405180910390fd5b5b611035338484611808565b6001905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000806000601254925060135491506004549050909192565b6110b6611800565b73ffffffffffffffffffffffffffffffffffffffff166110d4610d9a565b73ffffffffffffffffffffffffffffffffffffffff161461112a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111219061397a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561119a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611191906139fa565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61123e611800565b73ffffffffffffffffffffffffffffffffffffffff1661125c610d9a565b73ffffffffffffffffffffffffffffffffffffffff16146112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a99061397a565b60405180910390fd5b606460016112be6108e2565b6112c89190613df3565b6112d29190613c51565b811115611314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130b9061395a565b60405180910390fd5b6009600a6113229190613cd5565b8161132d9190613df3565b60058190555050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113c5611800565b73ffffffffffffffffffffffffffffffffffffffff166113e3610d9a565b73ffffffffffffffffffffffffffffffffffffffff1614611439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114309061397a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a0906138da565b60405180910390fd5b6114b2816128ee565b50565b6114bd611800565b73ffffffffffffffffffffffffffffffffffffffff166114db610d9a565b73ffffffffffffffffffffffffffffffffffffffff1614611531576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115289061397a565b60405180910390fd5b80600f8190555050565b600e60019054906101000a900460ff1681565b611556611800565b73ffffffffffffffffffffffffffffffffffffffff16611574610d9a565b73ffffffffffffffffffffffffffffffffffffffff16146115ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c19061397a565b60405180910390fd5b8060108190555060105460118190555050565b600080600080601054935060115492506002549150600354905090919293565b6001600e60016101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169c9061387a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170c9061399a565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117f39190613a9a565b60405180910390a3505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f90613a7a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118df9061393a565b60405180910390fd5b6000811161192b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611922906139ba565b60405180910390fd5b600e60019054906101000a900460ff16611ac857600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119e05750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a345750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a885750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611ac7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abe90613a5a565b60405180910390fd5b5b600e60019054906101000a900460ff16158015611b335750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b8d5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611be257600e60029054906101000a900460ff16611be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd890613a1a565b60405180910390fd5b5b600060019050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c775750611c48610d9a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611d935781600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ccb9190613e4d565b9250508190555081600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d219190613bfb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d859190613a9a565b60405180910390a3506128e9565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e3a5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e795750611e49610d9a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f1357600454821115611ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eba9061389a565b60405180910390fd5b6001600e60056101000a81548160ff021916908315150217905550600e60009054906101000a900460ff168015611f045750600554611f0130610ca7565b10155b15611f1257611f116129b2565b5b5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fba5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ff95750611fc9610d9a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561204457600354821115612043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203a906138ba565b60405180910390fd5b5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120e55750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156120ef57600090505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561219b5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121a557600090505b801561275757600e60059054906101000a900460ff1661247d5760006064601154846121d19190613df3565b6121db9190613c51565b9050600081846121eb9190613e4d565b905061223f82600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1990919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122d484600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7790919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236981600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1990919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124099190613a9a565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161246e9190613a9a565b60405180910390a35050612752565b600060646013548461248f9190613df3565b6124999190613c51565b9050600081846124a99190613e4d565b90506124fd82600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1990919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061259284600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7790919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061262781600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1990919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126c79190613a9a565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161272c9190613a9a565b60405180910390a36000600e60056101000a81548160ff02191690831515021790555050505b6128e7565b6127a982600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7790919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061283e82600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1990919063ffffffff16565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128de9190613a9a565b60405180910390a35b505b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006129bd30610ca7565b90506000811115612adb57600e60039054906101000a900460ff1615612ad6576000811115612a9a5760006064600f546129f630610ca7565b612a009190613df3565b612a0a9190613c51565b90506000819050612a1a81612bc1565b60004790506000811115612a9257600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612a90573d6000803e3d6000fd5b505b505050612ad5565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612acc9061391a565b60405180910390fd5b5b612b16565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0d90613a3a565b60405180910390fd5b50565b6000808284612b289190613bfb565b905083811015612b6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b64906138fa565b60405180910390fd5b8091505092915050565b6000612bb983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612e85565b905092915050565b6000600267ffffffffffffffff811115612c04577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612c325781602001602082028036833780820191505090505b5090503081600081518110612c70577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612d1257600080fd5b505afa158015612d26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d4a9190612f66565b81600181518110612d84577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612deb30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611635565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e4f959493929190613ab5565b600060405180830381600087803b158015612e6957600080fd5b505af1158015612e7d573d6000803e3d6000fd5b505050505050565b6000838311158290612ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec49190613858565b60405180910390fd5b5060008385612edc9190613e4d565b9050809150509392505050565b600081359050612ef881613fbb565b92915050565b600081519050612f0d81613fbb565b92915050565b600081359050612f2281613fd2565b92915050565b600081359050612f3781613fe9565b92915050565b600060208284031215612f4f57600080fd5b6000612f5d84828501612ee9565b91505092915050565b600060208284031215612f7857600080fd5b6000612f8684828501612efe565b91505092915050565b60008060408385031215612fa257600080fd5b6000612fb085828601612ee9565b9250506020612fc185828601612ee9565b9150509250929050565b600080600060608486031215612fe057600080fd5b6000612fee86828701612ee9565b9350506020612fff86828701612ee9565b925050604061301086828701612f28565b9150509250925092565b6000806040838503121561302d57600080fd5b600061303b85828601612ee9565b925050602061304c85828601612f13565b9150509250929050565b6000806040838503121561306957600080fd5b600061307785828601612ee9565b925050602061308885828601612f28565b9150509250929050565b6000602082840312156130a457600080fd5b60006130b284828501612f13565b91505092915050565b6000602082840312156130cd57600080fd5b60006130db84828501612f28565b91505092915050565b6000806000606084860312156130f957600080fd5b600061310786828701612f28565b935050602061311886828701612f28565b925050604061312986828701612f28565b9150509250925092565b600061313f838361314b565b60208301905092915050565b61315481613e81565b82525050565b61316381613e81565b82525050565b600061317482613bb6565b61317e8185613bd9565b935061318983613ba6565b8060005b838110156131ba5781516131a18882613133565b97506131ac83613bcc565b92505060018101905061318d565b5085935050505092915050565b6131d081613e93565b82525050565b6131df81613ed6565b82525050565b6131ee81613efa565b82525050565b60006131ff82613bc1565b6132098185613bea565b9350613219818560208601613f0c565b61322281613f9d565b840191505092915050565b600061323a602583613bea565b91507f55504f4e4c593a20617070726f76652066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006132a0602183613bea565b91507f53656c6c20616d6f756e74206578636565647320746865206d6178206c696d6960008301527f74000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613306602083613bea565b91507f42757920616d6f756e74206578636565647320746865206d6178206c696d69746000830152602082019050919050565b6000613346602683613bea565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006133ac601b83613bea565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b60006133ec602283613bea565b91507f4e6f2055504f4e4c5920746f6b656e7320617661696c61626c6520746f20737760008301527f61700000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613452602083613bea565b91507f55504f4e4c593a207472616e7366657220746f207a65726f20616464726573736000830152602082019050919050565b6000613492602983613bea565b91507f496e76616c69642076616c75653a2065786365656473203125206f6620746f7460008301527f616c20737570706c7900000000000000000000000000000000000000000000006020830152604082019050919050565b60006134f8602083613bea565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000613538602383613bea565b91507f55504f4e4c593a20617070726f766520746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061359e603183613bea565b91507f55504f4e4c593a207472616e7366657220616d6f756e74206d7573742062652060008301527f67726561746572207468616e207a65726f0000000000000000000000000000006020830152604082019050919050565b6000613604603483613bea565b91507f55504f4e4c593a20726563697069656e742077616c6c65742062616c616e636560008301527f206578636565647320746865206d6178696d756d0000000000000000000000006020830152604082019050919050565b600061366a601583613bea565b91507f496e76616c6964206164647265737320676976656e00000000000000000000006000830152602082019050919050565b60006136aa602083613bea565b91507f5472616e7366657273206172652063757272656e746c792064697361626c65646000830152602082019050919050565b60006136ea602383613bea565b91507f4e6f2055504f4e4c592042616c616e636520617661696c61626c6520746f207360008301527f77617000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613750601683613bea565b91507f77652068617665206e6f74206c61756e636820796574000000000000000000006000830152602082019050919050565b6000613790602283613bea565b91507f55504f4e4c593a207472616e736665722066726f6d207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6137f281613ebf565b82525050565b61380181613ec9565b82525050565b600060208201905061381c600083018461315a565b92915050565b600060208201905061383760008301846131c7565b92915050565b600060208201905061385260008301846131d6565b92915050565b6000602082019050818103600083015261387281846131f4565b905092915050565b600060208201905081810360008301526138938161322d565b9050919050565b600060208201905081810360008301526138b381613293565b9050919050565b600060208201905081810360008301526138d3816132f9565b9050919050565b600060208201905081810360008301526138f381613339565b9050919050565b600060208201905081810360008301526139138161339f565b9050919050565b60006020820190508181036000830152613933816133df565b9050919050565b6000602082019050818103600083015261395381613445565b9050919050565b6000602082019050818103600083015261397381613485565b9050919050565b60006020820190508181036000830152613993816134eb565b9050919050565b600060208201905081810360008301526139b38161352b565b9050919050565b600060208201905081810360008301526139d381613591565b9050919050565b600060208201905081810360008301526139f3816135f7565b9050919050565b60006020820190508181036000830152613a138161365d565b9050919050565b60006020820190508181036000830152613a338161369d565b9050919050565b60006020820190508181036000830152613a53816136dd565b9050919050565b60006020820190508181036000830152613a7381613743565b9050919050565b60006020820190508181036000830152613a9381613783565b9050919050565b6000602082019050613aaf60008301846137e9565b92915050565b600060a082019050613aca60008301886137e9565b613ad760208301876131e5565b8181036040830152613ae98186613169565b9050613af8606083018561315a565b613b0560808301846137e9565b9695505050505050565b6000606082019050613b2460008301866137e9565b613b3160208301856137e9565b613b3e60408301846137e9565b949350505050565b6000608082019050613b5b60008301876137e9565b613b6860208301866137e9565b613b7560408301856137e9565b613b8260608301846137e9565b95945050505050565b6000602082019050613ba060008301846137f8565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613c0682613ebf565b9150613c1183613ebf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c4657613c45613f3f565b5b828201905092915050565b6000613c5c82613ebf565b9150613c6783613ebf565b925082613c7757613c76613f6e565b5b828204905092915050565b6000808291508390505b6001851115613ccc57808604811115613ca857613ca7613f3f565b5b6001851615613cb75780820291505b8081029050613cc585613fae565b9450613c8c565b94509492505050565b6000613ce082613ebf565b9150613ceb83613ec9565b9250613d187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613d20565b905092915050565b600082613d305760019050613dec565b81613d3e5760009050613dec565b8160018114613d545760028114613d5e57613d8d565b6001915050613dec565b60ff841115613d7057613d6f613f3f565b5b8360020a915084821115613d8757613d86613f3f565b5b50613dec565b5060208310610133831016604e8410600b8410161715613dc25782820a905083811115613dbd57613dbc613f3f565b5b613dec565b613dcf8484846001613c82565b92509050818404811115613de657613de5613f3f565b5b81810290505b9392505050565b6000613dfe82613ebf565b9150613e0983613ebf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e4257613e41613f3f565b5b828202905092915050565b6000613e5882613ebf565b9150613e6383613ebf565b925082821015613e7657613e75613f3f565b5b828203905092915050565b6000613e8c82613e9f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613ee182613ee8565b9050919050565b6000613ef382613e9f565b9050919050565b6000613f0582613ebf565b9050919050565b60005b83811015613f2a578082015181840152602081019050613f0f565b83811115613f39576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b613fc481613e81565b8114613fcf57600080fd5b50565b613fdb81613e93565b8114613fe657600080fd5b50565b613ff281613ebf565b8114613ffd57600080fd5b5056fe776f756c646e74697462656e696365696674686570726963656f6e6c7977656e747570a26469706673582212208cc9eaab2d199b2300c72e4ea65e9d9ba24f79653c9eaac82c2079f20ed4c41e64736f6c63430008000033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c8063893d20e81161010d578063d0d41fe1116100a0578063f515a55c1161006f578063f515a55c1461070e578063f7de4dfd14610737578063fcd2e04914610762578063feae65e71461078b578063ff5211bb146107b9576101f9565b8063d0d41fe114610656578063d8a0663c1461067f578063dd62ed3e146106a8578063f2fde38b146106e5576101f9565b8063a14aee61116100dc578063a14aee6114610586578063a9059cbb146105af578063c683630d146105ec578063c6da305114610629576101f9565b8063893d20e8146104da5780638da5cb5b14610505578063925542871461053057806395d89b411461055b576101f9565b806336a0f8a5116101855780636612e66f116101545780636612e66f1461043257806370a082311461045b578063715018a61461049857806385438bc0146104af576101f9565b806336a0f8a51461037857806349bd5a5e146103a15780635342acb4146103cc57806353d6fd5914610409576101f9565b80631694505e116101c15780631694505e146102ba57806318160ddd146102e557806323b872dd14610310578063313ce5671461034d576101f9565b806301e51ae8146101fe57806306fdde0314610229578063095ea7b3146102545780630a80c0cc14610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b506102136107d0565b6040516102209190613807565b60405180910390f35b34801561023557600080fd5b5061023e6107f6565b60405161024b9190613858565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190613056565b610816565b6040516102889190613822565b60405180910390f35b34801561029d57600080fd5b506102b860048036038101906102b391906130bb565b61082d565b005b3480156102c657600080fd5b506102cf6108bc565b6040516102dc919061383d565b60405180910390f35b3480156102f157600080fd5b506102fa6108e2565b6040516103079190613a9a565b60405180910390f35b34801561031c57600080fd5b5061033760048036038101906103329190612fcb565b6108ec565b6040516103449190613822565b60405180910390f35b34801561035957600080fd5b50610362610996565b60405161036f9190613b8b565b60405180910390f35b34801561038457600080fd5b5061039f600480360381019061039a91906130e4565b61099f565b005b3480156103ad57600080fd5b506103b6610a7d565b6040516103c39190613807565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee9190612f3d565b610aa3565b6040516104009190613822565b60405180910390f35b34801561041557600080fd5b50610430600480360381019061042b919061301a565b610af9565b005b34801561043e57600080fd5b506104596004803603810190610454919061301a565b610bd0565b005b34801561046757600080fd5b50610482600480360381019061047d9190612f3d565b610ca7565b60405161048f9190613a9a565b60405180910390f35b3480156104a457600080fd5b506104ad610cf0565b005b3480156104bb57600080fd5b506104c4610d78565b6040516104d19190613822565b60405180910390f35b3480156104e657600080fd5b506104ef610d8b565b6040516104fc9190613807565b60405180910390f35b34801561051157600080fd5b5061051a610d9a565b6040516105279190613807565b60405180910390f35b34801561053c57600080fd5b50610545610dc3565b6040516105529190613822565b60405180910390f35b34801561056757600080fd5b50610570610dd6565b60405161057d9190613858565b60405180910390f35b34801561059257600080fd5b506105ad60048036038101906105a89190613092565b610e13565b005b3480156105bb57600080fd5b506105d660048036038101906105d19190613056565b610eac565b6040516105e39190613822565b60405180910390f35b3480156105f857600080fd5b50610613600480360381019061060e9190612f3d565b61103f565b6040516106209190613822565b60405180910390f35b34801561063557600080fd5b5061063e611095565b60405161064d93929190613b0f565b60405180910390f35b34801561066257600080fd5b5061067d60048036038101906106789190612f3d565b6110ae565b005b34801561068b57600080fd5b506106a660048036038101906106a191906130bb565b611236565b005b3480156106b457600080fd5b506106cf60048036038101906106ca9190612f8f565b611336565b6040516106dc9190613a9a565b60405180910390f35b3480156106f157600080fd5b5061070c60048036038101906107079190612f3d565b6113bd565b005b34801561071a57600080fd5b50610735600480360381019061073091906130bb565b6114b5565b005b34801561074357600080fd5b5061074c61153b565b6040516107599190613822565b60405180910390f35b34801561076e57600080fd5b50610789600480360381019061078491906130bb565b61154e565b005b34801561079757600080fd5b506107a06115dd565b6040516107b09493929190613b46565b60405180910390f35b3480156107c557600080fd5b506107ce6115fd565b005b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060405180606001604052806023815260200161400160239139905090565b6000610823338484611635565b6001905092915050565b610835611800565b73ffffffffffffffffffffffffffffffffffffffff16610853610d9a565b73ffffffffffffffffffffffffffffffffffffffff16146108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a09061397a565b60405180910390fd5b8060128190555060125460138190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600154905090565b6000610980843384600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461097b9190613e4d565b611635565b61098b848484611808565b600190509392505050565b60006009905090565b6109a7611800565b73ffffffffffffffffffffffffffffffffffffffff166109c5610d9a565b73ffffffffffffffffffffffffffffffffffffffff1614610a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a129061397a565b60405180910390fd5b6009600a610a299190613cd5565b83610a349190613df3565b6002819055506009600a610a489190613cd5565b82610a539190613df3565b6003819055506009600a610a679190613cd5565b81610a729190613df3565b600481905550505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610b01611800565b73ffffffffffffffffffffffffffffffffffffffff16610b1f610d9a565b73ffffffffffffffffffffffffffffffffffffffff1614610b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6c9061397a565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610bd8611800565b73ffffffffffffffffffffffffffffffffffffffff16610bf6610d9a565b73ffffffffffffffffffffffffffffffffffffffff1614610c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c439061397a565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cf8611800565b73ffffffffffffffffffffffffffffffffffffffff16610d16610d9a565b73ffffffffffffffffffffffffffffffffffffffff1614610d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d639061397a565b60405180910390fd5b610d7660006128ee565b565b600e60029054906101000a900460ff1681565b6000610d95610d9a565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60009054906101000a900460ff1681565b60606040518060400160405280600681526020017f55504f4e4c590000000000000000000000000000000000000000000000000000815250905090565b610e1b611800565b73ffffffffffffffffffffffffffffffffffffffff16610e39610d9a565b73ffffffffffffffffffffffffffffffffffffffff1614610e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e869061397a565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f3f5750610f0f610d9a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610f955750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561102a5760025482600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fe89190613bfb565b1115611029576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611020906139da565b60405180910390fd5b5b611035338484611808565b6001905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000806000601254925060135491506004549050909192565b6110b6611800565b73ffffffffffffffffffffffffffffffffffffffff166110d4610d9a565b73ffffffffffffffffffffffffffffffffffffffff161461112a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111219061397a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561119a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611191906139fa565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61123e611800565b73ffffffffffffffffffffffffffffffffffffffff1661125c610d9a565b73ffffffffffffffffffffffffffffffffffffffff16146112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a99061397a565b60405180910390fd5b606460016112be6108e2565b6112c89190613df3565b6112d29190613c51565b811115611314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130b9061395a565b60405180910390fd5b6009600a6113229190613cd5565b8161132d9190613df3565b60058190555050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113c5611800565b73ffffffffffffffffffffffffffffffffffffffff166113e3610d9a565b73ffffffffffffffffffffffffffffffffffffffff1614611439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114309061397a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a0906138da565b60405180910390fd5b6114b2816128ee565b50565b6114bd611800565b73ffffffffffffffffffffffffffffffffffffffff166114db610d9a565b73ffffffffffffffffffffffffffffffffffffffff1614611531576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115289061397a565b60405180910390fd5b80600f8190555050565b600e60019054906101000a900460ff1681565b611556611800565b73ffffffffffffffffffffffffffffffffffffffff16611574610d9a565b73ffffffffffffffffffffffffffffffffffffffff16146115ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c19061397a565b60405180910390fd5b8060108190555060105460118190555050565b600080600080601054935060115492506002549150600354905090919293565b6001600e60016101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169c9061387a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170c9061399a565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117f39190613a9a565b60405180910390a3505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f90613a7a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118df9061393a565b60405180910390fd5b6000811161192b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611922906139ba565b60405180910390fd5b600e60019054906101000a900460ff16611ac857600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119e05750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a345750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a885750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611ac7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abe90613a5a565b60405180910390fd5b5b600e60019054906101000a900460ff16158015611b335750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b8d5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611be257600e60029054906101000a900460ff16611be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd890613a1a565b60405180910390fd5b5b600060019050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c775750611c48610d9a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611d935781600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ccb9190613e4d565b9250508190555081600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d219190613bfb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d859190613a9a565b60405180910390a3506128e9565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e3a5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e795750611e49610d9a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f1357600454821115611ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eba9061389a565b60405180910390fd5b6001600e60056101000a81548160ff021916908315150217905550600e60009054906101000a900460ff168015611f045750600554611f0130610ca7565b10155b15611f1257611f116129b2565b5b5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fba5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ff95750611fc9610d9a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561204457600354821115612043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203a906138ba565b60405180910390fd5b5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120e55750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156120ef57600090505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561219b5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121a557600090505b801561275757600e60059054906101000a900460ff1661247d5760006064601154846121d19190613df3565b6121db9190613c51565b9050600081846121eb9190613e4d565b905061223f82600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1990919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122d484600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7790919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236981600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1990919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124099190613a9a565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161246e9190613a9a565b60405180910390a35050612752565b600060646013548461248f9190613df3565b6124999190613c51565b9050600081846124a99190613e4d565b90506124fd82600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1990919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061259284600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7790919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061262781600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1990919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126c79190613a9a565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161272c9190613a9a565b60405180910390a36000600e60056101000a81548160ff02191690831515021790555050505b6128e7565b6127a982600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7790919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061283e82600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1990919063ffffffff16565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128de9190613a9a565b60405180910390a35b505b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006129bd30610ca7565b90506000811115612adb57600e60039054906101000a900460ff1615612ad6576000811115612a9a5760006064600f546129f630610ca7565b612a009190613df3565b612a0a9190613c51565b90506000819050612a1a81612bc1565b60004790506000811115612a9257600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612a90573d6000803e3d6000fd5b505b505050612ad5565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612acc9061391a565b60405180910390fd5b5b612b16565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0d90613a3a565b60405180910390fd5b50565b6000808284612b289190613bfb565b905083811015612b6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b64906138fa565b60405180910390fd5b8091505092915050565b6000612bb983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612e85565b905092915050565b6000600267ffffffffffffffff811115612c04577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612c325781602001602082028036833780820191505090505b5090503081600081518110612c70577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612d1257600080fd5b505afa158015612d26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d4a9190612f66565b81600181518110612d84577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612deb30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611635565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e4f959493929190613ab5565b600060405180830381600087803b158015612e6957600080fd5b505af1158015612e7d573d6000803e3d6000fd5b505050505050565b6000838311158290612ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec49190613858565b60405180910390fd5b5060008385612edc9190613e4d565b9050809150509392505050565b600081359050612ef881613fbb565b92915050565b600081519050612f0d81613fbb565b92915050565b600081359050612f2281613fd2565b92915050565b600081359050612f3781613fe9565b92915050565b600060208284031215612f4f57600080fd5b6000612f5d84828501612ee9565b91505092915050565b600060208284031215612f7857600080fd5b6000612f8684828501612efe565b91505092915050565b60008060408385031215612fa257600080fd5b6000612fb085828601612ee9565b9250506020612fc185828601612ee9565b9150509250929050565b600080600060608486031215612fe057600080fd5b6000612fee86828701612ee9565b9350506020612fff86828701612ee9565b925050604061301086828701612f28565b9150509250925092565b6000806040838503121561302d57600080fd5b600061303b85828601612ee9565b925050602061304c85828601612f13565b9150509250929050565b6000806040838503121561306957600080fd5b600061307785828601612ee9565b925050602061308885828601612f28565b9150509250929050565b6000602082840312156130a457600080fd5b60006130b284828501612f13565b91505092915050565b6000602082840312156130cd57600080fd5b60006130db84828501612f28565b91505092915050565b6000806000606084860312156130f957600080fd5b600061310786828701612f28565b935050602061311886828701612f28565b925050604061312986828701612f28565b9150509250925092565b600061313f838361314b565b60208301905092915050565b61315481613e81565b82525050565b61316381613e81565b82525050565b600061317482613bb6565b61317e8185613bd9565b935061318983613ba6565b8060005b838110156131ba5781516131a18882613133565b97506131ac83613bcc565b92505060018101905061318d565b5085935050505092915050565b6131d081613e93565b82525050565b6131df81613ed6565b82525050565b6131ee81613efa565b82525050565b60006131ff82613bc1565b6132098185613bea565b9350613219818560208601613f0c565b61322281613f9d565b840191505092915050565b600061323a602583613bea565b91507f55504f4e4c593a20617070726f76652066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006132a0602183613bea565b91507f53656c6c20616d6f756e74206578636565647320746865206d6178206c696d6960008301527f74000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613306602083613bea565b91507f42757920616d6f756e74206578636565647320746865206d6178206c696d69746000830152602082019050919050565b6000613346602683613bea565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006133ac601b83613bea565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b60006133ec602283613bea565b91507f4e6f2055504f4e4c5920746f6b656e7320617661696c61626c6520746f20737760008301527f61700000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613452602083613bea565b91507f55504f4e4c593a207472616e7366657220746f207a65726f20616464726573736000830152602082019050919050565b6000613492602983613bea565b91507f496e76616c69642076616c75653a2065786365656473203125206f6620746f7460008301527f616c20737570706c7900000000000000000000000000000000000000000000006020830152604082019050919050565b60006134f8602083613bea565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000613538602383613bea565b91507f55504f4e4c593a20617070726f766520746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061359e603183613bea565b91507f55504f4e4c593a207472616e7366657220616d6f756e74206d7573742062652060008301527f67726561746572207468616e207a65726f0000000000000000000000000000006020830152604082019050919050565b6000613604603483613bea565b91507f55504f4e4c593a20726563697069656e742077616c6c65742062616c616e636560008301527f206578636565647320746865206d6178696d756d0000000000000000000000006020830152604082019050919050565b600061366a601583613bea565b91507f496e76616c6964206164647265737320676976656e00000000000000000000006000830152602082019050919050565b60006136aa602083613bea565b91507f5472616e7366657273206172652063757272656e746c792064697361626c65646000830152602082019050919050565b60006136ea602383613bea565b91507f4e6f2055504f4e4c592042616c616e636520617661696c61626c6520746f207360008301527f77617000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613750601683613bea565b91507f77652068617665206e6f74206c61756e636820796574000000000000000000006000830152602082019050919050565b6000613790602283613bea565b91507f55504f4e4c593a207472616e736665722066726f6d207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6137f281613ebf565b82525050565b61380181613ec9565b82525050565b600060208201905061381c600083018461315a565b92915050565b600060208201905061383760008301846131c7565b92915050565b600060208201905061385260008301846131d6565b92915050565b6000602082019050818103600083015261387281846131f4565b905092915050565b600060208201905081810360008301526138938161322d565b9050919050565b600060208201905081810360008301526138b381613293565b9050919050565b600060208201905081810360008301526138d3816132f9565b9050919050565b600060208201905081810360008301526138f381613339565b9050919050565b600060208201905081810360008301526139138161339f565b9050919050565b60006020820190508181036000830152613933816133df565b9050919050565b6000602082019050818103600083015261395381613445565b9050919050565b6000602082019050818103600083015261397381613485565b9050919050565b60006020820190508181036000830152613993816134eb565b9050919050565b600060208201905081810360008301526139b38161352b565b9050919050565b600060208201905081810360008301526139d381613591565b9050919050565b600060208201905081810360008301526139f3816135f7565b9050919050565b60006020820190508181036000830152613a138161365d565b9050919050565b60006020820190508181036000830152613a338161369d565b9050919050565b60006020820190508181036000830152613a53816136dd565b9050919050565b60006020820190508181036000830152613a7381613743565b9050919050565b60006020820190508181036000830152613a9381613783565b9050919050565b6000602082019050613aaf60008301846137e9565b92915050565b600060a082019050613aca60008301886137e9565b613ad760208301876131e5565b8181036040830152613ae98186613169565b9050613af8606083018561315a565b613b0560808301846137e9565b9695505050505050565b6000606082019050613b2460008301866137e9565b613b3160208301856137e9565b613b3e60408301846137e9565b949350505050565b6000608082019050613b5b60008301876137e9565b613b6860208301866137e9565b613b7560408301856137e9565b613b8260608301846137e9565b95945050505050565b6000602082019050613ba060008301846137f8565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613c0682613ebf565b9150613c1183613ebf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c4657613c45613f3f565b5b828201905092915050565b6000613c5c82613ebf565b9150613c6783613ebf565b925082613c7757613c76613f6e565b5b828204905092915050565b6000808291508390505b6001851115613ccc57808604811115613ca857613ca7613f3f565b5b6001851615613cb75780820291505b8081029050613cc585613fae565b9450613c8c565b94509492505050565b6000613ce082613ebf565b9150613ceb83613ec9565b9250613d187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613d20565b905092915050565b600082613d305760019050613dec565b81613d3e5760009050613dec565b8160018114613d545760028114613d5e57613d8d565b6001915050613dec565b60ff841115613d7057613d6f613f3f565b5b8360020a915084821115613d8757613d86613f3f565b5b50613dec565b5060208310610133831016604e8410600b8410161715613dc25782820a905083811115613dbd57613dbc613f3f565b5b613dec565b613dcf8484846001613c82565b92509050818404811115613de657613de5613f3f565b5b81810290505b9392505050565b6000613dfe82613ebf565b9150613e0983613ebf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e4257613e41613f3f565b5b828202905092915050565b6000613e5882613ebf565b9150613e6383613ebf565b925082821015613e7657613e75613f3f565b5b828203905092915050565b6000613e8c82613e9f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613ee182613ee8565b9050919050565b6000613ef382613e9f565b9050919050565b6000613f0582613ebf565b9050919050565b60005b83811015613f2a578082015181840152602081019050613f0f565b83811115613f39576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b613fc481613e81565b8114613fcf57600080fd5b50565b613fdb81613e93565b8114613fe657600080fd5b50565b613ff281613ebf565b8114613ffd57600080fd5b5056fe776f756c646e74697462656e696365696674686570726963656f6e6c7977656e747570a26469706673582212208cc9eaab2d199b2300c72e4ea65e9d9ba24f79653c9eaac82c2079f20ed4c41e64736f6c63430008000033

Deployed Bytecode Sourcemap

4486:11598:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5112:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6786:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8749:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15925:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5292:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7067:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8916:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6976:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15489:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5342:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7304:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14914:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14774:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7177:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2674:94;;;;;;;;;;;;;:::i;:::-;;5606:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6691:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2451:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5537:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6881:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15042:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8174:416;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7436:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7888:276;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;14444:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15259:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8598:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2776:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15139:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5572:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15771:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7556:324;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;14665:101;;;;;;;;;;;;;:::i;:::-;;5112:63;;;;;;;;;;;;;:::o;6786:83::-;6823:13;6856:5;;;;;;;;;;;;;;;;;6849:12;;6786:83;:::o;8749:159::-;8824:4;8841:37;8850:10;8862:7;8871:6;8841:8;:37::i;:::-;8896:4;8889:11;;8749:159;;;;:::o;15925:154::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16018:10:::1;16000:15;:28;;;;16056:15;;16039:14;:32;;;;15925:154:::0;:::o;5292:41::-;;;;;;;;;;;;;:::o;7067:100::-;7120:7;7147:12;;7140:19;;7067:100;:::o;8916:262::-;9014:4;9031:70;9040:6;9048:10;9094:6;9060:11;:19;9072:6;9060:19;;;;;;;;;;;;;;;:31;9080:10;9060:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;9031:8;:70::i;:::-;9112:36;9122:6;9130:9;9141:6;9112:9;:36::i;:::-;9166:4;9159:11;;8916:262;;;;;:::o;6976:83::-;7017:5;4767:1;7035:16;;6976:83;:::o;15489:274::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4767:1:::1;15630:2;:13;;;;:::i;:::-;15618:9;:25;;;;:::i;:::-;15605:10;:38;;;;4767:1;15685:2;:13;;;;:::i;:::-;15670:12;:28;;;;:::i;:::-;15654:13;:44;;;;4767:1;15742:2;:13;;;;:::i;:::-;15726;:29;;;;:::i;:::-;15709:14;:46;;;;15489:274:::0;;;:::o;5342:28::-;;;;;;;;;;;;;:::o;7304:124::-;7369:4;7393:18;:27;7412:7;7393:27;;;;;;;;;;;;;;;;;;;;;;;;;7386:34;;7304:124;;;:::o;14914:120::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15020:6:::1;14996:12;:21;15009:7;14996:21;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;14914:120:::0;;:::o;14774:132::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14892:6:::1;14862:18;:27;14881:7;14862:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;14774:132:::0;;:::o;7177:119::-;7243:7;7270:9;:18;7280:7;7270:18;;;;;;;;;;;;;;;;7263:25;;7177:119;;;:::o;2674:94::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2739:21:::1;2757:1;2739:9;:21::i;:::-;2674:94::o:0;5606:37::-;;;;;;;;;;;;;:::o;6691:83::-;6732:7;6759;:5;:7::i;:::-;6752:14;;6691:83;:::o;2451:87::-;2497:7;2524:6;;;;;;;;;;;2517:13;;2451:87;:::o;5537:28::-;;;;;;;;;;;;;:::o;6881:87::-;6920:13;6953:7;;;;;;;;;;;;;;;;;6946:14;;6881:87;:::o;15042:89::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15117:6:::1;15105:9;;:18;;;;;;;;;;;;;;;;;;15042:89:::0;:::o;8174:416::-;8252:4;8287:13;;;;;;;;;;;8274:26;;:9;:26;;;;:50;;;;;8317:7;:5;:7::i;:::-;8304:20;;:9;:20;;;;8274:50;:84;;;;;8329:18;:29;8348:9;8329:29;;;;;;;;;;;;;;;;;;;;;;;;;8328:30;8274:84;8271:227;;;8417:10;;8407:6;8384:9;:20;8394:9;8384:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:43;;8376:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;8271:227;8510:40;8520:10;8532:9;8543:6;8510:9;:40::i;:::-;8578:4;8571:11;;8174:416;;;;:::o;7436:112::-;7495:4;7519:12;:21;7532:7;7519:21;;;;;;;;;;;;;;;;;;;;;;;;;7512:28;;7436:112;;;:::o;7888:276::-;7943:19;7973:21;8005;8059:15;;8045:29;;8101:14;;8085:30;;8142:14;;8126:30;;7888:276;;;:::o;14444:212::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14545:1:::1;14523:24;;:10;:24;;;;14515:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;14590:10;14584:3;;:16;;;;;;;;;;;;;;;;;;14644:4;14611:18;:30;14630:10;14611:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;14444:212:::0;:::o;15259:222::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15376:3:::1;15371:1;15355:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15354:25;;;;:::i;:::-;15339:11;:40;;15331:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;4767:1;15460:2;:13;;;;:::i;:::-;15446:11;:27;;;;:::i;:::-;15436:7;:37;;;;15259:222:::0;:::o;8598:143::-;8679:7;8706:11;:18;8718:5;8706:18;;;;;;;;;;;;;;;:27;8725:7;8706:27;;;;;;;;;;;;;;;;8699:34;;8598:143;;;;:::o;2776:192::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2885:1:::1;2865:22;;:8;:22;;;;2857:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2941:19;2951:8;2941:9;:19::i;:::-;2776:192:::0;:::o;15139:112::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15232:11:::1;15217:12;:26;;;;15139:112:::0;:::o;5572:27::-;;;;;;;;;;;;;:::o;15771:144::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15859:10:::1;15845:11;:24;;;;15896:11;;15880:13;:27;;;;15771:144:::0;:::o;7556:324::-;7610:18;7639:20;7670:17;7698:20;7750:11;;7737:24;;7787:13;;7772:28;;7823:10;;7811:22;;7859:13;;7844:28;;7556:324;;;;:::o;14665:101::-;14719:4;14709:7;;:14;;;;;;;;;;;;;;;;;;14754:4;14734:17;;:24;;;;;;;;;;;;;;;;;;14665:101::o;9186:339::-;9296:1;9279:19;;:5;:19;;;;9271:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;9378:1;9359:21;;:7;:21;;;;9351:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;9463:6;9433:11;:18;9445:5;9433:18;;;;;;;;;;;;;;;:27;9452:7;9433:27;;;;;;;;;;;;;;;:36;;;;9501:7;9485:32;;9494:5;9485:32;;;9510:6;9485:32;;;;;;:::i;:::-;;;;;;;;9186:339;;;:::o;774:98::-;827:7;854:10;847:17;;774:98;:::o;9533:3321::-;9650:1;9632:20;;:6;:20;;;;9624:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9731:1;9710:23;;:9;:23;;;;9702:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9798:1;9789:6;:10;9781:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9868:7;;;;;;;;;;;9864:160;;9885:18;:26;9904:6;9885:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;9915:18;:29;9934:9;9915:29;;;;;;;;;;;;;;;;;;;;;;;;;9885:59;:83;;;;9948:12;:20;9961:6;9948:20;;;;;;;;;;;;;;;;;;;;;;;;;9885:83;:110;;;;9972:12;:23;9985:9;9972:23;;;;;;;;;;;;;;;;;;;;;;;;;9885:110;9877:145;;;;;;;;;;;;:::i;:::-;;;;;;;;;9864:160;10038:7;;;;;;;;;;;10037:8;:38;;;;;10062:13;;;;;;;;;;;10049:26;;:9;:26;;;;10037:38;:65;;;;;10089:13;;;;;;;;;;;10079:23;;:6;:23;;;;10037:65;10034:135;;;10113:17;;;;;;;;;;;10105:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10034:135;10181:15;10199:4;10181:22;;10235:13;;;;;;;;;;;10222:26;;:9;:26;;;:47;;;;;10262:7;:5;:7::i;:::-;10252:17;;:6;:17;;;10222:47;10218:230;;;10309:6;10288:9;:17;10298:6;10288:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;10354:6;10330:9;:20;10340:9;10330:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;10397:9;10380:35;;10389:6;10380:35;;;10408:6;10380:35;;;;;;:::i;:::-;;;;;;;;10430:7;;;10218:230;10495:13;;;;;;;;;;;10482:26;;:9;:26;;;:57;;;;;10513:18;:26;10532:6;10513:26;;;;;;;;;;;;;;;;;;;;;;;;;10512:27;10482:57;:78;;;;;10553:7;:5;:7::i;:::-;10543:17;;:6;:17;;;;10482:78;10479:366;;;10600:14;;10590:6;:24;;10582:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10686:4;10673:10;;:17;;;;;;;;;;;;;;;;;;10729:9;;;;;;;;;;;:48;;;;;10770:7;;10742:24;10760:4;10742:9;:24::i;:::-;:35;;10729:48;10726:106;;;10803:9;:7;:9::i;:::-;10726:106;10479:366;10885:13;;;;;;;;;;;10875:23;;:6;:23;;;:57;;;;;10903:18;:29;10922:9;10903:29;;;;;;;;;;;;;;;;;;;;;;;;;10902:30;10875:57;:81;;;;;10949:7;:5;:7::i;:::-;10936:20;;:9;:20;;;;10875:81;10872:216;;;11012:13;;11002:6;:23;;10994:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10872:216;11104:18;:26;11123:6;11104:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;11134:18;:29;11153:9;11134:29;;;;;;;;;;;;;;;;;;;;;;;;;11104:59;11100:88;;;11180:5;11167:18;;11100:88;11215:13;;;;;;;;;;;11202:26;;:9;:26;;;;:53;;;;;11242:13;;;;;;;;;;;11232:23;;:6;:23;;;;11202:53;11198:82;;;11272:5;11259:18;;11198:82;11296:10;11292:1555;;;11333:10;;;;;;;;;;;11329:1270;;11369:22;11419:3;11403:13;;11394:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;11369:53;;11445:22;11479:14;11470:6;:23;;;;:::i;:::-;11445:48;;11586:44;11615:14;11586:9;:24;11604:4;11586:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;11559:9;:24;11577:4;11559:24;;;;;;;;;;;;;;;:71;;;;11673:29;11695:6;11673:9;:17;11683:6;11673:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;11653:9;:17;11663:6;11653:17;;;;;;;;;;;;;;;:49;;;;11748:40;11773:14;11748:9;:20;11758:9;11748:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11725:9;:20;11735:9;11725:20;;;;;;;;;;;;;;;:63;;;;11835:9;11818:43;;11827:6;11818:43;;;11846:14;11818:43;;;;;;:::i;:::-;;;;;;;;11914:4;11889:47;;11898:6;11889:47;;;11921:14;11889:47;;;;;;:::i;:::-;;;;;;;;11329:1270;;;;;11987:22;12038:3;12021:14;;12012:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;11987:54;;12064:22;12098:14;12089:6;:23;;;;:::i;:::-;12064:48;;12186:44;12215:14;12186:9;:24;12204:4;12186:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;12159:9;:24;12177:4;12159:24;;;;;;;;;;;;;;;:71;;;;12273:29;12295:6;12273:9;:17;12283:6;12273:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;12253:9;:17;12263:6;12253:17;;;;;;;;;;;;;;;:49;;;;12348:40;12373:14;12348:9;:20;12358:9;12348:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;12325:9;:20;12335:9;12325:20;;;;;;;;;;;;;;;:63;;;;12435:9;12418:43;;12427:6;12418:43;;;12446:14;12418:43;;;;;;:::i;:::-;;;;;;;;12514:4;12489:47;;12498:6;12489:47;;;12521:14;12489:47;;;;;;:::i;:::-;;;;;;;;12574:5;12561:10;;:18;;;;;;;;;;;;;;;;;;11329:1270;;;11292:1555;;;12669:29;12691:6;12669:9;:17;12679:6;12669:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;12649:9;:17;12659:6;12649:17;;;;;;;;;;;;;;;:49;;;;12740:32;12765:6;12740:9;:20;12750:9;12740:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12717:9;:20;12727:9;12717:20;;;;;;;;;;;;;;;:55;;;;12815:9;12798:35;;12807:6;12798:35;;;12826:6;12798:35;;;;;;:::i;:::-;;;;;;;;11292:1555;9533:3321;;;;;:::o;2976:173::-;3032:16;3051:6;;;;;;;;;;;3032:25;;3077:8;3068:6;;:17;;;;;;;;;;;;;;;;;;3132:8;3101:40;;3122:8;3101:40;;;;;;;;;;;;2976:173;;:::o;13550:850::-;13590:28;13621:24;13639:4;13621:9;:24::i;:::-;13590:55;;13684:1;13661:20;:24;13658:721;;;13707:10;;;;;;;;;;;13704:567;;;13765:1;13742:20;:24;13739:515;;;13812:17;13874:3;13859:12;;13832:24;13850:4;13832:9;:24::i;:::-;:39;;;;:::i;:::-;:45;;;;:::i;:::-;13812:65;;13902:14;13919:9;13902:26;;13953:24;13970:6;13953:16;:24::i;:::-;14002:23;14028:21;14002:47;;14096:1;14078:15;:19;14074:66;;;14108:3;;;;;;;;;;;14100:21;;:38;14122:15;14100:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14074:66;13739:515;;;;;;14190:44;;;;;;;;;;:::i;:::-;;;;;;;;13739:515;13704:567;13658:721;;;14304:45;;;;;;;;;;:::i;:::-;;;;;;;;13658:721;13550:850;:::o;1028:179::-;1086:7;1106:9;1122:1;1118;:5;;;;:::i;:::-;1106:17;;1147:1;1142;:6;;1134:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1198:1;1191:8;;;1028:179;;;;:::o;1216:136::-;1274:7;1301:43;1305:1;1308;1301:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1294:50;;1216:136;;;;:::o;12864:676::-;13003:21;13041:1;13027:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13003:40;;13072:4;13054;13059:1;13054:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;13098:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13088:4;13093:1;13088:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;13207:62;13224:4;13239:15;;;;;;;;;;;13257:11;13207:8;:62::i;:::-;13308:15;;;;;;;;;;;:66;;;13389:11;13415:1;13459:4;13486;13506:15;13308:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12864:676;;:::o;1361:224::-;1481:7;1514:1;1509;:6;;1517:12;1501:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1541:9;1557:1;1553;:5;;;;:::i;:::-;1541:17;;1576:1;1569:8;;;1361: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:401::-;;;2236:2;2224:9;2215:7;2211:23;2207:32;2204:2;;;2252:1;2249;2242:12;2204:2;2295:1;2320:53;2365:7;2356:6;2345:9;2341:22;2320:53;:::i;:::-;2310:63;;2266:117;2422:2;2448:50;2490:7;2481:6;2470:9;2466:22;2448:50;:::i;:::-;2438:60;;2393:115;2194:321;;;;;:::o;2521:407::-;;;2646:2;2634:9;2625:7;2621:23;2617:32;2614:2;;;2662:1;2659;2652:12;2614:2;2705:1;2730:53;2775:7;2766:6;2755:9;2751:22;2730:53;:::i;:::-;2720:63;;2676:117;2832:2;2858:53;2903:7;2894:6;2883:9;2879:22;2858:53;:::i;:::-;2848:63;;2803:118;2604:324;;;;;:::o;2934:256::-;;3039:2;3027:9;3018:7;3014:23;3010:32;3007:2;;;3055:1;3052;3045:12;3007:2;3098:1;3123:50;3165:7;3156:6;3145:9;3141:22;3123:50;:::i;:::-;3113:60;;3069:114;2997:193;;;;:::o;3196:262::-;;3304:2;3292:9;3283:7;3279:23;3275:32;3272:2;;;3320:1;3317;3310:12;3272:2;3363:1;3388:53;3433:7;3424:6;3413:9;3409:22;3388:53;:::i;:::-;3378:63;;3334:117;3262:196;;;;:::o;3464:552::-;;;;3606:2;3594:9;3585:7;3581:23;3577:32;3574:2;;;3622:1;3619;3612:12;3574:2;3665:1;3690:53;3735:7;3726:6;3715:9;3711:22;3690:53;:::i;:::-;3680:63;;3636:117;3792:2;3818:53;3863:7;3854:6;3843:9;3839:22;3818:53;:::i;:::-;3808:63;;3763:118;3920:2;3946:53;3991:7;3982:6;3971:9;3967:22;3946:53;:::i;:::-;3936:63;;3891:118;3564:452;;;;;:::o;4022:179::-;;4112:46;4154:3;4146:6;4112:46;:::i;:::-;4190:4;4185:3;4181:14;4167:28;;4102:99;;;;:::o;4207:108::-;4284:24;4302:5;4284:24;:::i;:::-;4279:3;4272:37;4262:53;;:::o;4321:118::-;4408:24;4426:5;4408:24;:::i;:::-;4403:3;4396:37;4386:53;;:::o;4475:732::-;;4623:54;4671:5;4623:54;:::i;:::-;4693:86;4772:6;4767:3;4693:86;:::i;:::-;4686:93;;4803:56;4853:5;4803:56;:::i;:::-;4882:7;4913:1;4898:284;4923:6;4920:1;4917:13;4898:284;;;4999:6;4993:13;5026:63;5085:3;5070:13;5026:63;:::i;:::-;5019:70;;5112:60;5165:6;5112:60;:::i;:::-;5102:70;;4958:224;4945:1;4942;4938:9;4933:14;;4898:284;;;4902:14;5198:3;5191:10;;4599:608;;;;;;;:::o;5213:109::-;5294:21;5309:5;5294:21;:::i;:::-;5289:3;5282:34;5272:50;;:::o;5328:183::-;5441:63;5498:5;5441:63;:::i;:::-;5436:3;5429:76;5419:92;;:::o;5517:147::-;5612:45;5651:5;5612:45;:::i;:::-;5607:3;5600:58;5590:74;;:::o;5670:364::-;;5786:39;5819:5;5786:39;:::i;:::-;5841:71;5905:6;5900:3;5841:71;:::i;:::-;5834:78;;5921:52;5966:6;5961:3;5954:4;5947:5;5943:16;5921:52;:::i;:::-;5998:29;6020:6;5998:29;:::i;:::-;5993:3;5989:39;5982:46;;5762:272;;;;;:::o;6040:369::-;;6203:67;6267:2;6262:3;6203:67;:::i;:::-;6196:74;;6300:34;6296:1;6291:3;6287:11;6280:55;6366:7;6361:2;6356:3;6352:12;6345:29;6400:2;6395:3;6391:12;6384:19;;6186:223;;;:::o;6415:365::-;;6578:67;6642:2;6637:3;6578:67;:::i;:::-;6571:74;;6675:34;6671:1;6666:3;6662:11;6655:55;6741:3;6736:2;6731:3;6727:12;6720:25;6771:2;6766:3;6762:12;6755:19;;6561:219;;;:::o;6786:330::-;;6949:67;7013:2;7008:3;6949:67;:::i;:::-;6942:74;;7046:34;7042:1;7037:3;7033:11;7026:55;7107:2;7102:3;7098:12;7091:19;;6932:184;;;:::o;7122:370::-;;7285:67;7349:2;7344:3;7285:67;:::i;:::-;7278:74;;7382:34;7378:1;7373:3;7369:11;7362:55;7448:8;7443:2;7438:3;7434:12;7427:30;7483:2;7478:3;7474:12;7467:19;;7268:224;;;:::o;7498:325::-;;7661:67;7725:2;7720:3;7661:67;:::i;:::-;7654:74;;7758:29;7754:1;7749:3;7745:11;7738:50;7814:2;7809:3;7805:12;7798:19;;7644:179;;;:::o;7829:366::-;;7992:67;8056:2;8051:3;7992:67;:::i;:::-;7985:74;;8089:34;8085:1;8080:3;8076:11;8069:55;8155:4;8150:2;8145:3;8141:12;8134:26;8186:2;8181:3;8177:12;8170:19;;7975:220;;;:::o;8201:330::-;;8364:67;8428:2;8423:3;8364:67;:::i;:::-;8357:74;;8461:34;8457:1;8452:3;8448:11;8441:55;8522:2;8517:3;8513:12;8506:19;;8347:184;;;:::o;8537:373::-;;8700:67;8764:2;8759:3;8700:67;:::i;:::-;8693:74;;8797:34;8793:1;8788:3;8784:11;8777:55;8863:11;8858:2;8853:3;8849:12;8842:33;8901:2;8896:3;8892:12;8885:19;;8683:227;;;:::o;8916:330::-;;9079:67;9143:2;9138:3;9079:67;:::i;:::-;9072:74;;9176:34;9172:1;9167:3;9163:11;9156:55;9237:2;9232:3;9228:12;9221:19;;9062:184;;;:::o;9252:367::-;;9415:67;9479:2;9474:3;9415:67;:::i;:::-;9408:74;;9512:34;9508:1;9503:3;9499:11;9492:55;9578:5;9573:2;9568:3;9564:12;9557:27;9610:2;9605:3;9601:12;9594:19;;9398:221;;;:::o;9625:381::-;;9788:67;9852:2;9847:3;9788:67;:::i;:::-;9781:74;;9885:34;9881:1;9876:3;9872:11;9865:55;9951:19;9946:2;9941:3;9937:12;9930:41;9997:2;9992:3;9988:12;9981:19;;9771:235;;;:::o;10012:384::-;;10175:67;10239:2;10234:3;10175:67;:::i;:::-;10168:74;;10272:34;10268:1;10263:3;10259:11;10252:55;10338:22;10333:2;10328:3;10324:12;10317:44;10387:2;10382:3;10378:12;10371:19;;10158:238;;;:::o;10402:319::-;;10565:67;10629:2;10624:3;10565:67;:::i;:::-;10558:74;;10662:23;10658:1;10653:3;10649:11;10642:44;10712:2;10707:3;10703:12;10696:19;;10548:173;;;:::o;10727:330::-;;10890:67;10954:2;10949:3;10890:67;:::i;:::-;10883:74;;10987:34;10983:1;10978:3;10974:11;10967:55;11048:2;11043:3;11039:12;11032:19;;10873:184;;;:::o;11063:367::-;;11226:67;11290:2;11285:3;11226:67;:::i;:::-;11219:74;;11323:34;11319:1;11314:3;11310:11;11303:55;11389:5;11384:2;11379:3;11375:12;11368:27;11421:2;11416:3;11412:12;11405:19;;11209:221;;;:::o;11436:320::-;;11599:67;11663:2;11658:3;11599:67;:::i;:::-;11592:74;;11696:24;11692:1;11687:3;11683:11;11676:45;11747:2;11742:3;11738:12;11731:19;;11582:174;;;:::o;11762:366::-;;11925:67;11989:2;11984:3;11925:67;:::i;:::-;11918:74;;12022:34;12018:1;12013:3;12009:11;12002:55;12088:4;12083:2;12078:3;12074:12;12067:26;12119:2;12114:3;12110:12;12103:19;;11908:220;;;:::o;12134:118::-;12221:24;12239:5;12221:24;:::i;:::-;12216:3;12209:37;12199:53;;:::o;12258:112::-;12341:22;12357:5;12341:22;:::i;:::-;12336:3;12329:35;12319:51;;:::o;12376:222::-;;12507:2;12496:9;12492:18;12484:26;;12520:71;12588:1;12577:9;12573:17;12564:6;12520:71;:::i;:::-;12474:124;;;;:::o;12604:210::-;;12729:2;12718:9;12714:18;12706:26;;12742:65;12804:1;12793:9;12789:17;12780:6;12742:65;:::i;:::-;12696:118;;;;:::o;12820:274::-;;12977:2;12966:9;12962:18;12954:26;;12990:97;13084:1;13073:9;13069:17;13060:6;12990:97;:::i;:::-;12944:150;;;;:::o;13100:313::-;;13251:2;13240:9;13236:18;13228:26;;13300:9;13294:4;13290:20;13286:1;13275:9;13271:17;13264:47;13328:78;13401:4;13392:6;13328:78;:::i;:::-;13320:86;;13218:195;;;;:::o;13419:419::-;;13623:2;13612:9;13608:18;13600:26;;13672:9;13666:4;13662:20;13658:1;13647:9;13643:17;13636:47;13700:131;13826:4;13700:131;:::i;:::-;13692:139;;13590:248;;;:::o;13844:419::-;;14048:2;14037:9;14033:18;14025:26;;14097:9;14091:4;14087:20;14083:1;14072:9;14068:17;14061:47;14125:131;14251:4;14125:131;:::i;:::-;14117:139;;14015:248;;;:::o;14269:419::-;;14473:2;14462:9;14458:18;14450:26;;14522:9;14516:4;14512:20;14508:1;14497:9;14493:17;14486:47;14550:131;14676:4;14550:131;:::i;:::-;14542:139;;14440:248;;;:::o;14694:419::-;;14898:2;14887:9;14883:18;14875:26;;14947:9;14941:4;14937:20;14933:1;14922:9;14918:17;14911:47;14975:131;15101:4;14975:131;:::i;:::-;14967:139;;14865:248;;;:::o;15119:419::-;;15323:2;15312:9;15308:18;15300:26;;15372:9;15366:4;15362:20;15358:1;15347:9;15343:17;15336:47;15400:131;15526:4;15400:131;:::i;:::-;15392:139;;15290:248;;;:::o;15544:419::-;;15748:2;15737:9;15733:18;15725:26;;15797:9;15791:4;15787:20;15783:1;15772:9;15768:17;15761:47;15825:131;15951:4;15825:131;:::i;:::-;15817:139;;15715:248;;;:::o;15969:419::-;;16173:2;16162:9;16158:18;16150:26;;16222:9;16216:4;16212:20;16208:1;16197:9;16193:17;16186:47;16250:131;16376:4;16250:131;:::i;:::-;16242:139;;16140:248;;;:::o;16394:419::-;;16598:2;16587:9;16583:18;16575:26;;16647:9;16641:4;16637:20;16633:1;16622:9;16618:17;16611:47;16675:131;16801:4;16675:131;:::i;:::-;16667:139;;16565:248;;;:::o;16819:419::-;;17023:2;17012:9;17008:18;17000:26;;17072:9;17066:4;17062:20;17058:1;17047:9;17043:17;17036:47;17100:131;17226:4;17100:131;:::i;:::-;17092:139;;16990:248;;;:::o;17244:419::-;;17448:2;17437:9;17433:18;17425:26;;17497:9;17491:4;17487:20;17483:1;17472:9;17468:17;17461:47;17525:131;17651:4;17525:131;:::i;:::-;17517:139;;17415:248;;;:::o;17669:419::-;;17873:2;17862:9;17858:18;17850:26;;17922:9;17916:4;17912:20;17908:1;17897:9;17893:17;17886:47;17950:131;18076:4;17950:131;:::i;:::-;17942:139;;17840:248;;;:::o;18094:419::-;;18298:2;18287:9;18283:18;18275:26;;18347:9;18341:4;18337:20;18333:1;18322:9;18318:17;18311:47;18375:131;18501:4;18375:131;:::i;:::-;18367:139;;18265:248;;;:::o;18519:419::-;;18723:2;18712:9;18708:18;18700:26;;18772:9;18766:4;18762:20;18758:1;18747:9;18743:17;18736:47;18800:131;18926:4;18800:131;:::i;:::-;18792:139;;18690:248;;;:::o;18944:419::-;;19148:2;19137:9;19133:18;19125:26;;19197:9;19191:4;19187:20;19183:1;19172:9;19168:17;19161:47;19225:131;19351:4;19225:131;:::i;:::-;19217:139;;19115:248;;;:::o;19369:419::-;;19573:2;19562:9;19558:18;19550:26;;19622:9;19616:4;19612:20;19608:1;19597:9;19593:17;19586:47;19650:131;19776:4;19650:131;:::i;:::-;19642:139;;19540:248;;;:::o;19794:419::-;;19998:2;19987:9;19983:18;19975:26;;20047:9;20041:4;20037:20;20033:1;20022:9;20018:17;20011:47;20075:131;20201:4;20075:131;:::i;:::-;20067:139;;19965:248;;;:::o;20219:419::-;;20423:2;20412:9;20408:18;20400:26;;20472:9;20466:4;20462:20;20458:1;20447:9;20443:17;20436:47;20500:131;20626:4;20500:131;:::i;:::-;20492:139;;20390:248;;;:::o;20644:222::-;;20775:2;20764:9;20760:18;20752:26;;20788:71;20856:1;20845:9;20841:17;20832:6;20788:71;:::i;:::-;20742:124;;;;:::o;20872:831::-;;21173:3;21162:9;21158:19;21150:27;;21187:71;21255:1;21244:9;21240:17;21231:6;21187:71;:::i;:::-;21268:80;21344:2;21333:9;21329:18;21320:6;21268:80;:::i;:::-;21395:9;21389:4;21385:20;21380:2;21369:9;21365:18;21358:48;21423:108;21526:4;21517:6;21423:108;:::i;:::-;21415:116;;21541:72;21609:2;21598:9;21594:18;21585:6;21541:72;:::i;:::-;21623:73;21691:3;21680:9;21676:19;21667:6;21623:73;:::i;:::-;21140:563;;;;;;;;:::o;21709:442::-;;21896:2;21885:9;21881:18;21873:26;;21909:71;21977:1;21966:9;21962:17;21953:6;21909:71;:::i;:::-;21990:72;22058:2;22047:9;22043:18;22034:6;21990:72;:::i;:::-;22072;22140:2;22129:9;22125:18;22116:6;22072:72;:::i;:::-;21863:288;;;;;;:::o;22157:553::-;;22372:3;22361:9;22357:19;22349:27;;22386:71;22454:1;22443:9;22439:17;22430:6;22386:71;:::i;:::-;22467:72;22535:2;22524:9;22520:18;22511:6;22467:72;:::i;:::-;22549;22617:2;22606:9;22602:18;22593:6;22549:72;:::i;:::-;22631;22699:2;22688:9;22684:18;22675:6;22631:72;:::i;:::-;22339:371;;;;;;;:::o;22716:214::-;;22843:2;22832:9;22828:18;22820:26;;22856:67;22920:1;22909:9;22905:17;22896:6;22856:67;:::i;:::-;22810:120;;;;:::o;22936:132::-;;23026:3;23018:11;;23056:4;23051:3;23047:14;23039:22;;23008:60;;;:::o;23074:114::-;;23175:5;23169:12;23159:22;;23148:40;;;:::o;23194:99::-;;23280:5;23274:12;23264:22;;23253:40;;;:::o;23299:113::-;;23401:4;23396:3;23392:14;23384:22;;23374:38;;;:::o;23418:184::-;;23551:6;23546:3;23539:19;23591:4;23586:3;23582:14;23567:29;;23529:73;;;;:::o;23608:169::-;;23726:6;23721:3;23714:19;23766:4;23761:3;23757:14;23742:29;;23704:73;;;;:::o;23783:305::-;;23842:20;23860:1;23842:20;:::i;:::-;23837:25;;23876:20;23894:1;23876:20;:::i;:::-;23871:25;;24030:1;23962:66;23958:74;23955:1;23952:81;23949:2;;;24036:18;;:::i;:::-;23949:2;24080:1;24077;24073:9;24066:16;;23827:261;;;;:::o;24094:185::-;;24151:20;24169:1;24151:20;:::i;:::-;24146:25;;24185:20;24203:1;24185:20;:::i;:::-;24180:25;;24224:1;24214:2;;24229:18;;:::i;:::-;24214:2;24271:1;24268;24264:9;24259:14;;24136:143;;;;:::o;24285:848::-;;;24377:6;24368:15;;24401:5;24392:14;;24415:712;24436:1;24426:8;24423:15;24415:712;;;24531:4;24526:3;24522:14;24516:4;24513:24;24510:2;;;24540:18;;:::i;:::-;24510:2;24590:1;24580:8;24576:16;24573:2;;;25005:4;24998:5;24994:16;24985:25;;24573:2;25055:4;25049;25045:15;25037:23;;25085:32;25108:8;25085:32;:::i;:::-;25073:44;;24415:712;;;24358:775;;;;;;;:::o;25139:281::-;;25221:23;25239:4;25221:23;:::i;:::-;25213:31;;25265:25;25281:8;25265:25;:::i;:::-;25253:37;;25309:104;25346:66;25336:8;25330:4;25309:104;:::i;:::-;25300:113;;25203:217;;;;:::o;25426:1073::-;;25671:8;25661:2;;25692:1;25683:10;;25694:5;;25661:2;25720:4;25710:2;;25737:1;25728:10;;25739:5;;25710:2;25806:4;25854:1;25849:27;;;;25890:1;25885:191;;;;25799:277;;25849:27;25867:1;25858:10;;25869:5;;;25885:191;25930:3;25920:8;25917:17;25914:2;;;25937:18;;:::i;:::-;25914:2;25986:8;25983:1;25979:16;25970:25;;26021:3;26014:5;26011:14;26008:2;;;26028:18;;:::i;:::-;26008:2;26061:5;;;25799:277;;26185:2;26175:8;26172:16;26166:3;26160:4;26157:13;26153:36;26135:2;26125:8;26122:16;26117:2;26111:4;26108:12;26104:35;26088:111;26085:2;;;26241:8;26235:4;26231:19;26222:28;;26276:3;26269:5;26266:14;26263:2;;;26283:18;;:::i;:::-;26263:2;26316:5;;26085:2;26356:42;26394:3;26384:8;26378:4;26375:1;26356:42;:::i;:::-;26341:57;;;;26430:4;26425:3;26421:14;26414:5;26411:25;26408:2;;;26439:18;;:::i;:::-;26408:2;26488:4;26481:5;26477:16;26468:25;;25486:1013;;;;;;:::o;26505:348::-;;26568:20;26586:1;26568:20;:::i;:::-;26563:25;;26602:20;26620:1;26602:20;:::i;:::-;26597:25;;26790:1;26722:66;26718:74;26715:1;26712:81;26707:1;26700:9;26693:17;26689:105;26686:2;;;26797:18;;:::i;:::-;26686:2;26845:1;26842;26838:9;26827:20;;26553:300;;;;:::o;26859:191::-;;26919:20;26937:1;26919:20;:::i;:::-;26914:25;;26953:20;26971:1;26953:20;:::i;:::-;26948:25;;26992:1;26989;26986:8;26983:2;;;26997:18;;:::i;:::-;26983:2;27042:1;27039;27035:9;27027:17;;26904:146;;;;:::o;27056:96::-;;27122:24;27140:5;27122:24;:::i;:::-;27111:35;;27101:51;;;:::o;27158:90::-;;27235:5;27228:13;27221:21;27210:32;;27200:48;;;:::o;27254:126::-;;27331:42;27324:5;27320:54;27309:65;;27299:81;;;:::o;27386:77::-;;27452:5;27441:16;;27431:32;;;:::o;27469:86::-;;27544:4;27537:5;27533:16;27522:27;;27512:43;;;:::o;27561:178::-;;27670:63;27727:5;27670:63;:::i;:::-;27657:76;;27647:92;;;:::o;27745:139::-;;27854:24;27872:5;27854:24;:::i;:::-;27841:37;;27831:53;;;:::o;27890:121::-;;27981:24;27999:5;27981:24;:::i;:::-;27968:37;;27958:53;;;:::o;28017:307::-;28085:1;28095:113;28109:6;28106:1;28103:13;28095:113;;;28194:1;28189:3;28185:11;28179:18;28175:1;28170:3;28166:11;28159:39;28131:2;28128:1;28124:10;28119:15;;28095:113;;;28226:6;28223:1;28220:13;28217:2;;;28306:1;28297:6;28292:3;28288:16;28281:27;28217:2;28066:258;;;;:::o;28330:180::-;28378:77;28375:1;28368:88;28475:4;28472:1;28465:15;28499:4;28496:1;28489:15;28516:180;28564:77;28561:1;28554:88;28661:4;28658:1;28651:15;28685:4;28682:1;28675:15;28702:102;;28794:2;28790:7;28785:2;28778:5;28774:14;28770:28;28760:38;;28750:54;;;:::o;28810:102::-;;28899:5;28896:1;28892:13;28871:34;;28861:51;;;:::o;28918:122::-;28991:24;29009:5;28991:24;:::i;:::-;28984:5;28981:35;28971:2;;29030:1;29027;29020:12;28971:2;28961:79;:::o;29046:116::-;29116:21;29131:5;29116:21;:::i;:::-;29109:5;29106:32;29096:2;;29152:1;29149;29142:12;29096:2;29086:76;:::o;29168:122::-;29241:24;29259:5;29241:24;:::i;:::-;29234:5;29231:35;29221:2;;29280:1;29277;29270:12;29221:2;29211:79;:::o

Swarm Source

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