ETH Price: $2,522.97 (-5.07%)

Token

WindowsXBillGatesElonX (WinX)
 

Overview

Max Total Supply

1,000,000 WinX

Holders

58

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.289157311951649275 WinX

Value
$0.00
0xf4F91106F536664D2D66A06B3aFCE488c8B8524f
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:
WindowsXBillGatesElonX

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-27
*/

//SPDX-License-Identifier: MIT

/*

Web: https://winxerc.com/
Telegram: https://t.me/WinXerc
Twitter: https://X.com/WinXERC

*/

pragma solidity ^0.8.0;

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

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract OwnableL {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
    external
    payable
    returns (uint[] memory amounts);
}

contract WindowsXBillGatesElonX is ERC20, OwnableL {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; 
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "WindowsXBillGatesElonX";
    string constant _symbol = "WinX";
    uint8 constant _decimals = 18;

    uint256 public _totalSupply = 1000000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = _totalSupply.mul(5).div(100); // 5%
    uint256 public _maxTxAmount = _totalSupply.mul(2).div(100); //2%

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) _auth;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 marketingFee = 7;
    uint256 devFee = 7;
    uint256 liquidityFee = 7;
    uint256 totalFee = devFee + marketingFee + liquidityFee;
    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = 0xc4F34d3541ec95c66C961a3966EE43EAC5EA2d12;
    address public devFeeReceiver = 0x7D7E1e3036D4d6673f2Da5faF5692E451Cd52FAe;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = (_totalSupply * 2) / 600; // 0.33%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    modifier onlyAuth() {
        require(_auth[msg.sender], "not auth minter"); _;
    }

    constructor () OwnableL(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;

        _auth[msg.sender] = true;

        isFeeExempt[_owner] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[DEAD] = true;

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

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
 
        if(shouldSwapBack()){ swapBack(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);

        return true;
    }

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

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        address[] memory path2 = new address[](2);
        path2[1] = address(this);
        path2[0] = router.WETH();

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore); 
        uint256 amountETHDev = amountETH.mul(devFee).div(totalFee);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalFee);
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalFee);


        (bool DevSuccess, ) = payable(devFeeReceiver).call{value: amountETHDev, gas: 30000}("");
        require(DevSuccess, "receiver rejected ETH transfer");
        (bool MarketingSuccess, ) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

        uint[] memory amounts = router.swapExactETHForTokens{value: amountETHLiquidity}(
            0,
            path2,
            pair,
            block.timestamp
         );

         _balances[address(this)] = _balances[address(this)].add(amounts[1]);
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function clearStuckBalance() external {
        payable(devFeeReceiver).transfer(address(this).balance);
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 1000;
    }

    function setFee(uint256 _devFee, uint256 _marketingFee, uint256 _liquidityFee) external onlyOwner {
        devFee = _devFee;
        marketingFee = _marketingFee;
        liquidityFee = _liquidityFee;
        totalFee = devFee + marketingFee + liquidityFee;
    }

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000ac919062000d1d565b620f4240620000bc919062000e5a565b600355620000f66064620000e260056003546200093560201b62000df61790919060201c565b620009b960201b62000e711790919060201c565b6004556200013060646200011c60026003546200093560201b62000df61790919060201c565b620009b960201b62000e711790919060201c565b6005556007600b556007600c556007600d55600d54600b54600c5462000157919062000c2d565b62000163919062000c2d565b600e556064600f5573c4f34d3541ec95c66c961a3966ee43eac5ea2d12601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737d7e1e3036d4d6673f2da5faf5692e451cd52fae601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360146101000a81548160ff021916908315150217905550610258600260035462000244919062000e5a565b62000250919062000c8a565b6014553480156200026057600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200036f57600080fd5b505afa15801562000384573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003aa919062000a8a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200042e57600080fd5b505afa15801562000443573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000469919062000a8a565b306040518363ffffffff1660e01b81526004016200048992919062000b81565b602060405180830381600087803b158015620004a457600080fd5b505af1158015620004b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004df919062000a8a565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000926919062000bf4565b60405180910390a35062000fd2565b6000808314156200094a5760009050620009b3565b600082846200095a919062000e5a565b90508284826200096b919062000c8a565b14620009ae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009a59062000bd2565b60405180910390fd5b809150505b92915050565b600062000a0383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000a0b60201b60201c565b905092915050565b6000808311829062000a55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a4c919062000bae565b60405180910390fd5b506000838562000a66919062000c8a565b9050809150509392505050565b60008151905062000a848162000fb8565b92915050565b60006020828403121562000a9d57600080fd5b600062000aad8482850162000a73565b91505092915050565b62000ac18162000ebb565b82525050565b600062000ad48262000c11565b62000ae0818562000c1c565b935062000af281856020860162000f06565b62000afd8162000f9a565b840191505092915050565b600062000b1760218362000c1c565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b62000b7b8162000eef565b82525050565b600060408201905062000b98600083018562000ab6565b62000ba7602083018462000ab6565b9392505050565b6000602082019050818103600083015262000bca818462000ac7565b905092915050565b6000602082019050818103600083015262000bed8162000b08565b9050919050565b600060208201905062000c0b600083018462000b70565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000c3a8262000eef565b915062000c478362000eef565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c7f5762000c7e62000f3c565b5b828201905092915050565b600062000c978262000eef565b915062000ca48362000eef565b92508262000cb75762000cb662000f6b565b5b828204905092915050565b6000808291508390505b600185111562000d145780860481111562000cec5762000ceb62000f3c565b5b600185161562000cfc5780820291505b808102905062000d0c8562000fab565b945062000ccc565b94509492505050565b600062000d2a8262000eef565b915062000d378362000ef9565b925062000d667fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d6e565b905092915050565b60008262000d80576001905062000e53565b8162000d90576000905062000e53565b816001811462000da9576002811462000db45762000dea565b600191505062000e53565b60ff84111562000dc95762000dc862000f3c565b5b8360020a91508482111562000de35762000de262000f3c565b5b5062000e53565b5060208310610133831016604e8410600b841016171562000e245782820a90508381111562000e1e5762000e1d62000f3c565b5b62000e53565b62000e33848484600162000cc2565b9250905081840481111562000e4d5762000e4c62000f3c565b5b81810290505b9392505050565b600062000e678262000eef565b915062000e748362000eef565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000eb05762000eaf62000f3c565b5b828202905092915050565b600062000ec88262000ecf565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101562000f2657808201518184015260208101905062000f09565b8381111562000f36576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b62000fc38162000ebb565b811462000fcf57600080fd5b50565b612c7a8062000fe26000396000f3fe60806040526004361061016a5760003560e01c80636ddd1713116100d1578063a8aa1b311161008a578063dd62ed3e11610064578063dd62ed3e1461053f578063e96fada21461057c578063f1d5f517146105a7578063f887ea40146105d057610171565b8063a8aa1b31146104ac578063a9059cbb146104d7578063dab84ee71461051457610171565b80636ddd1713146103ac57806370a08231146103d7578063715018a6146104145780637d1db4a51461042b578063893d20e81461045657806395d89b411461048157610171565b8063313ce56711610123578063313ce567146102ae578063364333f4146102d95780633eaaf86b146102f0578063571ac8b01461031b5780635b65b9ab146103585780636c0a24eb1461038157610171565b80630445b6671461017657806306fdde03146101a1578063095ea7b3146101cc57806318160ddd1461020957806323b872dd146102345780632f54bf6e1461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105fb565b6040516101989190612858565b60405180910390f35b3480156101ad57600080fd5b506101b6610601565b6040516101c39190612796565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee9190612331565b61063e565b6040516102009190612714565b60405180910390f35b34801561021557600080fd5b5061021e610730565b60405161022b9190612858565b60405180910390f35b34801561024057600080fd5b5061025b600480360381019061025691906122e2565b61073a565b6040516102689190612714565b60405180910390f35b34801561027d57600080fd5b5061029860048036038101906102939190612254565b61093a565b6040516102a59190612714565b60405180910390f35b3480156102ba57600080fd5b506102c3610993565b6040516102d091906128cd565b60405180910390f35b3480156102e557600080fd5b506102ee61099c565b005b3480156102fc57600080fd5b50610305610a07565b6040516103129190612858565b60405180910390f35b34801561032757600080fd5b50610342600480360381019061033d9190612254565b610a0d565b60405161034f9190612714565b60405180910390f35b34801561036457600080fd5b5061037f600480360381019061037a91906123d7565b610a40565b005b34801561038d57600080fd5b50610396610ac5565b6040516103a39190612858565b60405180910390f35b3480156103b857600080fd5b506103c1610acb565b6040516103ce9190612714565b60405180910390f35b3480156103e357600080fd5b506103fe60048036038101906103f99190612254565b610ade565b60405161040b9190612858565b60405180910390f35b34801561042057600080fd5b50610429610b27565b005b34801561043757600080fd5b50610440610bea565b60405161044d9190612858565b60405180910390f35b34801561046257600080fd5b5061046b610bf0565b60405161047891906126f9565b60405180910390f35b34801561048d57600080fd5b50610496610c19565b6040516104a39190612796565b60405180910390f35b3480156104b857600080fd5b506104c1610c56565b6040516104ce91906126f9565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f99190612331565b610c7c565b60405161050b9190612714565b60405180910390f35b34801561052057600080fd5b50610529610c91565b60405161053691906126f9565b60405180910390f35b34801561054b57600080fd5b50610566600480360381019061056191906122a6565b610cb7565b6040516105739190612858565b60405180910390f35b34801561058857600080fd5b50610591610d3e565b60405161059e91906126f9565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c991906123ae565b610d64565b005b3480156105dc57600080fd5b506105e5610dd0565b6040516105f2919061272f565b60405180910390f35b60145481565b60606040518060400160405280601681526020017f57696e646f77735842696c6c4761746573456c6f6e5800000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161071e9190612858565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610926576108a5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ebb9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610931848484610f1f565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610a04573d6000803e3d6000fd5b50565b60035481565b6000610a39827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61063e565b9050919050565b610a493361093a565b610a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7f90612838565b60405180910390fd5b82600c8190555081600b8190555080600d81905550600d54600b54600c54610ab091906129a5565b610aba91906129a5565b600e81905550505050565b60045481565b601360149054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b303361093a565b610b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6690612838565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610be091906126f9565b60405180910390a1565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f57696e5800000000000000000000000000000000000000000000000000000000815250905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c89338484610f1f565b905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d6d3361093a565b610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390612838565b60405180910390fd5b6103e881600354610dbd9190612a2c565b610dc791906129fb565b60048190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080831415610e095760009050610e6b565b60008284610e179190612a2c565b9050828482610e2691906129fb565b14610e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5d90612818565b60405180910390fd5b809150505b92915050565b6000610eb383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112e8565b905092915050565b6000838311158290610f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efa9190612796565b60405180910390fd5b5060008385610f129190612a86565b9050809150509392505050565b6000601560009054906101000a900460ff1615610f4857610f4184848461134b565b90506112e1565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610ff45750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156110dd57600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061109d575060045482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461109a91906129a5565b11155b6110dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d3906127b8565b60405180910390fd5b5b6110e561151e565b156110f3576110f26115f5565b5b61117c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ebb9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006111ca85611f27565b6111d457826111df565b6111de8584611f7e565b5b905061123381600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c290919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112d39190612858565b60405180910390a360019150505b9392505050565b6000808311829061132f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113269190612796565b60405180910390fd5b506000838561133e91906129fb565b9050809150509392505050565b60006113d6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ebb9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061146b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161150b9190612858565b60405180910390a3600190509392505050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561158b5750601560009054906101000a900460ff16155b80156115a35750601360149054906101000a900460ff165b80156115f05750601454600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601560006101000a81548160ff0219169083151502179055506000601454905060006116556002611647600e54611639600d5487610df690919063ffffffff16565b610e7190919063ffffffff16565b610e7190919063ffffffff16565b9050600061166c828461212090919063ffffffff16565b90506000600267ffffffffffffffff8111156116b1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156116df5781602001602082028036833780820191505090505b509050308160008151811061171d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156117bf57600080fd5b505afa1580156117d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f7919061227d565b81600181518110611831577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600267ffffffffffffffff8111156118ae577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156118dc5781602001602082028036833780820191505090505b509050308160018151811061191a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119bc57600080fd5b505afa1580156119d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f4919061227d565b81600081518110611a2e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008630426040518663ffffffff1660e01b8152600401611ad1959493929190612873565b600060405180830381600087803b158015611aeb57600080fd5b505af1158015611aff573d6000803e3d6000fd5b505050506000611b18824761212090919063ffffffff16565b90506000611b45600e54611b37600c5485610df690919063ffffffff16565b610e7190919063ffffffff16565b90506000611b72600e54611b64600b5486610df690919063ffffffff16565b610e7190919063ffffffff16565b90506000611b9f600e54611b91600d5487610df690919063ffffffff16565b610e7190919063ffffffff16565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051611bed906126e4565b600060405180830381858888f193505050503d8060008114611c2b576040519150601f19603f3d011682016040523d82523d6000602084013e611c30565b606091505b5050905080611c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6b906127f8565b60405180910390fd5b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051611cc0906126e4565b600060405180830381858888f193505050503d8060008114611cfe576040519150601f19603f3d011682016040523d82523d6000602084013e611d03565b606091505b5050905080611d47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3e906127f8565b60405180910390fd5b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ff36ab58560008c601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611dce949392919061274a565b6000604051808303818588803b158015611de757600080fd5b505af1158015611dfb573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f82011682018060405250810190611e25919061236d565b9050611eba81600181518110611e64577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c290919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050505050505050506000601560006101000a81548160ff021916908315150217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611faa600f54611f9c600e5486610df690919063ffffffff16565b610e7190919063ffffffff16565b9050611ffe81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c290919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161209e9190612858565b60405180910390a36120b9818461212090919063ffffffff16565b91505092915050565b60008082846120d191906129a5565b905083811015612116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210d906127d8565b60405180910390fd5b8091505092915050565b600061216283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ebb565b905092915050565b600061217d61217884612919565b6128e8565b9050808382526020820190508285602086028201111561219c57600080fd5b60005b858110156121cc57816121b2888261223f565b84526020840193506020830192505060018101905061219f565b5050509392505050565b6000813590506121e581612c16565b92915050565b6000815190506121fa81612c16565b92915050565b600082601f83011261221157600080fd5b815161222184826020860161216a565b91505092915050565b60008135905061223981612c2d565b92915050565b60008151905061224e81612c2d565b92915050565b60006020828403121561226657600080fd5b6000612274848285016121d6565b91505092915050565b60006020828403121561228f57600080fd5b600061229d848285016121eb565b91505092915050565b600080604083850312156122b957600080fd5b60006122c7858286016121d6565b92505060206122d8858286016121d6565b9150509250929050565b6000806000606084860312156122f757600080fd5b6000612305868287016121d6565b9350506020612316868287016121d6565b92505060406123278682870161222a565b9150509250925092565b6000806040838503121561234457600080fd5b6000612352858286016121d6565b92505060206123638582860161222a565b9150509250929050565b60006020828403121561237f57600080fd5b600082015167ffffffffffffffff81111561239957600080fd5b6123a584828501612200565b91505092915050565b6000602082840312156123c057600080fd5b60006123ce8482850161222a565b91505092915050565b6000806000606084860312156123ec57600080fd5b60006123fa8682870161222a565b935050602061240b8682870161222a565b925050604061241c8682870161222a565b9150509250925092565b6000612432838361243e565b60208301905092915050565b61244781612aba565b82525050565b61245681612aba565b82525050565b600061246782612955565b6124718185612978565b935061247c83612945565b8060005b838110156124ad5781516124948882612426565b975061249f8361296b565b925050600181019050612480565b5085935050505092915050565b6124c381612acc565b82525050565b6124d281612b0f565b82525050565b6124e181612b33565b82525050565b60006124f282612960565b6124fc8185612994565b935061250c818560208601612b45565b61251581612c05565b840191505092915050565b600061252d602583612994565b91507f5472616e7366657220616d6f756e74206578636565647320746865206261672060008301527f73697a652e0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612593601b83612994565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b60006125d3601e83612994565b91507f72656365697665722072656a656374656420455448207472616e7366657200006000830152602082019050919050565b6000612613602183612994565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612679600683612994565b91507f214f574e455200000000000000000000000000000000000000000000000000006000830152602082019050919050565b60006126b9600083612989565b9150600082019050919050565b6126cf81612af8565b82525050565b6126de81612b02565b82525050565b60006126ef826126ac565b9150819050919050565b600060208201905061270e600083018461244d565b92915050565b600060208201905061272960008301846124ba565b92915050565b600060208201905061274460008301846124c9565b92915050565b600060808201905061275f60008301876124d8565b8181036020830152612771818661245c565b9050612780604083018561244d565b61278d60608301846126c6565b95945050505050565b600060208201905081810360008301526127b081846124e7565b905092915050565b600060208201905081810360008301526127d181612520565b9050919050565b600060208201905081810360008301526127f181612586565b9050919050565b60006020820190508181036000830152612811816125c6565b9050919050565b6000602082019050818103600083015261283181612606565b9050919050565b600060208201905081810360008301526128518161266c565b9050919050565b600060208201905061286d60008301846126c6565b92915050565b600060a08201905061288860008301886126c6565b61289560208301876124d8565b81810360408301526128a7818661245c565b90506128b6606083018561244d565b6128c360808301846126c6565b9695505050505050565b60006020820190506128e260008301846126d5565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561290f5761290e612bd6565b5b8060405250919050565b600067ffffffffffffffff82111561293457612933612bd6565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006129b082612af8565b91506129bb83612af8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156129f0576129ef612b78565b5b828201905092915050565b6000612a0682612af8565b9150612a1183612af8565b925082612a2157612a20612ba7565b5b828204905092915050565b6000612a3782612af8565b9150612a4283612af8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a7b57612a7a612b78565b5b828202905092915050565b6000612a9182612af8565b9150612a9c83612af8565b925082821015612aaf57612aae612b78565b5b828203905092915050565b6000612ac582612ad8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b1a82612b21565b9050919050565b6000612b2c82612ad8565b9050919050565b6000612b3e82612af8565b9050919050565b60005b83811015612b63578082015181840152602081019050612b48565b83811115612b72576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b612c1f81612aba565b8114612c2a57600080fd5b50565b612c3681612af8565b8114612c4157600080fd5b5056fea264697066735822122057a067dbebbff32b5322f5787f4e3671e5810f555bb3226a051a40b1ad2ee3f264736f6c63430008000033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80636ddd1713116100d1578063a8aa1b311161008a578063dd62ed3e11610064578063dd62ed3e1461053f578063e96fada21461057c578063f1d5f517146105a7578063f887ea40146105d057610171565b8063a8aa1b31146104ac578063a9059cbb146104d7578063dab84ee71461051457610171565b80636ddd1713146103ac57806370a08231146103d7578063715018a6146104145780637d1db4a51461042b578063893d20e81461045657806395d89b411461048157610171565b8063313ce56711610123578063313ce567146102ae578063364333f4146102d95780633eaaf86b146102f0578063571ac8b01461031b5780635b65b9ab146103585780636c0a24eb1461038157610171565b80630445b6671461017657806306fdde03146101a1578063095ea7b3146101cc57806318160ddd1461020957806323b872dd146102345780632f54bf6e1461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105fb565b6040516101989190612858565b60405180910390f35b3480156101ad57600080fd5b506101b6610601565b6040516101c39190612796565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee9190612331565b61063e565b6040516102009190612714565b60405180910390f35b34801561021557600080fd5b5061021e610730565b60405161022b9190612858565b60405180910390f35b34801561024057600080fd5b5061025b600480360381019061025691906122e2565b61073a565b6040516102689190612714565b60405180910390f35b34801561027d57600080fd5b5061029860048036038101906102939190612254565b61093a565b6040516102a59190612714565b60405180910390f35b3480156102ba57600080fd5b506102c3610993565b6040516102d091906128cd565b60405180910390f35b3480156102e557600080fd5b506102ee61099c565b005b3480156102fc57600080fd5b50610305610a07565b6040516103129190612858565b60405180910390f35b34801561032757600080fd5b50610342600480360381019061033d9190612254565b610a0d565b60405161034f9190612714565b60405180910390f35b34801561036457600080fd5b5061037f600480360381019061037a91906123d7565b610a40565b005b34801561038d57600080fd5b50610396610ac5565b6040516103a39190612858565b60405180910390f35b3480156103b857600080fd5b506103c1610acb565b6040516103ce9190612714565b60405180910390f35b3480156103e357600080fd5b506103fe60048036038101906103f99190612254565b610ade565b60405161040b9190612858565b60405180910390f35b34801561042057600080fd5b50610429610b27565b005b34801561043757600080fd5b50610440610bea565b60405161044d9190612858565b60405180910390f35b34801561046257600080fd5b5061046b610bf0565b60405161047891906126f9565b60405180910390f35b34801561048d57600080fd5b50610496610c19565b6040516104a39190612796565b60405180910390f35b3480156104b857600080fd5b506104c1610c56565b6040516104ce91906126f9565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f99190612331565b610c7c565b60405161050b9190612714565b60405180910390f35b34801561052057600080fd5b50610529610c91565b60405161053691906126f9565b60405180910390f35b34801561054b57600080fd5b50610566600480360381019061056191906122a6565b610cb7565b6040516105739190612858565b60405180910390f35b34801561058857600080fd5b50610591610d3e565b60405161059e91906126f9565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c991906123ae565b610d64565b005b3480156105dc57600080fd5b506105e5610dd0565b6040516105f2919061272f565b60405180910390f35b60145481565b60606040518060400160405280601681526020017f57696e646f77735842696c6c4761746573456c6f6e5800000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161071e9190612858565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610926576108a5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ebb9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610931848484610f1f565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610a04573d6000803e3d6000fd5b50565b60035481565b6000610a39827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61063e565b9050919050565b610a493361093a565b610a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7f90612838565b60405180910390fd5b82600c8190555081600b8190555080600d81905550600d54600b54600c54610ab091906129a5565b610aba91906129a5565b600e81905550505050565b60045481565b601360149054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b303361093a565b610b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6690612838565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610be091906126f9565b60405180910390a1565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f57696e5800000000000000000000000000000000000000000000000000000000815250905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c89338484610f1f565b905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d6d3361093a565b610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390612838565b60405180910390fd5b6103e881600354610dbd9190612a2c565b610dc791906129fb565b60048190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080831415610e095760009050610e6b565b60008284610e179190612a2c565b9050828482610e2691906129fb565b14610e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5d90612818565b60405180910390fd5b809150505b92915050565b6000610eb383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112e8565b905092915050565b6000838311158290610f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efa9190612796565b60405180910390fd5b5060008385610f129190612a86565b9050809150509392505050565b6000601560009054906101000a900460ff1615610f4857610f4184848461134b565b90506112e1565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610ff45750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156110dd57600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061109d575060045482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461109a91906129a5565b11155b6110dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d3906127b8565b60405180910390fd5b5b6110e561151e565b156110f3576110f26115f5565b5b61117c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ebb9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006111ca85611f27565b6111d457826111df565b6111de8584611f7e565b5b905061123381600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c290919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112d39190612858565b60405180910390a360019150505b9392505050565b6000808311829061132f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113269190612796565b60405180910390fd5b506000838561133e91906129fb565b9050809150509392505050565b60006113d6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ebb9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061146b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161150b9190612858565b60405180910390a3600190509392505050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561158b5750601560009054906101000a900460ff16155b80156115a35750601360149054906101000a900460ff165b80156115f05750601454600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601560006101000a81548160ff0219169083151502179055506000601454905060006116556002611647600e54611639600d5487610df690919063ffffffff16565b610e7190919063ffffffff16565b610e7190919063ffffffff16565b9050600061166c828461212090919063ffffffff16565b90506000600267ffffffffffffffff8111156116b1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156116df5781602001602082028036833780820191505090505b509050308160008151811061171d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156117bf57600080fd5b505afa1580156117d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f7919061227d565b81600181518110611831577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600267ffffffffffffffff8111156118ae577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156118dc5781602001602082028036833780820191505090505b509050308160018151811061191a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119bc57600080fd5b505afa1580156119d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f4919061227d565b81600081518110611a2e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008630426040518663ffffffff1660e01b8152600401611ad1959493929190612873565b600060405180830381600087803b158015611aeb57600080fd5b505af1158015611aff573d6000803e3d6000fd5b505050506000611b18824761212090919063ffffffff16565b90506000611b45600e54611b37600c5485610df690919063ffffffff16565b610e7190919063ffffffff16565b90506000611b72600e54611b64600b5486610df690919063ffffffff16565b610e7190919063ffffffff16565b90506000611b9f600e54611b91600d5487610df690919063ffffffff16565b610e7190919063ffffffff16565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051611bed906126e4565b600060405180830381858888f193505050503d8060008114611c2b576040519150601f19603f3d011682016040523d82523d6000602084013e611c30565b606091505b5050905080611c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6b906127f8565b60405180910390fd5b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051611cc0906126e4565b600060405180830381858888f193505050503d8060008114611cfe576040519150601f19603f3d011682016040523d82523d6000602084013e611d03565b606091505b5050905080611d47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3e906127f8565b60405180910390fd5b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ff36ab58560008c601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611dce949392919061274a565b6000604051808303818588803b158015611de757600080fd5b505af1158015611dfb573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f82011682018060405250810190611e25919061236d565b9050611eba81600181518110611e64577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c290919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050505050505050506000601560006101000a81548160ff021916908315150217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611faa600f54611f9c600e5486610df690919063ffffffff16565b610e7190919063ffffffff16565b9050611ffe81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c290919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161209e9190612858565b60405180910390a36120b9818461212090919063ffffffff16565b91505092915050565b60008082846120d191906129a5565b905083811015612116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210d906127d8565b60405180910390fd5b8091505092915050565b600061216283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ebb565b905092915050565b600061217d61217884612919565b6128e8565b9050808382526020820190508285602086028201111561219c57600080fd5b60005b858110156121cc57816121b2888261223f565b84526020840193506020830192505060018101905061219f565b5050509392505050565b6000813590506121e581612c16565b92915050565b6000815190506121fa81612c16565b92915050565b600082601f83011261221157600080fd5b815161222184826020860161216a565b91505092915050565b60008135905061223981612c2d565b92915050565b60008151905061224e81612c2d565b92915050565b60006020828403121561226657600080fd5b6000612274848285016121d6565b91505092915050565b60006020828403121561228f57600080fd5b600061229d848285016121eb565b91505092915050565b600080604083850312156122b957600080fd5b60006122c7858286016121d6565b92505060206122d8858286016121d6565b9150509250929050565b6000806000606084860312156122f757600080fd5b6000612305868287016121d6565b9350506020612316868287016121d6565b92505060406123278682870161222a565b9150509250925092565b6000806040838503121561234457600080fd5b6000612352858286016121d6565b92505060206123638582860161222a565b9150509250929050565b60006020828403121561237f57600080fd5b600082015167ffffffffffffffff81111561239957600080fd5b6123a584828501612200565b91505092915050565b6000602082840312156123c057600080fd5b60006123ce8482850161222a565b91505092915050565b6000806000606084860312156123ec57600080fd5b60006123fa8682870161222a565b935050602061240b8682870161222a565b925050604061241c8682870161222a565b9150509250925092565b6000612432838361243e565b60208301905092915050565b61244781612aba565b82525050565b61245681612aba565b82525050565b600061246782612955565b6124718185612978565b935061247c83612945565b8060005b838110156124ad5781516124948882612426565b975061249f8361296b565b925050600181019050612480565b5085935050505092915050565b6124c381612acc565b82525050565b6124d281612b0f565b82525050565b6124e181612b33565b82525050565b60006124f282612960565b6124fc8185612994565b935061250c818560208601612b45565b61251581612c05565b840191505092915050565b600061252d602583612994565b91507f5472616e7366657220616d6f756e74206578636565647320746865206261672060008301527f73697a652e0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612593601b83612994565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b60006125d3601e83612994565b91507f72656365697665722072656a656374656420455448207472616e7366657200006000830152602082019050919050565b6000612613602183612994565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612679600683612994565b91507f214f574e455200000000000000000000000000000000000000000000000000006000830152602082019050919050565b60006126b9600083612989565b9150600082019050919050565b6126cf81612af8565b82525050565b6126de81612b02565b82525050565b60006126ef826126ac565b9150819050919050565b600060208201905061270e600083018461244d565b92915050565b600060208201905061272960008301846124ba565b92915050565b600060208201905061274460008301846124c9565b92915050565b600060808201905061275f60008301876124d8565b8181036020830152612771818661245c565b9050612780604083018561244d565b61278d60608301846126c6565b95945050505050565b600060208201905081810360008301526127b081846124e7565b905092915050565b600060208201905081810360008301526127d181612520565b9050919050565b600060208201905081810360008301526127f181612586565b9050919050565b60006020820190508181036000830152612811816125c6565b9050919050565b6000602082019050818103600083015261283181612606565b9050919050565b600060208201905081810360008301526128518161266c565b9050919050565b600060208201905061286d60008301846126c6565b92915050565b600060a08201905061288860008301886126c6565b61289560208301876124d8565b81810360408301526128a7818661245c565b90506128b6606083018561244d565b6128c360808301846126c6565b9695505050505050565b60006020820190506128e260008301846126d5565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561290f5761290e612bd6565b5b8060405250919050565b600067ffffffffffffffff82111561293457612933612bd6565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006129b082612af8565b91506129bb83612af8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156129f0576129ef612b78565b5b828201905092915050565b6000612a0682612af8565b9150612a1183612af8565b925082612a2157612a20612ba7565b5b828204905092915050565b6000612a3782612af8565b9150612a4283612af8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a7b57612a7a612b78565b5b828202905092915050565b6000612a9182612af8565b9150612a9c83612af8565b925082821015612aaf57612aae612b78565b5b828203905092915050565b6000612ac582612ad8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b1a82612b21565b9050919050565b6000612b2c82612ad8565b9050919050565b6000612b3e82612af8565b9050919050565b60005b83811015612b63578082015181840152602081019050612b48565b83811115612b72576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b612c1f81612aba565b8114612c2a57600080fd5b50565b612c3681612af8565b8114612c4157600080fd5b5056fea264697066735822122057a067dbebbff32b5322f5787f4e3671e5810f555bb3226a051a40b1ad2ee3f264736f6c63430008000033

Deployed Bytecode Sourcemap

4361:8284:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5633:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6846:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7268:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6576:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7786:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2429:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6670:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12039:112;;;;;;;;;;;;;:::i;:::-;;4723:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7492:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12309:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4787:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5596:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7016:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2538:131;;;;;;;;;;;;;:::i;:::-;;4862:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6932:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6756:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5568:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7622:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5454:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7127:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5367:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12159:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5537:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5633:55;;;;:::o;6846:80::-;6894:13;6918:5;;;;;;;;;;;;;;;;;6911:12;;6846:80;:::o;7268:216::-;7343:4;7395:6;7360:11;:23;7372:10;7360:23;;;;;;;;;;;;;;;:32;7384:7;7360:32;;;;;;;;;;;;;;;:41;;;;7438:7;7417:37;;7426:10;7417:37;;;7447:6;7417:37;;;;;;:::i;:::-;;;;;;;;7472:4;7465:11;;7268:216;;;;:::o;6576:88::-;6631:7;6649:12;;6642:19;;6576:88;:::o;7786:370::-;7886:4;7941:17;7906:11;:19;7918:6;7906:19;;;;;;;;;;;;;;;:31;7926:10;7906:31;;;;;;;;;;;;;;;;:52;7903:186;;8008:69;8044:6;8008:69;;;;;;;;;;;;;;;;;:11;:19;8020:6;8008:19;;;;;;;;;;;;;;;:31;8028:10;8008:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7974:11;:19;7986:6;7974:19;;;;;;;;;;;;;;;:31;7994:10;7974:31;;;;;;;;;;;;;;;:103;;;;7903:186;8108:40;8122:6;8130:9;8141:6;8108:13;:40::i;:::-;8101:47;;7786:370;;;;;:::o;2429:103::-;2484:4;2519:5;;;;;;;;;;;2508:16;;:7;:16;;;2501:23;;2429:103;;;:::o;6670:80::-;6722:5;4712:2;6731:16;;6670:80;:::o;12039:112::-;12096:14;;;;;;;;;;;12088:32;;:55;12121:21;12088:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12039:112::o;4723:57::-;;;;:::o;7492:122::-;7547:4;7571:35;7579:7;7588:17;7571:7;:35::i;:::-;7564:42;;7492:122;;;:::o;12309:269::-;2382:19;2390:10;2382:7;:19::i;:::-;2374:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12427:7:::1;12418:6;:16;;;;12460:13;12445:12;:28;;;;12499:13;12484:12;:28;;;;12558:12;;12543;;12534:6;;:21;;;;:::i;:::-;:36;;;;:::i;:::-;12523:8;:47;;;;12309:269:::0;;;:::o;4787:62::-;;;;:::o;5596:30::-;;;;;;;;;;;;;:::o;7016:105::-;7082:7;7100:9;:18;7110:7;7100:18;;;;;;;;;;;;;;;;7093:25;;7016:105;;;:::o;2538:131::-;2382:19;2390:10;2382:7;:19::i;:::-;2374:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2611:1:::1;2595:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2629:32;2658:1;2629:32;;;;;;:::i;:::-;;;;;;;;2538:131::o:0;4862:58::-;;;;:::o;6932:78::-;6984:7;7002:5;;;;;;;;;;;6995:12;;6932:78;:::o;6756:84::-;6806:13;6830:7;;;;;;;;;;;;;;;;;6823:14;;6756:84;:::o;5568:19::-;;;;;;;;;;;;;:::o;7622:156::-;7702:4;7726:44;7740:10;7752:9;7763:6;7726:13;:44::i;:::-;7719:51;;7622:156;;;;:::o;5454:74::-;;;;;;;;;;;;;:::o;7127:133::-;7211:7;7229:11;:19;7241:6;7229:19;;;;;;;;;;;;;;;:28;7249:7;7229:28;;;;;;;;;;;;;;;;7222:35;;7127:133;;;;:::o;5367:80::-;;;;;;;;;;;;;:::o;12159:142::-;2382:19;2390:10;2382:7;:19::i;:::-;2374:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12289:4:::1;12271:13;12256:12;;:28;;;;:::i;:::-;12255:38;;;;:::i;:::-;12236:16;:57;;;;12159:142:::0;:::o;5537:24::-;;;;;;;;;;;;;:::o;713:246::-;771:7;800:1;795;:6;791:47;;;825:1;818:8;;;;791:47;848:9;864:1;860;:5;;;;:::i;:::-;848:17;;893:1;888;884;:5;;;;:::i;:::-;:10;876:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;950:1;943:8;;;713:246;;;;;:::o;965:132::-;1023:7;1050:39;1054:1;1057;1050:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1043:46;;965:132;;;;:::o;517:190::-;603:7;636:1;631;:6;;639:12;623:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;663:9;679:1;675;:5;;;;:::i;:::-;663:17;;698:1;691:8;;;517:190;;;;;:::o;8164:778::-;8256:4;8276:6;;;;;;;;;;;8273:63;;;8292:41;8307:6;8315:9;8326:6;8292:14;:41::i;:::-;8285:48;;;;8273:63;8365:4;;;;;;;;;;;8352:17;;:9;:17;;;;:38;;;;;8386:4;;;;;;;;;;;8373:17;;:9;:17;;;;8352:38;8348:200;;;8415:15;:26;8431:9;8415:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;8478:16;;8468:6;8445:9;:20;8455:9;8445:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;8415:79;8407:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;8348:200;8564:16;:14;:16::i;:::-;8561:35;;;8583:10;:8;:10::i;:::-;8561:35;8628:53;8650:6;8628:53;;;;;;;;;;;;;;;;;:9;:17;8638:6;8628:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8608:9;:17;8618:6;8608:17;;;;;;;;;;;;;;;:73;;;;8694:22;8719:21;8733:6;8719:13;:21::i;:::-;:56;;8769:6;8719:56;;;8743:23;8751:6;8759;8743:7;:23::i;:::-;8719:56;8694:81;;8809:40;8834:14;8809:9;:20;8819:9;8809:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8786:9;:20;8796:9;8786:20;;;;;;;;;;;;;;;:63;;;;8884:9;8867:43;;8876:6;8867:43;;;8895:14;8867:43;;;;;;:::i;:::-;;;;;;;;8930:4;8923:11;;;8164:778;;;;;;:::o;1103:189::-;1189:7;1221:1;1217;:5;1224:12;1209:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1248:9;1264:1;1260;:5;;;;:::i;:::-;1248:17;;1283:1;1276:8;;;1103:189;;;;;:::o;8950:330::-;9043:4;9080:53;9102:6;9080:53;;;;;;;;;;;;;;;;;:9;:17;9090:6;9080:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9060:9;:17;9070:6;9060:17;;;;;;;;;;;;;;;:73;;;;9167:32;9192:6;9167:9;:20;9177:9;9167:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9144:9;:20;9154:9;9144:20;;;;;;;;;;;;;;;:55;;;;9232:9;9215:35;;9224:6;9215:35;;;9243:6;9215:35;;;;;;:::i;:::-;;;;;;;;9268:4;9261:11;;8950:330;;;;;:::o;9747:197::-;9796:4;9834;;;;;;;;;;;9820:18;;:10;:18;;;;:38;;;;;9852:6;;;;;;;;;;;9851:7;9820:38;:62;;;;;9871:11;;;;;;;;;;;9820:62;:116;;;;;9923:13;;9895:9;:24;9913:4;9895:24;;;;;;;;;;;;;;;;:41;;9820:116;9813:123;;9747:197;:::o;9952:1701::-;5753:4;5744:6;;:13;;;;;;;;;;;;;;;;;;10001:28:::1;10032:13;;10001:44;;10056:23;10082:59;10139:1;10082:52;10125:8;;10082:38;10107:12;;10082:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;10056:85;;10152:20;10175:41;10200:15;10175:20;:24;;:41;;;;:::i;:::-;10152:64;;10229:21;10267:1;10253:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10229:40;;10298:4;10280;10285:1;10280:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10324:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10314:4;10319:1;10314:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10350:22;10389:1;10375:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10350:41;;10421:4;10402:5;10408:1;10402:8;;;;;;;;;;;;;;;;;;;;;:24;;;;;;;;;::::0;::::1;10448:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10437:5;10443:1;10437:8;;;;;;;;;;;;;;;;;;;;;:24;;;;;;;;;::::0;::::1;10474:21;10498;10474:45;;10532:6;;;;;;;;;;;:57;;;10604:12;10631:1;10647:4;10674;10694:15;10532:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10731:17;10751:40;10777:13;10751:21;:25;;:40;;;;:::i;:::-;10731:60;;10803:20;10826:35;10852:8;;10826:21;10840:6;;10826:9;:13;;:21;;;;:::i;:::-;:25;;:35;;;;:::i;:::-;10803:58;;10872:26;10901:41;10933:8;;10901:27;10915:12;;10901:9;:13;;:27;;;;:::i;:::-;:31;;:41;;;;:::i;:::-;10872:70;;10953:26;10982:41;11014:8;;10982:27;10996:12;;10982:9;:13;;:27;;;;:::i;:::-;:31;;:41;;;;:::i;:::-;10953:70;;11039:15;11068:14;;;;;;;;;;;11060:28;;11096:12;11115:5;11060:65;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11038:87;;;11144:10;11136:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;11201:21;11236:20;;;;;;;;;;;11228:34;;11270:18;11295:5;11228:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11200:105;;;11324:16;11316:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;11388:21;11412:6;;;;;;;;;;;:28;;;11448:18;11482:1;11498:5;11518:4;;;;;;;;;;;11537:15;11412:152;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11388:176;;11605:40;11634:7;11642:1;11634:10;;;;;;;;;;;;;;;;;;;;;;11605:9;:24;11623:4;11605:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;11578:9;:24;11596:4;11578:24;;;;;;;;;;;;;;;:67;;;;5759:1;;;;;;;;;;;;;5771:5:::0;5762:6;;:14;;;;;;;;;;;;;;;;;;9952:1701::o;9288:114::-;9350:4;9375:11;:19;9387:6;9375:19;;;;;;;;;;;;;;;;;;;;;;;;;9374:20;9367:27;;9288:114;;;:::o;9410:329::-;9477:7;9497:17;9517:40;9542:14;;9517:20;9528:8;;9517:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;9497:60;;9595:39;9624:9;9595;:24;9613:4;9595:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9568:9;:24;9586:4;9568:24;;;;;;;;;;;;;;;:66;;;;9675:4;9650:42;;9659:6;9650:42;;;9682:9;9650:42;;;;;;:::i;:::-;;;;;;;;9710:21;9721:9;9710:6;:10;;:21;;;;:::i;:::-;9703:28;;;9410:329;;;;:::o;190:179::-;248:7;268:9;284:1;280;:5;;;;:::i;:::-;268:17;;309:1;304;:6;;296:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;360:1;353:8;;;190:179;;;;:::o;375:136::-;433:7;460:43;464:1;467;460:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;453:50;;375:136;;;;:::o;24:644:1:-;;156:80;171:64;228:6;171:64;:::i;:::-;156:80;:::i;:::-;147:89;;256:5;284:6;277:5;270:21;310:4;303:5;299:16;292:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;402:1;399;392:12;350:2;430:1;415:247;440:6;437:1;434:13;415:247;;;507:3;535:48;579:3;567:10;535:48;:::i;:::-;530:3;523:61;613:4;608:3;604:14;597:21;;647:4;642:3;638:14;631:21;;475:187;462:1;459;455:9;450:14;;415:247;;;419:14;137:531;;;;;;;:::o;674:139::-;;758:6;745:20;736:29;;774:33;801:5;774:33;:::i;:::-;726:87;;;;:::o;819:143::-;;907:6;901:13;892:22;;923:33;950:5;923:33;:::i;:::-;882:80;;;;:::o;985:318::-;;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1167:6;1161:13;1192:105;1293:3;1285:6;1278:4;1270:6;1266:17;1192:105;:::i;:::-;1183:114;;1073:230;;;;;:::o;1309:139::-;;1393:6;1380:20;1371:29;;1409:33;1436:5;1409:33;:::i;:::-;1361:87;;;;:::o;1454:143::-;;1542:6;1536:13;1527:22;;1558:33;1585:5;1558:33;:::i;:::-;1517:80;;;;:::o;1603:262::-;;1711:2;1699:9;1690:7;1686:23;1682:32;1679:2;;;1727:1;1724;1717:12;1679:2;1770:1;1795:53;1840:7;1831:6;1820:9;1816:22;1795:53;:::i;:::-;1785:63;;1741:117;1669:196;;;;:::o;1871:284::-;;1990:2;1978:9;1969:7;1965:23;1961:32;1958:2;;;2006:1;2003;1996:12;1958:2;2049:1;2074:64;2130:7;2121:6;2110:9;2106:22;2074:64;:::i;:::-;2064:74;;2020:128;1948:207;;;;:::o;2161:407::-;;;2286:2;2274:9;2265:7;2261:23;2257:32;2254:2;;;2302:1;2299;2292:12;2254:2;2345:1;2370:53;2415:7;2406:6;2395:9;2391:22;2370:53;:::i;:::-;2360:63;;2316:117;2472:2;2498:53;2543:7;2534:6;2523:9;2519:22;2498:53;:::i;:::-;2488:63;;2443:118;2244:324;;;;;:::o;2574:552::-;;;;2716:2;2704:9;2695:7;2691:23;2687:32;2684:2;;;2732:1;2729;2722:12;2684:2;2775:1;2800:53;2845:7;2836:6;2825:9;2821:22;2800:53;:::i;:::-;2790:63;;2746:117;2902:2;2928:53;2973:7;2964:6;2953:9;2949:22;2928:53;:::i;:::-;2918:63;;2873:118;3030:2;3056:53;3101:7;3092:6;3081:9;3077:22;3056:53;:::i;:::-;3046:63;;3001:118;2674:452;;;;;:::o;3132:407::-;;;3257:2;3245:9;3236:7;3232:23;3228:32;3225:2;;;3273:1;3270;3263:12;3225:2;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;3215:324;;;;;:::o;3545:420::-;;3689:2;3677:9;3668:7;3664:23;3660:32;3657:2;;;3705:1;3702;3695:12;3657:2;3769:1;3758:9;3754:17;3748:24;3799:18;3791:6;3788:30;3785:2;;;3831:1;3828;3821:12;3785:2;3859:89;3940:7;3931:6;3920:9;3916:22;3859:89;:::i;:::-;3849:99;;3719:239;3647:318;;;;:::o;3971:262::-;;4079:2;4067:9;4058:7;4054:23;4050:32;4047:2;;;4095:1;4092;4085:12;4047:2;4138:1;4163:53;4208:7;4199:6;4188:9;4184:22;4163:53;:::i;:::-;4153:63;;4109:117;4037:196;;;;:::o;4239:552::-;;;;4381:2;4369:9;4360:7;4356:23;4352:32;4349:2;;;4397:1;4394;4387:12;4349:2;4440:1;4465:53;4510:7;4501:6;4490:9;4486:22;4465:53;:::i;:::-;4455:63;;4411:117;4567:2;4593:53;4638:7;4629:6;4618:9;4614:22;4593:53;:::i;:::-;4583:63;;4538:118;4695:2;4721:53;4766:7;4757:6;4746:9;4742:22;4721:53;:::i;:::-;4711:63;;4666:118;4339:452;;;;;:::o;4797:179::-;;4887:46;4929:3;4921:6;4887:46;:::i;:::-;4965:4;4960:3;4956:14;4942:28;;4877:99;;;;:::o;4982:108::-;5059:24;5077:5;5059:24;:::i;:::-;5054:3;5047:37;5037:53;;:::o;5096:118::-;5183:24;5201:5;5183:24;:::i;:::-;5178:3;5171:37;5161:53;;:::o;5250:732::-;;5398:54;5446:5;5398:54;:::i;:::-;5468:86;5547:6;5542:3;5468:86;:::i;:::-;5461:93;;5578:56;5628:5;5578:56;:::i;:::-;5657:7;5688:1;5673:284;5698:6;5695:1;5692:13;5673:284;;;5774:6;5768:13;5801:63;5860:3;5845:13;5801:63;:::i;:::-;5794:70;;5887:60;5940:6;5887:60;:::i;:::-;5877:70;;5733:224;5720:1;5717;5713:9;5708:14;;5673:284;;;5677:14;5973:3;5966:10;;5374:608;;;;;;;:::o;5988:109::-;6069:21;6084:5;6069:21;:::i;:::-;6064:3;6057:34;6047:50;;:::o;6103:167::-;6208:55;6257:5;6208:55;:::i;:::-;6203:3;6196:68;6186:84;;:::o;6276:147::-;6371:45;6410:5;6371:45;:::i;:::-;6366:3;6359:58;6349:74;;:::o;6429:364::-;;6545:39;6578:5;6545:39;:::i;:::-;6600:71;6664:6;6659:3;6600:71;:::i;:::-;6593:78;;6680:52;6725:6;6720:3;6713:4;6706:5;6702:16;6680:52;:::i;:::-;6757:29;6779:6;6757:29;:::i;:::-;6752:3;6748:39;6741:46;;6521:272;;;;;:::o;6799:369::-;;6962:67;7026:2;7021:3;6962:67;:::i;:::-;6955:74;;7059:34;7055:1;7050:3;7046:11;7039:55;7125:7;7120:2;7115:3;7111:12;7104:29;7159:2;7154:3;7150:12;7143:19;;6945:223;;;:::o;7174:325::-;;7337:67;7401:2;7396:3;7337:67;:::i;:::-;7330:74;;7434:29;7430:1;7425:3;7421:11;7414:50;7490:2;7485:3;7481:12;7474:19;;7320:179;;;:::o;7505:328::-;;7668:67;7732:2;7727:3;7668:67;:::i;:::-;7661:74;;7765:32;7761:1;7756:3;7752:11;7745:53;7824:2;7819:3;7815:12;7808:19;;7651:182;;;:::o;7839:365::-;;8002:67;8066:2;8061:3;8002:67;:::i;:::-;7995:74;;8099:34;8095:1;8090:3;8086:11;8079:55;8165:3;8160:2;8155:3;8151:12;8144:25;8195:2;8190:3;8186:12;8179:19;;7985:219;;;:::o;8210:303::-;;8373:66;8437:1;8432:3;8373:66;:::i;:::-;8366:73;;8469:8;8465:1;8460:3;8456:11;8449:29;8504:2;8499:3;8495:12;8488:19;;8356:157;;;:::o;8519:297::-;;8699:83;8780:1;8775:3;8699:83;:::i;:::-;8692:90;;8808:1;8803:3;8799:11;8792:18;;8682:134;;;:::o;8822:118::-;8909:24;8927:5;8909:24;:::i;:::-;8904:3;8897:37;8887:53;;:::o;8946:112::-;9029:22;9045:5;9029:22;:::i;:::-;9024:3;9017:35;9007:51;;:::o;9064:379::-;;9270:147;9413:3;9270:147;:::i;:::-;9263:154;;9434:3;9427:10;;9252:191;;;:::o;9449:222::-;;9580:2;9569:9;9565:18;9557:26;;9593:71;9661:1;9650:9;9646:17;9637:6;9593:71;:::i;:::-;9547:124;;;;:::o;9677:210::-;;9802:2;9791:9;9787:18;9779:26;;9815:65;9877:1;9866:9;9862:17;9853:6;9815:65;:::i;:::-;9769:118;;;;:::o;9893:258::-;;10042:2;10031:9;10027:18;10019:26;;10055:89;10141:1;10130:9;10126:17;10117:6;10055:89;:::i;:::-;10009:142;;;;:::o;10157:720::-;;10430:3;10419:9;10415:19;10407:27;;10444:79;10520:1;10509:9;10505:17;10496:6;10444:79;:::i;:::-;10570:9;10564:4;10560:20;10555:2;10544:9;10540:18;10533:48;10598:108;10701:4;10692:6;10598:108;:::i;:::-;10590:116;;10716:72;10784:2;10773:9;10769:18;10760:6;10716:72;:::i;:::-;10798;10866:2;10855:9;10851:18;10842:6;10798:72;:::i;:::-;10397:480;;;;;;;:::o;10883:313::-;;11034:2;11023:9;11019:18;11011:26;;11083:9;11077:4;11073:20;11069:1;11058:9;11054:17;11047:47;11111:78;11184:4;11175:6;11111:78;:::i;:::-;11103:86;;11001:195;;;;:::o;11202:419::-;;11406:2;11395:9;11391:18;11383:26;;11455:9;11449:4;11445:20;11441:1;11430:9;11426:17;11419:47;11483:131;11609:4;11483:131;:::i;:::-;11475:139;;11373:248;;;:::o;11627:419::-;;11831:2;11820:9;11816:18;11808:26;;11880:9;11874:4;11870:20;11866:1;11855:9;11851:17;11844:47;11908:131;12034:4;11908:131;:::i;:::-;11900:139;;11798:248;;;:::o;12052:419::-;;12256:2;12245:9;12241:18;12233:26;;12305:9;12299:4;12295:20;12291:1;12280:9;12276:17;12269:47;12333:131;12459:4;12333:131;:::i;:::-;12325:139;;12223:248;;;:::o;12477:419::-;;12681:2;12670:9;12666:18;12658:26;;12730:9;12724:4;12720:20;12716:1;12705:9;12701:17;12694:47;12758:131;12884:4;12758:131;:::i;:::-;12750:139;;12648:248;;;:::o;12902:419::-;;13106:2;13095:9;13091:18;13083:26;;13155:9;13149:4;13145:20;13141:1;13130:9;13126:17;13119:47;13183:131;13309:4;13183:131;:::i;:::-;13175:139;;13073:248;;;:::o;13327:222::-;;13458:2;13447:9;13443:18;13435:26;;13471:71;13539:1;13528:9;13524:17;13515:6;13471:71;:::i;:::-;13425:124;;;;:::o;13555:831::-;;13856:3;13845:9;13841:19;13833:27;;13870:71;13938:1;13927:9;13923:17;13914:6;13870:71;:::i;:::-;13951:80;14027:2;14016:9;14012:18;14003:6;13951:80;:::i;:::-;14078:9;14072:4;14068:20;14063:2;14052:9;14048:18;14041:48;14106:108;14209:4;14200:6;14106:108;:::i;:::-;14098:116;;14224:72;14292:2;14281:9;14277:18;14268:6;14224:72;:::i;:::-;14306:73;14374:3;14363:9;14359:19;14350:6;14306:73;:::i;:::-;13823:563;;;;;;;;:::o;14392:214::-;;14519:2;14508:9;14504:18;14496:26;;14532:67;14596:1;14585:9;14581:17;14572:6;14532:67;:::i;:::-;14486:120;;;;:::o;14612:283::-;;14678:2;14672:9;14662:19;;14720:4;14712:6;14708:17;14827:6;14815:10;14812:22;14791:18;14779:10;14776:34;14773:62;14770:2;;;14838:18;;:::i;:::-;14770:2;14878:10;14874:2;14867:22;14652:243;;;;:::o;14901:311::-;;15068:18;15060:6;15057:30;15054:2;;;15090:18;;:::i;:::-;15054:2;15140:4;15132:6;15128:17;15120:25;;15200:4;15194;15190:15;15182:23;;14983:229;;;:::o;15218:132::-;;15308:3;15300:11;;15338:4;15333:3;15329:14;15321:22;;15290:60;;;:::o;15356:114::-;;15457:5;15451:12;15441:22;;15430:40;;;:::o;15476:99::-;;15562:5;15556:12;15546:22;;15535:40;;;:::o;15581:113::-;;15683:4;15678:3;15674:14;15666:22;;15656:38;;;:::o;15700:184::-;;15833:6;15828:3;15821:19;15873:4;15868:3;15864:14;15849:29;;15811:73;;;;:::o;15890:147::-;;16028:3;16013:18;;16003:34;;;;:::o;16043:169::-;;16161:6;16156:3;16149:19;16201:4;16196:3;16192:14;16177:29;;16139:73;;;;:::o;16218:305::-;;16277:20;16295:1;16277:20;:::i;:::-;16272:25;;16311:20;16329:1;16311:20;:::i;:::-;16306:25;;16465:1;16397:66;16393:74;16390:1;16387:81;16384:2;;;16471:18;;:::i;:::-;16384:2;16515:1;16512;16508:9;16501:16;;16262:261;;;;:::o;16529:185::-;;16586:20;16604:1;16586:20;:::i;:::-;16581:25;;16620:20;16638:1;16620:20;:::i;:::-;16615:25;;16659:1;16649:2;;16664:18;;:::i;:::-;16649:2;16706:1;16703;16699:9;16694:14;;16571:143;;;;:::o;16720:348::-;;16783:20;16801:1;16783:20;:::i;:::-;16778:25;;16817:20;16835:1;16817:20;:::i;:::-;16812:25;;17005:1;16937:66;16933:74;16930:1;16927:81;16922:1;16915:9;16908:17;16904:105;16901:2;;;17012:18;;:::i;:::-;16901:2;17060:1;17057;17053:9;17042:20;;16768:300;;;;:::o;17074:191::-;;17134:20;17152:1;17134:20;:::i;:::-;17129:25;;17168:20;17186:1;17168:20;:::i;:::-;17163:25;;17207:1;17204;17201:8;17198:2;;;17212:18;;:::i;:::-;17198:2;17257:1;17254;17250:9;17242:17;;17119:146;;;;:::o;17271:96::-;;17337:24;17355:5;17337:24;:::i;:::-;17326:35;;17316:51;;;:::o;17373:90::-;;17450:5;17443:13;17436:21;17425:32;;17415:48;;;:::o;17469:126::-;;17546:42;17539:5;17535:54;17524:65;;17514:81;;;:::o;17601:77::-;;17667:5;17656:16;;17646:32;;;:::o;17684:86::-;;17759:4;17752:5;17748:16;17737:27;;17727:43;;;:::o;17776:162::-;;17877:55;17926:5;17877:55;:::i;:::-;17864:68;;17854:84;;;:::o;17944:131::-;;18045:24;18063:5;18045:24;:::i;:::-;18032:37;;18022:53;;;:::o;18081:121::-;;18172:24;18190:5;18172:24;:::i;:::-;18159:37;;18149:53;;;:::o;18208:307::-;18276:1;18286:113;18300:6;18297:1;18294:13;18286:113;;;18385:1;18380:3;18376:11;18370:18;18366:1;18361:3;18357:11;18350:39;18322:2;18319:1;18315:10;18310:15;;18286:113;;;18417:6;18414:1;18411:13;18408:2;;;18497:1;18488:6;18483:3;18479:16;18472:27;18408:2;18257:258;;;;:::o;18521:180::-;18569:77;18566:1;18559:88;18666:4;18663:1;18656:15;18690:4;18687:1;18680:15;18707:180;18755:77;18752:1;18745:88;18852:4;18849:1;18842:15;18876:4;18873:1;18866:15;18893:180;18941:77;18938:1;18931:88;19038:4;19035:1;19028:15;19062:4;19059:1;19052:15;19079:102;;19171:2;19167:7;19162:2;19155:5;19151:14;19147:28;19137:38;;19127:54;;;:::o;19187:122::-;19260:24;19278:5;19260:24;:::i;:::-;19253:5;19250:35;19240:2;;19299:1;19296;19289:12;19240:2;19230:79;:::o;19315:122::-;19388:24;19406:5;19388:24;:::i;:::-;19381:5;19378:35;19368:2;;19427:1;19424;19417:12;19368:2;19358:79;:::o

Swarm Source

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