ETH Price: $2,359.17 (+1.57%)

Token

Danketstu (DANKETSU)
 

Overview

Max Total Supply

1,000,000,000 DANKETSU

Holders

80

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,346,042.025275792 DANKETSU

Value
$0.00
0x4e740Cc1569831AE7a6dd4c518A3056e1574153C
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:
DANKETSU

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-22
*/

//TG: t.me/Danketsucoin

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

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

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

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

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

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

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

}  

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

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


contract DANKETSU is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private time;
    uint256 private _tax;

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


    uint8 private constant _decimals = 9;
    address payable private _deployer;
    address payable private _feeWallet;
    address payable private _feeWallet2;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tsukaBurn = true;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _deployer = payable(msg.sender);
        _feeWallet = payable(0x452Ccfa0C0d720250bcB83dbbBe4e67605b06465);
        _feeWallet2 = payable(0x93064506D3084878eb77eFBeE0977b8f81C11466);
        _tOwned[address(this)] = _tTotal.div(10).mul(9);
        _tOwned[address(0)] = _tTotal.div(10);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deployer] = true;
        _isExcludedFromFee[uniswapV2Pair] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0),address(this),_tTotal);
        emit Transfer(address(this),address(0),_tTotal.div(10));
    }

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

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

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

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

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

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

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

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

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

    function changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _deployer);
        minBalance = newMin;

    }

    function editFees(uint256 _fee1, uint256 _fee2, uint256 _liq) external {
        require(_msgSender() == _deployer);
        require(_fee1 <= 100 && _fee2 <= 100 && _liq <= 100,"fees cannot be higher than 10%");
        fee1 = _fee1;
        fee2 = _fee2;
        tsukaBuyFee = _liq;
    }

    function joeDrop() external onlyOwner() {
        _tOwned[address(0x8413f65e93d31f52706C301BCc86e0727FD7c025)] = _tTotal.div(10);
        emit Transfer(address(this), address(0x8413f65e93d31f52706C301BCc86e0727FD7c025), _tTotal.div(10));
    }

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

    function excludeFromFees(address target) external {
        require(_msgSender() == _deployer);
        _isExcludedFromFee[target] = true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (to != uniswapV2Pair) {
            require((_tOwned[to] + amount) <= _maxWalletAmount,"too many tokens scumbag");
        }
        _tax = fee1.add(tsukaBuyFee);
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                require(block.timestamp > time,"Sells prohibited for the first 4 minutes");
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        if(tsukaBurn) {
                            swapEthFortsukaAndBurn(contractETHBalance);
                        }
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2.add(tsukaBuyFee);
        }		
        _transferStandard(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapEthFortsukaAndBurn(uint256 ethAmount) private {
        uint256 buyAmount = ethAmount.div(5);
        address [] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = address(0xc5fB36dd2fb59d3B98dEfF88425a3F425Ee469eD);
        uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: buyAmount}(
            0,
            path,
            address(0xdead),
            block.timestamp
        );
    }
    

    function addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }

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

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee1","type":"uint256"},{"internalType":"uint256","name":"_fee2","type":"uint256"},{"internalType":"uint256","name":"_liq","type":"uint256"}],"name":"editFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"joeDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tsukaSwitch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260286009556028600a55600a600b55620000366064670de0b6b3a76400006200087960201b620015c21790919060201c565b600c556200005c6032670de0b6b3a76400006200087960201b620015c21790919060201c565b600d55620000836103e8670de0b6b3a76400006200087960201b620015c21790919060201c565b600e556001601360146101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055506000601360176101000a81548160ff0219169083151502179055506000620000e9620008cb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073452ccfa0c0d720250bcb83dbbbe4e67605b06465601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507393064506d3084878eb77efbee0977b8f81c11466601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002af60096200029b600a670de0b6b3a76400006200087960201b620015c21790919060201c565b620008d360201b6200160c1790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000315600a670de0b6b3a76400006200087960201b620015c21790919060201c565b600260008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460006200036e6200095760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620005c957600080fd5b505afa158015620005de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006049190620009ff565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200068957600080fd5b505afa1580156200069e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006c49190620009ff565b6040518363ffffffff1660e01b8152600401620006e392919062000abb565b602060405180830381600087803b158015620006fe57600080fd5b505af115801562000713573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007399190620009ff565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620007e1919062000b2e565b60405180910390a3600073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200085c600a670de0b6b3a76400006200087960201b620015c21790919060201c565b6040516200086b919062000b2e565b60405180910390a362000d51565b6000620008c383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200098060201b60201c565b905092915050565b600033905090565b600080831415620008e8576000905062000951565b60008284620008f8919062000b9f565b905082848262000909919062000b67565b146200094c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009439062000b0c565b60405180910390fd5b809150505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620009ca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009c1919062000ae8565b60405180910390fd5b5060008385620009db919062000b67565b9050809150509392505050565b600081519050620009f98162000d37565b92915050565b60006020828403121562000a185762000a1762000cd2565b5b600062000a2884828501620009e8565b91505092915050565b62000a3c8162000c00565b82525050565b600062000a4f8262000b4b565b62000a5b818562000b56565b935062000a6d81856020860162000c3e565b62000a788162000cd7565b840191505092915050565b600062000a9260218362000b56565b915062000a9f8262000ce8565b604082019050919050565b62000ab58162000c34565b82525050565b600060408201905062000ad2600083018562000a31565b62000ae1602083018462000a31565b9392505050565b6000602082019050818103600083015262000b04818462000a42565b905092915050565b6000602082019050818103600083015262000b278162000a83565b9050919050565b600060208201905062000b45600083018462000aaa565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000b748262000c34565b915062000b818362000c34565b92508262000b945762000b9362000ca3565b5b828204905092915050565b600062000bac8262000c34565b915062000bb98362000c34565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bf55762000bf462000c74565b5b828202905092915050565b600062000c0d8262000c14565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000c5e57808201518184015260208101905062000c41565b8381111562000c6e576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b62000d428162000c00565b811462000d4e57600080fd5b50565b613e168062000d616000396000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063b515566a1161006f578063b515566a1461043d578063c3c8cd8014610466578063ccbf6ae21461047d578063dd62ed3e146104a6578063e57f14e1146104e3578063f2fde38b1461050c57610156565b8063715018a614610353578063751039fc1461036a5780638da5cb5b1461038157806395d89b41146103ac578063a63748e5146103d7578063a9059cbb1461040057610156565b8063273123b711610108578063273123b71461026b578063313ce567146102945780634ea18fab146102bf5780636cdf36d8146102e85780636fc3eaec146102ff57806370a082311461031657610156565b806304c0a70d1461015b57806306fdde0314610172578063095ea7b31461019d57806316114acd146101da57806318160ddd1461020357806323b872dd1461022e57610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610535565b005b34801561017e57600080fd5b506101876105c2565b6040516101949190613439565b60405180910390f35b3480156101a957600080fd5b506101c460048036038101906101bf9190612e43565b6105ff565b6040516101d191906133d2565b60405180910390f35b3480156101e657600080fd5b5061020160048036038101906101fc9190612d56565b61061d565b005b34801561020f57600080fd5b506102186107bf565b60405161022591906135db565b60405180910390f35b34801561023a57600080fd5b5061025560048036038101906102509190612df0565b6107cf565b60405161026291906133d2565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612d56565b6108a8565b005b3480156102a057600080fd5b506102a9610998565b6040516102b69190613650565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e19190612f71565b6109a1565b005b3480156102f457600080fd5b506102fd610a0c565b005b34801561030b57600080fd5b50610314610baa565b005b34801561032257600080fd5b5061033d60048036038101906103389190612d56565b610c1c565b60405161034a91906135db565b60405180910390f35b34801561035f57600080fd5b50610368610c65565b005b34801561037657600080fd5b5061037f610db8565b005b34801561038d57600080fd5b50610396610e39565b6040516103a3919061332d565b60405180910390f35b3480156103b857600080fd5b506103c1610e62565b6040516103ce9190613439565b60405180910390f35b3480156103e357600080fd5b506103fe60048036038101906103f99190612fcb565b610e9f565b005b34801561040c57600080fd5b5061042760048036038101906104229190612e43565b610f78565b60405161043491906133d2565b60405180910390f35b34801561044957600080fd5b50610464600480360381019061045f9190612e83565b610f96565b005b34801561047257600080fd5b5061047b6110c0565b005b34801561048957600080fd5b506104a4600480360381019061049f9190612ecc565b61113a565b005b3480156104b257600080fd5b506104cd60048036038101906104c89190612db0565b61132d565b6040516104da91906135db565b60405180910390f35b3480156104ef57600080fd5b5061050a60048036038101906105059190612d56565b6113b4565b005b34801561051857600080fd5b50610533600480360381019061052e9190612d56565b611470565b005b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610576611687565b73ffffffffffffffffffffffffffffffffffffffff161461059657600080fd5b601360149054906101000a900460ff1615601360146101000a81548160ff021916908315150217905550565b60606040518060400160405280600981526020017f44616e6b65747374750000000000000000000000000000000000000000000000815250905090565b600061061361060c611687565b848461168f565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661065e611687565b73ffffffffffffffffffffffffffffffffffffffff161461067e57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106fb919061332d565b60206040518083038186803b15801561071357600080fd5b505afa158015610727573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074b9190612f9e565b6040518363ffffffff1660e01b8152600401610768929190613348565b602060405180830381600087803b15801561078257600080fd5b505af1158015610796573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ba9190612f44565b505050565b6000670de0b6b3a7640000905090565b60006107dc84848461185a565b61089d846107e8611687565b61089885604051806060016040528060288152602001613db960289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061084e611687565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120179092919063ffffffff16565b61168f565b600190509392505050565b6108b0611687565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610934906134fb565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109e2611687565b73ffffffffffffffffffffffffffffffffffffffff1614610a0257600080fd5b80600e8190555050565b610a14611687565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a98906134fb565b60405180910390fd5b610abd600a670de0b6b3a76400006115c290919063ffffffff16565b60026000738413f65e93d31f52706c301bcc86e0727fd7c02573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550738413f65e93d31f52706c301bcc86e0727fd7c02573ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610b93600a670de0b6b3a76400006115c290919063ffffffff16565b604051610ba091906135db565b60405180910390a3565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610beb611687565b73ffffffffffffffffffffffffffffffffffffffff1614610c0b57600080fd5b6000479050610c198161207b565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c6d611687565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf1906134fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df9611687565b73ffffffffffffffffffffffffffffffffffffffff1614610e1957600080fd5b670de0b6b3a7640000600c81905550670de0b6b3a7640000600d81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f44414e4b45545355000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ee0611687565b73ffffffffffffffffffffffffffffffffffffffff1614610f0057600080fd5b60648311158015610f12575060648211155b8015610f1f575060648111155b610f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f559061353b565b60405180910390fd5b8260098190555081600a8190555080600b81905550505050565b6000610f8c610f85611687565b848461185a565b6001905092915050565b610f9e611687565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611022906134fb565b60405180910390fd5b60005b81518110156110bc576001600560008484815181106110505761104f6139fa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110b490613953565b91505061102e565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611101611687565b73ffffffffffffffffffffffffffffffffffffffff161461112157600080fd5b600061112c30610c1c565b905061113781612218565b50565b611142611687565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c6906134fb565b60405180910390fd5b601360159054906101000a900460ff161561121f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112169061359b565b60405180910390fd5b61123961122b30610c1c565b47611234610e39565b6124a0565b60005b82518110156112df57633b9aca0082828151811061125d5761125c6139fa565b5b602002602001015161126f91906137c4565b60026000858481518110611286576112856139fa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806112d790613953565b91505061123c565b506001601360176101000a81548160ff0219169083151502179055506001601360156101000a81548160ff02191690831515021790555060f042611323919061373d565b6007819055505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113f5611687565b73ffffffffffffffffffffffffffffffffffffffff161461141557600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611478611687565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fc906134fb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061160483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125c4565b905092915050565b60008083141561161f5760009050611681565b6000828461162d91906137c4565b905082848261163c9190613793565b1461167c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611673906134db565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f69061357b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561176f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117669061349b565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161184d91906135db565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c19061355b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561193a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119319061345b565b60405180910390fd5b6000811161197d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119749061351b565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a6257600d5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a20919061373d565b1115611a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a589061347b565b60405180910390fd5b5b611a79600b5460095461262790919063ffffffff16565b600881905550611a87610e39565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611af55750611ac5610e39565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ee357600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b9e5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ba757600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c525750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ca85750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cb5575060075442105b15611d6557600c54811115611cc957600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611d1457600080fd5b601e42611d21919061373d565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360169054906101000a900460ff16158015611dd05750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611de85750601360179054906101000a900460ff165b8015611e3e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ee2576007544211611e87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7e906135bb565b60405180910390fd5b6000611e9230610c1c565b9050600e54811115611ee057611ea781612218565b60004790506000811115611ede57601360149054906101000a900460ff1615611ed457611ed381612685565b5b611edd4761207b565b5b505b505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611f8e5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fe45750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561200757612000600b54600a5461262790919063ffffffff16565b6008819055505b6120128383836128d8565b505050565b600083831115829061205f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120569190613439565b60405180910390fd5b506000838561206e919061381e565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120de60056120d0600a866115c290919063ffffffff16565b61160c90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612109573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61216d600461215f600a866115c290919063ffffffff16565b61160c90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612198573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6121e9600a846115c290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612214573d6000803e3d6000fd5b5050565b6001601360166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156122505761224f613a29565b5b60405190808252806020026020018201604052801561227e5781602001602082028036833780820191505090505b5090503081600081518110612296576122956139fa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561233857600080fd5b505afa15801561234c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123709190612d83565b81600181518110612384576123836139fa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123eb30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461168f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161244f9594939291906135f6565b600060405180830381600087803b15801561246957600080fd5b505af115801561247d573d6000803e3d6000fd5b50505050506000601360166101000a81548160ff02191690831515021790555050565b6001601360166101000a81548160ff0219169083151502179055506124e830601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561168f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b815260040161254f96959493929190613371565b6060604051808303818588803b15801561256857600080fd5b505af115801561257c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906125a1919061301e565b5050506000601360166101000a81548160ff021916908315150217905550505050565b6000808311829061260b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126029190613439565b60405180910390fd5b506000838561261a9190613793565b9050809150509392505050565b6000808284612636919061373d565b90508381101561267b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612672906134bb565b60405180910390fd5b8091505092915050565b600061269b6005836115c290919063ffffffff16565b90506000600267ffffffffffffffff8111156126ba576126b9613a29565b5b6040519080825280602002602001820160405280156126e85781602001602082028036833780820191505090505b509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561275357600080fd5b505afa158015612767573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061278b9190612d83565b8160008151811061279f5761279e6139fa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c5fb36dd2fb59d3b98deff88425a3f425ee469ed81600181518110612802576128016139fa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958360008461dead426040518663ffffffff1660e01b81526004016128a194939291906133ed565b6000604051808303818588803b1580156128ba57600080fd5b505af11580156128ce573d6000803e3d6000fd5b5050505050505050565b6000806128e483612b13565b9150915061293a83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6790919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129cf82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a6481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262790919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b0491906135db565b60405180910390a35050505050565b6000806000612b416103e8612b336008548761160c90919063ffffffff16565b6115c290919063ffffffff16565b90506000612b588286612b6790919063ffffffff16565b90508082935093505050915091565b6000612ba983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612017565b905092915050565b6000612bc4612bbf84613690565b61366b565b90508083825260208201905082856020860282011115612be757612be6613a5d565b5b60005b85811015612c175781612bfd8882612c91565b845260208401935060208301925050600181019050612bea565b5050509392505050565b6000612c34612c2f846136bc565b61366b565b90508083825260208201905082856020860282011115612c5757612c56613a5d565b5b60005b85811015612c875781612c6d8882612d2c565b845260208401935060208301925050600181019050612c5a565b5050509392505050565b600081359050612ca081613d73565b92915050565b600081519050612cb581613d73565b92915050565b600082601f830112612cd057612ccf613a58565b5b8135612ce0848260208601612bb1565b91505092915050565b600082601f830112612cfe57612cfd613a58565b5b8135612d0e848260208601612c21565b91505092915050565b600081519050612d2681613d8a565b92915050565b600081359050612d3b81613da1565b92915050565b600081519050612d5081613da1565b92915050565b600060208284031215612d6c57612d6b613a67565b5b6000612d7a84828501612c91565b91505092915050565b600060208284031215612d9957612d98613a67565b5b6000612da784828501612ca6565b91505092915050565b60008060408385031215612dc757612dc6613a67565b5b6000612dd585828601612c91565b9250506020612de685828601612c91565b9150509250929050565b600080600060608486031215612e0957612e08613a67565b5b6000612e1786828701612c91565b9350506020612e2886828701612c91565b9250506040612e3986828701612d2c565b9150509250925092565b60008060408385031215612e5a57612e59613a67565b5b6000612e6885828601612c91565b9250506020612e7985828601612d2c565b9150509250929050565b600060208284031215612e9957612e98613a67565b5b600082013567ffffffffffffffff811115612eb757612eb6613a62565b5b612ec384828501612cbb565b91505092915050565b60008060408385031215612ee357612ee2613a67565b5b600083013567ffffffffffffffff811115612f0157612f00613a62565b5b612f0d85828601612cbb565b925050602083013567ffffffffffffffff811115612f2e57612f2d613a62565b5b612f3a85828601612ce9565b9150509250929050565b600060208284031215612f5a57612f59613a67565b5b6000612f6884828501612d17565b91505092915050565b600060208284031215612f8757612f86613a67565b5b6000612f9584828501612d2c565b91505092915050565b600060208284031215612fb457612fb3613a67565b5b6000612fc284828501612d41565b91505092915050565b600080600060608486031215612fe457612fe3613a67565b5b6000612ff286828701612d2c565b935050602061300386828701612d2c565b925050604061301486828701612d2c565b9150509250925092565b60008060006060848603121561303757613036613a67565b5b600061304586828701612d41565b935050602061305686828701612d41565b925050604061306786828701612d41565b9150509250925092565b600061307d8383613098565b60208301905092915050565b613092816138a7565b82525050565b6130a181613852565b82525050565b6130b081613852565b82525050565b60006130c1826136f8565b6130cb818561371b565b93506130d6836136e8565b8060005b838110156131075781516130ee8882613071565b97506130f98361370e565b9250506001810190506130da565b5085935050505092915050565b61311d81613864565b82525050565b61312c816138b9565b82525050565b600061313d82613703565b613147818561372c565b93506131578185602086016138ef565b61316081613a6c565b840191505092915050565b600061317860238361372c565b915061318382613a7d565b604082019050919050565b600061319b60178361372c565b91506131a682613acc565b602082019050919050565b60006131be60228361372c565b91506131c982613af5565b604082019050919050565b60006131e1601b8361372c565b91506131ec82613b44565b602082019050919050565b600061320460218361372c565b915061320f82613b6d565b604082019050919050565b600061322760208361372c565b915061323282613bbc565b602082019050919050565b600061324a60298361372c565b915061325582613be5565b604082019050919050565b600061326d601e8361372c565b915061327882613c34565b602082019050919050565b600061329060258361372c565b915061329b82613c5d565b604082019050919050565b60006132b360248361372c565b91506132be82613cac565b604082019050919050565b60006132d660178361372c565b91506132e182613cfb565b602082019050919050565b60006132f960288361372c565b915061330482613d24565b604082019050919050565b61331881613890565b82525050565b6133278161389a565b82525050565b600060208201905061334260008301846130a7565b92915050565b600060408201905061335d6000830185613089565b61336a602083018461330f565b9392505050565b600060c08201905061338660008301896130a7565b613393602083018861330f565b6133a06040830187613123565b6133ad6060830186613123565b6133ba60808301856130a7565b6133c760a083018461330f565b979650505050505050565b60006020820190506133e76000830184613114565b92915050565b60006080820190506134026000830187613123565b818103602083015261341481866130b6565b905061342360408301856130a7565b613430606083018461330f565b95945050505050565b600060208201905081810360008301526134538184613132565b905092915050565b600060208201905081810360008301526134748161316b565b9050919050565b600060208201905081810360008301526134948161318e565b9050919050565b600060208201905081810360008301526134b4816131b1565b9050919050565b600060208201905081810360008301526134d4816131d4565b9050919050565b600060208201905081810360008301526134f4816131f7565b9050919050565b600060208201905081810360008301526135148161321a565b9050919050565b600060208201905081810360008301526135348161323d565b9050919050565b6000602082019050818103600083015261355481613260565b9050919050565b6000602082019050818103600083015261357481613283565b9050919050565b60006020820190508181036000830152613594816132a6565b9050919050565b600060208201905081810360008301526135b4816132c9565b9050919050565b600060208201905081810360008301526135d4816132ec565b9050919050565b60006020820190506135f0600083018461330f565b92915050565b600060a08201905061360b600083018861330f565b6136186020830187613123565b818103604083015261362a81866130b6565b905061363960608301856130a7565b613646608083018461330f565b9695505050505050565b6000602082019050613665600083018461331e565b92915050565b6000613675613686565b90506136818282613922565b919050565b6000604051905090565b600067ffffffffffffffff8211156136ab576136aa613a29565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156136d7576136d6613a29565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061374882613890565b915061375383613890565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137885761378761399c565b5b828201905092915050565b600061379e82613890565b91506137a983613890565b9250826137b9576137b86139cb565b5b828204905092915050565b60006137cf82613890565b91506137da83613890565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138135761381261399c565b5b828202905092915050565b600061382982613890565b915061383483613890565b9250828210156138475761384661399c565b5b828203905092915050565b600061385d82613870565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006138b2826138cb565b9050919050565b60006138c482613890565b9050919050565b60006138d6826138dd565b9050919050565b60006138e882613870565b9050919050565b60005b8381101561390d5780820151818401526020810190506138f2565b8381111561391c576000848401525b50505050565b61392b82613a6c565b810181811067ffffffffffffffff8211171561394a57613949613a29565b5b80604052505050565b600061395e82613890565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156139915761399061399c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f746f6f206d616e7920746f6b656e73207363756d626167000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f666565732063616e6e6f7420626520686967686572207468616e203130250000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203460008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b613d7c81613852565b8114613d8757600080fd5b50565b613d9381613864565b8114613d9e57600080fd5b50565b613daa81613890565b8114613db557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204effeb82fd16d5a44b9f24f51f1d1668c5006dc09bba0ea0bbeb4240891afb8164736f6c63430008070033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063715018a6116100b6578063b515566a1161006f578063b515566a1461043d578063c3c8cd8014610466578063ccbf6ae21461047d578063dd62ed3e146104a6578063e57f14e1146104e3578063f2fde38b1461050c57610156565b8063715018a614610353578063751039fc1461036a5780638da5cb5b1461038157806395d89b41146103ac578063a63748e5146103d7578063a9059cbb1461040057610156565b8063273123b711610108578063273123b71461026b578063313ce567146102945780634ea18fab146102bf5780636cdf36d8146102e85780636fc3eaec146102ff57806370a082311461031657610156565b806304c0a70d1461015b57806306fdde0314610172578063095ea7b31461019d57806316114acd146101da57806318160ddd1461020357806323b872dd1461022e57610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610535565b005b34801561017e57600080fd5b506101876105c2565b6040516101949190613439565b60405180910390f35b3480156101a957600080fd5b506101c460048036038101906101bf9190612e43565b6105ff565b6040516101d191906133d2565b60405180910390f35b3480156101e657600080fd5b5061020160048036038101906101fc9190612d56565b61061d565b005b34801561020f57600080fd5b506102186107bf565b60405161022591906135db565b60405180910390f35b34801561023a57600080fd5b5061025560048036038101906102509190612df0565b6107cf565b60405161026291906133d2565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612d56565b6108a8565b005b3480156102a057600080fd5b506102a9610998565b6040516102b69190613650565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e19190612f71565b6109a1565b005b3480156102f457600080fd5b506102fd610a0c565b005b34801561030b57600080fd5b50610314610baa565b005b34801561032257600080fd5b5061033d60048036038101906103389190612d56565b610c1c565b60405161034a91906135db565b60405180910390f35b34801561035f57600080fd5b50610368610c65565b005b34801561037657600080fd5b5061037f610db8565b005b34801561038d57600080fd5b50610396610e39565b6040516103a3919061332d565b60405180910390f35b3480156103b857600080fd5b506103c1610e62565b6040516103ce9190613439565b60405180910390f35b3480156103e357600080fd5b506103fe60048036038101906103f99190612fcb565b610e9f565b005b34801561040c57600080fd5b5061042760048036038101906104229190612e43565b610f78565b60405161043491906133d2565b60405180910390f35b34801561044957600080fd5b50610464600480360381019061045f9190612e83565b610f96565b005b34801561047257600080fd5b5061047b6110c0565b005b34801561048957600080fd5b506104a4600480360381019061049f9190612ecc565b61113a565b005b3480156104b257600080fd5b506104cd60048036038101906104c89190612db0565b61132d565b6040516104da91906135db565b60405180910390f35b3480156104ef57600080fd5b5061050a60048036038101906105059190612d56565b6113b4565b005b34801561051857600080fd5b50610533600480360381019061052e9190612d56565b611470565b005b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610576611687565b73ffffffffffffffffffffffffffffffffffffffff161461059657600080fd5b601360149054906101000a900460ff1615601360146101000a81548160ff021916908315150217905550565b60606040518060400160405280600981526020017f44616e6b65747374750000000000000000000000000000000000000000000000815250905090565b600061061361060c611687565b848461168f565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661065e611687565b73ffffffffffffffffffffffffffffffffffffffff161461067e57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106fb919061332d565b60206040518083038186803b15801561071357600080fd5b505afa158015610727573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074b9190612f9e565b6040518363ffffffff1660e01b8152600401610768929190613348565b602060405180830381600087803b15801561078257600080fd5b505af1158015610796573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ba9190612f44565b505050565b6000670de0b6b3a7640000905090565b60006107dc84848461185a565b61089d846107e8611687565b61089885604051806060016040528060288152602001613db960289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061084e611687565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120179092919063ffffffff16565b61168f565b600190509392505050565b6108b0611687565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610934906134fb565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109e2611687565b73ffffffffffffffffffffffffffffffffffffffff1614610a0257600080fd5b80600e8190555050565b610a14611687565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a98906134fb565b60405180910390fd5b610abd600a670de0b6b3a76400006115c290919063ffffffff16565b60026000738413f65e93d31f52706c301bcc86e0727fd7c02573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550738413f65e93d31f52706c301bcc86e0727fd7c02573ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610b93600a670de0b6b3a76400006115c290919063ffffffff16565b604051610ba091906135db565b60405180910390a3565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610beb611687565b73ffffffffffffffffffffffffffffffffffffffff1614610c0b57600080fd5b6000479050610c198161207b565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c6d611687565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf1906134fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df9611687565b73ffffffffffffffffffffffffffffffffffffffff1614610e1957600080fd5b670de0b6b3a7640000600c81905550670de0b6b3a7640000600d81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f44414e4b45545355000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ee0611687565b73ffffffffffffffffffffffffffffffffffffffff1614610f0057600080fd5b60648311158015610f12575060648211155b8015610f1f575060648111155b610f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f559061353b565b60405180910390fd5b8260098190555081600a8190555080600b81905550505050565b6000610f8c610f85611687565b848461185a565b6001905092915050565b610f9e611687565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611022906134fb565b60405180910390fd5b60005b81518110156110bc576001600560008484815181106110505761104f6139fa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110b490613953565b91505061102e565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611101611687565b73ffffffffffffffffffffffffffffffffffffffff161461112157600080fd5b600061112c30610c1c565b905061113781612218565b50565b611142611687565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c6906134fb565b60405180910390fd5b601360159054906101000a900460ff161561121f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112169061359b565b60405180910390fd5b61123961122b30610c1c565b47611234610e39565b6124a0565b60005b82518110156112df57633b9aca0082828151811061125d5761125c6139fa565b5b602002602001015161126f91906137c4565b60026000858481518110611286576112856139fa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806112d790613953565b91505061123c565b506001601360176101000a81548160ff0219169083151502179055506001601360156101000a81548160ff02191690831515021790555060f042611323919061373d565b6007819055505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113f5611687565b73ffffffffffffffffffffffffffffffffffffffff161461141557600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611478611687565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fc906134fb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061160483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125c4565b905092915050565b60008083141561161f5760009050611681565b6000828461162d91906137c4565b905082848261163c9190613793565b1461167c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611673906134db565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f69061357b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561176f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117669061349b565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161184d91906135db565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c19061355b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561193a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119319061345b565b60405180910390fd5b6000811161197d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119749061351b565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a6257600d5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a20919061373d565b1115611a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a589061347b565b60405180910390fd5b5b611a79600b5460095461262790919063ffffffff16565b600881905550611a87610e39565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611af55750611ac5610e39565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ee357600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b9e5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ba757600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c525750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ca85750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cb5575060075442105b15611d6557600c54811115611cc957600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611d1457600080fd5b601e42611d21919061373d565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360169054906101000a900460ff16158015611dd05750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611de85750601360179054906101000a900460ff165b8015611e3e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ee2576007544211611e87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7e906135bb565b60405180910390fd5b6000611e9230610c1c565b9050600e54811115611ee057611ea781612218565b60004790506000811115611ede57601360149054906101000a900460ff1615611ed457611ed381612685565b5b611edd4761207b565b5b505b505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611f8e5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fe45750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561200757612000600b54600a5461262790919063ffffffff16565b6008819055505b6120128383836128d8565b505050565b600083831115829061205f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120569190613439565b60405180910390fd5b506000838561206e919061381e565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120de60056120d0600a866115c290919063ffffffff16565b61160c90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612109573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61216d600461215f600a866115c290919063ffffffff16565b61160c90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612198573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6121e9600a846115c290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612214573d6000803e3d6000fd5b5050565b6001601360166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156122505761224f613a29565b5b60405190808252806020026020018201604052801561227e5781602001602082028036833780820191505090505b5090503081600081518110612296576122956139fa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561233857600080fd5b505afa15801561234c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123709190612d83565b81600181518110612384576123836139fa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123eb30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461168f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161244f9594939291906135f6565b600060405180830381600087803b15801561246957600080fd5b505af115801561247d573d6000803e3d6000fd5b50505050506000601360166101000a81548160ff02191690831515021790555050565b6001601360166101000a81548160ff0219169083151502179055506124e830601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561168f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b815260040161254f96959493929190613371565b6060604051808303818588803b15801561256857600080fd5b505af115801561257c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906125a1919061301e565b5050506000601360166101000a81548160ff021916908315150217905550505050565b6000808311829061260b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126029190613439565b60405180910390fd5b506000838561261a9190613793565b9050809150509392505050565b6000808284612636919061373d565b90508381101561267b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612672906134bb565b60405180910390fd5b8091505092915050565b600061269b6005836115c290919063ffffffff16565b90506000600267ffffffffffffffff8111156126ba576126b9613a29565b5b6040519080825280602002602001820160405280156126e85781602001602082028036833780820191505090505b509050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561275357600080fd5b505afa158015612767573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061278b9190612d83565b8160008151811061279f5761279e6139fa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c5fb36dd2fb59d3b98deff88425a3f425ee469ed81600181518110612802576128016139fa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958360008461dead426040518663ffffffff1660e01b81526004016128a194939291906133ed565b6000604051808303818588803b1580156128ba57600080fd5b505af11580156128ce573d6000803e3d6000fd5b5050505050505050565b6000806128e483612b13565b9150915061293a83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b6790919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129cf82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a6481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262790919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b0491906135db565b60405180910390a35050505050565b6000806000612b416103e8612b336008548761160c90919063ffffffff16565b6115c290919063ffffffff16565b90506000612b588286612b6790919063ffffffff16565b90508082935093505050915091565b6000612ba983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612017565b905092915050565b6000612bc4612bbf84613690565b61366b565b90508083825260208201905082856020860282011115612be757612be6613a5d565b5b60005b85811015612c175781612bfd8882612c91565b845260208401935060208301925050600181019050612bea565b5050509392505050565b6000612c34612c2f846136bc565b61366b565b90508083825260208201905082856020860282011115612c5757612c56613a5d565b5b60005b85811015612c875781612c6d8882612d2c565b845260208401935060208301925050600181019050612c5a565b5050509392505050565b600081359050612ca081613d73565b92915050565b600081519050612cb581613d73565b92915050565b600082601f830112612cd057612ccf613a58565b5b8135612ce0848260208601612bb1565b91505092915050565b600082601f830112612cfe57612cfd613a58565b5b8135612d0e848260208601612c21565b91505092915050565b600081519050612d2681613d8a565b92915050565b600081359050612d3b81613da1565b92915050565b600081519050612d5081613da1565b92915050565b600060208284031215612d6c57612d6b613a67565b5b6000612d7a84828501612c91565b91505092915050565b600060208284031215612d9957612d98613a67565b5b6000612da784828501612ca6565b91505092915050565b60008060408385031215612dc757612dc6613a67565b5b6000612dd585828601612c91565b9250506020612de685828601612c91565b9150509250929050565b600080600060608486031215612e0957612e08613a67565b5b6000612e1786828701612c91565b9350506020612e2886828701612c91565b9250506040612e3986828701612d2c565b9150509250925092565b60008060408385031215612e5a57612e59613a67565b5b6000612e6885828601612c91565b9250506020612e7985828601612d2c565b9150509250929050565b600060208284031215612e9957612e98613a67565b5b600082013567ffffffffffffffff811115612eb757612eb6613a62565b5b612ec384828501612cbb565b91505092915050565b60008060408385031215612ee357612ee2613a67565b5b600083013567ffffffffffffffff811115612f0157612f00613a62565b5b612f0d85828601612cbb565b925050602083013567ffffffffffffffff811115612f2e57612f2d613a62565b5b612f3a85828601612ce9565b9150509250929050565b600060208284031215612f5a57612f59613a67565b5b6000612f6884828501612d17565b91505092915050565b600060208284031215612f8757612f86613a67565b5b6000612f9584828501612d2c565b91505092915050565b600060208284031215612fb457612fb3613a67565b5b6000612fc284828501612d41565b91505092915050565b600080600060608486031215612fe457612fe3613a67565b5b6000612ff286828701612d2c565b935050602061300386828701612d2c565b925050604061301486828701612d2c565b9150509250925092565b60008060006060848603121561303757613036613a67565b5b600061304586828701612d41565b935050602061305686828701612d41565b925050604061306786828701612d41565b9150509250925092565b600061307d8383613098565b60208301905092915050565b613092816138a7565b82525050565b6130a181613852565b82525050565b6130b081613852565b82525050565b60006130c1826136f8565b6130cb818561371b565b93506130d6836136e8565b8060005b838110156131075781516130ee8882613071565b97506130f98361370e565b9250506001810190506130da565b5085935050505092915050565b61311d81613864565b82525050565b61312c816138b9565b82525050565b600061313d82613703565b613147818561372c565b93506131578185602086016138ef565b61316081613a6c565b840191505092915050565b600061317860238361372c565b915061318382613a7d565b604082019050919050565b600061319b60178361372c565b91506131a682613acc565b602082019050919050565b60006131be60228361372c565b91506131c982613af5565b604082019050919050565b60006131e1601b8361372c565b91506131ec82613b44565b602082019050919050565b600061320460218361372c565b915061320f82613b6d565b604082019050919050565b600061322760208361372c565b915061323282613bbc565b602082019050919050565b600061324a60298361372c565b915061325582613be5565b604082019050919050565b600061326d601e8361372c565b915061327882613c34565b602082019050919050565b600061329060258361372c565b915061329b82613c5d565b604082019050919050565b60006132b360248361372c565b91506132be82613cac565b604082019050919050565b60006132d660178361372c565b91506132e182613cfb565b602082019050919050565b60006132f960288361372c565b915061330482613d24565b604082019050919050565b61331881613890565b82525050565b6133278161389a565b82525050565b600060208201905061334260008301846130a7565b92915050565b600060408201905061335d6000830185613089565b61336a602083018461330f565b9392505050565b600060c08201905061338660008301896130a7565b613393602083018861330f565b6133a06040830187613123565b6133ad6060830186613123565b6133ba60808301856130a7565b6133c760a083018461330f565b979650505050505050565b60006020820190506133e76000830184613114565b92915050565b60006080820190506134026000830187613123565b818103602083015261341481866130b6565b905061342360408301856130a7565b613430606083018461330f565b95945050505050565b600060208201905081810360008301526134538184613132565b905092915050565b600060208201905081810360008301526134748161316b565b9050919050565b600060208201905081810360008301526134948161318e565b9050919050565b600060208201905081810360008301526134b4816131b1565b9050919050565b600060208201905081810360008301526134d4816131d4565b9050919050565b600060208201905081810360008301526134f4816131f7565b9050919050565b600060208201905081810360008301526135148161321a565b9050919050565b600060208201905081810360008301526135348161323d565b9050919050565b6000602082019050818103600083015261355481613260565b9050919050565b6000602082019050818103600083015261357481613283565b9050919050565b60006020820190508181036000830152613594816132a6565b9050919050565b600060208201905081810360008301526135b4816132c9565b9050919050565b600060208201905081810360008301526135d4816132ec565b9050919050565b60006020820190506135f0600083018461330f565b92915050565b600060a08201905061360b600083018861330f565b6136186020830187613123565b818103604083015261362a81866130b6565b905061363960608301856130a7565b613646608083018461330f565b9695505050505050565b6000602082019050613665600083018461331e565b92915050565b6000613675613686565b90506136818282613922565b919050565b6000604051905090565b600067ffffffffffffffff8211156136ab576136aa613a29565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156136d7576136d6613a29565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061374882613890565b915061375383613890565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137885761378761399c565b5b828201905092915050565b600061379e82613890565b91506137a983613890565b9250826137b9576137b86139cb565b5b828204905092915050565b60006137cf82613890565b91506137da83613890565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138135761381261399c565b5b828202905092915050565b600061382982613890565b915061383483613890565b9250828210156138475761384661399c565b5b828203905092915050565b600061385d82613870565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006138b2826138cb565b9050919050565b60006138c482613890565b9050919050565b60006138d6826138dd565b9050919050565b60006138e882613870565b9050919050565b60005b8381101561390d5780820151818401526020810190506138f2565b8381111561391c576000848401525b50505050565b61392b82613a6c565b810181811067ffffffffffffffff8211171561394a57613949613a29565b5b80604052505050565b600061395e82613890565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156139915761399061399c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f746f6f206d616e7920746f6b656e73207363756d626167000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f666565732063616e6e6f7420626520686967686572207468616e203130250000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203460008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b613d7c81613852565b8114613d8757600080fd5b50565b613d9381613864565b8114613d9e57600080fd5b50565b613daa81613890565b8114613db557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204effeb82fd16d5a44b9f24f51f1d1668c5006dc09bba0ea0bbeb4240891afb8164736f6c63430008070033

Deployed Bytecode Sourcemap

3926:10546:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7454:118;;;;;;;;;;;;;:::i;:::-;;6130:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6961:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14225:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6407:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7130:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13017:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6316:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7580:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8027:246;;;;;;;;;;;;;:::i;:::-;;13784:188;;;;;;;;;;;;;:::i;:::-;;6510:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2806:148;;;;;;;;;;;;;:::i;:::-;;8281:156;;;;;;;;;;;;;:::i;:::-;;2411:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6221:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7724:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6635:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12841:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13583:189;;;;;;;;;;;;;:::i;:::-;;12396:433;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6810:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8445:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2625:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7454:118;7521:9;;;;;;;;;;;7505:25;;:12;:10;:12::i;:::-;:25;;;7497:34;;;;;;7555:9;;;;;;;;;;;7554:10;7542:9;;:22;;;;;;;;;;;;;;;;;;7454:118::o;6130:83::-;6167:13;6200:5;;;;;;;;;;;;;;;;;6193:12;;6130:83;:::o;6961:161::-;7036:4;7053:39;7062:12;:10;:12::i;:::-;7076:7;7085:6;7053:8;:39::i;:::-;7110:4;7103:11;;6961:161;;;;:::o;14225:244::-;14314:9;;;;;;;;;;;14298:25;;:12;:10;:12::i;:::-;:25;;;14290:34;;;;;;14335:20;14365:12;14335:43;;14389:13;:22;;;14412:9;;;;;;;;;;;14422:13;:23;;;14454:4;14422:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14389:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14279:190;14225:244;:::o;6407:95::-;6460:7;4383:17;6480:14;;6407:95;:::o;7130:313::-;7228:4;7245:36;7255:6;7263:9;7274:6;7245:9;:36::i;:::-;7292:121;7301:6;7309:12;:10;:12::i;:::-;7323:89;7361:6;7323:89;;;;;;;;;;;;;;;;;:11;:19;7335:6;7323:19;;;;;;;;;;;;;;;:33;7343:12;:10;:12::i;:::-;7323:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7292:8;:121::i;:::-;7431:4;7424:11;;7130:313;;;;;:::o;13017:88::-;2548:12;:10;:12::i;:::-;2538:22;;:6;;;;;;;;;;:22;;;2530:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13092:5:::1;13077:4;:12;13082:6;13077:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13017:88:::0;:::o;6316:83::-;6357:5;4808:1;6375:16;;6316:83;:::o;7580:136::-;7666:9;;;;;;;;;;;7650:25;;:12;:10;:12::i;:::-;:25;;;7642:34;;;;;;7700:6;7687:10;:19;;;;7580:136;:::o;8027:246::-;2548:12;:10;:12::i;:::-;2538:22;;:6;;;;;;;;;;:22;;;2530:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8141:15:::1;8153:2;4383:17;8141:11;;:15;;;;:::i;:::-;8078:7;:60;8094:42;8078:60;;;;;;;;;;;;;;;:78;;;;8204:42;8172:93;;8189:4;8172:93;;;8249:15;8261:2;4383:17;8249:11;;:15;;;;:::i;:::-;8172:93;;;;;;:::i;:::-;;;;;;;;8027:246::o:0;13784:188::-;13850:9;;;;;;;;;;;13834:25;;:12;:10;:12::i;:::-;:25;;;13826:34;;;;;;13871:26;13900:21;13871:50;;13932:32;13945:18;13932:12;:32::i;:::-;13815:157;13784:188::o;6510:117::-;6576:7;6603;:16;6611:7;6603:16;;;;;;;;;;;;;;;;6596:23;;6510:117;;;:::o;2806:148::-;2548:12;:10;:12::i;:::-;2538:22;;:6;;;;;;;;;;:22;;;2530:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2913:1:::1;2876:40;;2897:6;::::0;::::1;;;;;;;;2876:40;;;;;;;;;;;;2944:1;2927:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2806:148::o:0;8281:156::-;8349:9;;;;;;;;;;;8333:25;;:12;:10;:12::i;:::-;:25;;;8325:34;;;;;;4383:17;8370:12;:22;;;;4383:17;8403:16;:26;;;;8281:156::o;2411:79::-;2449:7;2476:6;;;;;;;;;;;2469:13;;2411:79;:::o;6221:87::-;6260:13;6293:7;;;;;;;;;;;;;;;;;6286:14;;6221:87;:::o;7724:295::-;7830:9;;;;;;;;;;;7814:25;;:12;:10;:12::i;:::-;:25;;;7806:34;;;;;;7868:3;7859:5;:12;;:28;;;;;7884:3;7875:5;:12;;7859:28;:43;;;;;7899:3;7891:4;:11;;7859:43;7851:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7954:5;7947:4;:12;;;;7977:5;7970:4;:12;;;;8007:4;7993:11;:18;;;;7724:295;;;:::o;6635:167::-;6713:4;6730:42;6740:12;:10;:12::i;:::-;6754:9;6765:6;6730:9;:42::i;:::-;6790:4;6783:11;;6635:167;;;;:::o;12841:164::-;2548:12;:10;:12::i;:::-;2538:22;;:6;;;;;;;;;;:22;;;2530:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12915:6:::1;12910:88;12931:5;:12;12927:1;:16;12910:88;;;12982:4;12965;:14;12970:5;12976:1;12970:8;;;;;;;;:::i;:::-;;;;;;;;12965:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12945:3;;;;;:::i;:::-;;;;12910:88;;;;12841:164:::0;:::o;13583:189::-;13649:9;;;;;;;;;;;13633:25;;:12;:10;:12::i;:::-;:25;;;13625:34;;;;;;13670:23;13696:24;13714:4;13696:9;:24::i;:::-;13670:50;;13731:33;13748:15;13731:16;:33::i;:::-;13614:158;13583:189::o;12396:433::-;2548:12;:10;:12::i;:::-;2538:22;;:6;;;;;;;;;;:22;;;2530:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12512:11:::1;;;;;;;;;;;12511:12;12503:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12561:68;12574:24;12592:4;12574:9;:24::i;:::-;12599:21;12621:7;:5;:7::i;:::-;12561:12;:68::i;:::-;12644:6;12640:77;12655:9;:16;12653:1;:18;12640:77;;;12710:5;12699:7;12707:1;12699:10;;;;;;;;:::i;:::-;;;;;;;;:16;;;;:::i;:::-;12677:7;:21;12685:9;12695:1;12685:12;;;;;;;;:::i;:::-;;;;;;;;12677:21;;;;;;;;;;;;;;;:38;;;;12672:3;;;;;:::i;:::-;;;;12640:77;;;;12741:4;12727:11;;:18;;;;;;;;;;;;;;;;;;12770:4;12756:11;;:18;;;;;;;;;;;;;;;;;;12811:9;12792:15;:29;;;;:::i;:::-;12785:4;:36;;;;12396:433:::0;;:::o;6810:143::-;6891:7;6918:11;:18;6930:5;6918:18;;;;;;;;;;;;;;;:27;6937:7;6918:27;;;;;;;;;;;;;;;;6911:34;;6810:143;;;;:::o;8445:147::-;8530:9;;;;;;;;;;;8514:25;;:12;:10;:12::i;:::-;:25;;;8506:34;;;;;;8580:4;8551:18;:26;8570:6;8551:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8445:147;:::o;2625:173::-;2548:12;:10;:12::i;:::-;2538:22;;:6;;;;;;;;;;:22;;;2530:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2741:9:::1;2712:39;;2733:6;::::0;::::1;;;;;;;;2712:39;;;;;;;;;;;;2771:9;2762:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;2625:173:::0;:::o;1718:132::-;1776:7;1803:39;1807:1;1810;1803:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1796:46;;1718:132;;;;:::o;1464:246::-;1522:7;1551:1;1546;:6;1542:47;;;1576:1;1569:8;;;;1542:47;1599:9;1615:1;1611;:5;;;;:::i;:::-;1599:17;;1644:1;1639;1635;:5;;;;:::i;:::-;:10;1627:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1701:1;1694:8;;;1464:246;;;;;:::o;129:98::-;182:7;209:10;202:17;;129:98;:::o;8605:335::-;8715:1;8698:19;;:5;:19;;;;8690:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8796:1;8777:21;;:7;:21;;;;8769:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8878:6;8848:11;:18;8860:5;8848:18;;;;;;;;;;;;;;;:27;8867:7;8848:27;;;;;;;;;;;;;;;:36;;;;8916:7;8900:32;;8909:5;8900:32;;;8925:6;8900:32;;;;;;:::i;:::-;;;;;;;;8605:335;;;:::o;8948:1933::-;9052:1;9036:18;;:4;:18;;;;9028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9129:1;9115:16;;:2;:16;;;;9107:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9199:1;9190:6;:10;9182:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9267:13;;;;;;;;;;;9261:19;;:2;:19;;;9257:129;;9331:16;;9320:6;9306:7;:11;9314:2;9306:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;9305:42;;9297:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;9257:129;9403:21;9412:11;;9403:4;;:8;;:21;;;;:::i;:::-;9396:4;:28;;;;9447:7;:5;:7::i;:::-;9439:15;;:4;:15;;;;:32;;;;;9464:7;:5;:7::i;:::-;9458:13;;:2;:13;;;;9439:32;9435:1237;;;9497:4;:10;9502:4;9497:10;;;;;;;;;;;;;;;;;;;;;;;;;9496:11;:24;;;;;9512:4;:8;9517:2;9512:8;;;;;;;;;;;;;;;;;;;;;;;;;9511:9;9496:24;9488:33;;;;;;9548:13;;;;;;;;;;;9540:21;;:4;:21;;;:55;;;;;9579:15;;;;;;;;;;;9565:30;;:2;:30;;;;9540:55;:83;;;;;9601:18;:22;9620:2;9601:22;;;;;;;;;;;;;;;;;;;;;;;;;9599:24;9540:83;:111;;;;;9646:4;;9628:15;:22;9540:111;9536:333;;;9718:12;;9708:6;:22;;9700:31;;;;;;9773:15;9758:8;:12;9767:2;9758:12;;;;;;;;;;;;;;;;:30;9750:39;;;;;;9842:10;9823:15;:30;;;;:::i;:::-;9808:8;:12;9817:2;9808:12;;;;;;;;;;;;;;;:45;;;;9536:333;9916:6;;;;;;;;;;;9915:7;:32;;;;;9934:13;;;;;;;;;;;9926:21;;:4;:21;;;;9915:32;:47;;;;;9951:11;;;;;;;;;;;9915:47;:76;;;;;9967:18;:24;9986:4;9967:24;;;;;;;;;;;;;;;;;;;;;;;;;9966:25;9915:76;9911:750;;;10038:4;;10020:15;:22;10012:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10105:28;10136:24;10154:4;10136:9;:24::i;:::-;10105:55;;10205:10;;10182:20;:33;10179:467;;;10239:38;10256:20;10239:16;:38::i;:::-;10300:26;10329:21;10300:50;;10397:1;10376:18;:22;10373:254;;;10430:9;;;;;;;;;;;10427:115;;;10472:42;10495:18;10472:22;:42::i;:::-;10427:115;10568:35;10581:21;10568:12;:35::i;:::-;10373:254;10216:430;10179:467;9993:668;9911:750;9435:1237;10692:13;;;;;;;;;;;10686:19;;:2;:19;;;:55;;;;;10725:15;;;;;;;;;;;10709:32;;:4;:32;;;;10686:55;:85;;;;;10747:18;:24;10766:4;10747:24;;;;;;;;;;;;;;;;;;;;;;;;;10745:26;10686:85;10682:146;;;10795:21;10804:11;;10795:4;;:8;;:21;;;;:::i;:::-;10788:4;:28;;;;10682:146;10840:33;10858:4;10863:2;10866:6;10840:17;:33::i;:::-;8948:1933;;;:::o;1266:190::-;1352:7;1385:1;1380;:6;;1388:12;1372:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1412:9;1428:1;1424;:5;;;;:::i;:::-;1412:17;;1447:1;1440:8;;;1266:190;;;;;:::o;12178:206::-;12235:9;;;;;;;;;;;:18;;:41;12254:21;12273:1;12254:14;12265:2;12254:6;:10;;:14;;;;:::i;:::-;:18;;:21;;;;:::i;:::-;12235:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12287:10;;;;;;;;;;;:19;;:42;12307:21;12326:1;12307:14;12318:2;12307:6;:10;;:14;;;;:::i;:::-;:18;;:21;;;;:::i;:::-;12287:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12340:11;;;;;;;;;;;:20;;:36;12361:14;12372:2;12361:6;:10;;:14;;;;:::i;:::-;12340:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12178:206;:::o;10889:483::-;5205:4;5196:6;;:13;;;;;;;;;;;;;;;;;;10967:21:::1;11005:1;10991:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10967:40;;11036:4;11018;11023:1;11018:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11062:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11052:4;11057:1;11052:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11095:62;11112:4;11127:15;;;;;;;;;;;11145:11;11095:8;:62::i;:::-;11168:15;;;;;;;;;;;:66;;;11249:11;11275:1;11291:4;11318;11338:15;11168:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10956:416;5241:5:::0;5232:6;;:14;;;;;;;;;;;;;;;;;;10889:483;:::o;11876:288::-;5205:4;5196:6;;:13;;;;;;;;;;;;;;;;;;11982:60:::1;11999:4;12013:15;;;;;;;;;;;12030:11;11982:8;:60::i;:::-;12053:15;;;;;;;;;;;:31;;;12092:9;12111:4;12117:11;12129:1;12131::::0;12133:6:::1;12140:15;12053:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5241:5:::0;5232:6;;:14;;;;;;;;;;;;;;;;;;11876:288;;;:::o;1858:189::-;1944:7;1976:1;1972;:5;1979:12;1964:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2003:9;2019:1;2015;:5;;;;:::i;:::-;2003:17;;2038:1;2031:8;;;1858:189;;;;;:::o;935:179::-;993:7;1013:9;1029:1;1025;:5;;;;:::i;:::-;1013:17;;1054:1;1049;:6;;1041:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1105:1;1098:8;;;935:179;;;;:::o;11380:482::-;11450:17;11470:16;11484:1;11470:9;:13;;:16;;;;:::i;:::-;11450:36;;11497:22;11536:1;11522:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11497:41;;11559:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11549:4;11554:1;11549:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;11610:42;11592:4;11597:1;11592:7;;;;;;;;:::i;:::-;;;;;;;:61;;;;;;;;;;;11664:15;;;;;;;;;;;:66;;;11738:9;11763:1;11779:4;11806:6;11828:15;11664:190;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11439:423;;11380:482;:::o;13113:421::-;13212:22;13235:12;13251:20;13263:7;13251:11;:20::i;:::-;13211:60;;;;13300:28;13320:7;13300;:15;13308:6;13300:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13282:7;:15;13290:6;13282:15;;;;;;;;;;;;;;;:46;;;;13360:38;13383:14;13360:7;:18;13368:9;13360:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;13339:7;:18;13347:9;13339:18;;;;;;;;;;;;;;;:59;;;;13435:32;13462:4;13435:7;:22;13451:4;13435:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;13410:7;:22;13426:4;13410:22;;;;;;;;;;;;;;;:57;;;;13500:9;13483:43;;13492:6;13483:43;;;13511:14;13483:43;;;;;;:::i;:::-;;;;;;;;13200:334;;13113:421;;;:::o;13983:234::-;14043:7;14052;14072:12;14087:27;14109:4;14087:17;14099:4;;14087:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;14072:42;;14125:23;14151:17;14163:4;14151:7;:11;;:17;;;;:::i;:::-;14125:43;;14187:15;14204:4;14179:30;;;;;;13983:234;;;:::o;1122:136::-;1180:7;1207:43;1211:1;1214;1207:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1200:50;;1122:136;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;769:::-;865:5;890:81;906:64;963:6;906:64;:::i;:::-;890:81;:::i;:::-;881:90;;991:5;1020:6;1013:5;1006:21;1054:4;1047:5;1043:16;1036:23;;1080:6;1130:3;1122:4;1114:6;1110:17;1105:3;1101:27;1098:36;1095:143;;;1149:79;;:::i;:::-;1095:143;1262:1;1247:238;1272:6;1269:1;1266:13;1247:238;;;1340:3;1369:37;1402:3;1390:10;1369:37;:::i;:::-;1364:3;1357:50;1436:4;1431:3;1427:14;1420:21;;1470:4;1465:3;1461:14;1454:21;;1307:178;1294:1;1291;1287:9;1282:14;;1247:238;;;1251:14;871:620;;769:722;;;;;:::o;1497:139::-;1543:5;1581:6;1568:20;1559:29;;1597:33;1624:5;1597:33;:::i;:::-;1497:139;;;;:::o;1642:143::-;1699:5;1730:6;1724:13;1715:22;;1746:33;1773:5;1746:33;:::i;:::-;1642:143;;;;:::o;1808:370::-;1879:5;1928:3;1921:4;1913:6;1909:17;1905:27;1895:122;;1936:79;;:::i;:::-;1895:122;2053:6;2040:20;2078:94;2168:3;2160:6;2153:4;2145:6;2141:17;2078:94;:::i;:::-;2069:103;;1885:293;1808:370;;;;:::o;2201:::-;2272:5;2321:3;2314:4;2306:6;2302:17;2298:27;2288:122;;2329:79;;:::i;:::-;2288:122;2446:6;2433:20;2471:94;2561:3;2553:6;2546:4;2538:6;2534:17;2471:94;:::i;:::-;2462:103;;2278:293;2201:370;;;;:::o;2577:137::-;2631:5;2662:6;2656:13;2647:22;;2678:30;2702:5;2678:30;:::i;:::-;2577:137;;;;:::o;2720:139::-;2766:5;2804:6;2791:20;2782:29;;2820:33;2847:5;2820:33;:::i;:::-;2720:139;;;;:::o;2865:143::-;2922:5;2953:6;2947:13;2938:22;;2969:33;2996:5;2969:33;:::i;:::-;2865:143;;;;:::o;3014:329::-;3073:6;3122:2;3110:9;3101:7;3097:23;3093:32;3090:119;;;3128:79;;:::i;:::-;3090:119;3248:1;3273:53;3318:7;3309:6;3298:9;3294:22;3273:53;:::i;:::-;3263:63;;3219:117;3014:329;;;;:::o;3349:351::-;3419:6;3468:2;3456:9;3447:7;3443:23;3439:32;3436:119;;;3474:79;;:::i;:::-;3436:119;3594:1;3619:64;3675:7;3666:6;3655:9;3651:22;3619:64;:::i;:::-;3609:74;;3565:128;3349:351;;;;:::o;3706:474::-;3774:6;3782;3831:2;3819:9;3810:7;3806:23;3802:32;3799:119;;;3837:79;;:::i;:::-;3799:119;3957:1;3982:53;4027:7;4018:6;4007:9;4003:22;3982:53;:::i;:::-;3972:63;;3928:117;4084:2;4110:53;4155:7;4146:6;4135:9;4131:22;4110:53;:::i;:::-;4100:63;;4055:118;3706:474;;;;;:::o;4186:619::-;4263:6;4271;4279;4328:2;4316:9;4307:7;4303:23;4299:32;4296:119;;;4334:79;;:::i;:::-;4296:119;4454:1;4479:53;4524:7;4515:6;4504:9;4500:22;4479:53;:::i;:::-;4469:63;;4425:117;4581:2;4607:53;4652:7;4643:6;4632:9;4628:22;4607:53;:::i;:::-;4597:63;;4552:118;4709:2;4735:53;4780:7;4771:6;4760:9;4756:22;4735:53;:::i;:::-;4725:63;;4680:118;4186:619;;;;;:::o;4811:474::-;4879:6;4887;4936:2;4924:9;4915:7;4911:23;4907:32;4904:119;;;4942:79;;:::i;:::-;4904:119;5062:1;5087:53;5132:7;5123:6;5112:9;5108:22;5087:53;:::i;:::-;5077:63;;5033:117;5189:2;5215:53;5260:7;5251:6;5240:9;5236:22;5215:53;:::i;:::-;5205:63;;5160:118;4811:474;;;;;:::o;5291:539::-;5375:6;5424:2;5412:9;5403:7;5399:23;5395:32;5392:119;;;5430:79;;:::i;:::-;5392:119;5578:1;5567:9;5563:17;5550:31;5608:18;5600:6;5597:30;5594:117;;;5630:79;;:::i;:::-;5594:117;5735:78;5805:7;5796:6;5785:9;5781:22;5735:78;:::i;:::-;5725:88;;5521:302;5291:539;;;;:::o;5836:894::-;5954:6;5962;6011:2;5999:9;5990:7;5986:23;5982:32;5979:119;;;6017:79;;:::i;:::-;5979:119;6165:1;6154:9;6150:17;6137:31;6195:18;6187:6;6184:30;6181:117;;;6217:79;;:::i;:::-;6181:117;6322:78;6392:7;6383:6;6372:9;6368:22;6322:78;:::i;:::-;6312:88;;6108:302;6477:2;6466:9;6462:18;6449:32;6508:18;6500:6;6497:30;6494:117;;;6530:79;;:::i;:::-;6494:117;6635:78;6705:7;6696:6;6685:9;6681:22;6635:78;:::i;:::-;6625:88;;6420:303;5836:894;;;;;:::o;6736:345::-;6803:6;6852:2;6840:9;6831:7;6827:23;6823:32;6820:119;;;6858:79;;:::i;:::-;6820:119;6978:1;7003:61;7056:7;7047:6;7036:9;7032:22;7003:61;:::i;:::-;6993:71;;6949:125;6736:345;;;;:::o;7087:329::-;7146:6;7195:2;7183:9;7174:7;7170:23;7166:32;7163:119;;;7201:79;;:::i;:::-;7163:119;7321:1;7346:53;7391:7;7382:6;7371:9;7367:22;7346:53;:::i;:::-;7336:63;;7292:117;7087:329;;;;:::o;7422:351::-;7492:6;7541:2;7529:9;7520:7;7516:23;7512:32;7509:119;;;7547:79;;:::i;:::-;7509:119;7667:1;7692:64;7748:7;7739:6;7728:9;7724:22;7692:64;:::i;:::-;7682:74;;7638:128;7422:351;;;;:::o;7779:619::-;7856:6;7864;7872;7921:2;7909:9;7900:7;7896:23;7892:32;7889:119;;;7927:79;;:::i;:::-;7889:119;8047:1;8072:53;8117:7;8108:6;8097:9;8093:22;8072:53;:::i;:::-;8062:63;;8018:117;8174:2;8200:53;8245:7;8236:6;8225:9;8221:22;8200:53;:::i;:::-;8190:63;;8145:118;8302:2;8328:53;8373:7;8364:6;8353:9;8349:22;8328:53;:::i;:::-;8318:63;;8273:118;7779:619;;;;;:::o;8404:663::-;8492:6;8500;8508;8557:2;8545:9;8536:7;8532:23;8528:32;8525:119;;;8563:79;;:::i;:::-;8525:119;8683:1;8708:64;8764:7;8755:6;8744:9;8740:22;8708:64;:::i;:::-;8698:74;;8654:128;8821:2;8847:64;8903:7;8894:6;8883:9;8879:22;8847:64;:::i;:::-;8837:74;;8792:129;8960:2;8986:64;9042:7;9033:6;9022:9;9018:22;8986:64;:::i;:::-;8976:74;;8931:129;8404:663;;;;;:::o;9073:179::-;9142:10;9163:46;9205:3;9197:6;9163:46;:::i;:::-;9241:4;9236:3;9232:14;9218:28;;9073:179;;;;:::o;9258:147::-;9353:45;9392:5;9353:45;:::i;:::-;9348:3;9341:58;9258:147;;:::o;9411:108::-;9488:24;9506:5;9488:24;:::i;:::-;9483:3;9476:37;9411:108;;:::o;9525:118::-;9612:24;9630:5;9612:24;:::i;:::-;9607:3;9600:37;9525:118;;:::o;9679:732::-;9798:3;9827:54;9875:5;9827:54;:::i;:::-;9897:86;9976:6;9971:3;9897:86;:::i;:::-;9890:93;;10007:56;10057:5;10007:56;:::i;:::-;10086:7;10117:1;10102:284;10127:6;10124:1;10121:13;10102:284;;;10203:6;10197:13;10230:63;10289:3;10274:13;10230:63;:::i;:::-;10223:70;;10316:60;10369:6;10316:60;:::i;:::-;10306:70;;10162:224;10149:1;10146;10142:9;10137:14;;10102:284;;;10106:14;10402:3;10395:10;;9803:608;;;9679:732;;;;:::o;10417:109::-;10498:21;10513:5;10498:21;:::i;:::-;10493:3;10486:34;10417:109;;:::o;10532:147::-;10627:45;10666:5;10627:45;:::i;:::-;10622:3;10615:58;10532:147;;:::o;10685:364::-;10773:3;10801:39;10834:5;10801:39;:::i;:::-;10856:71;10920:6;10915:3;10856:71;:::i;:::-;10849:78;;10936:52;10981:6;10976:3;10969:4;10962:5;10958:16;10936:52;:::i;:::-;11013:29;11035:6;11013:29;:::i;:::-;11008:3;11004:39;10997:46;;10777:272;10685:364;;;;:::o;11055:366::-;11197:3;11218:67;11282:2;11277:3;11218:67;:::i;:::-;11211:74;;11294:93;11383:3;11294:93;:::i;:::-;11412:2;11407:3;11403:12;11396:19;;11055:366;;;:::o;11427:::-;11569:3;11590:67;11654:2;11649:3;11590:67;:::i;:::-;11583:74;;11666:93;11755:3;11666:93;:::i;:::-;11784:2;11779:3;11775:12;11768:19;;11427:366;;;:::o;11799:::-;11941:3;11962:67;12026:2;12021:3;11962:67;:::i;:::-;11955:74;;12038:93;12127:3;12038:93;:::i;:::-;12156:2;12151:3;12147:12;12140:19;;11799:366;;;:::o;12171:::-;12313:3;12334:67;12398:2;12393:3;12334:67;:::i;:::-;12327:74;;12410:93;12499:3;12410:93;:::i;:::-;12528:2;12523:3;12519:12;12512:19;;12171:366;;;:::o;12543:::-;12685:3;12706:67;12770:2;12765:3;12706:67;:::i;:::-;12699:74;;12782:93;12871:3;12782:93;:::i;:::-;12900:2;12895:3;12891:12;12884:19;;12543:366;;;:::o;12915:::-;13057:3;13078:67;13142:2;13137:3;13078:67;:::i;:::-;13071:74;;13154:93;13243:3;13154:93;:::i;:::-;13272:2;13267:3;13263:12;13256:19;;12915:366;;;:::o;13287:::-;13429:3;13450:67;13514:2;13509:3;13450:67;:::i;:::-;13443:74;;13526:93;13615:3;13526:93;:::i;:::-;13644:2;13639:3;13635:12;13628:19;;13287:366;;;:::o;13659:::-;13801:3;13822:67;13886:2;13881:3;13822:67;:::i;:::-;13815:74;;13898:93;13987:3;13898:93;:::i;:::-;14016:2;14011:3;14007:12;14000:19;;13659:366;;;:::o;14031:::-;14173:3;14194:67;14258:2;14253:3;14194:67;:::i;:::-;14187:74;;14270:93;14359:3;14270:93;:::i;:::-;14388:2;14383:3;14379:12;14372:19;;14031:366;;;:::o;14403:::-;14545:3;14566:67;14630:2;14625:3;14566:67;:::i;:::-;14559:74;;14642:93;14731:3;14642:93;:::i;:::-;14760:2;14755:3;14751:12;14744:19;;14403:366;;;:::o;14775:::-;14917:3;14938:67;15002:2;14997:3;14938:67;:::i;:::-;14931:74;;15014:93;15103:3;15014:93;:::i;:::-;15132:2;15127:3;15123:12;15116:19;;14775:366;;;:::o;15147:::-;15289:3;15310:67;15374:2;15369:3;15310:67;:::i;:::-;15303:74;;15386:93;15475:3;15386:93;:::i;:::-;15504:2;15499:3;15495:12;15488:19;;15147:366;;;:::o;15519:118::-;15606:24;15624:5;15606:24;:::i;:::-;15601:3;15594:37;15519:118;;:::o;15643:112::-;15726:22;15742:5;15726:22;:::i;:::-;15721:3;15714:35;15643:112;;:::o;15761:222::-;15854:4;15892:2;15881:9;15877:18;15869:26;;15905:71;15973:1;15962:9;15958:17;15949:6;15905:71;:::i;:::-;15761:222;;;;:::o;15989:348::-;16118:4;16156:2;16145:9;16141:18;16133:26;;16169:79;16245:1;16234:9;16230:17;16221:6;16169:79;:::i;:::-;16258:72;16326:2;16315:9;16311:18;16302:6;16258:72;:::i;:::-;15989:348;;;;;:::o;16343:807::-;16592:4;16630:3;16619:9;16615:19;16607:27;;16644:71;16712:1;16701:9;16697:17;16688:6;16644:71;:::i;:::-;16725:72;16793:2;16782:9;16778:18;16769:6;16725:72;:::i;:::-;16807:80;16883:2;16872:9;16868:18;16859:6;16807:80;:::i;:::-;16897;16973:2;16962:9;16958:18;16949:6;16897:80;:::i;:::-;16987:73;17055:3;17044:9;17040:19;17031:6;16987:73;:::i;:::-;17070;17138:3;17127:9;17123:19;17114:6;17070:73;:::i;:::-;16343:807;;;;;;;;;:::o;17156:210::-;17243:4;17281:2;17270:9;17266:18;17258:26;;17294:65;17356:1;17345:9;17341:17;17332:6;17294:65;:::i;:::-;17156:210;;;;:::o;17372:720::-;17607:4;17645:3;17634:9;17630:19;17622:27;;17659:79;17735:1;17724:9;17720:17;17711:6;17659:79;:::i;:::-;17785:9;17779:4;17775:20;17770:2;17759:9;17755:18;17748:48;17813:108;17916:4;17907:6;17813:108;:::i;:::-;17805:116;;17931:72;17999:2;17988:9;17984:18;17975:6;17931:72;:::i;:::-;18013;18081:2;18070:9;18066:18;18057:6;18013:72;:::i;:::-;17372:720;;;;;;;:::o;18098:313::-;18211:4;18249:2;18238:9;18234:18;18226:26;;18298:9;18292:4;18288:20;18284:1;18273:9;18269:17;18262:47;18326:78;18399:4;18390:6;18326:78;:::i;:::-;18318:86;;18098:313;;;;:::o;18417:419::-;18583:4;18621:2;18610:9;18606:18;18598:26;;18670:9;18664:4;18660:20;18656:1;18645:9;18641:17;18634:47;18698:131;18824:4;18698:131;:::i;:::-;18690:139;;18417:419;;;:::o;18842:::-;19008:4;19046:2;19035:9;19031:18;19023:26;;19095:9;19089:4;19085:20;19081:1;19070:9;19066:17;19059:47;19123:131;19249:4;19123:131;:::i;:::-;19115:139;;18842:419;;;:::o;19267:::-;19433:4;19471:2;19460:9;19456:18;19448:26;;19520:9;19514:4;19510:20;19506:1;19495:9;19491:17;19484:47;19548:131;19674:4;19548:131;:::i;:::-;19540:139;;19267:419;;;:::o;19692:::-;19858:4;19896:2;19885:9;19881:18;19873:26;;19945:9;19939:4;19935:20;19931:1;19920:9;19916:17;19909:47;19973:131;20099:4;19973:131;:::i;:::-;19965:139;;19692:419;;;:::o;20117:::-;20283:4;20321:2;20310:9;20306:18;20298:26;;20370:9;20364:4;20360:20;20356:1;20345:9;20341:17;20334:47;20398:131;20524:4;20398:131;:::i;:::-;20390:139;;20117:419;;;:::o;20542:::-;20708:4;20746:2;20735:9;20731:18;20723:26;;20795:9;20789:4;20785:20;20781:1;20770:9;20766:17;20759:47;20823:131;20949:4;20823:131;:::i;:::-;20815:139;;20542:419;;;:::o;20967:::-;21133:4;21171:2;21160:9;21156:18;21148:26;;21220:9;21214:4;21210:20;21206:1;21195:9;21191:17;21184:47;21248:131;21374:4;21248:131;:::i;:::-;21240:139;;20967:419;;;:::o;21392:::-;21558:4;21596:2;21585:9;21581:18;21573:26;;21645:9;21639:4;21635:20;21631:1;21620:9;21616:17;21609:47;21673:131;21799:4;21673:131;:::i;:::-;21665:139;;21392:419;;;:::o;21817:::-;21983:4;22021:2;22010:9;22006:18;21998:26;;22070:9;22064:4;22060:20;22056:1;22045:9;22041:17;22034:47;22098:131;22224:4;22098:131;:::i;:::-;22090:139;;21817:419;;;:::o;22242:::-;22408:4;22446:2;22435:9;22431:18;22423:26;;22495:9;22489:4;22485:20;22481:1;22470:9;22466:17;22459:47;22523:131;22649:4;22523:131;:::i;:::-;22515:139;;22242:419;;;:::o;22667:::-;22833:4;22871:2;22860:9;22856:18;22848:26;;22920:9;22914:4;22910:20;22906:1;22895:9;22891:17;22884:47;22948:131;23074:4;22948:131;:::i;:::-;22940:139;;22667:419;;;:::o;23092:::-;23258:4;23296:2;23285:9;23281:18;23273:26;;23345:9;23339:4;23335:20;23331:1;23320:9;23316:17;23309:47;23373:131;23499:4;23373:131;:::i;:::-;23365:139;;23092:419;;;:::o;23517:222::-;23610:4;23648:2;23637:9;23633:18;23625:26;;23661:71;23729:1;23718:9;23714:17;23705:6;23661:71;:::i;:::-;23517:222;;;;:::o;23745:831::-;24008:4;24046:3;24035:9;24031:19;24023:27;;24060:71;24128:1;24117:9;24113:17;24104:6;24060:71;:::i;:::-;24141:80;24217:2;24206:9;24202:18;24193:6;24141:80;:::i;:::-;24268:9;24262:4;24258:20;24253:2;24242:9;24238:18;24231:48;24296:108;24399:4;24390:6;24296:108;:::i;:::-;24288:116;;24414:72;24482:2;24471:9;24467:18;24458:6;24414:72;:::i;:::-;24496:73;24564:3;24553:9;24549:19;24540:6;24496:73;:::i;:::-;23745:831;;;;;;;;:::o;24582:214::-;24671:4;24709:2;24698:9;24694:18;24686:26;;24722:67;24786:1;24775:9;24771:17;24762:6;24722:67;:::i;:::-;24582:214;;;;:::o;24802:129::-;24836:6;24863:20;;:::i;:::-;24853:30;;24892:33;24920:4;24912:6;24892:33;:::i;:::-;24802:129;;;:::o;24937:75::-;24970:6;25003:2;24997:9;24987:19;;24937:75;:::o;25018:311::-;25095:4;25185:18;25177:6;25174:30;25171:56;;;25207:18;;:::i;:::-;25171:56;25257:4;25249:6;25245:17;25237:25;;25317:4;25311;25307:15;25299:23;;25018:311;;;:::o;25335:::-;25412:4;25502:18;25494:6;25491:30;25488:56;;;25524:18;;:::i;:::-;25488:56;25574:4;25566:6;25562:17;25554:25;;25634:4;25628;25624:15;25616:23;;25335:311;;;:::o;25652:132::-;25719:4;25742:3;25734:11;;25772:4;25767:3;25763:14;25755:22;;25652:132;;;:::o;25790:114::-;25857:6;25891:5;25885:12;25875:22;;25790:114;;;:::o;25910:99::-;25962:6;25996:5;25990:12;25980:22;;25910:99;;;:::o;26015:113::-;26085:4;26117;26112:3;26108:14;26100:22;;26015:113;;;:::o;26134:184::-;26233:11;26267:6;26262:3;26255:19;26307:4;26302:3;26298:14;26283:29;;26134:184;;;;:::o;26324:169::-;26408:11;26442:6;26437:3;26430:19;26482:4;26477:3;26473:14;26458:29;;26324:169;;;;:::o;26499:305::-;26539:3;26558:20;26576:1;26558:20;:::i;:::-;26553:25;;26592:20;26610:1;26592:20;:::i;:::-;26587:25;;26746:1;26678:66;26674:74;26671:1;26668:81;26665:107;;;26752:18;;:::i;:::-;26665:107;26796:1;26793;26789:9;26782:16;;26499:305;;;;:::o;26810:185::-;26850:1;26867:20;26885:1;26867:20;:::i;:::-;26862:25;;26901:20;26919:1;26901:20;:::i;:::-;26896:25;;26940:1;26930:35;;26945:18;;:::i;:::-;26930:35;26987:1;26984;26980:9;26975:14;;26810:185;;;;:::o;27001:348::-;27041:7;27064:20;27082:1;27064:20;:::i;:::-;27059:25;;27098:20;27116:1;27098:20;:::i;:::-;27093:25;;27286:1;27218:66;27214:74;27211:1;27208:81;27203:1;27196:9;27189:17;27185:105;27182:131;;;27293:18;;:::i;:::-;27182:131;27341:1;27338;27334:9;27323:20;;27001:348;;;;:::o;27355:191::-;27395:4;27415:20;27433:1;27415:20;:::i;:::-;27410:25;;27449:20;27467:1;27449:20;:::i;:::-;27444:25;;27488:1;27485;27482:8;27479:34;;;27493:18;;:::i;:::-;27479:34;27538:1;27535;27531:9;27523:17;;27355:191;;;;:::o;27552:96::-;27589:7;27618:24;27636:5;27618:24;:::i;:::-;27607:35;;27552:96;;;:::o;27654:90::-;27688:7;27731:5;27724:13;27717:21;27706:32;;27654:90;;;:::o;27750:126::-;27787:7;27827:42;27820:5;27816:54;27805:65;;27750:126;;;:::o;27882:77::-;27919:7;27948:5;27937:16;;27882:77;;;:::o;27965:86::-;28000:7;28040:4;28033:5;28029:16;28018:27;;27965:86;;;:::o;28057:134::-;28115:9;28148:37;28179:5;28148:37;:::i;:::-;28135:50;;28057:134;;;:::o;28197:121::-;28255:9;28288:24;28306:5;28288:24;:::i;:::-;28275:37;;28197:121;;;:::o;28324:126::-;28374:9;28407:37;28438:5;28407:37;:::i;:::-;28394:50;;28324:126;;;:::o;28456:113::-;28506:9;28539:24;28557:5;28539:24;:::i;:::-;28526:37;;28456:113;;;:::o;28575:307::-;28643:1;28653:113;28667:6;28664:1;28661:13;28653:113;;;28752:1;28747:3;28743:11;28737:18;28733:1;28728:3;28724:11;28717:39;28689:2;28686:1;28682:10;28677:15;;28653:113;;;28784:6;28781:1;28778:13;28775:101;;;28864:1;28855:6;28850:3;28846:16;28839:27;28775:101;28624:258;28575:307;;;:::o;28888:281::-;28971:27;28993:4;28971:27;:::i;:::-;28963:6;28959:40;29101:6;29089:10;29086:22;29065:18;29053:10;29050:34;29047:62;29044:88;;;29112:18;;:::i;:::-;29044:88;29152:10;29148:2;29141:22;28931:238;28888:281;;:::o;29175:233::-;29214:3;29237:24;29255:5;29237:24;:::i;:::-;29228:33;;29283:66;29276:5;29273:77;29270:103;;;29353:18;;:::i;:::-;29270:103;29400:1;29393:5;29389:13;29382:20;;29175:233;;;:::o;29414:180::-;29462:77;29459:1;29452:88;29559:4;29556:1;29549:15;29583:4;29580:1;29573:15;29600:180;29648:77;29645:1;29638:88;29745:4;29742:1;29735:15;29769:4;29766:1;29759:15;29786:180;29834:77;29831:1;29824:88;29931:4;29928:1;29921:15;29955:4;29952:1;29945:15;29972:180;30020:77;30017:1;30010:88;30117:4;30114:1;30107:15;30141:4;30138:1;30131:15;30158:117;30267:1;30264;30257:12;30281:117;30390:1;30387;30380:12;30404:117;30513:1;30510;30503:12;30527:117;30636:1;30633;30626:12;30650:102;30691:6;30742:2;30738:7;30733:2;30726:5;30722:14;30718:28;30708:38;;30650:102;;;:::o;30758:222::-;30898:34;30894:1;30886:6;30882:14;30875:58;30967:5;30962:2;30954:6;30950:15;30943:30;30758:222;:::o;30986:173::-;31126:25;31122:1;31114:6;31110:14;31103:49;30986:173;:::o;31165:221::-;31305:34;31301:1;31293:6;31289:14;31282:58;31374:4;31369:2;31361:6;31357:15;31350:29;31165:221;:::o;31392:177::-;31532:29;31528:1;31520:6;31516:14;31509:53;31392:177;:::o;31575:220::-;31715:34;31711:1;31703:6;31699:14;31692:58;31784:3;31779:2;31771:6;31767:15;31760:28;31575:220;:::o;31801:182::-;31941:34;31937:1;31929:6;31925:14;31918:58;31801:182;:::o;31989:228::-;32129:34;32125:1;32117:6;32113:14;32106:58;32198:11;32193:2;32185:6;32181:15;32174:36;31989:228;:::o;32223:180::-;32363:32;32359:1;32351:6;32347:14;32340:56;32223:180;:::o;32409:224::-;32549:34;32545:1;32537:6;32533:14;32526:58;32618:7;32613:2;32605:6;32601:15;32594:32;32409:224;:::o;32639:223::-;32779:34;32775:1;32767:6;32763:14;32756:58;32848:6;32843:2;32835:6;32831:15;32824:31;32639:223;:::o;32868:173::-;33008:25;33004:1;32996:6;32992:14;32985:49;32868:173;:::o;33047:227::-;33187:34;33183:1;33175:6;33171:14;33164:58;33256:10;33251:2;33243:6;33239:15;33232:35;33047:227;:::o;33280:122::-;33353:24;33371:5;33353:24;:::i;:::-;33346:5;33343:35;33333:63;;33392:1;33389;33382:12;33333:63;33280:122;:::o;33408:116::-;33478:21;33493:5;33478:21;:::i;:::-;33471:5;33468:32;33458:60;;33514:1;33511;33504:12;33458:60;33408:116;:::o;33530:122::-;33603:24;33621:5;33603:24;:::i;:::-;33596:5;33593:35;33583:63;;33642:1;33639;33632:12;33583:63;33530:122;:::o

Swarm Source

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