ETH Price: $2,525.11 (-0.12%)
Gas: 0.99 Gwei

Token

Ningyo (NINGYO)
 

Overview

Max Total Supply

1,000,000,000 NINGYO

Holders

74

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
15,290,270.081427231 NINGYO

Value
$0.00
0x5d9feaD196E96E6bB14B699AFD20b3cd37451e90
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:
Ningyo

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-09-01
*/

// TG: https://t.me/ningyocommunity

// SPDX-License-Identifier: Unlicensed

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 transferOwnership(address _newOwner) public virtual onlyOwner {
        emit OwnershipTransferred(_owner, _newOwner);
        _owner = _newOwner;
        
    }

    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 Ningyo is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private time;
    uint256 private _tax;

    uint256 private constant _tTotal = 1 * 10**9 * 10**9;
    uint256 private fee1=40;
    uint256 private fee2=50;
    string private constant _name = "Ningyo";
    string private constant _symbol = "NINGYO";
    uint256 private _maxTxAmount = _tTotal.div(100);
    uint256 private _maxWalletAmount = _tTotal.div(50);
    uint256 private minBalance = _tTotal.div(1000);


    uint8 private constant _decimals = 9;
    address payable private _deployer;
    address payable private _feeWallet;
    address payable private _secret;
    address[4] shillers = [
        0xC7A4294822Ce0bB2744775D869155443Ea829708,
        0x83E64E20ae811a89896063BBb1124ab24fE81598,
        0xD46aCACeBfD24D86903352DaBa4ebD821c91a18f,
        0xAE74b0f09cAFDC770e9a127464c7B8983a57804c
    ];
    address[7] whales = [
        0x447c1604043B88aaB28be1479875ff499FCC4075,
        0x2b6815DA3A172254352C40CAb1431ffe39242548,
        0xe59CFea275B0139b57D6FAcF9aAc619d229154E8,
        0xA8c9C1683274fCd4A044CED550bCfDE7d5e0624F,
        0x39bb368156CFfbB0ED6913557B1A6c3f341E2E99,
        0xd0D613F34d190488506452FDE666763959d83930,
        0x6BbB8e4b737e71c148ED1adB6b82a136301Ec2b0
    ];
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _deployer = payable(msg.sender);
        _feeWallet = payable(0xC7A4294822Ce0bB2744775D869155443Ea829708);
        _secret = payable(0x141D5bc71e7D2a7A57B8D36308eEA71f5D1F1DE3);
        _tOwned[address(this)] = _tTotal;
        for (uint i=0;i < 4; i++) {
            _tOwned[shillers[i]] = _tTotal.div(50);
        }
        for (uint i=0;i < 7; i++) {
            _tOwned[whales[i]] = _tTotal.div(200);
        }
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deployer] = true;
        _isExcludedFromFee[uniswapV2Pair] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0),address(this),_tTotal);
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[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 changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _deployer);
        minBalance = newMin;

    }

    function changeFees(uint256 _buy, uint256 _sell) external {
        require(_msgSender() == _deployer);
        require(_buy <= 40 && _sell <= 50,"cannot set fees above 4% and 5%");
        fee1 = _buy;
        fee2 = _sell;
    }

    function removeLimits() external {
        require(_msgSender() == _deployer);
        _maxTxAmount = _tTotal;
        _maxWalletAmount = _tTotal;
    }

    function excludeFromFees(address target) external {
        require(_msgSender() == _deployer);
        _isExcludedFromFee[target] = 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");

        _tax = fee1;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require((_tOwned[to] + amount) <= _maxWalletAmount,"not a chance bub");
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                require(block.timestamp > time,"Sells prohibited for the first 5 minutes");
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2;
        }		
        _transferStandard(from,to,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 addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }

    
    function sendETHToFee(uint256 amount) private {
        _deployer.transfer(amount.div(3));
        _feeWallet.transfer(amount.div(3));
        _secret.transfer(amount.div(3));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (3 minutes);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(tfee);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _deployer);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _deployer);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
   
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

    function recoverTokens(address tokenAddress) external {
        require(_msgSender() == _deployer);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260286009556032600a55620000316064670de0b6b3a764000062000bf360201b620012831790919060201c565b600b55620000576032670de0b6b3a764000062000bf360201b620012831790919060201c565b600c556200007e6103e8670de0b6b3a764000062000bf360201b620012831790919060201c565b600d55604051806080016040528073c7a4294822ce0bb2744775d869155443ea82970873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017383e64e20ae811a89896063bbb1124ab24fe8159873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d46acacebfd24d86903352daba4ebd821c91a18f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173ae74b0f09cafdc770e9a127464c7b8983a57804c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152506011906004620001b492919062000cde565b506040518060e0016040528073447c1604043b88aab28be1479875ff499fcc407573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001732b6815da3a172254352c40cab1431ffe3924254873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e59cfea275b0139b57d6facf9aac619d229154e873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173a8c9c1683274fcd4a044ced550bcfde7d5e0624f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017339bb368156cffbb0ed6913557b1a6c3f341e2e9973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d0d613f34d190488506452fde666763959d8393073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001736bbb8e4b737e71c148ed1adb6b82a136301ec2b073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152506015906007620003ba92919062000d60565b506000601d60156101000a81548160ff0219169083151502179055506000601d60166101000a81548160ff02191690831515021790555060006200040362000c4560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c7a4294822ce0bb2744775d869155443ea829708600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073141d5bc71e7d2a7a57b8d36308eea71f5d1f1de3601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550670de0b6b3a7640000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b60048110156200069957620006086032670de0b6b3a764000062000bf360201b620012831790919060201c565b60026000601184600481106200062357620006226200108f565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080620006909062000fe3565b915050620005db565b5060005b60078110156200075b57620006ca60c8670de0b6b3a764000062000bf360201b620012831790919060201c565b6002600060158460078110620006e557620006e46200108f565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080620007529062000fe3565b9150506200069d565b506001600460006200077262000c4d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620009cd57600080fd5b505afa158015620009e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a08919062000e18565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801562000a8d57600080fd5b505afa15801562000aa2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ac8919062000e18565b6040518363ffffffff1660e01b815260040162000ae792919062000ead565b602060405180830381600087803b15801562000b0257600080fd5b505af115801562000b17573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b3d919062000e18565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000060405162000be5919062000efe565b60405180910390a3620010ee565b600062000c3d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000c7660201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000cc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cb7919062000eda565b60405180910390fd5b506000838562000cd1919062000f37565b9050809150509392505050565b826004810192821562000d4d579160200282015b8281111562000d4c5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000cf2565b5b50905062000d5c919062000de2565b5090565b826007810192821562000dcf579160200282015b8281111562000dce5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000d74565b5b50905062000dde919062000de2565b5090565b5b8082111562000dfd57600081600090555060010162000de3565b5090565b60008151905062000e1281620010d4565b92915050565b60006020828403121562000e315762000e30620010be565b5b600062000e418482850162000e01565b91505092915050565b62000e558162000f6f565b82525050565b600062000e688262000f1b565b62000e74818562000f26565b935062000e8681856020860162000fad565b62000e9181620010c3565b840191505092915050565b62000ea78162000fa3565b82525050565b600060408201905062000ec4600083018562000e4a565b62000ed3602083018462000e4a565b9392505050565b6000602082019050818103600083015262000ef6818462000e5b565b905092915050565b600060208201905062000f15600083018462000e9c565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000f448262000fa3565b915062000f518362000fa3565b92508262000f645762000f6362001060565b5b828204905092915050565b600062000f7c8262000f83565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000fcd57808201518184015260208101905062000fb0565b8381111562000fdd576000848401525b50505050565b600062000ff08262000fa3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562001026576200102562001031565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b620010df8162000f6f565b8114620010eb57600080fd5b50565b61362080620010fe6000396000f3fe6080604052600436106101395760003560e01c8063715018a6116100ab578063b515566a1161006f578063b515566a146103f9578063c3c8cd8014610422578063c9567bf914610439578063dd62ed3e14610450578063e57f14e11461048d578063f2fde38b146104b657610140565b8063715018a614610338578063751039fc1461034f5780638da5cb5b1461036657806395d89b4114610391578063a9059cbb146103bc57610140565b806323b872dd116100fd57806323b872dd1461022a578063273123b714610267578063313ce567146102905780634ea18fab146102bb5780636fc3eaec146102e457806370a08231146102fb57610140565b806306fdde0314610145578063095ea7b31461017057806316114acd146101ad57806318160ddd146101d657806321ecff5b1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104df565b6040516101679190612c6f565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612750565b61051c565b6040516101a49190612c54565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf9190612663565b61053a565b005b3480156101e257600080fd5b506101eb6106dc565b6040516101f89190612e11565b60405180910390f35b34801561020d57600080fd5b5061022860048036038101906102239190612860565b6106ec565b005b34801561023657600080fd5b50610251600480360381019061024c91906126fd565b6107b0565b60405161025e9190612c54565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190612663565b610889565b005b34801561029c57600080fd5b506102a5610979565b6040516102b29190612e86565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd9190612806565b610982565b005b3480156102f057600080fd5b506102f96109ed565b005b34801561030757600080fd5b50610322600480360381019061031d9190612663565b610a5f565b60405161032f9190612e11565b60405180910390f35b34801561034457600080fd5b5061034d610aa8565b005b34801561035b57600080fd5b50610364610bfb565b005b34801561037257600080fd5b5061037b610c7c565b6040516103889190612baf565b60405180910390f35b34801561039d57600080fd5b506103a6610ca5565b6040516103b39190612c6f565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190612750565b610ce2565b6040516103f09190612c54565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b9190612790565b610d00565b005b34801561042e57600080fd5b50610437610e2a565b005b34801561044557600080fd5b5061044e610ea4565b005b34801561045c57600080fd5b50610477600480360381019061047291906126bd565b610fee565b6040516104849190612e11565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190612663565b611075565b005b3480156104c257600080fd5b506104dd60048036038101906104d89190612663565b611131565b005b60606040518060400160405280600681526020017f4e696e67796f0000000000000000000000000000000000000000000000000000815250905090565b60006105306105296112cd565b84846112d5565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661057b6112cd565b73ffffffffffffffffffffffffffffffffffffffff161461059b57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106189190612baf565b60206040518083038186803b15801561063057600080fd5b505afa158015610644573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106689190612833565b6040518363ffffffff1660e01b8152600401610685929190612bca565b602060405180830381600087803b15801561069f57600080fd5b505af11580156106b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d791906127d9565b505050565b6000670de0b6b3a7640000905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661072d6112cd565b73ffffffffffffffffffffffffffffffffffffffff161461074d57600080fd5b6028821115801561075f575060328111155b61079e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079590612d31565b60405180910390fd5b8160098190555080600a819055505050565b60006107bd8484846114a0565b61087e846107c96112cd565b610879856040518060600160405280602881526020016135c360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061082f6112cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bc09092919063ffffffff16565b6112d5565b600190509392505050565b6108916112cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461091e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091590612d71565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109c36112cd565b73ffffffffffffffffffffffffffffffffffffffff16146109e357600080fd5b80600d8190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a2e6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614610a4e57600080fd5b6000479050610a5c81611c24565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ab06112cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3490612d71565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c3c6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614610c5c57600080fd5b670de0b6b3a7640000600b81905550670de0b6b3a7640000600c81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4e494e47594f0000000000000000000000000000000000000000000000000000815250905090565b6000610cf6610cef6112cd565b84846114a0565b6001905092915050565b610d086112cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90612d71565b60405180910390fd5b60005b8151811015610e2657600160056000848481518110610dba57610db9613204565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e1e9061315d565b915050610d98565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e6b6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614610e8b57600080fd5b6000610e9630610a5f565b9050610ea181611d9b565b50565b610eac6112cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3090612d71565b60405180910390fd5b601d60149054906101000a900460ff1615610f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8090612df1565b60405180910390fd5b610fa3610f9530610a5f565b47610f9e610c7c565b612023565b6001601d60166101000a81548160ff0219169083151502179055506001601d60146101000a81548160ff02191690831515021790555060b442610fe69190612f47565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110b66112cd565b73ffffffffffffffffffffffffffffffffffffffff16146110d657600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6111396112cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bd90612d71565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006112c583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612147565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133c90612dd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac90612cf1565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114939190612e11565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150790612db1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157790612cb1565b60405180910390fd5b600081116115c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ba90612d91565b60405180910390fd5b6009546008819055506115d4610c7c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116425750611612610c7c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611aa057600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116eb5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116f457600080fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561179f5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117f55750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611802575060075442105b1561194157600c5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118559190612f47565b1115611896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188d90612cd1565b60405180910390fd5b600b548111156118a557600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118f057600080fd5b601e426118fd9190612f47565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601d60159054906101000a900460ff161580156119ac5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119c45750601d60169054906101000a900460ff165b8015611a1a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a9f576007544211611a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5a90612c91565b60405180910390fd5b6000611a6e30610a5f565b9050600d54811115611a9d57611a8381611d9b565b60004790506000811115611a9b57611a9a47611c24565b5b505b505b5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611b4b5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ba15750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bb057600a546008819055505b611bbb8383836121aa565b505050565b6000838311158290611c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bff9190612c6f565b60405180910390fd5b5060008385611c179190613028565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c7460038461128390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c9f573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611cf060038461128390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d1b573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d6c60038461128390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d97573d6000803e3d6000fd5b5050565b6001601d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611dd357611dd2613233565b5b604051908082528060200260200182016040528015611e015781602001602082028036833780820191505090505b5090503081600081518110611e1957611e18613204565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ebb57600080fd5b505afa158015611ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef39190612690565b81600181518110611f0757611f06613204565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f6e30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112d5565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fd2959493929190612e2c565b600060405180830381600087803b158015611fec57600080fd5b505af1158015612000573d6000803e3d6000fd5b50505050506000601d60156101000a81548160ff02191690831515021790555050565b6001601d60156101000a81548160ff02191690831515021790555061206b30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856112d5565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b81526004016120d296959493929190612bf3565b6060604051808303818588803b1580156120eb57600080fd5b505af11580156120ff573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061212491906128a0565b5050506000601d60156101000a81548160ff021916908315150217905550505050565b6000808311829061218e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121859190612c6f565b60405180910390fd5b506000838561219d9190612f9d565b9050809150509392505050565b6000806121b6836123e5565b9150915061220c83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243990919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122a182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248390919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061233681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123d69190612e11565b60405180910390a35050505050565b60008060006124136103e8612405600854876124e190919063ffffffff16565b61128390919063ffffffff16565b9050600061242a828661243990919063ffffffff16565b90508082935093505050915091565b600061247b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bc0565b905092915050565b60008082846124929190612f47565b9050838110156124d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ce90612d11565b60405180910390fd5b8091505092915050565b6000808314156124f45760009050612556565b600082846125029190612fce565b90508284826125119190612f9d565b14612551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254890612d51565b60405180910390fd5b809150505b92915050565b600061256f61256a84612ec6565b612ea1565b9050808382526020820190508285602086028201111561259257612591613267565b5b60005b858110156125c257816125a888826125cc565b845260208401935060208301925050600181019050612595565b5050509392505050565b6000813590506125db8161357d565b92915050565b6000815190506125f08161357d565b92915050565b600082601f83011261260b5761260a613262565b5b813561261b84826020860161255c565b91505092915050565b60008151905061263381613594565b92915050565b600081359050612648816135ab565b92915050565b60008151905061265d816135ab565b92915050565b60006020828403121561267957612678613271565b5b6000612687848285016125cc565b91505092915050565b6000602082840312156126a6576126a5613271565b5b60006126b4848285016125e1565b91505092915050565b600080604083850312156126d4576126d3613271565b5b60006126e2858286016125cc565b92505060206126f3858286016125cc565b9150509250929050565b60008060006060848603121561271657612715613271565b5b6000612724868287016125cc565b9350506020612735868287016125cc565b925050604061274686828701612639565b9150509250925092565b6000806040838503121561276757612766613271565b5b6000612775858286016125cc565b925050602061278685828601612639565b9150509250929050565b6000602082840312156127a6576127a5613271565b5b600082013567ffffffffffffffff8111156127c4576127c361326c565b5b6127d0848285016125f6565b91505092915050565b6000602082840312156127ef576127ee613271565b5b60006127fd84828501612624565b91505092915050565b60006020828403121561281c5761281b613271565b5b600061282a84828501612639565b91505092915050565b60006020828403121561284957612848613271565b5b60006128578482850161264e565b91505092915050565b6000806040838503121561287757612876613271565b5b600061288585828601612639565b925050602061289685828601612639565b9150509250929050565b6000806000606084860312156128b9576128b8613271565b5b60006128c78682870161264e565b93505060206128d88682870161264e565b92505060406128e98682870161264e565b9150509250925092565b60006128ff838361291a565b60208301905092915050565b612914816130b1565b82525050565b6129238161305c565b82525050565b6129328161305c565b82525050565b600061294382612f02565b61294d8185612f25565b935061295883612ef2565b8060005b8381101561298957815161297088826128f3565b975061297b83612f18565b92505060018101905061295c565b5085935050505092915050565b61299f8161306e565b82525050565b6129ae816130c3565b82525050565b60006129bf82612f0d565b6129c98185612f36565b93506129d98185602086016130f9565b6129e281613276565b840191505092915050565b60006129fa602883612f36565b9150612a0582613287565b604082019050919050565b6000612a1d602383612f36565b9150612a28826132d6565b604082019050919050565b6000612a40601083612f36565b9150612a4b82613325565b602082019050919050565b6000612a63602283612f36565b9150612a6e8261334e565b604082019050919050565b6000612a86601b83612f36565b9150612a918261339d565b602082019050919050565b6000612aa9601f83612f36565b9150612ab4826133c6565b602082019050919050565b6000612acc602183612f36565b9150612ad7826133ef565b604082019050919050565b6000612aef602083612f36565b9150612afa8261343e565b602082019050919050565b6000612b12602983612f36565b9150612b1d82613467565b604082019050919050565b6000612b35602583612f36565b9150612b40826134b6565b604082019050919050565b6000612b58602483612f36565b9150612b6382613505565b604082019050919050565b6000612b7b601783612f36565b9150612b8682613554565b602082019050919050565b612b9a8161309a565b82525050565b612ba9816130a4565b82525050565b6000602082019050612bc46000830184612929565b92915050565b6000604082019050612bdf600083018561290b565b612bec6020830184612b91565b9392505050565b600060c082019050612c086000830189612929565b612c156020830188612b91565b612c2260408301876129a5565b612c2f60608301866129a5565b612c3c6080830185612929565b612c4960a0830184612b91565b979650505050505050565b6000602082019050612c696000830184612996565b92915050565b60006020820190508181036000830152612c8981846129b4565b905092915050565b60006020820190508181036000830152612caa816129ed565b9050919050565b60006020820190508181036000830152612cca81612a10565b9050919050565b60006020820190508181036000830152612cea81612a33565b9050919050565b60006020820190508181036000830152612d0a81612a56565b9050919050565b60006020820190508181036000830152612d2a81612a79565b9050919050565b60006020820190508181036000830152612d4a81612a9c565b9050919050565b60006020820190508181036000830152612d6a81612abf565b9050919050565b60006020820190508181036000830152612d8a81612ae2565b9050919050565b60006020820190508181036000830152612daa81612b05565b9050919050565b60006020820190508181036000830152612dca81612b28565b9050919050565b60006020820190508181036000830152612dea81612b4b565b9050919050565b60006020820190508181036000830152612e0a81612b6e565b9050919050565b6000602082019050612e266000830184612b91565b92915050565b600060a082019050612e416000830188612b91565b612e4e60208301876129a5565b8181036040830152612e608186612938565b9050612e6f6060830185612929565b612e7c6080830184612b91565b9695505050505050565b6000602082019050612e9b6000830184612ba0565b92915050565b6000612eab612ebc565b9050612eb7828261312c565b919050565b6000604051905090565b600067ffffffffffffffff821115612ee157612ee0613233565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612f528261309a565b9150612f5d8361309a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f9257612f916131a6565b5b828201905092915050565b6000612fa88261309a565b9150612fb38361309a565b925082612fc357612fc26131d5565b5b828204905092915050565b6000612fd98261309a565b9150612fe48361309a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561301d5761301c6131a6565b5b828202905092915050565b60006130338261309a565b915061303e8361309a565b925082821015613051576130506131a6565b5b828203905092915050565b60006130678261307a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006130bc826130d5565b9050919050565b60006130ce8261309a565b9050919050565b60006130e0826130e7565b9050919050565b60006130f28261307a565b9050919050565b60005b838110156131175780820151818401526020810190506130fc565b83811115613126576000848401525b50505050565b61313582613276565b810181811067ffffffffffffffff8211171561315457613153613233565b5b80604052505050565b60006131688261309a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561319b5761319a6131a6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f63616e6e6f742073657420666565732061626f766520342520616e6420352500600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6135868161305c565b811461359157600080fd5b50565b61359d8161306e565b81146135a857600080fd5b50565b6135b48161309a565b81146135bf57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208957da31b00f2dfba6996c75f0ecd76b572a7567652e61228478f8f2de88c17b64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063715018a6116100ab578063b515566a1161006f578063b515566a146103f9578063c3c8cd8014610422578063c9567bf914610439578063dd62ed3e14610450578063e57f14e11461048d578063f2fde38b146104b657610140565b8063715018a614610338578063751039fc1461034f5780638da5cb5b1461036657806395d89b4114610391578063a9059cbb146103bc57610140565b806323b872dd116100fd57806323b872dd1461022a578063273123b714610267578063313ce567146102905780634ea18fab146102bb5780636fc3eaec146102e457806370a08231146102fb57610140565b806306fdde0314610145578063095ea7b31461017057806316114acd146101ad57806318160ddd146101d657806321ecff5b1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104df565b6040516101679190612c6f565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612750565b61051c565b6040516101a49190612c54565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf9190612663565b61053a565b005b3480156101e257600080fd5b506101eb6106dc565b6040516101f89190612e11565b60405180910390f35b34801561020d57600080fd5b5061022860048036038101906102239190612860565b6106ec565b005b34801561023657600080fd5b50610251600480360381019061024c91906126fd565b6107b0565b60405161025e9190612c54565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190612663565b610889565b005b34801561029c57600080fd5b506102a5610979565b6040516102b29190612e86565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd9190612806565b610982565b005b3480156102f057600080fd5b506102f96109ed565b005b34801561030757600080fd5b50610322600480360381019061031d9190612663565b610a5f565b60405161032f9190612e11565b60405180910390f35b34801561034457600080fd5b5061034d610aa8565b005b34801561035b57600080fd5b50610364610bfb565b005b34801561037257600080fd5b5061037b610c7c565b6040516103889190612baf565b60405180910390f35b34801561039d57600080fd5b506103a6610ca5565b6040516103b39190612c6f565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190612750565b610ce2565b6040516103f09190612c54565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b9190612790565b610d00565b005b34801561042e57600080fd5b50610437610e2a565b005b34801561044557600080fd5b5061044e610ea4565b005b34801561045c57600080fd5b50610477600480360381019061047291906126bd565b610fee565b6040516104849190612e11565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190612663565b611075565b005b3480156104c257600080fd5b506104dd60048036038101906104d89190612663565b611131565b005b60606040518060400160405280600681526020017f4e696e67796f0000000000000000000000000000000000000000000000000000815250905090565b60006105306105296112cd565b84846112d5565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661057b6112cd565b73ffffffffffffffffffffffffffffffffffffffff161461059b57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106189190612baf565b60206040518083038186803b15801561063057600080fd5b505afa158015610644573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106689190612833565b6040518363ffffffff1660e01b8152600401610685929190612bca565b602060405180830381600087803b15801561069f57600080fd5b505af11580156106b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d791906127d9565b505050565b6000670de0b6b3a7640000905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661072d6112cd565b73ffffffffffffffffffffffffffffffffffffffff161461074d57600080fd5b6028821115801561075f575060328111155b61079e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079590612d31565b60405180910390fd5b8160098190555080600a819055505050565b60006107bd8484846114a0565b61087e846107c96112cd565b610879856040518060600160405280602881526020016135c360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061082f6112cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bc09092919063ffffffff16565b6112d5565b600190509392505050565b6108916112cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461091e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091590612d71565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109c36112cd565b73ffffffffffffffffffffffffffffffffffffffff16146109e357600080fd5b80600d8190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a2e6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614610a4e57600080fd5b6000479050610a5c81611c24565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ab06112cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3490612d71565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c3c6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614610c5c57600080fd5b670de0b6b3a7640000600b81905550670de0b6b3a7640000600c81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4e494e47594f0000000000000000000000000000000000000000000000000000815250905090565b6000610cf6610cef6112cd565b84846114a0565b6001905092915050565b610d086112cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90612d71565b60405180910390fd5b60005b8151811015610e2657600160056000848481518110610dba57610db9613204565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e1e9061315d565b915050610d98565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e6b6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614610e8b57600080fd5b6000610e9630610a5f565b9050610ea181611d9b565b50565b610eac6112cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3090612d71565b60405180910390fd5b601d60149054906101000a900460ff1615610f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8090612df1565b60405180910390fd5b610fa3610f9530610a5f565b47610f9e610c7c565b612023565b6001601d60166101000a81548160ff0219169083151502179055506001601d60146101000a81548160ff02191690831515021790555060b442610fe69190612f47565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110b66112cd565b73ffffffffffffffffffffffffffffffffffffffff16146110d657600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6111396112cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bd90612d71565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006112c583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612147565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133c90612dd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac90612cf1565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114939190612e11565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150790612db1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611580576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157790612cb1565b60405180910390fd5b600081116115c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ba90612d91565b60405180910390fd5b6009546008819055506115d4610c7c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116425750611612610c7c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611aa057600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116eb5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116f457600080fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561179f5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117f55750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611802575060075442105b1561194157600c5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118559190612f47565b1115611896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188d90612cd1565b60405180910390fd5b600b548111156118a557600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118f057600080fd5b601e426118fd9190612f47565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601d60159054906101000a900460ff161580156119ac5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119c45750601d60169054906101000a900460ff165b8015611a1a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a9f576007544211611a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5a90612c91565b60405180910390fd5b6000611a6e30610a5f565b9050600d54811115611a9d57611a8381611d9b565b60004790506000811115611a9b57611a9a47611c24565b5b505b505b5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611b4b5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ba15750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bb057600a546008819055505b611bbb8383836121aa565b505050565b6000838311158290611c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bff9190612c6f565b60405180910390fd5b5060008385611c179190613028565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c7460038461128390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c9f573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611cf060038461128390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d1b573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d6c60038461128390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d97573d6000803e3d6000fd5b5050565b6001601d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611dd357611dd2613233565b5b604051908082528060200260200182016040528015611e015781602001602082028036833780820191505090505b5090503081600081518110611e1957611e18613204565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ebb57600080fd5b505afa158015611ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef39190612690565b81600181518110611f0757611f06613204565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f6e30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112d5565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fd2959493929190612e2c565b600060405180830381600087803b158015611fec57600080fd5b505af1158015612000573d6000803e3d6000fd5b50505050506000601d60156101000a81548160ff02191690831515021790555050565b6001601d60156101000a81548160ff02191690831515021790555061206b30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856112d5565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b81526004016120d296959493929190612bf3565b6060604051808303818588803b1580156120eb57600080fd5b505af11580156120ff573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061212491906128a0565b5050506000601d60156101000a81548160ff021916908315150217905550505050565b6000808311829061218e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121859190612c6f565b60405180910390fd5b506000838561219d9190612f9d565b9050809150509392505050565b6000806121b6836123e5565b9150915061220c83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243990919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122a182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248390919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061233681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123d69190612e11565b60405180910390a35050505050565b60008060006124136103e8612405600854876124e190919063ffffffff16565b61128390919063ffffffff16565b9050600061242a828661243990919063ffffffff16565b90508082935093505050915091565b600061247b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bc0565b905092915050565b60008082846124929190612f47565b9050838110156124d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ce90612d11565b60405180910390fd5b8091505092915050565b6000808314156124f45760009050612556565b600082846125029190612fce565b90508284826125119190612f9d565b14612551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254890612d51565b60405180910390fd5b809150505b92915050565b600061256f61256a84612ec6565b612ea1565b9050808382526020820190508285602086028201111561259257612591613267565b5b60005b858110156125c257816125a888826125cc565b845260208401935060208301925050600181019050612595565b5050509392505050565b6000813590506125db8161357d565b92915050565b6000815190506125f08161357d565b92915050565b600082601f83011261260b5761260a613262565b5b813561261b84826020860161255c565b91505092915050565b60008151905061263381613594565b92915050565b600081359050612648816135ab565b92915050565b60008151905061265d816135ab565b92915050565b60006020828403121561267957612678613271565b5b6000612687848285016125cc565b91505092915050565b6000602082840312156126a6576126a5613271565b5b60006126b4848285016125e1565b91505092915050565b600080604083850312156126d4576126d3613271565b5b60006126e2858286016125cc565b92505060206126f3858286016125cc565b9150509250929050565b60008060006060848603121561271657612715613271565b5b6000612724868287016125cc565b9350506020612735868287016125cc565b925050604061274686828701612639565b9150509250925092565b6000806040838503121561276757612766613271565b5b6000612775858286016125cc565b925050602061278685828601612639565b9150509250929050565b6000602082840312156127a6576127a5613271565b5b600082013567ffffffffffffffff8111156127c4576127c361326c565b5b6127d0848285016125f6565b91505092915050565b6000602082840312156127ef576127ee613271565b5b60006127fd84828501612624565b91505092915050565b60006020828403121561281c5761281b613271565b5b600061282a84828501612639565b91505092915050565b60006020828403121561284957612848613271565b5b60006128578482850161264e565b91505092915050565b6000806040838503121561287757612876613271565b5b600061288585828601612639565b925050602061289685828601612639565b9150509250929050565b6000806000606084860312156128b9576128b8613271565b5b60006128c78682870161264e565b93505060206128d88682870161264e565b92505060406128e98682870161264e565b9150509250925092565b60006128ff838361291a565b60208301905092915050565b612914816130b1565b82525050565b6129238161305c565b82525050565b6129328161305c565b82525050565b600061294382612f02565b61294d8185612f25565b935061295883612ef2565b8060005b8381101561298957815161297088826128f3565b975061297b83612f18565b92505060018101905061295c565b5085935050505092915050565b61299f8161306e565b82525050565b6129ae816130c3565b82525050565b60006129bf82612f0d565b6129c98185612f36565b93506129d98185602086016130f9565b6129e281613276565b840191505092915050565b60006129fa602883612f36565b9150612a0582613287565b604082019050919050565b6000612a1d602383612f36565b9150612a28826132d6565b604082019050919050565b6000612a40601083612f36565b9150612a4b82613325565b602082019050919050565b6000612a63602283612f36565b9150612a6e8261334e565b604082019050919050565b6000612a86601b83612f36565b9150612a918261339d565b602082019050919050565b6000612aa9601f83612f36565b9150612ab4826133c6565b602082019050919050565b6000612acc602183612f36565b9150612ad7826133ef565b604082019050919050565b6000612aef602083612f36565b9150612afa8261343e565b602082019050919050565b6000612b12602983612f36565b9150612b1d82613467565b604082019050919050565b6000612b35602583612f36565b9150612b40826134b6565b604082019050919050565b6000612b58602483612f36565b9150612b6382613505565b604082019050919050565b6000612b7b601783612f36565b9150612b8682613554565b602082019050919050565b612b9a8161309a565b82525050565b612ba9816130a4565b82525050565b6000602082019050612bc46000830184612929565b92915050565b6000604082019050612bdf600083018561290b565b612bec6020830184612b91565b9392505050565b600060c082019050612c086000830189612929565b612c156020830188612b91565b612c2260408301876129a5565b612c2f60608301866129a5565b612c3c6080830185612929565b612c4960a0830184612b91565b979650505050505050565b6000602082019050612c696000830184612996565b92915050565b60006020820190508181036000830152612c8981846129b4565b905092915050565b60006020820190508181036000830152612caa816129ed565b9050919050565b60006020820190508181036000830152612cca81612a10565b9050919050565b60006020820190508181036000830152612cea81612a33565b9050919050565b60006020820190508181036000830152612d0a81612a56565b9050919050565b60006020820190508181036000830152612d2a81612a79565b9050919050565b60006020820190508181036000830152612d4a81612a9c565b9050919050565b60006020820190508181036000830152612d6a81612abf565b9050919050565b60006020820190508181036000830152612d8a81612ae2565b9050919050565b60006020820190508181036000830152612daa81612b05565b9050919050565b60006020820190508181036000830152612dca81612b28565b9050919050565b60006020820190508181036000830152612dea81612b4b565b9050919050565b60006020820190508181036000830152612e0a81612b6e565b9050919050565b6000602082019050612e266000830184612b91565b92915050565b600060a082019050612e416000830188612b91565b612e4e60208301876129a5565b8181036040830152612e608186612938565b9050612e6f6060830185612929565b612e7c6080830184612b91565b9695505050505050565b6000602082019050612e9b6000830184612ba0565b92915050565b6000612eab612ebc565b9050612eb7828261312c565b919050565b6000604051905090565b600067ffffffffffffffff821115612ee157612ee0613233565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612f528261309a565b9150612f5d8361309a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f9257612f916131a6565b5b828201905092915050565b6000612fa88261309a565b9150612fb38361309a565b925082612fc357612fc26131d5565b5b828204905092915050565b6000612fd98261309a565b9150612fe48361309a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561301d5761301c6131a6565b5b828202905092915050565b60006130338261309a565b915061303e8361309a565b925082821015613051576130506131a6565b5b828203905092915050565b60006130678261307a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006130bc826130d5565b9050919050565b60006130ce8261309a565b9050919050565b60006130e0826130e7565b9050919050565b60006130f28261307a565b9050919050565b60005b838110156131175780820151818401526020810190506130fc565b83811115613126576000848401525b50505050565b61313582613276565b810181811067ffffffffffffffff8211171561315457613153613233565b5b80604052505050565b60006131688261309a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561319b5761319a6131a6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f63616e6e6f742073657420666565732061626f766520342520616e6420352500600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6135868161305c565b811461359157600080fd5b50565b61359d8161306e565b81146135a857600080fd5b50565b6135b48161309a565b81146135bf57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208957da31b00f2dfba6996c75f0ecd76b572a7567652e61228478f8f2de88c17b64736f6c63430008070033

Deployed Bytecode Sourcemap

3739:9872:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6580:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7411:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13364:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6857:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8050:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7580:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12156:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6766:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7906:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12923:188;;;;;;;;;;;;;:::i;:::-;;6960:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2818:148;;;;;;;;;;;;;:::i;:::-;;8293:156;;;;;;;;;;;;;:::i;:::-;;2423:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6671:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7085:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11980:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12722:189;;;;;;;;;;;;;:::i;:::-;;11674:294;;;;;;;;;;;;;:::i;:::-;;7260:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8457:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2637:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6580:83;6617:13;6650:5;;;;;;;;;;;;;;;;;6643:12;;6580:83;:::o;7411:161::-;7486:4;7503:39;7512:12;:10;:12::i;:::-;7526:7;7535:6;7503:8;:39::i;:::-;7560:4;7553:11;;7411:161;;;;:::o;13364:244::-;13453:9;;;;;;;;;;;13437:25;;:12;:10;:12::i;:::-;:25;;;13429:34;;;;;;13474:20;13504:12;13474:43;;13528:13;:22;;;13551:9;;;;;;;;;;;13561:13;:23;;;13593:4;13561:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13528:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13418:190;13364:244;:::o;6857:95::-;6910:7;4194:17;6930:14;;6857:95;:::o;8050:235::-;8143:9;;;;;;;;;;;8127:25;;:12;:10;:12::i;:::-;:25;;;8119:34;;;;;;8180:2;8172:4;:10;;:25;;;;;8195:2;8186:5;:11;;8172:25;8164:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8250:4;8243;:11;;;;8272:5;8265:4;:12;;;;8050:235;;:::o;7580:313::-;7678:4;7695:36;7705:6;7713:9;7724:6;7695:9;:36::i;:::-;7742:121;7751:6;7759:12;:10;:12::i;:::-;7773:89;7811:6;7773:89;;;;;;;;;;;;;;;;;:11;:19;7785:6;7773:19;;;;;;;;;;;;;;;:33;7793:12;:10;:12::i;:::-;7773:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7742:8;:121::i;:::-;7881:4;7874:11;;7580:313;;;;;:::o;12156:88::-;2560:12;:10;:12::i;:::-;2550:22;;:6;;;;;;;;;;:22;;;2542:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12231:5:::1;12216:4;:12;12221:6;12216:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12156:88:::0;:::o;6766:83::-;6807:5;4577:1;6825:16;;6766:83;:::o;7906:136::-;7992:9;;;;;;;;;;;7976:25;;:12;:10;:12::i;:::-;:25;;;7968:34;;;;;;8026:6;8013:10;:19;;;;7906:136;:::o;12923:188::-;12989:9;;;;;;;;;;;12973:25;;:12;:10;:12::i;:::-;:25;;;12965:34;;;;;;13010:26;13039:21;13010:50;;13071:32;13084:18;13071:12;:32::i;:::-;12954:157;12923:188::o;6960:117::-;7026:7;7053;:16;7061:7;7053:16;;;;;;;;;;;;;;;;7046:23;;6960:117;;;:::o;2818:148::-;2560:12;:10;:12::i;:::-;2550:22;;:6;;;;;;;;;;:22;;;2542:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2925:1:::1;2888:40;;2909:6;::::0;::::1;;;;;;;;2888:40;;;;;;;;;;;;2956:1;2939:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2818:148::o:0;8293:156::-;8361:9;;;;;;;;;;;8345:25;;:12;:10;:12::i;:::-;:25;;;8337:34;;;;;;4194:17;8382:12;:22;;;;4194:17;8415:16;:26;;;;8293:156::o;2423:79::-;2461:7;2488:6;;;;;;;;;;;2481:13;;2423:79;:::o;6671:87::-;6710:13;6743:7;;;;;;;;;;;;;;;;;6736:14;;6671:87;:::o;7085:167::-;7163:4;7180:42;7190:12;:10;:12::i;:::-;7204:9;7215:6;7180:9;:42::i;:::-;7240:4;7233:11;;7085:167;;;;:::o;11980:164::-;2560:12;:10;:12::i;:::-;2550:22;;:6;;;;;;;;;;:22;;;2542:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12054:6:::1;12049:88;12070:5;:12;12066:1;:16;12049:88;;;12121:4;12104;:14;12109:5;12115:1;12109:8;;;;;;;;:::i;:::-;;;;;;;;12104:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12084:3;;;;;:::i;:::-;;;;12049:88;;;;11980:164:::0;:::o;12722:189::-;12788:9;;;;;;;;;;;12772:25;;:12;:10;:12::i;:::-;:25;;;12764:34;;;;;;12809:23;12835:24;12853:4;12835:9;:24::i;:::-;12809:50;;12870:33;12887:15;12870:16;:33::i;:::-;12753:158;12722:189::o;11674:294::-;2560:12;:10;:12::i;:::-;2550:22;;:6;;;;;;;;;;:22;;;2542:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11738:11:::1;;;;;;;;;;;11737:12;11729:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11787:68;11800:24;11818:4;11800:9;:24::i;:::-;11825:21;11847:7;:5;:7::i;:::-;11787:12;:68::i;:::-;11880:4;11866:11;;:18;;;;;;;;;;;;;;;;;;11909:4;11895:11;;:18;;;;;;;;;;;;;;;;;;11950:9;11931:15;:29;;;;:::i;:::-;11924:4;:36;;;;11674:294::o:0;7260:143::-;7341:7;7368:11;:18;7380:5;7368:18;;;;;;;;;;;;;;;:27;7387:7;7368:27;;;;;;;;;;;;;;;;7361:34;;7260:143;;;;:::o;8457:147::-;8542:9;;;;;;;;;;;8526:25;;:12;:10;:12::i;:::-;:25;;;8518:34;;;;;;8592:4;8563:18;:26;8582:6;8563:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8457:147;:::o;2637:173::-;2560:12;:10;:12::i;:::-;2550:22;;:6;;;;;;;;;;:22;;;2542:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2753:9:::1;2724:39;;2745:6;::::0;::::1;;;;;;;;2724:39;;;;;;;;;;;;2783:9;2774:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;2637:173:::0;:::o;1730:132::-;1788:7;1815:39;1819:1;1822;1815:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1808:46;;1730:132;;;;:::o;141:98::-;194:7;221:10;214:17;;141:98;:::o;8617:335::-;8727:1;8710:19;;:5;:19;;;;8702:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8808:1;8789:21;;:7;:21;;;;8781:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8890:6;8860:11;:18;8872:5;8860:18;;;;;;;;;;;;;;;:27;8879:7;8860:27;;;;;;;;;;;;;;;:36;;;;8928:7;8912:32;;8921:5;8912:32;;;8937:6;8912:32;;;;;;:::i;:::-;;;;;;;;8617:335;;;:::o;8960:1710::-;9064:1;9048:18;;:4;:18;;;;9040:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9141:1;9127:16;;:2;:16;;;;9119:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9211:1;9202:6;:10;9194:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9278:4;;9271;:11;;;;9305:7;:5;:7::i;:::-;9297:15;;:4;:15;;;;:32;;;;;9322:7;:5;:7::i;:::-;9316:13;;:2;:13;;;;9297:32;9293:1185;;;9355:4;:10;9360:4;9355:10;;;;;;;;;;;;;;;;;;;;;;;;;9354:11;:24;;;;;9370:4;:8;9375:2;9370:8;;;;;;;;;;;;;;;;;;;;;;;;;9369:9;9354:24;9346:33;;;;;;9406:13;;;;;;;;;;;9398:21;;:4;:21;;;:55;;;;;9437:15;;;;;;;;;;;9423:30;;:2;:30;;;;9398:55;:83;;;;;9459:18;:22;9478:2;9459:22;;;;;;;;;;;;;;;;;;;;;;;;;9457:24;9398:83;:111;;;;;9504:4;;9486:15;:22;9398:111;9394:422;;;9592:16;;9581:6;9567:7;:11;9575:2;9567:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;9566:42;;9558:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9665:12;;9655:6;:22;;9647:31;;;;;;9720:15;9705:8;:12;9714:2;9705:12;;;;;;;;;;;;;;;;:30;9697:39;;;;;;9789:10;9770:15;:30;;;;:::i;:::-;9755:8;:12;9764:2;9755:12;;;;;;;;;;;;;;;:45;;;;9394:422;9863:6;;;;;;;;;;;9862:7;:32;;;;;9881:13;;;;;;;;;;;9873:21;;:4;:21;;;;9862:32;:47;;;;;9898:11;;;;;;;;;;;9862:47;:76;;;;;9914:18;:24;9933:4;9914:24;;;;;;;;;;;;;;;;;;;;;;;;;9913:25;9862:76;9858:609;;;9985:4;;9967:15;:22;9959:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10052:28;10083:24;10101:4;10083:9;:24::i;:::-;10052:55;;10152:10;;10129:20;:33;10126:326;;;10186:38;10203:20;10186:16;:38::i;:::-;10247:26;10276:21;10247:50;;10344:1;10323:18;:22;10320:113;;;10374:35;10387:21;10374:12;:35::i;:::-;10320:113;10163:289;10126:326;9940:527;9858:609;9293:1185;10498:13;;;;;;;;;;;10492:19;;:2;:19;;;:55;;;;;10531:15;;;;;;;;;;;10515:32;;:4;:32;;;;10492:55;:85;;;;;10553:18;:24;10572:4;10553:24;;;;;;;;;;;;;;;;;;;;;;;;;10551:26;10492:85;10488:129;;;10601:4;;10594;:11;;;;10488:129;10629:33;10647:4;10652:2;10655:6;10629:17;:33::i;:::-;8960:1710;;;:::o;1278:190::-;1364:7;1397:1;1392;:6;;1400:12;1384:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1424:9;1440:1;1436;:5;;;;:::i;:::-;1424:17;;1459:1;1452:8;;;1278:190;;;;;:::o;11477:185::-;11534:9;;;;;;;;;;;:18;;:33;11553:13;11564:1;11553:6;:10;;:13;;;;:::i;:::-;11534:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11578:10;;;;;;;;;;;:19;;:34;11598:13;11609:1;11598:6;:10;;:13;;;;:::i;:::-;11578:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11623:7;;;;;;;;;;;:16;;:31;11640:13;11651:1;11640:6;:10;;:13;;;;:::i;:::-;11623:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11477:185;:::o;10678:483::-;5587:4;5578:6;;:13;;;;;;;;;;;;;;;;;;10756:21:::1;10794:1;10780:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10756:40;;10825:4;10807;10812:1;10807:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10851:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10841:4;10846:1;10841:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10884:62;10901:4;10916:15;;;;;;;;;;;10934:11;10884:8;:62::i;:::-;10957:15;;;;;;;;;;;:66;;;11038:11;11064:1;11080:4;11107;11127:15;10957:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10745:416;5623:5:::0;5614:6;;:14;;;;;;;;;;;;;;;;;;10678:483;:::o;11175:288::-;5587:4;5578:6;;:13;;;;;;;;;;;;;;;;;;11281:60:::1;11298:4;11312:15;;;;;;;;;;;11329:11;11281:8;:60::i;:::-;11352:15;;;;;;;;;;;:31;;;11391:9;11410:4;11416:11;11428:1;11430::::0;11432:6:::1;11439:15;11352:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5623:5:::0;5614:6;;:14;;;;;;;;;;;;;;;;;;11175:288;;;:::o;1870:189::-;1956:7;1988:1;1984;:5;1991:12;1976:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2015:9;2031:1;2027;:5;;;;:::i;:::-;2015:17;;2050:1;2043:8;;;1870:189;;;;;:::o;12252:421::-;12351:22;12374:12;12390:20;12402:7;12390:11;:20::i;:::-;12350:60;;;;12439:28;12459:7;12439;:15;12447:6;12439:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12421:7;:15;12429:6;12421:15;;;;;;;;;;;;;;;:46;;;;12499:38;12522:14;12499:7;:18;12507:9;12499:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;12478:7;:18;12486:9;12478:18;;;;;;;;;;;;;;;:59;;;;12574:32;12601:4;12574:7;:22;12590:4;12574:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;12549:7;:22;12565:4;12549:22;;;;;;;;;;;;;;;:57;;;;12639:9;12622:43;;12631:6;12622:43;;;12650:14;12622:43;;;;;;:::i;:::-;;;;;;;;12339:334;;12252:421;;;:::o;13122:234::-;13182:7;13191;13211:12;13226:27;13248:4;13226:17;13238:4;;13226:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;13211:42;;13264:23;13290:17;13302:4;13290:7;:11;;:17;;;;:::i;:::-;13264:43;;13326:15;13343:4;13318:30;;;;;;13122:234;;;:::o;1134:136::-;1192:7;1219:43;1223:1;1226;1219:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1212:50;;1134:136;;;;:::o;947:179::-;1005:7;1025:9;1041:1;1037;:5;;;;:::i;:::-;1025:17;;1066:1;1061;:6;;1053:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1117:1;1110:8;;;947:179;;;;:::o;1476:246::-;1534:7;1563:1;1558;:6;1554:47;;;1588:1;1581:8;;;;1554:47;1611:9;1627:1;1623;:5;;;;:::i;:::-;1611:17;;1656:1;1651;1647;:5;;;;:::i;:::-;:10;1639:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1713:1;1706:8;;;1476:246;;;;;:::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:351::-;5454:6;5503:2;5491:9;5482:7;5478:23;5474:32;5471:119;;;5509:79;;:::i;:::-;5471:119;5629:1;5654:64;5710:7;5701:6;5690:9;5686:22;5654:64;:::i;:::-;5644:74;;5600:128;5384:351;;;;:::o;5741:474::-;5809:6;5817;5866:2;5854:9;5845:7;5841:23;5837:32;5834:119;;;5872:79;;:::i;:::-;5834:119;5992:1;6017:53;6062:7;6053:6;6042:9;6038:22;6017:53;:::i;:::-;6007:63;;5963:117;6119:2;6145:53;6190:7;6181:6;6170:9;6166:22;6145:53;:::i;:::-;6135:63;;6090:118;5741:474;;;;;:::o;6221:663::-;6309:6;6317;6325;6374:2;6362:9;6353:7;6349:23;6345:32;6342:119;;;6380:79;;:::i;:::-;6342:119;6500:1;6525:64;6581:7;6572:6;6561:9;6557:22;6525:64;:::i;:::-;6515:74;;6471:128;6638:2;6664:64;6720:7;6711:6;6700:9;6696:22;6664:64;:::i;:::-;6654:74;;6609:129;6777:2;6803:64;6859:7;6850:6;6839:9;6835:22;6803:64;:::i;:::-;6793:74;;6748:129;6221:663;;;;;:::o;6890:179::-;6959:10;6980:46;7022:3;7014:6;6980:46;:::i;:::-;7058:4;7053:3;7049:14;7035:28;;6890:179;;;;:::o;7075:147::-;7170:45;7209:5;7170:45;:::i;:::-;7165:3;7158:58;7075:147;;:::o;7228:108::-;7305:24;7323:5;7305:24;:::i;:::-;7300:3;7293:37;7228:108;;:::o;7342:118::-;7429:24;7447:5;7429:24;:::i;:::-;7424:3;7417:37;7342:118;;:::o;7496:732::-;7615:3;7644:54;7692:5;7644:54;:::i;:::-;7714:86;7793:6;7788:3;7714:86;:::i;:::-;7707:93;;7824:56;7874:5;7824:56;:::i;:::-;7903:7;7934:1;7919:284;7944:6;7941:1;7938:13;7919:284;;;8020:6;8014:13;8047:63;8106:3;8091:13;8047:63;:::i;:::-;8040:70;;8133:60;8186:6;8133:60;:::i;:::-;8123:70;;7979:224;7966:1;7963;7959:9;7954:14;;7919:284;;;7923:14;8219:3;8212:10;;7620:608;;;7496:732;;;;:::o;8234:109::-;8315:21;8330:5;8315:21;:::i;:::-;8310:3;8303:34;8234:109;;:::o;8349:147::-;8444:45;8483:5;8444:45;:::i;:::-;8439:3;8432:58;8349:147;;:::o;8502:364::-;8590:3;8618:39;8651:5;8618:39;:::i;:::-;8673:71;8737:6;8732:3;8673:71;:::i;:::-;8666:78;;8753:52;8798:6;8793:3;8786:4;8779:5;8775:16;8753:52;:::i;:::-;8830:29;8852:6;8830:29;:::i;:::-;8825:3;8821:39;8814:46;;8594:272;8502:364;;;;:::o;8872:366::-;9014:3;9035:67;9099:2;9094:3;9035:67;:::i;:::-;9028:74;;9111:93;9200:3;9111:93;:::i;:::-;9229:2;9224:3;9220:12;9213:19;;8872:366;;;:::o;9244:::-;9386:3;9407:67;9471:2;9466:3;9407:67;:::i;:::-;9400:74;;9483:93;9572:3;9483:93;:::i;:::-;9601:2;9596:3;9592:12;9585:19;;9244:366;;;:::o;9616:::-;9758:3;9779:67;9843:2;9838:3;9779:67;:::i;:::-;9772:74;;9855:93;9944:3;9855:93;:::i;:::-;9973:2;9968:3;9964:12;9957:19;;9616:366;;;:::o;9988:::-;10130:3;10151:67;10215:2;10210:3;10151:67;:::i;:::-;10144:74;;10227:93;10316:3;10227:93;:::i;:::-;10345:2;10340:3;10336:12;10329:19;;9988:366;;;:::o;10360:::-;10502:3;10523:67;10587:2;10582:3;10523:67;:::i;:::-;10516:74;;10599:93;10688:3;10599:93;:::i;:::-;10717:2;10712:3;10708:12;10701:19;;10360:366;;;:::o;10732:::-;10874:3;10895:67;10959:2;10954:3;10895:67;:::i;:::-;10888:74;;10971:93;11060:3;10971:93;:::i;:::-;11089:2;11084:3;11080:12;11073:19;;10732:366;;;:::o;11104:::-;11246:3;11267:67;11331:2;11326:3;11267:67;:::i;:::-;11260:74;;11343:93;11432:3;11343:93;:::i;:::-;11461:2;11456:3;11452:12;11445:19;;11104:366;;;:::o;11476:::-;11618:3;11639:67;11703:2;11698:3;11639:67;:::i;:::-;11632:74;;11715:93;11804:3;11715:93;:::i;:::-;11833:2;11828:3;11824:12;11817:19;;11476:366;;;:::o;11848:::-;11990:3;12011:67;12075:2;12070:3;12011:67;:::i;:::-;12004:74;;12087:93;12176:3;12087:93;:::i;:::-;12205:2;12200:3;12196:12;12189:19;;11848:366;;;:::o;12220:::-;12362:3;12383:67;12447:2;12442:3;12383:67;:::i;:::-;12376:74;;12459:93;12548:3;12459:93;:::i;:::-;12577:2;12572:3;12568:12;12561:19;;12220:366;;;:::o;12592:::-;12734:3;12755:67;12819:2;12814:3;12755:67;:::i;:::-;12748:74;;12831:93;12920:3;12831:93;:::i;:::-;12949:2;12944:3;12940:12;12933:19;;12592:366;;;:::o;12964:::-;13106:3;13127:67;13191:2;13186:3;13127:67;:::i;:::-;13120:74;;13203:93;13292:3;13203:93;:::i;:::-;13321:2;13316:3;13312:12;13305:19;;12964:366;;;:::o;13336:118::-;13423:24;13441:5;13423:24;:::i;:::-;13418:3;13411:37;13336:118;;:::o;13460:112::-;13543:22;13559:5;13543:22;:::i;:::-;13538:3;13531:35;13460:112;;:::o;13578:222::-;13671:4;13709:2;13698:9;13694:18;13686:26;;13722:71;13790:1;13779:9;13775:17;13766:6;13722:71;:::i;:::-;13578:222;;;;:::o;13806:348::-;13935:4;13973:2;13962:9;13958:18;13950:26;;13986:79;14062:1;14051:9;14047:17;14038:6;13986:79;:::i;:::-;14075:72;14143:2;14132:9;14128:18;14119:6;14075:72;:::i;:::-;13806:348;;;;;:::o;14160:807::-;14409:4;14447:3;14436:9;14432:19;14424:27;;14461:71;14529:1;14518:9;14514:17;14505:6;14461:71;:::i;:::-;14542:72;14610:2;14599:9;14595:18;14586:6;14542:72;:::i;:::-;14624:80;14700:2;14689:9;14685:18;14676:6;14624:80;:::i;:::-;14714;14790:2;14779:9;14775:18;14766:6;14714:80;:::i;:::-;14804:73;14872:3;14861:9;14857:19;14848:6;14804:73;:::i;:::-;14887;14955:3;14944:9;14940:19;14931:6;14887:73;:::i;:::-;14160:807;;;;;;;;;:::o;14973:210::-;15060:4;15098:2;15087:9;15083:18;15075:26;;15111:65;15173:1;15162:9;15158:17;15149:6;15111:65;:::i;:::-;14973:210;;;;:::o;15189:313::-;15302:4;15340:2;15329:9;15325:18;15317:26;;15389:9;15383:4;15379:20;15375:1;15364:9;15360:17;15353:47;15417:78;15490:4;15481:6;15417:78;:::i;:::-;15409:86;;15189:313;;;;:::o;15508:419::-;15674:4;15712:2;15701:9;15697:18;15689:26;;15761:9;15755:4;15751:20;15747:1;15736:9;15732:17;15725:47;15789:131;15915:4;15789:131;:::i;:::-;15781:139;;15508:419;;;:::o;15933:::-;16099:4;16137:2;16126:9;16122:18;16114:26;;16186:9;16180:4;16176:20;16172:1;16161:9;16157:17;16150:47;16214:131;16340:4;16214:131;:::i;:::-;16206:139;;15933:419;;;:::o;16358:::-;16524:4;16562:2;16551:9;16547:18;16539:26;;16611:9;16605:4;16601:20;16597:1;16586:9;16582:17;16575:47;16639:131;16765:4;16639:131;:::i;:::-;16631:139;;16358:419;;;:::o;16783:::-;16949:4;16987:2;16976:9;16972:18;16964:26;;17036:9;17030:4;17026:20;17022:1;17011:9;17007:17;17000:47;17064:131;17190:4;17064:131;:::i;:::-;17056:139;;16783:419;;;:::o;17208:::-;17374:4;17412:2;17401:9;17397:18;17389:26;;17461:9;17455:4;17451:20;17447:1;17436:9;17432:17;17425:47;17489:131;17615:4;17489:131;:::i;:::-;17481:139;;17208:419;;;:::o;17633:::-;17799:4;17837:2;17826:9;17822:18;17814:26;;17886:9;17880:4;17876:20;17872:1;17861:9;17857:17;17850:47;17914:131;18040:4;17914:131;:::i;:::-;17906:139;;17633:419;;;:::o;18058:::-;18224:4;18262:2;18251:9;18247:18;18239:26;;18311:9;18305:4;18301:20;18297:1;18286:9;18282:17;18275:47;18339:131;18465:4;18339:131;:::i;:::-;18331:139;;18058:419;;;:::o;18483:::-;18649:4;18687:2;18676:9;18672:18;18664:26;;18736:9;18730:4;18726:20;18722:1;18711:9;18707:17;18700:47;18764:131;18890:4;18764:131;:::i;:::-;18756:139;;18483:419;;;:::o;18908:::-;19074:4;19112:2;19101:9;19097:18;19089:26;;19161:9;19155:4;19151:20;19147:1;19136:9;19132:17;19125:47;19189:131;19315:4;19189:131;:::i;:::-;19181:139;;18908:419;;;:::o;19333:::-;19499:4;19537:2;19526:9;19522:18;19514:26;;19586:9;19580:4;19576:20;19572:1;19561:9;19557:17;19550:47;19614:131;19740:4;19614:131;:::i;:::-;19606:139;;19333:419;;;:::o;19758:::-;19924:4;19962:2;19951:9;19947:18;19939:26;;20011:9;20005:4;20001:20;19997:1;19986:9;19982:17;19975:47;20039:131;20165:4;20039:131;:::i;:::-;20031:139;;19758:419;;;:::o;20183:::-;20349:4;20387:2;20376:9;20372:18;20364:26;;20436:9;20430:4;20426:20;20422:1;20411:9;20407:17;20400:47;20464:131;20590:4;20464:131;:::i;:::-;20456:139;;20183:419;;;:::o;20608:222::-;20701:4;20739:2;20728:9;20724:18;20716:26;;20752:71;20820:1;20809:9;20805:17;20796:6;20752:71;:::i;:::-;20608:222;;;;:::o;20836:831::-;21099:4;21137:3;21126:9;21122:19;21114:27;;21151:71;21219:1;21208:9;21204:17;21195:6;21151:71;:::i;:::-;21232:80;21308:2;21297:9;21293:18;21284:6;21232:80;:::i;:::-;21359:9;21353:4;21349:20;21344:2;21333:9;21329:18;21322:48;21387:108;21490:4;21481:6;21387:108;:::i;:::-;21379:116;;21505:72;21573:2;21562:9;21558:18;21549:6;21505:72;:::i;:::-;21587:73;21655:3;21644:9;21640:19;21631:6;21587:73;:::i;:::-;20836:831;;;;;;;;:::o;21673:214::-;21762:4;21800:2;21789:9;21785:18;21777:26;;21813:67;21877:1;21866:9;21862:17;21853:6;21813:67;:::i;:::-;21673:214;;;;:::o;21893:129::-;21927:6;21954:20;;:::i;:::-;21944:30;;21983:33;22011:4;22003:6;21983:33;:::i;:::-;21893:129;;;:::o;22028:75::-;22061:6;22094:2;22088:9;22078:19;;22028:75;:::o;22109:311::-;22186:4;22276:18;22268:6;22265:30;22262:56;;;22298:18;;:::i;:::-;22262:56;22348:4;22340:6;22336:17;22328:25;;22408:4;22402;22398:15;22390:23;;22109:311;;;:::o;22426:132::-;22493:4;22516:3;22508:11;;22546:4;22541:3;22537:14;22529:22;;22426:132;;;:::o;22564:114::-;22631:6;22665:5;22659:12;22649:22;;22564:114;;;:::o;22684:99::-;22736:6;22770:5;22764:12;22754:22;;22684:99;;;:::o;22789:113::-;22859:4;22891;22886:3;22882:14;22874:22;;22789:113;;;:::o;22908:184::-;23007:11;23041:6;23036:3;23029:19;23081:4;23076:3;23072:14;23057:29;;22908:184;;;;:::o;23098:169::-;23182:11;23216:6;23211:3;23204:19;23256:4;23251:3;23247:14;23232:29;;23098:169;;;;:::o;23273:305::-;23313:3;23332:20;23350:1;23332:20;:::i;:::-;23327:25;;23366:20;23384:1;23366:20;:::i;:::-;23361:25;;23520:1;23452:66;23448:74;23445:1;23442:81;23439:107;;;23526:18;;:::i;:::-;23439:107;23570:1;23567;23563:9;23556:16;;23273:305;;;;:::o;23584:185::-;23624:1;23641:20;23659:1;23641:20;:::i;:::-;23636:25;;23675:20;23693:1;23675:20;:::i;:::-;23670:25;;23714:1;23704:35;;23719:18;;:::i;:::-;23704:35;23761:1;23758;23754:9;23749:14;;23584:185;;;;:::o;23775:348::-;23815:7;23838:20;23856:1;23838:20;:::i;:::-;23833:25;;23872:20;23890:1;23872:20;:::i;:::-;23867:25;;24060:1;23992:66;23988:74;23985:1;23982:81;23977:1;23970:9;23963:17;23959:105;23956:131;;;24067:18;;:::i;:::-;23956:131;24115:1;24112;24108:9;24097:20;;23775:348;;;;:::o;24129:191::-;24169:4;24189:20;24207:1;24189:20;:::i;:::-;24184:25;;24223:20;24241:1;24223:20;:::i;:::-;24218:25;;24262:1;24259;24256:8;24253:34;;;24267:18;;:::i;:::-;24253:34;24312:1;24309;24305:9;24297:17;;24129:191;;;;:::o;24326:96::-;24363:7;24392:24;24410:5;24392:24;:::i;:::-;24381:35;;24326:96;;;:::o;24428:90::-;24462:7;24505:5;24498:13;24491:21;24480:32;;24428:90;;;:::o;24524:126::-;24561:7;24601:42;24594:5;24590:54;24579:65;;24524:126;;;:::o;24656:77::-;24693:7;24722:5;24711:16;;24656:77;;;:::o;24739:86::-;24774:7;24814:4;24807:5;24803:16;24792:27;;24739:86;;;:::o;24831:134::-;24889:9;24922:37;24953:5;24922:37;:::i;:::-;24909:50;;24831:134;;;:::o;24971:121::-;25029:9;25062:24;25080:5;25062:24;:::i;:::-;25049:37;;24971:121;;;:::o;25098:126::-;25148:9;25181:37;25212:5;25181:37;:::i;:::-;25168:50;;25098:126;;;:::o;25230:113::-;25280:9;25313:24;25331:5;25313:24;:::i;:::-;25300:37;;25230:113;;;:::o;25349:307::-;25417:1;25427:113;25441:6;25438:1;25435:13;25427:113;;;25526:1;25521:3;25517:11;25511:18;25507:1;25502:3;25498:11;25491:39;25463:2;25460:1;25456:10;25451:15;;25427:113;;;25558:6;25555:1;25552:13;25549:101;;;25638:1;25629:6;25624:3;25620:16;25613:27;25549:101;25398:258;25349:307;;;:::o;25662:281::-;25745:27;25767:4;25745:27;:::i;:::-;25737:6;25733:40;25875:6;25863:10;25860:22;25839:18;25827:10;25824:34;25821:62;25818:88;;;25886:18;;:::i;:::-;25818:88;25926:10;25922:2;25915:22;25705:238;25662:281;;:::o;25949:233::-;25988:3;26011:24;26029:5;26011:24;:::i;:::-;26002:33;;26057:66;26050:5;26047:77;26044:103;;;26127:18;;:::i;:::-;26044:103;26174:1;26167:5;26163:13;26156:20;;25949:233;;;:::o;26188:180::-;26236:77;26233:1;26226:88;26333:4;26330:1;26323:15;26357:4;26354:1;26347:15;26374:180;26422:77;26419:1;26412:88;26519:4;26516:1;26509:15;26543:4;26540:1;26533:15;26560:180;26608:77;26605:1;26598:88;26705:4;26702:1;26695:15;26729:4;26726:1;26719:15;26746:180;26794:77;26791:1;26784:88;26891:4;26888:1;26881:15;26915:4;26912:1;26905:15;26932:117;27041:1;27038;27031:12;27055:117;27164:1;27161;27154:12;27178:117;27287:1;27284;27277:12;27301:117;27410:1;27407;27400:12;27424:102;27465:6;27516:2;27512:7;27507:2;27500:5;27496:14;27492:28;27482:38;;27424:102;;;:::o;27532:227::-;27672:34;27668:1;27660:6;27656:14;27649:58;27741:10;27736:2;27728:6;27724:15;27717:35;27532:227;:::o;27765:222::-;27905:34;27901:1;27893:6;27889:14;27882:58;27974:5;27969:2;27961:6;27957:15;27950:30;27765:222;:::o;27993:166::-;28133:18;28129:1;28121:6;28117:14;28110:42;27993:166;:::o;28165:221::-;28305:34;28301:1;28293:6;28289:14;28282:58;28374:4;28369:2;28361:6;28357:15;28350:29;28165:221;:::o;28392:177::-;28532:29;28528:1;28520:6;28516:14;28509:53;28392:177;:::o;28575:181::-;28715:33;28711:1;28703:6;28699:14;28692:57;28575:181;:::o;28762:220::-;28902:34;28898:1;28890:6;28886:14;28879:58;28971:3;28966:2;28958:6;28954:15;28947:28;28762:220;:::o;28988:182::-;29128:34;29124:1;29116:6;29112:14;29105:58;28988:182;:::o;29176:228::-;29316:34;29312:1;29304:6;29300:14;29293:58;29385:11;29380:2;29372:6;29368:15;29361:36;29176:228;:::o;29410:224::-;29550:34;29546:1;29538:6;29534:14;29527:58;29619:7;29614:2;29606:6;29602:15;29595:32;29410:224;:::o;29640:223::-;29780:34;29776:1;29768:6;29764:14;29757:58;29849:6;29844:2;29836:6;29832:15;29825:31;29640:223;:::o;29869:173::-;30009:25;30005:1;29997:6;29993:14;29986:49;29869:173;:::o;30048:122::-;30121:24;30139:5;30121:24;:::i;:::-;30114:5;30111:35;30101:63;;30160:1;30157;30150:12;30101:63;30048:122;:::o;30176:116::-;30246:21;30261:5;30246:21;:::i;:::-;30239:5;30236:32;30226:60;;30282:1;30279;30272:12;30226:60;30176:116;:::o;30298:122::-;30371:24;30389:5;30371:24;:::i;:::-;30364:5;30361:35;30351:63;;30410:1;30407;30400:12;30351:63;30298:122;:::o

Swarm Source

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