ETH Price: $2,499.56 (-3.43%)

Token

Shiba Sensei (SHINSEI)
 

Overview

Max Total Supply

1,000,000,000,000 SHINSEI

Holders

27

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,796,911,501.761551706 SHINSEI

Value
$0.00
0x460932fa8f2fc136b37f6b6a8afc5ff38e330a68
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:
Shinsei

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-01-28
*/

/*
  _________.__    .__                     .__ 
 /   _____/|  |__ |__| ____   ______ ____ |__|
 \_____  \ |  |  \|  |/    \ /  ___// __ \|  |
 /        \|   Y  \  |   |  \\___ \\  ___/|  |
/_______  /|___|  /__|___|  /____  >\___  >__|
        \/      \/        \/     \/     \/    
                                              
                                    shinsei.io
*/
pragma solidity ^0.8.4;

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

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

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Shinsei is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) public bots;
    
    uint256 private constant _totalSupply = 1e12 * 10**9;
    
    uint256 private _currentFee;

    uint256 public bFee;
    uint256 public sFee;
    uint256 public teamShare = 60;

    uint256 public maxTxAmount = _totalSupply;


    address payable private _teamAddr;
    address payable private _marketingAddr;
    
    string private constant _name = "Shiba Sensei";
    string private constant _symbol = "SHINSEI";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    
    constructor () {
        _teamAddr = payable(0xF3cB7c5B54AacA7B328B9F02B7F6984574Ce9e8c);
        _marketingAddr = payable(0x224Bf74f69F69E18106e9aFb3DA20ABC5D6D261e);

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_teamAddr] = true;
        _isExcludedFromFee[_marketingAddr] = true;

        bFee = 14;
        sFee = 14;

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

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

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

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

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

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

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

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

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

    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 _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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to], "Error: from/to bot");
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if (contractTokenBalance > 0) {
                    swapTokensForEth(contractTokenBalance);
                }
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    splitETHAndSend(address(this).balance);
                }
            }
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(amount <= maxTxAmount, "Error: amount <= maxTxAmount");
                _currentFee = bFee;
            }else if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _currentFee = sFee;
            }else{
                _currentFee = 0;
            }
        }
		
        _tokenTransfer(from, to, amount);
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
		if (_currentFee > 0) {
		    uint256 feeAmount = amount.mul(_currentFee).div(100);
		    uint256 transferAmount = amount.sub(feeAmount);
            _balances[sender] = _balances[sender].sub(amount);
		    _balances[address(this)] = _balances[address(this)].add(feeAmount);
            _balances[recipient] = _balances[recipient].add(transferAmount);
            emit Transfer(sender, recipient, transferAmount);
		}else{
            _balances[sender] = _balances[sender].sub(amount);
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
		}
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function splitETHAndSend(uint256 amount) private {
        uint256 getTeamShare = amount.mul(teamShare).div(100);
        _teamAddr.transfer(getTeamShare);
        _marketingAddr.transfer(amount.sub(getTeamShare));
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen, "trading is already open");

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;

        _approve(address(this), address(uniswapV2Router), _totalSupply);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);

        swapEnabled = true;
        tradingOpen = true;

        maxTxAmount = _totalSupply.mul(3).div(100);

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function liftMaxTx() external onlyOwner() {
        maxTxAmount = _totalSupply;
    }
    
    function setBots(address[] memory bots_) external onlyOwner() {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBot(address notbot) external onlyOwner() {
        bots[notbot] = false;
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _teamAddr);

        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _teamAddr);

        uint256 contractETHBalance = address(this).balance;
        splitETHAndSend(contractETHBalance);
    }

    function updateTeamShare(uint256 tShare) external {
        require(_msgSender() == _teamAddr);
        require(tShare <= 60, "Error: Team share cannot exceed 60%");
        
        teamShare = tShare;
    }
    
    function setFee(uint256 newbFee, uint256 newsFee) external {
        require(_msgSender() == _teamAddr, "Caller is not fee setter");
        require(newbFee <= 14, "Error: newbFee cannot exceed 14");
        require(newsFee <= 14, "Error: newsFee cannot exceed 14");
        
        bFee = newbFee;
        sFee = newsFee;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":[],"name":"bFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liftMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newbFee","type":"uint256"},{"internalType":"uint256","name":"newsFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"uint256","name":"tShare","type":"uint256"}],"name":"updateTeamShare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052603c600955683635c9adc5dea00000600a556000600e60156101000a81548160ff0219169083151502179055506000600e60166101000a81548160ff0219169083151502179055503480156200005957600080fd5b5060006200006c6200045960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073f3cb7c5b54aaca7b328b9f02b7f6984574ce9e8c600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073224bf74f69f69e18106e9afb3da20abc5d6d261e600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000620001ca6200046160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600e600781905550600e600881905550683635c9adc5dea0000060026000620003956200045960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003e36200045960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200044b91906200049b565b60405180910390a3620004c2565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200049581620004b8565b82525050565b6000602082019050620004b260008301846200048a565b92915050565b6000819050919050565b6137c180620004d26000396000f3fe60806040526004361061014f5760003560e01c80638c0b5e22116100b6578063bfd792841161006f578063bfd7928414610465578063c3c8cd80146104a2578063c9567bf9146104b9578063dd62ed3e146104d0578063ea6ef2fe1461050d578063f25123481461053857610156565b80638c0b5e22146103535780638da5cb5b1461037e57806392ec16ed146103a957806395d89b41146103d4578063a9059cbb146103ff578063b515566a1461043c57610156565b8063313ce56711610108578063313ce5671461026b57806348b4e8fd1461029657806352f7c988146102bf5780636fc3eaec146102e857806370a08231146102ff578063715018a61461033c57610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806323b872dd146101ee578063273123b71461022b5780632ab308381461025457610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610563565b60405161017d9190612d6b565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906127f6565b6105a0565b6040516101ba9190612d50565b60405180910390f35b3480156101cf57600080fd5b506101d86105be565b6040516101e59190612f6d565b60405180910390f35b3480156101fa57600080fd5b50610215600480360381019061021091906127a3565b6105cf565b6040516102229190612d50565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d9190612709565b6106a8565b005b34801561026057600080fd5b50610269610798565b005b34801561027757600080fd5b5061028061083f565b60405161028d9190612fe2565b60405180910390f35b3480156102a257600080fd5b506102bd60048036038101906102b891906128ac565b610848565b005b3480156102cb57600080fd5b506102e660048036038101906102e191906128d9565b6108f7565b005b3480156102f457600080fd5b506102fd610a28565b005b34801561030b57600080fd5b5061032660048036038101906103219190612709565b610a9a565b6040516103339190612f6d565b60405180910390f35b34801561034857600080fd5b50610351610ae3565b005b34801561035f57600080fd5b50610368610c36565b6040516103759190612f6d565b60405180910390f35b34801561038a57600080fd5b50610393610c3c565b6040516103a09190612c82565b60405180910390f35b3480156103b557600080fd5b506103be610c65565b6040516103cb9190612f6d565b60405180910390f35b3480156103e057600080fd5b506103e9610c6b565b6040516103f69190612d6b565b60405180910390f35b34801561040b57600080fd5b50610426600480360381019061042191906127f6565b610ca8565b6040516104339190612d50565b60405180910390f35b34801561044857600080fd5b50610463600480360381019061045e9190612836565b610cc6565b005b34801561047157600080fd5b5061048c60048036038101906104879190612709565b610df0565b6040516104999190612d50565b60405180910390f35b3480156104ae57600080fd5b506104b7610e10565b005b3480156104c557600080fd5b506104ce610e8a565b005b3480156104dc57600080fd5b506104f760048036038101906104f29190612763565b6113f2565b6040516105049190612f6d565b60405180910390f35b34801561051957600080fd5b50610522611479565b60405161052f9190612f6d565b60405180910390f35b34801561054457600080fd5b5061054d61147f565b60405161055a9190612f6d565b60405180910390f35b60606040518060400160405280600c81526020017f53686962612053656e7365690000000000000000000000000000000000000000815250905090565b60006105b46105ad611485565b848461148d565b6001905092915050565b6000683635c9adc5dea00000905090565b60006105dc848484611658565b61069d846105e8611485565b6106988560405180606001604052806028815260200161376460289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061064e611485565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c249092919063ffffffff16565b61148d565b600190509392505050565b6106b0611485565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461073d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073490612e8d565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6107a0611485565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461082d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082490612e8d565b60405180910390fd5b683635c9adc5dea00000600a81905550565b60006009905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610889611485565b73ffffffffffffffffffffffffffffffffffffffff16146108a957600080fd5b603c8111156108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490612e0d565b60405180910390fd5b8060098190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610938611485565b73ffffffffffffffffffffffffffffffffffffffff161461098e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098590612e2d565b60405180910390fd5b600e8211156109d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c990612e6d565b60405180910390fd5b600e811115610a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0d90612dad565b60405180910390fd5b81600781905550806008819055505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a69611485565b73ffffffffffffffffffffffffffffffffffffffff1614610a8957600080fd5b6000479050610a9781611c88565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610aeb611485565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6f90612e8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b60606040518060400160405280600781526020017f5348494e53454900000000000000000000000000000000000000000000000000815250905090565b6000610cbc610cb5611485565b8484611658565b6001905092915050565b610cce611485565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5290612e8d565b60405180910390fd5b60005b8151811015610dec57600160056000848481518110610d8057610d7f61332a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610de490613283565b915050610d5e565b5050565b60056020528060005260406000206000915054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e51611485565b73ffffffffffffffffffffffffffffffffffffffff1614610e7157600080fd5b6000610e7c30610a9a565b9050610e8781611d9c565b50565b610e92611485565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1690612e8d565b60405180910390fd5b600e60149054906101000a900460ff1615610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6690612f4d565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fff30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061148d565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561104557600080fd5b505afa158015611059573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107d9190612736565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156110df57600080fd5b505afa1580156110f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111179190612736565b6040518363ffffffff1660e01b8152600401611134929190612c9d565b602060405180830381600087803b15801561114e57600080fd5b505af1158015611162573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111869190612736565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061120f30610a9a565b60008061121a610c3c565b426040518863ffffffff1660e01b815260040161123c96959493929190612cef565b6060604051808303818588803b15801561125557600080fd5b505af1158015611269573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061128e9190612919565b5050506001600e60166101000a81548160ff0219169083151502179055506001600e60146101000a81548160ff0219169083151502179055506112f760646112e96003683635c9adc5dea0000061202490919063ffffffff16565b61209f90919063ffffffff16565b600a81905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161139c929190612cc6565b602060405180830381600087803b1580156113b657600080fd5b505af11580156113ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ee919061287f565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b60085481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f490612f2d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561156d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156490612dcd565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161164b9190612f6d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bf90612f0d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611738576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172f90612d8d565b60405180910390fd5b6000811161177b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177290612ead565b60405180910390fd5b611783610c3c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117f157506117c1610c3c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c1457600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561189a5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d090612ecd565b60405180910390fd5b600e60159054906101000a900460ff161580156119445750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561195c5750600e60169054906101000a900460ff165b1561199c57600061196c30610a9a565b905060008111156119815761198081611d9c565b5b600047905060008111156119995761199847611c88565b5b50505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a475750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a9d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611af557600a54811115611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90612eed565b60405180910390fd5b600754600681905550611c13565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611ba05750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bf65750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c0957600854600681905550611c12565b60006006819055505b5b5b611c1f8383836120e9565b505050565b6000838311158290611c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c639190612d6b565b60405180910390fd5b5060008385611c7b9190613184565b9050809150509392505050565b6000611cb26064611ca46009548561202490919063ffffffff16565b61209f90919063ffffffff16565b9050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d1c573d6000803e3d6000fd5b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d6c83856124f790919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d97573d6000803e3d6000fd5b505050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611dd457611dd3613359565b5b604051908082528060200260200182016040528015611e025781602001602082028036833780820191505090505b5090503081600081518110611e1a57611e1961332a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ebc57600080fd5b505afa158015611ed0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef49190612736565b81600181518110611f0857611f0761332a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f6f30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461148d565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fd3959493929190612f88565b600060405180830381600087803b158015611fed57600080fd5b505af1158015612001573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b6000808314156120375760009050612099565b60008284612045919061312a565b905082848261205491906130f9565b14612094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208b90612e4d565b60405180910390fd5b809150505b92915050565b60006120e183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612541565b905092915050565b6000600654111561236257600061211e60646121106006548561202490919063ffffffff16565b61209f90919063ffffffff16565b9050600061213582846124f790919063ffffffff16565b905061218983600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f790919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061221e82600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122b381600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a490919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123539190612f6d565b60405180910390a350506124f2565b6123b481600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f790919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061244981600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a490919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124e99190612f6d565b60405180910390a35b505050565b600061253983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c24565b905092915050565b60008083118290612588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257f9190612d6b565b60405180910390fd5b506000838561259791906130f9565b9050809150509392505050565b60008082846125b391906130a3565b9050838110156125f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ef90612ded565b60405180910390fd5b8091505092915050565b600061261561261084613022565b612ffd565b905080838252602082019050828560208602820111156126385761263761338d565b5b60005b85811015612668578161264e8882612672565b84526020840193506020830192505060018101905061263b565b5050509392505050565b6000813590506126818161371e565b92915050565b6000815190506126968161371e565b92915050565b600082601f8301126126b1576126b0613388565b5b81356126c1848260208601612602565b91505092915050565b6000815190506126d981613735565b92915050565b6000813590506126ee8161374c565b92915050565b6000815190506127038161374c565b92915050565b60006020828403121561271f5761271e613397565b5b600061272d84828501612672565b91505092915050565b60006020828403121561274c5761274b613397565b5b600061275a84828501612687565b91505092915050565b6000806040838503121561277a57612779613397565b5b600061278885828601612672565b925050602061279985828601612672565b9150509250929050565b6000806000606084860312156127bc576127bb613397565b5b60006127ca86828701612672565b93505060206127db86828701612672565b92505060406127ec868287016126df565b9150509250925092565b6000806040838503121561280d5761280c613397565b5b600061281b85828601612672565b925050602061282c858286016126df565b9150509250929050565b60006020828403121561284c5761284b613397565b5b600082013567ffffffffffffffff81111561286a57612869613392565b5b6128768482850161269c565b91505092915050565b60006020828403121561289557612894613397565b5b60006128a3848285016126ca565b91505092915050565b6000602082840312156128c2576128c1613397565b5b60006128d0848285016126df565b91505092915050565b600080604083850312156128f0576128ef613397565b5b60006128fe858286016126df565b925050602061290f858286016126df565b9150509250929050565b60008060006060848603121561293257612931613397565b5b6000612940868287016126f4565b9350506020612951868287016126f4565b9250506040612962868287016126f4565b9150509250925092565b60006129788383612984565b60208301905092915050565b61298d816131b8565b82525050565b61299c816131b8565b82525050565b60006129ad8261305e565b6129b78185613081565b93506129c28361304e565b8060005b838110156129f35781516129da888261296c565b97506129e583613074565b9250506001810190506129c6565b5085935050505092915050565b612a09816131ca565b82525050565b612a188161320d565b82525050565b6000612a2982613069565b612a338185613092565b9350612a4381856020860161321f565b612a4c8161339c565b840191505092915050565b6000612a64602383613092565b9150612a6f826133ad565b604082019050919050565b6000612a87601f83613092565b9150612a92826133fc565b602082019050919050565b6000612aaa602283613092565b9150612ab582613425565b604082019050919050565b6000612acd601b83613092565b9150612ad882613474565b602082019050919050565b6000612af0602383613092565b9150612afb8261349d565b604082019050919050565b6000612b13601883613092565b9150612b1e826134ec565b602082019050919050565b6000612b36602183613092565b9150612b4182613515565b604082019050919050565b6000612b59601f83613092565b9150612b6482613564565b602082019050919050565b6000612b7c602083613092565b9150612b878261358d565b602082019050919050565b6000612b9f602983613092565b9150612baa826135b6565b604082019050919050565b6000612bc2601283613092565b9150612bcd82613605565b602082019050919050565b6000612be5601c83613092565b9150612bf08261362e565b602082019050919050565b6000612c08602583613092565b9150612c1382613657565b604082019050919050565b6000612c2b602483613092565b9150612c36826136a6565b604082019050919050565b6000612c4e601783613092565b9150612c59826136f5565b602082019050919050565b612c6d816131f6565b82525050565b612c7c81613200565b82525050565b6000602082019050612c976000830184612993565b92915050565b6000604082019050612cb26000830185612993565b612cbf6020830184612993565b9392505050565b6000604082019050612cdb6000830185612993565b612ce86020830184612c64565b9392505050565b600060c082019050612d046000830189612993565b612d116020830188612c64565b612d1e6040830187612a0f565b612d2b6060830186612a0f565b612d386080830185612993565b612d4560a0830184612c64565b979650505050505050565b6000602082019050612d656000830184612a00565b92915050565b60006020820190508181036000830152612d858184612a1e565b905092915050565b60006020820190508181036000830152612da681612a57565b9050919050565b60006020820190508181036000830152612dc681612a7a565b9050919050565b60006020820190508181036000830152612de681612a9d565b9050919050565b60006020820190508181036000830152612e0681612ac0565b9050919050565b60006020820190508181036000830152612e2681612ae3565b9050919050565b60006020820190508181036000830152612e4681612b06565b9050919050565b60006020820190508181036000830152612e6681612b29565b9050919050565b60006020820190508181036000830152612e8681612b4c565b9050919050565b60006020820190508181036000830152612ea681612b6f565b9050919050565b60006020820190508181036000830152612ec681612b92565b9050919050565b60006020820190508181036000830152612ee681612bb5565b9050919050565b60006020820190508181036000830152612f0681612bd8565b9050919050565b60006020820190508181036000830152612f2681612bfb565b9050919050565b60006020820190508181036000830152612f4681612c1e565b9050919050565b60006020820190508181036000830152612f6681612c41565b9050919050565b6000602082019050612f826000830184612c64565b92915050565b600060a082019050612f9d6000830188612c64565b612faa6020830187612a0f565b8181036040830152612fbc81866129a2565b9050612fcb6060830185612993565b612fd86080830184612c64565b9695505050505050565b6000602082019050612ff76000830184612c73565b92915050565b6000613007613018565b90506130138282613252565b919050565b6000604051905090565b600067ffffffffffffffff82111561303d5761303c613359565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130ae826131f6565b91506130b9836131f6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130ee576130ed6132cc565b5b828201905092915050565b6000613104826131f6565b915061310f836131f6565b92508261311f5761311e6132fb565b5b828204905092915050565b6000613135826131f6565b9150613140836131f6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613179576131786132cc565b5b828202905092915050565b600061318f826131f6565b915061319a836131f6565b9250828210156131ad576131ac6132cc565b5b828203905092915050565b60006131c3826131d6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613218826131f6565b9050919050565b60005b8381101561323d578082015181840152602081019050613222565b8381111561324c576000848401525b50505050565b61325b8261339c565b810181811067ffffffffffffffff8211171561327a57613279613359565b5b80604052505050565b600061328e826131f6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132c1576132c06132cc565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a206e6577734665652063616e6e6f742065786365656420313400600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4572726f723a205465616d2073686172652063616e6e6f74206578636565642060008201527f3630250000000000000000000000000000000000000000000000000000000000602082015250565b7f43616c6c6572206973206e6f7420666565207365747465720000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a206e6577624665652063616e6e6f742065786365656420313400600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f4572726f723a2066726f6d2f746f20626f740000000000000000000000000000600082015250565b7f4572726f723a20616d6f756e74203c3d206d61785478416d6f756e7400000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b613727816131b8565b811461373257600080fd5b50565b61373e816131ca565b811461374957600080fd5b50565b613755816131f6565b811461376057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f5a6fe7885d81df407c46ae8c37ad13e36898035715b224fc3e7c46f5669ddaf64736f6c63430008070033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80638c0b5e22116100b6578063bfd792841161006f578063bfd7928414610465578063c3c8cd80146104a2578063c9567bf9146104b9578063dd62ed3e146104d0578063ea6ef2fe1461050d578063f25123481461053857610156565b80638c0b5e22146103535780638da5cb5b1461037e57806392ec16ed146103a957806395d89b41146103d4578063a9059cbb146103ff578063b515566a1461043c57610156565b8063313ce56711610108578063313ce5671461026b57806348b4e8fd1461029657806352f7c988146102bf5780636fc3eaec146102e857806370a08231146102ff578063715018a61461033c57610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806323b872dd146101ee578063273123b71461022b5780632ab308381461025457610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610563565b60405161017d9190612d6b565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906127f6565b6105a0565b6040516101ba9190612d50565b60405180910390f35b3480156101cf57600080fd5b506101d86105be565b6040516101e59190612f6d565b60405180910390f35b3480156101fa57600080fd5b50610215600480360381019061021091906127a3565b6105cf565b6040516102229190612d50565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d9190612709565b6106a8565b005b34801561026057600080fd5b50610269610798565b005b34801561027757600080fd5b5061028061083f565b60405161028d9190612fe2565b60405180910390f35b3480156102a257600080fd5b506102bd60048036038101906102b891906128ac565b610848565b005b3480156102cb57600080fd5b506102e660048036038101906102e191906128d9565b6108f7565b005b3480156102f457600080fd5b506102fd610a28565b005b34801561030b57600080fd5b5061032660048036038101906103219190612709565b610a9a565b6040516103339190612f6d565b60405180910390f35b34801561034857600080fd5b50610351610ae3565b005b34801561035f57600080fd5b50610368610c36565b6040516103759190612f6d565b60405180910390f35b34801561038a57600080fd5b50610393610c3c565b6040516103a09190612c82565b60405180910390f35b3480156103b557600080fd5b506103be610c65565b6040516103cb9190612f6d565b60405180910390f35b3480156103e057600080fd5b506103e9610c6b565b6040516103f69190612d6b565b60405180910390f35b34801561040b57600080fd5b50610426600480360381019061042191906127f6565b610ca8565b6040516104339190612d50565b60405180910390f35b34801561044857600080fd5b50610463600480360381019061045e9190612836565b610cc6565b005b34801561047157600080fd5b5061048c60048036038101906104879190612709565b610df0565b6040516104999190612d50565b60405180910390f35b3480156104ae57600080fd5b506104b7610e10565b005b3480156104c557600080fd5b506104ce610e8a565b005b3480156104dc57600080fd5b506104f760048036038101906104f29190612763565b6113f2565b6040516105049190612f6d565b60405180910390f35b34801561051957600080fd5b50610522611479565b60405161052f9190612f6d565b60405180910390f35b34801561054457600080fd5b5061054d61147f565b60405161055a9190612f6d565b60405180910390f35b60606040518060400160405280600c81526020017f53686962612053656e7365690000000000000000000000000000000000000000815250905090565b60006105b46105ad611485565b848461148d565b6001905092915050565b6000683635c9adc5dea00000905090565b60006105dc848484611658565b61069d846105e8611485565b6106988560405180606001604052806028815260200161376460289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061064e611485565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c249092919063ffffffff16565b61148d565b600190509392505050565b6106b0611485565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461073d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073490612e8d565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6107a0611485565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461082d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082490612e8d565b60405180910390fd5b683635c9adc5dea00000600a81905550565b60006009905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610889611485565b73ffffffffffffffffffffffffffffffffffffffff16146108a957600080fd5b603c8111156108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490612e0d565b60405180910390fd5b8060098190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610938611485565b73ffffffffffffffffffffffffffffffffffffffff161461098e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098590612e2d565b60405180910390fd5b600e8211156109d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c990612e6d565b60405180910390fd5b600e811115610a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0d90612dad565b60405180910390fd5b81600781905550806008819055505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a69611485565b73ffffffffffffffffffffffffffffffffffffffff1614610a8957600080fd5b6000479050610a9781611c88565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610aeb611485565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6f90612e8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b60606040518060400160405280600781526020017f5348494e53454900000000000000000000000000000000000000000000000000815250905090565b6000610cbc610cb5611485565b8484611658565b6001905092915050565b610cce611485565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5290612e8d565b60405180910390fd5b60005b8151811015610dec57600160056000848481518110610d8057610d7f61332a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610de490613283565b915050610d5e565b5050565b60056020528060005260406000206000915054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e51611485565b73ffffffffffffffffffffffffffffffffffffffff1614610e7157600080fd5b6000610e7c30610a9a565b9050610e8781611d9c565b50565b610e92611485565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1690612e8d565b60405180910390fd5b600e60149054906101000a900460ff1615610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6690612f4d565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fff30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061148d565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561104557600080fd5b505afa158015611059573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107d9190612736565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156110df57600080fd5b505afa1580156110f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111179190612736565b6040518363ffffffff1660e01b8152600401611134929190612c9d565b602060405180830381600087803b15801561114e57600080fd5b505af1158015611162573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111869190612736565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061120f30610a9a565b60008061121a610c3c565b426040518863ffffffff1660e01b815260040161123c96959493929190612cef565b6060604051808303818588803b15801561125557600080fd5b505af1158015611269573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061128e9190612919565b5050506001600e60166101000a81548160ff0219169083151502179055506001600e60146101000a81548160ff0219169083151502179055506112f760646112e96003683635c9adc5dea0000061202490919063ffffffff16565b61209f90919063ffffffff16565b600a81905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161139c929190612cc6565b602060405180830381600087803b1580156113b657600080fd5b505af11580156113ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ee919061287f565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b60085481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f490612f2d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561156d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156490612dcd565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161164b9190612f6d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bf90612f0d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611738576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172f90612d8d565b60405180910390fd5b6000811161177b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177290612ead565b60405180910390fd5b611783610c3c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117f157506117c1610c3c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c1457600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561189a5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d090612ecd565b60405180910390fd5b600e60159054906101000a900460ff161580156119445750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561195c5750600e60169054906101000a900460ff165b1561199c57600061196c30610a9a565b905060008111156119815761198081611d9c565b5b600047905060008111156119995761199847611c88565b5b50505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a475750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a9d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611af557600a54811115611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90612eed565b60405180910390fd5b600754600681905550611c13565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611ba05750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bf65750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c0957600854600681905550611c12565b60006006819055505b5b5b611c1f8383836120e9565b505050565b6000838311158290611c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c639190612d6b565b60405180910390fd5b5060008385611c7b9190613184565b9050809150509392505050565b6000611cb26064611ca46009548561202490919063ffffffff16565b61209f90919063ffffffff16565b9050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d1c573d6000803e3d6000fd5b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d6c83856124f790919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d97573d6000803e3d6000fd5b505050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611dd457611dd3613359565b5b604051908082528060200260200182016040528015611e025781602001602082028036833780820191505090505b5090503081600081518110611e1a57611e1961332a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ebc57600080fd5b505afa158015611ed0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef49190612736565b81600181518110611f0857611f0761332a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f6f30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461148d565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fd3959493929190612f88565b600060405180830381600087803b158015611fed57600080fd5b505af1158015612001573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b6000808314156120375760009050612099565b60008284612045919061312a565b905082848261205491906130f9565b14612094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208b90612e4d565b60405180910390fd5b809150505b92915050565b60006120e183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612541565b905092915050565b6000600654111561236257600061211e60646121106006548561202490919063ffffffff16565b61209f90919063ffffffff16565b9050600061213582846124f790919063ffffffff16565b905061218983600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f790919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061221e82600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122b381600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a490919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123539190612f6d565b60405180910390a350506124f2565b6123b481600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f790919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061244981600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a490919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124e99190612f6d565b60405180910390a35b505050565b600061253983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c24565b905092915050565b60008083118290612588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257f9190612d6b565b60405180910390fd5b506000838561259791906130f9565b9050809150509392505050565b60008082846125b391906130a3565b9050838110156125f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ef90612ded565b60405180910390fd5b8091505092915050565b600061261561261084613022565b612ffd565b905080838252602082019050828560208602820111156126385761263761338d565b5b60005b85811015612668578161264e8882612672565b84526020840193506020830192505060018101905061263b565b5050509392505050565b6000813590506126818161371e565b92915050565b6000815190506126968161371e565b92915050565b600082601f8301126126b1576126b0613388565b5b81356126c1848260208601612602565b91505092915050565b6000815190506126d981613735565b92915050565b6000813590506126ee8161374c565b92915050565b6000815190506127038161374c565b92915050565b60006020828403121561271f5761271e613397565b5b600061272d84828501612672565b91505092915050565b60006020828403121561274c5761274b613397565b5b600061275a84828501612687565b91505092915050565b6000806040838503121561277a57612779613397565b5b600061278885828601612672565b925050602061279985828601612672565b9150509250929050565b6000806000606084860312156127bc576127bb613397565b5b60006127ca86828701612672565b93505060206127db86828701612672565b92505060406127ec868287016126df565b9150509250925092565b6000806040838503121561280d5761280c613397565b5b600061281b85828601612672565b925050602061282c858286016126df565b9150509250929050565b60006020828403121561284c5761284b613397565b5b600082013567ffffffffffffffff81111561286a57612869613392565b5b6128768482850161269c565b91505092915050565b60006020828403121561289557612894613397565b5b60006128a3848285016126ca565b91505092915050565b6000602082840312156128c2576128c1613397565b5b60006128d0848285016126df565b91505092915050565b600080604083850312156128f0576128ef613397565b5b60006128fe858286016126df565b925050602061290f858286016126df565b9150509250929050565b60008060006060848603121561293257612931613397565b5b6000612940868287016126f4565b9350506020612951868287016126f4565b9250506040612962868287016126f4565b9150509250925092565b60006129788383612984565b60208301905092915050565b61298d816131b8565b82525050565b61299c816131b8565b82525050565b60006129ad8261305e565b6129b78185613081565b93506129c28361304e565b8060005b838110156129f35781516129da888261296c565b97506129e583613074565b9250506001810190506129c6565b5085935050505092915050565b612a09816131ca565b82525050565b612a188161320d565b82525050565b6000612a2982613069565b612a338185613092565b9350612a4381856020860161321f565b612a4c8161339c565b840191505092915050565b6000612a64602383613092565b9150612a6f826133ad565b604082019050919050565b6000612a87601f83613092565b9150612a92826133fc565b602082019050919050565b6000612aaa602283613092565b9150612ab582613425565b604082019050919050565b6000612acd601b83613092565b9150612ad882613474565b602082019050919050565b6000612af0602383613092565b9150612afb8261349d565b604082019050919050565b6000612b13601883613092565b9150612b1e826134ec565b602082019050919050565b6000612b36602183613092565b9150612b4182613515565b604082019050919050565b6000612b59601f83613092565b9150612b6482613564565b602082019050919050565b6000612b7c602083613092565b9150612b878261358d565b602082019050919050565b6000612b9f602983613092565b9150612baa826135b6565b604082019050919050565b6000612bc2601283613092565b9150612bcd82613605565b602082019050919050565b6000612be5601c83613092565b9150612bf08261362e565b602082019050919050565b6000612c08602583613092565b9150612c1382613657565b604082019050919050565b6000612c2b602483613092565b9150612c36826136a6565b604082019050919050565b6000612c4e601783613092565b9150612c59826136f5565b602082019050919050565b612c6d816131f6565b82525050565b612c7c81613200565b82525050565b6000602082019050612c976000830184612993565b92915050565b6000604082019050612cb26000830185612993565b612cbf6020830184612993565b9392505050565b6000604082019050612cdb6000830185612993565b612ce86020830184612c64565b9392505050565b600060c082019050612d046000830189612993565b612d116020830188612c64565b612d1e6040830187612a0f565b612d2b6060830186612a0f565b612d386080830185612993565b612d4560a0830184612c64565b979650505050505050565b6000602082019050612d656000830184612a00565b92915050565b60006020820190508181036000830152612d858184612a1e565b905092915050565b60006020820190508181036000830152612da681612a57565b9050919050565b60006020820190508181036000830152612dc681612a7a565b9050919050565b60006020820190508181036000830152612de681612a9d565b9050919050565b60006020820190508181036000830152612e0681612ac0565b9050919050565b60006020820190508181036000830152612e2681612ae3565b9050919050565b60006020820190508181036000830152612e4681612b06565b9050919050565b60006020820190508181036000830152612e6681612b29565b9050919050565b60006020820190508181036000830152612e8681612b4c565b9050919050565b60006020820190508181036000830152612ea681612b6f565b9050919050565b60006020820190508181036000830152612ec681612b92565b9050919050565b60006020820190508181036000830152612ee681612bb5565b9050919050565b60006020820190508181036000830152612f0681612bd8565b9050919050565b60006020820190508181036000830152612f2681612bfb565b9050919050565b60006020820190508181036000830152612f4681612c1e565b9050919050565b60006020820190508181036000830152612f6681612c41565b9050919050565b6000602082019050612f826000830184612c64565b92915050565b600060a082019050612f9d6000830188612c64565b612faa6020830187612a0f565b8181036040830152612fbc81866129a2565b9050612fcb6060830185612993565b612fd86080830184612c64565b9695505050505050565b6000602082019050612ff76000830184612c73565b92915050565b6000613007613018565b90506130138282613252565b919050565b6000604051905090565b600067ffffffffffffffff82111561303d5761303c613359565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130ae826131f6565b91506130b9836131f6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130ee576130ed6132cc565b5b828201905092915050565b6000613104826131f6565b915061310f836131f6565b92508261311f5761311e6132fb565b5b828204905092915050565b6000613135826131f6565b9150613140836131f6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613179576131786132cc565b5b828202905092915050565b600061318f826131f6565b915061319a836131f6565b9250828210156131ad576131ac6132cc565b5b828203905092915050565b60006131c3826131d6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613218826131f6565b9050919050565b60005b8381101561323d578082015181840152602081019050613222565b8381111561324c576000848401525b50505050565b61325b8261339c565b810181811067ffffffffffffffff8211171561327a57613279613359565b5b80604052505050565b600061328e826131f6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132c1576132c06132cc565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a206e6577734665652063616e6e6f742065786365656420313400600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4572726f723a205465616d2073686172652063616e6e6f74206578636565642060008201527f3630250000000000000000000000000000000000000000000000000000000000602082015250565b7f43616c6c6572206973206e6f7420666565207365747465720000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a206e6577624665652063616e6e6f742065786365656420313400600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f4572726f723a2066726f6d2f746f20626f740000000000000000000000000000600082015250565b7f4572726f723a20616d6f756e74203c3d206d61785478416d6f756e7400000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b613727816131b8565b811461373257600080fd5b50565b61373e816131ca565b811461374957600080fd5b50565b613755816131f6565b811461376057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f5a6fe7885d81df407c46ae8c37ad13e36898035715b224fc3e7c46f5669ddaf64736f6c63430008070033

Deployed Bytecode Sourcemap

3869:8451:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5572:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6410:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5849:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6579:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11209:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10934:87;;;;;;;;;;;;;:::i;:::-;;5758:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11754:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11979:336;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11553:193;;;;;;;;;;;;;:::i;:::-;;5957:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2948:148;;;;;;;;;;;;;:::i;:::-;;4389:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2734:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4299:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5663:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6084:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11033:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4148:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11350:191;;;;;;;;;;;;;:::i;:::-;;10119:807;;;;;;;;;;;;;:::i;:::-;;6259:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4351:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4325:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5572:83;5609:13;5642:5;;;;;;;;;;;;;;;;;5635:12;;5572:83;:::o;6410:161::-;6485:4;6502:39;6511:12;:10;:12::i;:::-;6525:7;6534:6;6502:8;:39::i;:::-;6559:4;6552:11;;6410:161;;;;:::o;5849:100::-;5902:7;4238:12;5922:19;;5849:100;:::o;6579:313::-;6677:4;6694:36;6704:6;6712:9;6723:6;6694:9;:36::i;:::-;6741:121;6750:6;6758:12;:10;:12::i;:::-;6772:89;6810:6;6772:89;;;;;;;;;;;;;;;;;:11;:19;6784:6;6772:19;;;;;;;;;;;;;;;:33;6792:12;:10;:12::i;:::-;6772:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6741:8;:121::i;:::-;6880:4;6873:11;;6579:313;;;;;:::o;11209:92::-;2871:12;:10;:12::i;:::-;2861:22;;:6;;;;;;;;;;:22;;;2853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11288:5:::1;11273:4;:12;11278:6;11273:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11209:92:::0;:::o;10934:87::-;2871:12;:10;:12::i;:::-;2861:22;;:6;;;;;;;;;;:22;;;2853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4238:12:::1;10987:11;:26;;;;10934:87::o:0;5758:83::-;5799:5;4670:1;5817:16;;5758:83;:::o;11754:213::-;11839:9;;;;;;;;;;;11823:25;;:12;:10;:12::i;:::-;:25;;;11815:34;;;;;;11878:2;11868:6;:12;;11860:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11953:6;11941:9;:18;;;;11754:213;:::o;11979:336::-;12073:9;;;;;;;;;;;12057:25;;:12;:10;:12::i;:::-;:25;;;12049:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;12141:2;12130:7;:13;;12122:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;12209:2;12198:7;:13;;12190:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;12275:7;12268:4;:14;;;;12300:7;12293:4;:14;;;;11979:336;;:::o;11553:193::-;11619:9;;;;;;;;;;;11603:25;;:12;:10;:12::i;:::-;:25;;;11595:34;;;;;;11642:26;11671:21;11642:50;;11703:35;11719:18;11703:15;:35::i;:::-;11584:162;11553:193::o;5957:119::-;6023:7;6050:9;:18;6060:7;6050:18;;;;;;;;;;;;;;;;6043:25;;5957:119;;;:::o;2948:148::-;2871:12;:10;:12::i;:::-;2861:22;;:6;;;;;;;;;;:22;;;2853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3055:1:::1;3018:40;;3039:6;::::0;::::1;;;;;;;;3018:40;;;;;;;;;;;;3086:1;3069:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2948:148::o:0;4389:41::-;;;;:::o;2734:79::-;2772:7;2799:6;;;;;;;;;;;2792:13;;2734:79;:::o;4299:19::-;;;;:::o;5663:87::-;5702:13;5735:7;;;;;;;;;;;;;;;;;5728:14;;5663:87;:::o;6084:167::-;6162:4;6179:42;6189:12;:10;:12::i;:::-;6203:9;6214:6;6179:9;:42::i;:::-;6239:4;6232:11;;6084:167;;;;:::o;11033:168::-;2871:12;:10;:12::i;:::-;2861:22;;:6;;;;;;;;;;:22;;;2853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11111:6:::1;11106:88;11127:5;:12;11123:1;:16;11106:88;;;11178:4;11161;:14;11166:5;11172:1;11166:8;;;;;;;;:::i;:::-;;;;;;;;11161:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11141:3;;;;;:::i;:::-;;;;11106:88;;;;11033:168:::0;:::o;4148:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;11350:191::-;11416:9;;;;;;;;;;;11400:25;;:12;:10;:12::i;:::-;:25;;;11392:34;;;;;;11439:23;11465:24;11483:4;11465:9;:24::i;:::-;11439:50;;11500:33;11517:15;11500:16;:33::i;:::-;11381:160;11350:191::o;10119:807::-;2871:12;:10;:12::i;:::-;2861:22;;:6;;;;;;;;;;:22;;;2853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10183:11:::1;;;;;;;;;;;10182:12;10174:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10235:35;10292:42;10235:100;;10364:16;10346:15;;:34;;;;;;;;;;;;;;;;;;10393:63;10410:4;10425:15;;;;;;;;;;;4238:12;10393:8;:63::i;:::-;10501:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10483:56;;;10548:4;10555:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10483:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10467:13;;:112;;;;;;;;;;;;;;;;;;10590:15;;;;;;;;;;;:31;;;10629:21;10660:4;10666:24;10684:4;10666:9;:24::i;:::-;10691:1;10693::::0;10695:7:::1;:5;:7::i;:::-;10703:15;10590:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10746:4;10732:11;;:18;;;;;;;;;;;;;;;;;;10775:4;10761:11;;:18;;;;;;;;;;;;;;;;;;10806:28;10830:3;10806:19;10823:1;4238:12;10806:16;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;10792:11;:42;;;;10854:13;;;;;;;;;;;10847:29;;;10885:15;;;;;;;;;;;10903:14;10847:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10163:763;10119:807::o:0;6259:143::-;6340:7;6367:11;:18;6379:5;6367:18;;;;;;;;;;;;;;;:27;6386:7;6367:27;;;;;;;;;;;;;;;;6360:34;;6259:143;;;;:::o;4351:29::-;;;;:::o;4325:19::-;;;;:::o;452:98::-;505:7;532:10;525:17;;452:98;:::o;6900:337::-;7010:1;6993:19;;:5;:19;;;;6985:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7091:1;7072:21;;:7;:21;;;;7064:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7175:6;7145:11;:18;7157:5;7145:18;;;;;;;;;;;;;;;:27;7164:7;7145:27;;;;;;;;;;;;;;;:36;;;;7213:7;7197:32;;7206:5;7197:32;;;7222:6;7197:32;;;;;;:::i;:::-;;;;;;;;6900:337;;;:::o;7245:1406::-;7349:1;7333:18;;:4;:18;;;;7325:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7426:1;7412:16;;:2;:16;;;;7404:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7496:1;7487:6;:10;7479:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7568:7;:5;:7::i;:::-;7560:15;;:4;:15;;;;:32;;;;;7585:7;:5;:7::i;:::-;7579:13;;:2;:13;;;;7560:32;7556:1041;;;7618:4;:10;7623:4;7618:10;;;;;;;;;;;;;;;;;;;;;;;;;7617:11;:24;;;;;7633:4;:8;7638:2;7633:8;;;;;;;;;;;;;;;;;;;;;;;;;7632:9;7617:24;7609:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;7684:6;;;;;;;;;;;7683:7;:32;;;;;7702:13;;;;;;;;;;;7694:21;;:4;:21;;;;7683:32;:47;;;;;7719:11;;;;;;;;;;;7683:47;7679:467;;;7751:28;7782:24;7800:4;7782:9;:24::i;:::-;7751:55;;7852:1;7829:20;:24;7825:111;;;7878:38;7895:20;7878:16;:38::i;:::-;7825:111;7954:26;7983:21;7954:50;;8047:1;8026:18;:22;8023:108;;;8073:38;8089:21;8073:15;:38::i;:::-;8023:108;7732:414;;7679:467;8172:13;;;;;;;;;;;8164:21;;:4;:21;;;:55;;;;;8203:15;;;;;;;;;;;8189:30;;:2;:30;;;;8164:55;:83;;;;;8225:18;:22;8244:2;8225:22;;;;;;;;;;;;;;;;;;;;;;;;;8223:24;8164:83;8160:426;;;8286:11;;8276:6;:21;;8268:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8363:4;;8349:11;:18;;;;8160:426;;;8398:13;;;;;;;;;;;8392:19;;:2;:19;;;:55;;;;;8431:15;;;;;;;;;;;8415:32;;:4;:32;;;;8392:55;:85;;;;;8453:18;:24;8472:4;8453:24;;;;;;;;;;;;;;;;;;;;;;;;;8451:26;8392:85;8388:198;;;8512:4;;8498:11;:18;;;;8388:198;;;8569:1;8555:11;:15;;;;8388:198;8160:426;7556:1041;8611:32;8626:4;8632:2;8636:6;8611:14;:32::i;:::-;7245:1406;;;:::o;1589:190::-;1675:7;1708:1;1703;:6;;1711:12;1695:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1735:9;1751:1;1747;:5;;;;:::i;:::-;1735:17;;1770:1;1763:8;;;1589:190;;;;;:::o;9887:224::-;9947:20;9970:30;9996:3;9970:21;9981:9;;9970:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;9947:53;;10011:9;;;;;;;;;;;:18;;:32;10030:12;10011:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10054:14;;;;;;;;;;;:23;;:49;10078:24;10089:12;10078:6;:10;;:24;;;;:::i;:::-;10054:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9936:175;9887:224;:::o;9388:483::-;4926:4;4917:6;;:13;;;;;;;;;;;;;;;;;;9466:21:::1;9504:1;9490:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9466:40;;9535:4;9517;9522:1;9517:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9561:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9551:4;9556:1;9551:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9594:62;9611:4;9626:15;;;;;;;;;;;9644:11;9594:8;:62::i;:::-;9667:15;;;;;;;;;;;:66;;;9748:11;9774:1;9790:4;9817;9837:15;9667:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9455:416;4962:5:::0;4953:6;;:14;;;;;;;;;;;;;;;;;;9388:483;:::o;1787:246::-;1845:7;1874:1;1869;:6;1865:47;;;1899:1;1892:8;;;;1865:47;1922:9;1938:1;1934;:5;;;;:::i;:::-;1922:17;;1967:1;1962;1958;:5;;;;:::i;:::-;:10;1950:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2024:1;2017:8;;;1787:246;;;;;:::o;2041:132::-;2099:7;2126:39;2130:1;2133;2126:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2119:46;;2041:132;;;;:::o;8663:717::-;8769:1;8755:11;;:15;8751:622;;;8781:17;8801:32;8829:3;8801:23;8812:11;;8801:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;8781:52;;8842:22;8867:21;8878:9;8867:6;:10;;:21;;;;:::i;:::-;8842:46;;8923:29;8945:6;8923:9;:17;8933:6;8923:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;8903:9;:17;8913:6;8903:17;;;;;;;;;;;;;;;:49;;;;8988:39;9017:9;8988;:24;9006:4;8988:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8961:9;:24;8979:4;8961:24;;;;;;;;;;;;;;;:66;;;;9065:40;9090:14;9065:9;:20;9075:9;9065:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9042:9;:20;9052:9;9042:20;;;;;;;;;;;;;;;:63;;;;9142:9;9125:43;;9134:6;9125:43;;;9153:14;9125:43;;;;;;:::i;:::-;;;;;;;;8772:402;;8751:622;;;9213:29;9235:6;9213:9;:17;9223:6;9213:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;9193:9;:17;9203:6;9193:17;;;;;;;;;;;;;;;:49;;;;9280:32;9305:6;9280:9;:20;9290:9;9280:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9257:9;:20;9267:9;9257:20;;;;;;;;;;;;;;;:55;;;;9349:9;9332:35;;9341:6;9332:35;;;9360:6;9332:35;;;;;;:::i;:::-;;;;;;;;8751:622;8663:717;;;:::o;1445:136::-;1503:7;1530:43;1534:1;1537;1530:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1523:50;;1445:136;;;;:::o;2181:189::-;2267:7;2299:1;2295;:5;2302:12;2287:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2326:9;2342:1;2338;:5;;;;:::i;:::-;2326:17;;2361:1;2354:8;;;2181:189;;;;;:::o;1258:179::-;1316:7;1336:9;1352:1;1348;:5;;;;:::i;:::-;1336:17;;1377:1;1372;:6;;1364:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1428:1;1421:8;;;1258:179;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:137::-;1493:5;1524:6;1518:13;1509:22;;1540:30;1564:5;1540:30;:::i;:::-;1439:137;;;;:::o;1582:139::-;1628:5;1666:6;1653:20;1644:29;;1682:33;1709:5;1682:33;:::i;:::-;1582:139;;;;:::o;1727:143::-;1784:5;1815:6;1809:13;1800:22;;1831:33;1858:5;1831:33;:::i;:::-;1727:143;;;;:::o;1876:329::-;1935:6;1984:2;1972:9;1963:7;1959:23;1955:32;1952:119;;;1990:79;;:::i;:::-;1952:119;2110:1;2135:53;2180:7;2171:6;2160:9;2156:22;2135:53;:::i;:::-;2125:63;;2081:117;1876:329;;;;:::o;2211:351::-;2281:6;2330:2;2318:9;2309:7;2305:23;2301:32;2298:119;;;2336:79;;:::i;:::-;2298:119;2456:1;2481:64;2537:7;2528:6;2517:9;2513:22;2481:64;:::i;:::-;2471:74;;2427:128;2211:351;;;;:::o;2568:474::-;2636:6;2644;2693:2;2681:9;2672:7;2668:23;2664:32;2661:119;;;2699:79;;:::i;:::-;2661:119;2819:1;2844:53;2889:7;2880:6;2869:9;2865:22;2844:53;:::i;:::-;2834:63;;2790:117;2946:2;2972:53;3017:7;3008:6;2997:9;2993:22;2972:53;:::i;:::-;2962:63;;2917:118;2568:474;;;;;:::o;3048:619::-;3125:6;3133;3141;3190:2;3178:9;3169:7;3165:23;3161:32;3158:119;;;3196:79;;:::i;:::-;3158:119;3316:1;3341:53;3386:7;3377:6;3366:9;3362:22;3341:53;:::i;:::-;3331:63;;3287:117;3443:2;3469:53;3514:7;3505:6;3494:9;3490:22;3469:53;:::i;:::-;3459:63;;3414:118;3571:2;3597:53;3642:7;3633:6;3622:9;3618:22;3597:53;:::i;:::-;3587:63;;3542:118;3048:619;;;;;:::o;3673:474::-;3741:6;3749;3798:2;3786:9;3777:7;3773:23;3769:32;3766:119;;;3804:79;;:::i;:::-;3766:119;3924:1;3949:53;3994:7;3985:6;3974:9;3970:22;3949:53;:::i;:::-;3939:63;;3895:117;4051:2;4077:53;4122:7;4113:6;4102:9;4098:22;4077:53;:::i;:::-;4067:63;;4022:118;3673:474;;;;;:::o;4153:539::-;4237:6;4286:2;4274:9;4265:7;4261:23;4257:32;4254:119;;;4292:79;;:::i;:::-;4254:119;4440:1;4429:9;4425:17;4412:31;4470:18;4462:6;4459:30;4456:117;;;4492:79;;:::i;:::-;4456:117;4597:78;4667:7;4658:6;4647:9;4643:22;4597:78;:::i;:::-;4587:88;;4383:302;4153:539;;;;:::o;4698:345::-;4765:6;4814:2;4802:9;4793:7;4789:23;4785:32;4782:119;;;4820:79;;:::i;:::-;4782:119;4940:1;4965:61;5018:7;5009:6;4998:9;4994:22;4965:61;:::i;:::-;4955:71;;4911:125;4698:345;;;;:::o;5049:329::-;5108:6;5157:2;5145:9;5136:7;5132:23;5128:32;5125:119;;;5163:79;;:::i;:::-;5125:119;5283:1;5308:53;5353:7;5344:6;5333:9;5329:22;5308:53;:::i;:::-;5298:63;;5254:117;5049:329;;;;:::o;5384:474::-;5452:6;5460;5509:2;5497:9;5488:7;5484:23;5480:32;5477:119;;;5515:79;;:::i;:::-;5477:119;5635:1;5660:53;5705:7;5696:6;5685:9;5681:22;5660:53;:::i;:::-;5650:63;;5606:117;5762:2;5788:53;5833:7;5824:6;5813:9;5809:22;5788:53;:::i;:::-;5778:63;;5733:118;5384:474;;;;;:::o;5864:663::-;5952:6;5960;5968;6017:2;6005:9;5996:7;5992:23;5988:32;5985:119;;;6023:79;;:::i;:::-;5985:119;6143:1;6168:64;6224:7;6215:6;6204:9;6200:22;6168:64;:::i;:::-;6158:74;;6114:128;6281:2;6307:64;6363:7;6354:6;6343:9;6339:22;6307:64;:::i;:::-;6297:74;;6252:129;6420:2;6446:64;6502:7;6493:6;6482:9;6478:22;6446:64;:::i;:::-;6436:74;;6391:129;5864:663;;;;;:::o;6533:179::-;6602:10;6623:46;6665:3;6657:6;6623:46;:::i;:::-;6701:4;6696:3;6692:14;6678:28;;6533:179;;;;:::o;6718:108::-;6795:24;6813:5;6795:24;:::i;:::-;6790:3;6783:37;6718:108;;:::o;6832:118::-;6919:24;6937:5;6919:24;:::i;:::-;6914:3;6907:37;6832:118;;:::o;6986:732::-;7105:3;7134:54;7182:5;7134:54;:::i;:::-;7204:86;7283:6;7278:3;7204:86;:::i;:::-;7197:93;;7314:56;7364:5;7314:56;:::i;:::-;7393:7;7424:1;7409:284;7434:6;7431:1;7428:13;7409:284;;;7510:6;7504:13;7537:63;7596:3;7581:13;7537:63;:::i;:::-;7530:70;;7623:60;7676:6;7623:60;:::i;:::-;7613:70;;7469:224;7456:1;7453;7449:9;7444:14;;7409:284;;;7413:14;7709:3;7702:10;;7110:608;;;6986:732;;;;:::o;7724:109::-;7805:21;7820:5;7805:21;:::i;:::-;7800:3;7793:34;7724:109;;:::o;7839:147::-;7934:45;7973:5;7934:45;:::i;:::-;7929:3;7922:58;7839:147;;:::o;7992:364::-;8080:3;8108:39;8141:5;8108:39;:::i;:::-;8163:71;8227:6;8222:3;8163:71;:::i;:::-;8156:78;;8243:52;8288:6;8283:3;8276:4;8269:5;8265:16;8243:52;:::i;:::-;8320:29;8342:6;8320:29;:::i;:::-;8315:3;8311:39;8304:46;;8084:272;7992:364;;;;:::o;8362:366::-;8504:3;8525:67;8589:2;8584:3;8525:67;:::i;:::-;8518:74;;8601:93;8690:3;8601:93;:::i;:::-;8719:2;8714:3;8710:12;8703:19;;8362:366;;;:::o;8734:::-;8876:3;8897:67;8961:2;8956:3;8897:67;:::i;:::-;8890:74;;8973:93;9062:3;8973:93;:::i;:::-;9091:2;9086:3;9082:12;9075:19;;8734:366;;;:::o;9106:::-;9248:3;9269:67;9333:2;9328:3;9269:67;:::i;:::-;9262:74;;9345:93;9434:3;9345:93;:::i;:::-;9463:2;9458:3;9454:12;9447:19;;9106:366;;;:::o;9478:::-;9620:3;9641:67;9705:2;9700:3;9641:67;:::i;:::-;9634:74;;9717:93;9806:3;9717:93;:::i;:::-;9835:2;9830:3;9826:12;9819:19;;9478:366;;;:::o;9850:::-;9992:3;10013:67;10077:2;10072:3;10013:67;:::i;:::-;10006:74;;10089:93;10178:3;10089:93;:::i;:::-;10207:2;10202:3;10198:12;10191:19;;9850:366;;;:::o;10222:::-;10364:3;10385:67;10449:2;10444:3;10385:67;:::i;:::-;10378:74;;10461:93;10550:3;10461:93;:::i;:::-;10579:2;10574:3;10570:12;10563:19;;10222:366;;;:::o;10594:::-;10736:3;10757:67;10821:2;10816:3;10757:67;:::i;:::-;10750:74;;10833:93;10922:3;10833:93;:::i;:::-;10951:2;10946:3;10942:12;10935:19;;10594:366;;;:::o;10966:::-;11108:3;11129:67;11193:2;11188:3;11129:67;:::i;:::-;11122:74;;11205:93;11294:3;11205:93;:::i;:::-;11323:2;11318:3;11314:12;11307:19;;10966:366;;;:::o;11338:::-;11480:3;11501:67;11565:2;11560:3;11501:67;:::i;:::-;11494:74;;11577:93;11666:3;11577:93;:::i;:::-;11695:2;11690:3;11686:12;11679:19;;11338:366;;;:::o;11710:::-;11852:3;11873:67;11937:2;11932:3;11873:67;:::i;:::-;11866:74;;11949:93;12038:3;11949:93;:::i;:::-;12067:2;12062:3;12058:12;12051:19;;11710:366;;;:::o;12082:::-;12224:3;12245:67;12309:2;12304:3;12245:67;:::i;:::-;12238:74;;12321:93;12410:3;12321:93;:::i;:::-;12439:2;12434:3;12430:12;12423:19;;12082:366;;;:::o;12454:::-;12596:3;12617:67;12681:2;12676:3;12617:67;:::i;:::-;12610:74;;12693:93;12782:3;12693:93;:::i;:::-;12811:2;12806:3;12802:12;12795:19;;12454:366;;;:::o;12826:::-;12968:3;12989:67;13053:2;13048:3;12989:67;:::i;:::-;12982:74;;13065:93;13154:3;13065:93;:::i;:::-;13183:2;13178:3;13174:12;13167:19;;12826:366;;;:::o;13198:::-;13340:3;13361:67;13425:2;13420:3;13361:67;:::i;:::-;13354:74;;13437:93;13526:3;13437:93;:::i;:::-;13555:2;13550:3;13546:12;13539:19;;13198:366;;;:::o;13570:::-;13712:3;13733:67;13797:2;13792:3;13733:67;:::i;:::-;13726:74;;13809:93;13898:3;13809:93;:::i;:::-;13927:2;13922:3;13918:12;13911:19;;13570:366;;;:::o;13942:118::-;14029:24;14047:5;14029:24;:::i;:::-;14024:3;14017:37;13942:118;;:::o;14066:112::-;14149:22;14165:5;14149:22;:::i;:::-;14144:3;14137:35;14066:112;;:::o;14184:222::-;14277:4;14315:2;14304:9;14300:18;14292:26;;14328:71;14396:1;14385:9;14381:17;14372:6;14328:71;:::i;:::-;14184:222;;;;:::o;14412:332::-;14533:4;14571:2;14560:9;14556:18;14548:26;;14584:71;14652:1;14641:9;14637:17;14628:6;14584:71;:::i;:::-;14665:72;14733:2;14722:9;14718:18;14709:6;14665:72;:::i;:::-;14412:332;;;;;:::o;14750:::-;14871:4;14909:2;14898:9;14894:18;14886:26;;14922:71;14990:1;14979:9;14975:17;14966:6;14922:71;:::i;:::-;15003:72;15071:2;15060:9;15056:18;15047:6;15003:72;:::i;:::-;14750:332;;;;;:::o;15088:807::-;15337:4;15375:3;15364:9;15360:19;15352:27;;15389:71;15457:1;15446:9;15442:17;15433:6;15389:71;:::i;:::-;15470:72;15538:2;15527:9;15523:18;15514:6;15470:72;:::i;:::-;15552:80;15628:2;15617:9;15613:18;15604:6;15552:80;:::i;:::-;15642;15718:2;15707:9;15703:18;15694:6;15642:80;:::i;:::-;15732:73;15800:3;15789:9;15785:19;15776:6;15732:73;:::i;:::-;15815;15883:3;15872:9;15868:19;15859:6;15815:73;:::i;:::-;15088:807;;;;;;;;;:::o;15901:210::-;15988:4;16026:2;16015:9;16011:18;16003:26;;16039:65;16101:1;16090:9;16086:17;16077:6;16039:65;:::i;:::-;15901:210;;;;:::o;16117:313::-;16230:4;16268:2;16257:9;16253:18;16245:26;;16317:9;16311:4;16307:20;16303:1;16292:9;16288:17;16281:47;16345:78;16418:4;16409:6;16345:78;:::i;:::-;16337:86;;16117:313;;;;:::o;16436:419::-;16602:4;16640:2;16629:9;16625:18;16617:26;;16689:9;16683:4;16679:20;16675:1;16664:9;16660:17;16653:47;16717:131;16843:4;16717:131;:::i;:::-;16709:139;;16436:419;;;:::o;16861:::-;17027:4;17065:2;17054:9;17050:18;17042:26;;17114:9;17108:4;17104:20;17100:1;17089:9;17085:17;17078:47;17142:131;17268:4;17142:131;:::i;:::-;17134:139;;16861:419;;;:::o;17286:::-;17452:4;17490:2;17479:9;17475:18;17467:26;;17539:9;17533:4;17529:20;17525:1;17514:9;17510:17;17503:47;17567:131;17693:4;17567:131;:::i;:::-;17559:139;;17286:419;;;:::o;17711:::-;17877:4;17915:2;17904:9;17900:18;17892:26;;17964:9;17958:4;17954:20;17950:1;17939:9;17935:17;17928:47;17992:131;18118:4;17992:131;:::i;:::-;17984:139;;17711:419;;;:::o;18136:::-;18302:4;18340:2;18329:9;18325:18;18317:26;;18389:9;18383:4;18379:20;18375:1;18364:9;18360:17;18353:47;18417:131;18543:4;18417:131;:::i;:::-;18409:139;;18136:419;;;:::o;18561:::-;18727:4;18765:2;18754:9;18750:18;18742:26;;18814:9;18808:4;18804:20;18800:1;18789:9;18785:17;18778:47;18842:131;18968:4;18842:131;:::i;:::-;18834:139;;18561:419;;;:::o;18986:::-;19152:4;19190:2;19179:9;19175:18;19167:26;;19239:9;19233:4;19229:20;19225:1;19214:9;19210:17;19203:47;19267:131;19393:4;19267:131;:::i;:::-;19259:139;;18986:419;;;:::o;19411:::-;19577:4;19615:2;19604:9;19600:18;19592:26;;19664:9;19658:4;19654:20;19650:1;19639:9;19635:17;19628:47;19692:131;19818:4;19692:131;:::i;:::-;19684:139;;19411:419;;;:::o;19836:::-;20002:4;20040:2;20029:9;20025:18;20017:26;;20089:9;20083:4;20079:20;20075:1;20064:9;20060:17;20053:47;20117:131;20243:4;20117:131;:::i;:::-;20109:139;;19836:419;;;:::o;20261:::-;20427:4;20465:2;20454:9;20450:18;20442:26;;20514:9;20508:4;20504:20;20500:1;20489:9;20485:17;20478:47;20542:131;20668:4;20542:131;:::i;:::-;20534:139;;20261:419;;;:::o;20686:::-;20852:4;20890:2;20879:9;20875:18;20867:26;;20939:9;20933:4;20929:20;20925:1;20914:9;20910:17;20903:47;20967:131;21093:4;20967:131;:::i;:::-;20959:139;;20686:419;;;:::o;21111:::-;21277:4;21315:2;21304:9;21300:18;21292:26;;21364:9;21358:4;21354:20;21350:1;21339:9;21335:17;21328:47;21392:131;21518:4;21392:131;:::i;:::-;21384:139;;21111:419;;;:::o;21536:::-;21702:4;21740:2;21729:9;21725:18;21717:26;;21789:9;21783:4;21779:20;21775:1;21764:9;21760:17;21753:47;21817:131;21943:4;21817:131;:::i;:::-;21809:139;;21536:419;;;:::o;21961:::-;22127:4;22165:2;22154:9;22150:18;22142:26;;22214:9;22208:4;22204:20;22200:1;22189:9;22185:17;22178:47;22242:131;22368:4;22242:131;:::i;:::-;22234:139;;21961:419;;;:::o;22386:::-;22552:4;22590:2;22579:9;22575:18;22567:26;;22639:9;22633:4;22629:20;22625:1;22614:9;22610:17;22603:47;22667:131;22793:4;22667:131;:::i;:::-;22659:139;;22386:419;;;:::o;22811:222::-;22904:4;22942:2;22931:9;22927:18;22919:26;;22955:71;23023:1;23012:9;23008:17;22999:6;22955:71;:::i;:::-;22811:222;;;;:::o;23039:831::-;23302:4;23340:3;23329:9;23325:19;23317:27;;23354:71;23422:1;23411:9;23407:17;23398:6;23354:71;:::i;:::-;23435:80;23511:2;23500:9;23496:18;23487:6;23435:80;:::i;:::-;23562:9;23556:4;23552:20;23547:2;23536:9;23532:18;23525:48;23590:108;23693:4;23684:6;23590:108;:::i;:::-;23582:116;;23708:72;23776:2;23765:9;23761:18;23752:6;23708:72;:::i;:::-;23790:73;23858:3;23847:9;23843:19;23834:6;23790:73;:::i;:::-;23039:831;;;;;;;;:::o;23876:214::-;23965:4;24003:2;23992:9;23988:18;23980:26;;24016:67;24080:1;24069:9;24065:17;24056:6;24016:67;:::i;:::-;23876:214;;;;:::o;24096:129::-;24130:6;24157:20;;:::i;:::-;24147:30;;24186:33;24214:4;24206:6;24186:33;:::i;:::-;24096:129;;;:::o;24231:75::-;24264:6;24297:2;24291:9;24281:19;;24231:75;:::o;24312:311::-;24389:4;24479:18;24471:6;24468:30;24465:56;;;24501:18;;:::i;:::-;24465:56;24551:4;24543:6;24539:17;24531:25;;24611:4;24605;24601:15;24593:23;;24312:311;;;:::o;24629:132::-;24696:4;24719:3;24711:11;;24749:4;24744:3;24740:14;24732:22;;24629:132;;;:::o;24767:114::-;24834:6;24868:5;24862:12;24852:22;;24767:114;;;:::o;24887:99::-;24939:6;24973:5;24967:12;24957:22;;24887:99;;;:::o;24992:113::-;25062:4;25094;25089:3;25085:14;25077:22;;24992:113;;;:::o;25111:184::-;25210:11;25244:6;25239:3;25232:19;25284:4;25279:3;25275:14;25260:29;;25111:184;;;;:::o;25301:169::-;25385:11;25419:6;25414:3;25407:19;25459:4;25454:3;25450:14;25435:29;;25301:169;;;;:::o;25476:305::-;25516:3;25535:20;25553:1;25535:20;:::i;:::-;25530:25;;25569:20;25587:1;25569:20;:::i;:::-;25564:25;;25723:1;25655:66;25651:74;25648:1;25645:81;25642:107;;;25729:18;;:::i;:::-;25642:107;25773:1;25770;25766:9;25759:16;;25476:305;;;;:::o;25787:185::-;25827:1;25844:20;25862:1;25844:20;:::i;:::-;25839:25;;25878:20;25896:1;25878:20;:::i;:::-;25873:25;;25917:1;25907:35;;25922:18;;:::i;:::-;25907:35;25964:1;25961;25957:9;25952:14;;25787:185;;;;:::o;25978:348::-;26018:7;26041:20;26059:1;26041:20;:::i;:::-;26036:25;;26075:20;26093:1;26075:20;:::i;:::-;26070:25;;26263:1;26195:66;26191:74;26188:1;26185:81;26180:1;26173:9;26166:17;26162:105;26159:131;;;26270:18;;:::i;:::-;26159:131;26318:1;26315;26311:9;26300:20;;25978:348;;;;:::o;26332:191::-;26372:4;26392:20;26410:1;26392:20;:::i;:::-;26387:25;;26426:20;26444:1;26426:20;:::i;:::-;26421:25;;26465:1;26462;26459:8;26456:34;;;26470:18;;:::i;:::-;26456:34;26515:1;26512;26508:9;26500:17;;26332:191;;;;:::o;26529:96::-;26566:7;26595:24;26613:5;26595:24;:::i;:::-;26584:35;;26529:96;;;:::o;26631:90::-;26665:7;26708:5;26701:13;26694:21;26683:32;;26631:90;;;:::o;26727:126::-;26764:7;26804:42;26797:5;26793:54;26782:65;;26727:126;;;:::o;26859:77::-;26896:7;26925:5;26914:16;;26859:77;;;:::o;26942:86::-;26977:7;27017:4;27010:5;27006:16;26995:27;;26942:86;;;:::o;27034:121::-;27092:9;27125:24;27143:5;27125:24;:::i;:::-;27112:37;;27034:121;;;:::o;27161:307::-;27229:1;27239:113;27253:6;27250:1;27247:13;27239:113;;;27338:1;27333:3;27329:11;27323:18;27319:1;27314:3;27310:11;27303:39;27275:2;27272:1;27268:10;27263:15;;27239:113;;;27370:6;27367:1;27364:13;27361:101;;;27450:1;27441:6;27436:3;27432:16;27425:27;27361:101;27210:258;27161:307;;;:::o;27474:281::-;27557:27;27579:4;27557:27;:::i;:::-;27549:6;27545:40;27687:6;27675:10;27672:22;27651:18;27639:10;27636:34;27633:62;27630:88;;;27698:18;;:::i;:::-;27630:88;27738:10;27734:2;27727:22;27517:238;27474:281;;:::o;27761:233::-;27800:3;27823:24;27841:5;27823:24;:::i;:::-;27814:33;;27869:66;27862:5;27859:77;27856:103;;;27939:18;;:::i;:::-;27856:103;27986:1;27979:5;27975:13;27968:20;;27761:233;;;:::o;28000:180::-;28048:77;28045:1;28038:88;28145:4;28142:1;28135:15;28169:4;28166:1;28159:15;28186:180;28234:77;28231:1;28224:88;28331:4;28328:1;28321:15;28355:4;28352:1;28345:15;28372:180;28420:77;28417:1;28410:88;28517:4;28514:1;28507:15;28541:4;28538:1;28531:15;28558:180;28606:77;28603:1;28596:88;28703:4;28700:1;28693:15;28727:4;28724:1;28717:15;28744:117;28853:1;28850;28843:12;28867:117;28976:1;28973;28966:12;28990:117;29099:1;29096;29089:12;29113:117;29222:1;29219;29212:12;29236:102;29277:6;29328:2;29324:7;29319:2;29312:5;29308:14;29304:28;29294:38;;29236:102;;;:::o;29344:222::-;29484:34;29480:1;29472:6;29468:14;29461:58;29553:5;29548:2;29540:6;29536:15;29529:30;29344:222;:::o;29572:181::-;29712:33;29708:1;29700:6;29696:14;29689:57;29572:181;:::o;29759:221::-;29899:34;29895:1;29887:6;29883:14;29876:58;29968:4;29963:2;29955:6;29951:15;29944:29;29759:221;:::o;29986:177::-;30126:29;30122:1;30114:6;30110:14;30103:53;29986:177;:::o;30169:222::-;30309:34;30305:1;30297:6;30293:14;30286:58;30378:5;30373:2;30365:6;30361:15;30354:30;30169:222;:::o;30397:174::-;30537:26;30533:1;30525:6;30521:14;30514:50;30397:174;:::o;30577:220::-;30717:34;30713:1;30705:6;30701:14;30694:58;30786:3;30781:2;30773:6;30769:15;30762:28;30577:220;:::o;30803:181::-;30943:33;30939:1;30931:6;30927:14;30920:57;30803:181;:::o;30990:182::-;31130:34;31126:1;31118:6;31114:14;31107:58;30990:182;:::o;31178:228::-;31318:34;31314:1;31306:6;31302:14;31295:58;31387:11;31382:2;31374:6;31370:15;31363:36;31178:228;:::o;31412:168::-;31552:20;31548:1;31540:6;31536:14;31529:44;31412:168;:::o;31586:178::-;31726:30;31722:1;31714:6;31710:14;31703:54;31586:178;:::o;31770:224::-;31910:34;31906:1;31898:6;31894:14;31887:58;31979:7;31974:2;31966:6;31962:15;31955:32;31770:224;:::o;32000:223::-;32140:34;32136:1;32128:6;32124:14;32117:58;32209:6;32204:2;32196:6;32192:15;32185:31;32000:223;:::o;32229:173::-;32369:25;32365:1;32357:6;32353:14;32346:49;32229:173;:::o;32408:122::-;32481:24;32499:5;32481:24;:::i;:::-;32474:5;32471:35;32461:63;;32520:1;32517;32510:12;32461:63;32408:122;:::o;32536:116::-;32606:21;32621:5;32606:21;:::i;:::-;32599:5;32596:32;32586:60;;32642:1;32639;32632:12;32586:60;32536:116;:::o;32658:122::-;32731:24;32749:5;32731:24;:::i;:::-;32724:5;32721:35;32711:63;;32770:1;32767;32760:12;32711:63;32658:122;:::o

Swarm Source

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