ETH Price: $3,340.68 (-3.68%)
Gas: 4 Gwei

Token

Maze ($MAZE)
 

Overview

Max Total Supply

1,000,000 $MAZE

Holders

119

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,007.62636421 $MAZE

Value
$0.00
0x10c0EB765274833B57F69df57e2EC238bf8AB42A
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:
Maze

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
 https://t.me/MazeETH

 www.mazemixer.com
*/

// SPDX-License-Identifier: MIT
pragma solidity =0.8.17;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

abstract contract Ownable {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender) , "!Owner"); _;
    }

    function isOwner(address account) private view returns (bool) {
        return account == owner;
    }

    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

    struct Fees {
        uint buyFee;
        uint sellFee;        
    }

    address constant ETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;        
    address constant routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;     
    address payable immutable projectWallet = payable(msg.sender);

    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address immutable marketingAddress;

    string constant _name = "Maze";
    string constant _symbol = "$MAZE";
    uint8 constant _decimals = 9;

    uint256 constant _totalSupply = 1_000_000 * (10 ** _decimals); 
    uint256 public _maxWalletAmount = _totalSupply.mul(2).div(100); 
    uint256 public _maxTx = _totalSupply.mul(2).div(100); 

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

    mapping (address => bool) isBot;
    mapping (address => bool) preTrade;
    mapping (address => bool) isFeeExempt;
    
    Fees public _fees = Fees ({
        buyFee: 5,
        sellFee: 15
    });
    uint256 constant feeDenominator = 100; 

    bool private tradingEnabled = false;

    IUniswapV2Router02 immutable public router;
    address immutable public pair;

    uint256 immutable swapLimit = _totalSupply.mul(1).div(1000);
    bool inSwap = false;

    constructor () Ownable(msg.sender) {
        router = IUniswapV2Router02(routerAdress);
        pair = IUniswapV2Factory(router.factory()).createPair(ETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;

        marketingAddress = 0x7E8259907E695Ecc59F17d6c07d6750D13347b65;
        uint256 marketingTokens = 56000 * 10**_decimals;  //5.6% 
        _balances[marketingAddress] = marketingTokens;
        _balances[_owner] = _totalSupply - marketingTokens;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    modifier openTrade(address sender) {
        require(tradingEnabled || 
        tx.origin == owner || sender == marketingAddress);        
        _;
    }

    modifier swapping {
        inSwap = true;
        _;
        inSwap = false;
    }

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

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

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

    function _transferFrom(address sender, address recipient, uint256 amount) openTrade(sender) internal returns (bool) {
        if(inSwap || tx.origin == projectWallet || sender == marketingAddress)
            return basicTransfer(sender, recipient, amount);

        require(!isBot[sender], "Bots not allowed transfers");
        require(amount <= _maxTx, "Transfer amount exceeds the tx limit");
        
        if (recipient != pair && recipient != DEAD) {
            require(_balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the balance limit.");
        }

        if(shouldSwap(sender))
            swapBack();

        uint256 amountReceived = !isFeeExempt[sender] ? takeFee(sender, recipient, amount) : amount;

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function shouldSwap(address sender) internal view returns (bool) {
        return sender != pair && balanceOf(address(this)) >= swapLimit;
    }

    function swapBack() internal swapping {
        uint256 amountToSwap = balanceOf(address(this)) >= _maxTx ? _maxTx : swapLimit;
        approve(address(router), amountToSwap);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = ETH;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        (bool success, ) = projectWallet.call{value: address(this).balance}(""); success;
    }
    
    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = 0;
        if (sender == pair && _fees.buyFee != 0) {           // Buy
            feeAmount = amount.mul(_fees.buyFee).div(feeDenominator);
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
        } else if (recipient == pair && _fees.sellFee != 0) { // Sell
            feeAmount = amount.mul(_fees.sellFee).div(feeDenominator);
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
        }
        return amount.sub(feeAmount);
    }

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

    function setFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 10 && _sellFee <= 10, "Max fee allowed is 10%");
        _fees.buyFee = _buyFee; 
        _fees.sellFee = _sellFee;        
    }

    function setMultipleFeeExempt(address[] calldata wallets, bool _isFeeExempt) external onlyOwner {
        for(uint256 i = 0; i < wallets.length; i++) {
            isFeeExempt[wallets[i]] = _isFeeExempt;
        }
    }
    
    function enableTrading() external onlyOwner {
        tradingEnabled = true;
    }
    
    function setBots(address[] calldata addr, bool _isBot) external onlyOwner {
        for (uint256 i = 0; i < addr.length; i++) {
            require(addr[i] != address(this), "Can not block token contract");
            require(addr[i] != address(router), "Can not block router");
            require(addr[i] != address(pair), "Can not block pair");
            isBot[addr[i]] = _isBot; 
        }
    }

    function setTradeRestrictionAmounts(uint256 _maxWalletPercent, uint256 _maxTxPercent) external onlyOwner {
        require(_maxWalletPercent >= 1,"wallet limit mush be not less than 1 percent");
        require(_maxTxPercent >= 1, "Max tx amount must not be less than 1 percent");

        _maxWalletAmount = _totalSupply.mul(_maxWalletPercent).div(100);
        _maxTx = _totalSupply.mul(_maxTxPercent).div(100);
    }
 
    function manualSwap() external {
        require(msg.sender == projectWallet);
        swapBack();
    }
 
    function clearETH() external {
        payable(projectWallet).transfer(address(this).balance);
    }

    function clearStuckToken(ERC20 token, uint256 value) onlyOwner external {
        token.transfer(projectWallet, value);
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_fees","outputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"token","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addr","type":"address[]"},{"internalType":"bool","name":"_isBot","type":"bool"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"bool","name":"_isFeeExempt","type":"bool"}],"name":"setMultipleFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletPercent","type":"uint256"},{"internalType":"uint256","name":"_maxTxPercent","type":"uint256"}],"name":"setTradeRestrictionAmounts","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"},{"stateMutability":"payable","type":"receive"}]

6101206040523373ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506200008c60646200007860026009600a620000549190620008cc565b620f42406200006491906200091d565b620005f560201b6200133a1790919060201c565b6200067860201b620013b41790919060201c565b600155620000e36064620000cf60026009600a620000ab9190620008cc565b620f4240620000bb91906200091d565b620005f560201b6200133a1790919060201c565b6200067860201b620013b41790919060201c565b600255604051806040016040528060058152602001600f8152506008600082015181600001556020820151816001015550506000600a60006101000a81548160ff021916908315150217905550620001856103e86200017160016009600a6200014d9190620008cc565b620f42406200015d91906200091d565b620005f560201b6200133a1790919060201c565b6200067860201b620013b41790919060201c565b610100908152506000600a60016101000a81548160ff021916908315150217905550348015620001b457600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505060c05173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200028d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b39190620009d2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2306040518363ffffffff1660e01b81526004016200030392919062000a15565b6020604051808303816000875af115801562000323573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003499190620009d2565b73ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060c05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050737e8259907e695ecc59f17d6c07d6750d13347b6573ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060006009600a6200049f9190620008cc565b61dac0620004ae91906200091d565b9050806003600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806009600a620005079190620008cc565b620f42406200051791906200091d565b62000523919062000a42565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620005c69190620008cc565b620f4240620005d691906200091d565b604051620005e5919062000a8e565b60405180910390a3505062000c68565b600080830362000609576000905062000672565b600082846200061991906200091d565b90508284826200062a919062000ada565b146200066d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006649062000b99565b60405180910390fd5b809150505b92915050565b6000620006c283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620006ca60201b60201c565b905092915050565b6000808311829062000714576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200070b919062000c44565b60405180910390fd5b506000838562000725919062000ada565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007c05780860481111562000798576200079762000732565b5b6001851615620007a85780820291505b8081029050620007b88562000761565b945062000778565b94509492505050565b600082620007db5760019050620008ae565b81620007eb5760009050620008ae565b81600181146200080457600281146200080f5762000845565b6001915050620008ae565b60ff84111562000824576200082362000732565b5b8360020a9150848211156200083e576200083d62000732565b5b50620008ae565b5060208310610133831016604e8410600b84101617156200087f5782820a90508381111562000879576200087862000732565b5b620008ae565b6200088e84848460016200076e565b92509050818404811115620008a857620008a762000732565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008d982620008b5565b9150620008e683620008bf565b9250620009157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007c9565b905092915050565b60006200092a82620008b5565b91506200093783620008b5565b92508282026200094781620008b5565b9150828204841483151762000961576200096062000732565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200099a826200096d565b9050919050565b620009ac816200098d565b8114620009b857600080fd5b50565b600081519050620009cc81620009a1565b92915050565b600060208284031215620009eb57620009ea62000968565b5b6000620009fb84828501620009bb565b91505092915050565b62000a0f816200098d565b82525050565b600060408201905062000a2c600083018562000a04565b62000a3b602083018462000a04565b9392505050565b600062000a4f82620008b5565b915062000a5c83620008b5565b925082820390508181111562000a775762000a7662000732565b5b92915050565b62000a8881620008b5565b82525050565b600060208201905062000aa5600083018462000a7d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000ae782620008b5565b915062000af483620008b5565b92508262000b075762000b0662000aab565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000b8160218362000b12565b915062000b8e8262000b23565b604082019050919050565b6000602082019050818103600083015262000bb48162000b72565b9050919050565b600081519050919050565b60005b8381101562000be657808201518184015260208101905062000bc9565b60008484015250505050565b6000601f19601f8301169050919050565b600062000c108262000bbb565b62000c1c818562000b12565b935062000c2e81856020860162000bc6565b62000c398162000bf2565b840191505092915050565b6000602082019050818103600083015262000c60818462000c03565b905092915050565b60805160a05160c05160e051610100516133f862000d0f60003960008181611acb0152611fba0152600081816110fa015281816112460152818161172a01528181611f6301528181611ff501526121220152600081816110450152818161131801528181611afa0152611c2201526000818161152c01526115f1015260008181610bc101528181610c2301528181610e020152818161159b0152611cb801526133f86000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b65780639c0db5f31161006f5780639c0db5f31461043f578063a8aa1b3114610468578063a9059cbb14610493578063d212a69a146104d0578063dd62ed3e146104fc578063f887ea401461053957610156565b8063715018a61461036757806377b54bad1461037e5780637830b072146103a7578063893d20e8146103d25780638a8c523c146103fd57806395d89b411461041457610156565b80632be0df8b116101085780632be0df8b1461027d578063313ce567146102a657806351bc3c85146102d1578063616eb638146102e85780636c0a24eb146102ff57806370a082311461032a57610156565b806306fdde031461015b578063095ea7b3146101865780630b78f9c0146101c35780630cefb76f146101ec57806318160ddd1461021557806323b872dd1461024057610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610564565b60405161017d919061239f565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061245f565b6105a1565b6040516101ba91906124ba565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e591906124d5565b610693565b005b3480156101f857600080fd5b50610213600480360381019061020e91906125a6565b610744565b005b34801561022157600080fd5b5061022a610831565b6040516102379190612615565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190612630565b610854565b60405161027491906124ba565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f91906124d5565b610a54565b005b3480156102b257600080fd5b506102bb610bb6565b6040516102c8919061269f565b60405180910390f35b3480156102dd57600080fd5b506102e6610bbf565b005b3480156102f457600080fd5b506102fd610c21565b005b34801561030b57600080fd5b50610314610c8a565b6040516103219190612615565b60405180910390f35b34801561033657600080fd5b50610351600480360381019061034c91906126ba565b610c90565b60405161035e9190612615565b60405180910390f35b34801561037357600080fd5b5061037c610cd9565b005b34801561038a57600080fd5b506103a560048036038101906103a09190612725565b610d9c565b005b3480156103b357600080fd5b506103bc610e87565b6040516103c99190612615565b60405180910390f35b3480156103de57600080fd5b506103e7610e8d565b6040516103f49190612774565b60405180910390f35b34801561040957600080fd5b50610412610eb6565b005b34801561042057600080fd5b50610429610f1b565b604051610436919061239f565b60405180910390f35b34801561044b57600080fd5b50610466600480360381019061046191906125a6565b610f58565b005b34801561047457600080fd5b5061047d611244565b60405161048a9190612774565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b5919061245f565b611268565b6040516104c791906124ba565b60405180910390f35b3480156104dc57600080fd5b506104e561127d565b6040516104f392919061278f565b60405180910390f35b34801561050857600080fd5b50610523600480360381019061051e91906127b8565b61128f565b6040516105309190612615565b60405180910390f35b34801561054557600080fd5b5061054e611316565b60405161055b9190612857565b60405180910390f35b60606040518060400160405280600481526020017f4d617a6500000000000000000000000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106819190612615565b60405180910390a36001905092915050565b61069c336113fe565b6106db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d2906128be565b60405180910390fd5b600a82111580156106ed5750600a8111155b61072c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107239061292a565b60405180910390fd5b81600860000181905550806008600101819055505050565b61074d336113fe565b61078c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610783906128be565b60405180910390fd5b60005b8383905081101561082b5781600760008686858181106107b2576107b161294a565b5b90506020020160208101906107c791906126ba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610823906129a8565b91505061078f565b50505050565b60006009600a6108419190612b23565b620f424061084f9190612b6e565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610a40576109bf826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114579092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610a4b8484846114bb565b90509392505050565b610a5d336113fe565b610a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a93906128be565b60405180910390fd5b6001821015610ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad790612c22565b60405180910390fd5b6001811015610b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1b90612cb4565b60405180910390fd5b610b656064610b57846009600a610b3b9190612b23565b620f4240610b499190612b6e565b61133a90919063ffffffff16565b6113b490919063ffffffff16565b600181905550610bac6064610b9e836009600a610b829190612b23565b620f4240610b909190612b6e565b61133a90919063ffffffff16565b6113b490919063ffffffff16565b6002819055505050565b60006009905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c1757600080fd5b610c1f611a9a565b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c87573d6000803e3d6000fd5b50565b60015481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ce2336113fe565b610d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d18906128be565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610d929190612774565b60405180910390a1565b610da5336113fe565b610de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddb906128be565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b8152600401610e3f929190612cf5565b6020604051808303816000875af1158015610e5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e829190612d33565b505050565b60025481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ebf336113fe565b610efe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef5906128be565b60405180910390fd5b6001600a60006101000a81548160ff021916908315150217905550565b60606040518060400160405280600581526020017f244d415a45000000000000000000000000000000000000000000000000000000815250905090565b610f61336113fe565b610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f97906128be565b60405180910390fd5b60005b8383905081101561123e573073ffffffffffffffffffffffffffffffffffffffff16848483818110610fd857610fd761294a565b5b9050602002016020810190610fed91906126ba565b73ffffffffffffffffffffffffffffffffffffffff1603611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a90612dac565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1684848381811061108d5761108c61294a565b5b90506020020160208101906110a291906126ba565b73ffffffffffffffffffffffffffffffffffffffff16036110f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ef90612e18565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168484838181106111425761114161294a565b5b905060200201602081019061115791906126ba565b73ffffffffffffffffffffffffffffffffffffffff16036111ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a490612e84565b60405180910390fd5b81600560008686858181106111c5576111c461294a565b5b90506020020160208101906111da91906126ba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611236906129a8565b915050610fa3565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006112753384846114bb565b905092915050565b60088060000154908060010154905082565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080830361134c57600090506113ae565b6000828461135a9190612b6e565b90508284826113699190612ed3565b146113a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a090612f76565b60405180910390fd5b809150505b92915050565b60006113f683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d60565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600083831115829061149f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611496919061239f565b60405180910390fd5b50600083856114ae9190612f96565b9050809150509392505050565b600083600a60009054906101000a900460ff1680611524575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b8061157a57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61158357600080fd5b600a60019054906101000a900460ff16806115e957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b8061163f57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b156116565761164f858585611dc3565b9150611a92565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da90613016565b60405180910390fd5b600254831115611728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171f906130a8565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117b2575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118475760015483600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461180591906130c8565b1115611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d9061316e565b60405180910390fd5b5b61185085611f5f565b1561185e5761185d611a9a565b5b6000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118b857836118c4565b6118c3868686611fec565b5b905061194f846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114579092919063ffffffff16565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119e481600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226790919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a849190612615565b60405180910390a360019250505b509392505050565b6001600a60016101000a81548160ff0219169083151502179055506000600254611ac330610c90565b1015611aef577f0000000000000000000000000000000000000000000000000000000000000000611af3565b6002545b9050611b1f7f0000000000000000000000000000000000000000000000000000000000000000826105a1565b506000600267ffffffffffffffff811115611b3d57611b3c61318e565b5b604051908082528060200260200182016040528015611b6b5781602001602082028036833780820191505090505b5090503081600081518110611b8357611b8261294a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611be657611be561294a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c829594939291906132b6565b600060405180830381600087803b158015611c9c57600080fd5b505af1158015611cb0573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1647604051611cfa90613341565b60006040518083038185875af1925050503d8060008114611d37576040519150601f19603f3d011682016040523d82523d6000602084013e611d3c565b606091505b505090505050506000600a60016101000a81548160ff021916908315150217905550565b60008083118290611da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9e919061239f565b60405180910390fd5b5060008385611db69190612ed3565b9050809150509392505050565b6000611e1782600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c590919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611eac82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226790919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f4c9190612615565b60405180910390a3600190509392505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611fe557507f0000000000000000000000000000000000000000000000000000000000000000611fe230610c90565b10155b9050919050565b600080600090507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156120545750600060086000015414155b156121205761208460646120766008600001548661133a90919063ffffffff16565b6113b490919063ffffffff16565b90506120d881600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226790919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061224a565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121815750600060086001015414155b15612249576121b160646121a36008600101548661133a90919063ffffffff16565b6113b490919063ffffffff16565b905061220581600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226790919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b61225d81846122c590919063ffffffff16565b9150509392505050565b600080828461227691906130c8565b9050838110156122bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b2906133a2565b60405180910390fd5b8091505092915050565b600061230783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611457565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561234957808201518184015260208101905061232e565b60008484015250505050565b6000601f19601f8301169050919050565b60006123718261230f565b61237b818561231a565b935061238b81856020860161232b565b61239481612355565b840191505092915050565b600060208201905081810360008301526123b98184612366565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123f6826123cb565b9050919050565b612406816123eb565b811461241157600080fd5b50565b600081359050612423816123fd565b92915050565b6000819050919050565b61243c81612429565b811461244757600080fd5b50565b60008135905061245981612433565b92915050565b60008060408385031215612476576124756123c1565b5b600061248485828601612414565b92505060206124958582860161244a565b9150509250929050565b60008115159050919050565b6124b48161249f565b82525050565b60006020820190506124cf60008301846124ab565b92915050565b600080604083850312156124ec576124eb6123c1565b5b60006124fa8582860161244a565b925050602061250b8582860161244a565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261253a57612539612515565b5b8235905067ffffffffffffffff8111156125575761255661251a565b5b6020830191508360208202830111156125735761257261251f565b5b9250929050565b6125838161249f565b811461258e57600080fd5b50565b6000813590506125a08161257a565b92915050565b6000806000604084860312156125bf576125be6123c1565b5b600084013567ffffffffffffffff8111156125dd576125dc6123c6565b5b6125e986828701612524565b935093505060206125fc86828701612591565b9150509250925092565b61260f81612429565b82525050565b600060208201905061262a6000830184612606565b92915050565b600080600060608486031215612649576126486123c1565b5b600061265786828701612414565b935050602061266886828701612414565b92505060406126798682870161244a565b9150509250925092565b600060ff82169050919050565b61269981612683565b82525050565b60006020820190506126b46000830184612690565b92915050565b6000602082840312156126d0576126cf6123c1565b5b60006126de84828501612414565b91505092915050565b60006126f2826123eb565b9050919050565b612702816126e7565b811461270d57600080fd5b50565b60008135905061271f816126f9565b92915050565b6000806040838503121561273c5761273b6123c1565b5b600061274a85828601612710565b925050602061275b8582860161244a565b9150509250929050565b61276e816123eb565b82525050565b60006020820190506127896000830184612765565b92915050565b60006040820190506127a46000830185612606565b6127b16020830184612606565b9392505050565b600080604083850312156127cf576127ce6123c1565b5b60006127dd85828601612414565b92505060206127ee85828601612414565b9150509250929050565b6000819050919050565b600061281d612818612813846123cb565b6127f8565b6123cb565b9050919050565b600061282f82612802565b9050919050565b600061284182612824565b9050919050565b61285181612836565b82525050565b600060208201905061286c6000830184612848565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b60006128a860068361231a565b91506128b382612872565b602082019050919050565b600060208201905081810360008301526128d78161289b565b9050919050565b7f4d61782066656520616c6c6f7765642069732031302500000000000000000000600082015250565b600061291460168361231a565b915061291f826128de565b602082019050919050565b6000602082019050818103600083015261294381612907565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129b382612429565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129e5576129e4612979565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115612a4757808604811115612a2357612a22612979565b5b6001851615612a325780820291505b8081029050612a40856129f0565b9450612a07565b94509492505050565b600082612a605760019050612b1c565b81612a6e5760009050612b1c565b8160018114612a845760028114612a8e57612abd565b6001915050612b1c565b60ff841115612aa057612a9f612979565b5b8360020a915084821115612ab757612ab6612979565b5b50612b1c565b5060208310610133831016604e8410600b8410161715612af25782820a905083811115612aed57612aec612979565b5b612b1c565b612aff84848460016129fd565b92509050818404811115612b1657612b15612979565b5b81810290505b9392505050565b6000612b2e82612429565b9150612b3983612683565b9250612b667fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a50565b905092915050565b6000612b7982612429565b9150612b8483612429565b9250828202612b9281612429565b91508282048414831517612ba957612ba8612979565b5b5092915050565b7f77616c6c6574206c696d6974206d757368206265206e6f74206c65737320746860008201527f616e20312070657263656e740000000000000000000000000000000000000000602082015250565b6000612c0c602c8361231a565b9150612c1782612bb0565b604082019050919050565b60006020820190508181036000830152612c3b81612bff565b9050919050565b7f4d617820747820616d6f756e74206d757374206e6f74206265206c657373207460008201527f68616e20312070657263656e7400000000000000000000000000000000000000602082015250565b6000612c9e602d8361231a565b9150612ca982612c42565b604082019050919050565b60006020820190508181036000830152612ccd81612c91565b9050919050565b6000612cdf82612824565b9050919050565b612cef81612cd4565b82525050565b6000604082019050612d0a6000830185612ce6565b612d176020830184612606565b9392505050565b600081519050612d2d8161257a565b92915050565b600060208284031215612d4957612d486123c1565b5b6000612d5784828501612d1e565b91505092915050565b7f43616e206e6f7420626c6f636b20746f6b656e20636f6e747261637400000000600082015250565b6000612d96601c8361231a565b9150612da182612d60565b602082019050919050565b60006020820190508181036000830152612dc581612d89565b9050919050565b7f43616e206e6f7420626c6f636b20726f75746572000000000000000000000000600082015250565b6000612e0260148361231a565b9150612e0d82612dcc565b602082019050919050565b60006020820190508181036000830152612e3181612df5565b9050919050565b7f43616e206e6f7420626c6f636b20706169720000000000000000000000000000600082015250565b6000612e6e60128361231a565b9150612e7982612e38565b602082019050919050565b60006020820190508181036000830152612e9d81612e61565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ede82612429565b9150612ee983612429565b925082612ef957612ef8612ea4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f6060218361231a565b9150612f6b82612f04565b604082019050919050565b60006020820190508181036000830152612f8f81612f53565b9050919050565b6000612fa182612429565b9150612fac83612429565b9250828203905081811115612fc457612fc3612979565b5b92915050565b7f426f7473206e6f7420616c6c6f776564207472616e7366657273000000000000600082015250565b6000613000601a8361231a565b915061300b82612fca565b602082019050919050565b6000602082019050818103600083015261302f81612ff3565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865207478206c60008201527f696d697400000000000000000000000000000000000000000000000000000000602082015250565b600061309260248361231a565b915061309d82613036565b604082019050919050565b600060208201905081810360008301526130c181613085565b9050919050565b60006130d382612429565b91506130de83612429565b92508282019050808211156130f6576130f5612979565b5b92915050565b7f5472616e7366657220616d6f756e742065786365656473207468652062616c6160008201527f6e6365206c696d69742e00000000000000000000000000000000000000000000602082015250565b6000613158602a8361231a565b9150613163826130fc565b604082019050919050565b600060208201905081810360008301526131878161314b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b60006131e26131dd6131d8846131bd565b6127f8565b612429565b9050919050565b6131f2816131c7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61322d816123eb565b82525050565b600061323f8383613224565b60208301905092915050565b6000602082019050919050565b6000613263826131f8565b61326d8185613203565b935061327883613214565b8060005b838110156132a95781516132908882613233565b975061329b8361324b565b92505060018101905061327c565b5085935050505092915050565b600060a0820190506132cb6000830188612606565b6132d860208301876131e9565b81810360408301526132ea8186613258565b90506132f96060830185612765565b6133066080830184612606565b9695505050505050565b600081905092915050565b50565b600061332b600083613310565b91506133368261331b565b600082019050919050565b600061334c8261331e565b9150819050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061338c601b8361231a565b915061339782613356565b602082019050919050565b600060208201905081810360008301526133bb8161337f565b905091905056fea26469706673582212205a81a2d4b3a6e9609a168eb624db31bdfa9832fcdd34996bc82089b21004ca0764736f6c63430008110033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063715018a6116100b65780639c0db5f31161006f5780639c0db5f31461043f578063a8aa1b3114610468578063a9059cbb14610493578063d212a69a146104d0578063dd62ed3e146104fc578063f887ea401461053957610156565b8063715018a61461036757806377b54bad1461037e5780637830b072146103a7578063893d20e8146103d25780638a8c523c146103fd57806395d89b411461041457610156565b80632be0df8b116101085780632be0df8b1461027d578063313ce567146102a657806351bc3c85146102d1578063616eb638146102e85780636c0a24eb146102ff57806370a082311461032a57610156565b806306fdde031461015b578063095ea7b3146101865780630b78f9c0146101c35780630cefb76f146101ec57806318160ddd1461021557806323b872dd1461024057610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610564565b60405161017d919061239f565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061245f565b6105a1565b6040516101ba91906124ba565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e591906124d5565b610693565b005b3480156101f857600080fd5b50610213600480360381019061020e91906125a6565b610744565b005b34801561022157600080fd5b5061022a610831565b6040516102379190612615565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190612630565b610854565b60405161027491906124ba565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f91906124d5565b610a54565b005b3480156102b257600080fd5b506102bb610bb6565b6040516102c8919061269f565b60405180910390f35b3480156102dd57600080fd5b506102e6610bbf565b005b3480156102f457600080fd5b506102fd610c21565b005b34801561030b57600080fd5b50610314610c8a565b6040516103219190612615565b60405180910390f35b34801561033657600080fd5b50610351600480360381019061034c91906126ba565b610c90565b60405161035e9190612615565b60405180910390f35b34801561037357600080fd5b5061037c610cd9565b005b34801561038a57600080fd5b506103a560048036038101906103a09190612725565b610d9c565b005b3480156103b357600080fd5b506103bc610e87565b6040516103c99190612615565b60405180910390f35b3480156103de57600080fd5b506103e7610e8d565b6040516103f49190612774565b60405180910390f35b34801561040957600080fd5b50610412610eb6565b005b34801561042057600080fd5b50610429610f1b565b604051610436919061239f565b60405180910390f35b34801561044b57600080fd5b50610466600480360381019061046191906125a6565b610f58565b005b34801561047457600080fd5b5061047d611244565b60405161048a9190612774565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b5919061245f565b611268565b6040516104c791906124ba565b60405180910390f35b3480156104dc57600080fd5b506104e561127d565b6040516104f392919061278f565b60405180910390f35b34801561050857600080fd5b50610523600480360381019061051e91906127b8565b61128f565b6040516105309190612615565b60405180910390f35b34801561054557600080fd5b5061054e611316565b60405161055b9190612857565b60405180910390f35b60606040518060400160405280600481526020017f4d617a6500000000000000000000000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106819190612615565b60405180910390a36001905092915050565b61069c336113fe565b6106db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d2906128be565b60405180910390fd5b600a82111580156106ed5750600a8111155b61072c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107239061292a565b60405180910390fd5b81600860000181905550806008600101819055505050565b61074d336113fe565b61078c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610783906128be565b60405180910390fd5b60005b8383905081101561082b5781600760008686858181106107b2576107b161294a565b5b90506020020160208101906107c791906126ba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610823906129a8565b91505061078f565b50505050565b60006009600a6108419190612b23565b620f424061084f9190612b6e565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610a40576109bf826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114579092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610a4b8484846114bb565b90509392505050565b610a5d336113fe565b610a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a93906128be565b60405180910390fd5b6001821015610ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad790612c22565b60405180910390fd5b6001811015610b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1b90612cb4565b60405180910390fd5b610b656064610b57846009600a610b3b9190612b23565b620f4240610b499190612b6e565b61133a90919063ffffffff16565b6113b490919063ffffffff16565b600181905550610bac6064610b9e836009600a610b829190612b23565b620f4240610b909190612b6e565b61133a90919063ffffffff16565b6113b490919063ffffffff16565b6002819055505050565b60006009905090565b7f000000000000000000000000d98ff185661df897c379b129bf427adbc638fdcf73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c1757600080fd5b610c1f611a9a565b565b7f000000000000000000000000d98ff185661df897c379b129bf427adbc638fdcf73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c87573d6000803e3d6000fd5b50565b60015481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ce2336113fe565b610d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d18906128be565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610d929190612774565b60405180910390a1565b610da5336113fe565b610de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddb906128be565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f000000000000000000000000d98ff185661df897c379b129bf427adbc638fdcf836040518363ffffffff1660e01b8152600401610e3f929190612cf5565b6020604051808303816000875af1158015610e5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e829190612d33565b505050565b60025481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ebf336113fe565b610efe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef5906128be565b60405180910390fd5b6001600a60006101000a81548160ff021916908315150217905550565b60606040518060400160405280600581526020017f244d415a45000000000000000000000000000000000000000000000000000000815250905090565b610f61336113fe565b610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f97906128be565b60405180910390fd5b60005b8383905081101561123e573073ffffffffffffffffffffffffffffffffffffffff16848483818110610fd857610fd761294a565b5b9050602002016020810190610fed91906126ba565b73ffffffffffffffffffffffffffffffffffffffff1603611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a90612dac565b60405180910390fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1684848381811061108d5761108c61294a565b5b90506020020160208101906110a291906126ba565b73ffffffffffffffffffffffffffffffffffffffff16036110f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ef90612e18565b60405180910390fd5b7f0000000000000000000000003806b550643f8c045fa3e162c78bdd61de3c660473ffffffffffffffffffffffffffffffffffffffff168484838181106111425761114161294a565b5b905060200201602081019061115791906126ba565b73ffffffffffffffffffffffffffffffffffffffff16036111ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a490612e84565b60405180910390fd5b81600560008686858181106111c5576111c461294a565b5b90506020020160208101906111da91906126ba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611236906129a8565b915050610fa3565b50505050565b7f0000000000000000000000003806b550643f8c045fa3e162c78bdd61de3c660481565b60006112753384846114bb565b905092915050565b60088060000154908060010154905082565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600080830361134c57600090506113ae565b6000828461135a9190612b6e565b90508284826113699190612ed3565b146113a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a090612f76565b60405180910390fd5b809150505b92915050565b60006113f683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d60565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600083831115829061149f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611496919061239f565b60405180910390fd5b50600083856114ae9190612f96565b9050809150509392505050565b600083600a60009054906101000a900460ff1680611524575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b8061157a57507f0000000000000000000000007e8259907e695ecc59f17d6c07d6750d13347b6573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61158357600080fd5b600a60019054906101000a900460ff16806115e957507f000000000000000000000000d98ff185661df897c379b129bf427adbc638fdcf73ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b8061163f57507f0000000000000000000000007e8259907e695ecc59f17d6c07d6750d13347b6573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b156116565761164f858585611dc3565b9150611a92565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da90613016565b60405180910390fd5b600254831115611728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171f906130a8565b60405180910390fd5b7f0000000000000000000000003806b550643f8c045fa3e162c78bdd61de3c660473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117b2575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118475760015483600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461180591906130c8565b1115611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d9061316e565b60405180910390fd5b5b61185085611f5f565b1561185e5761185d611a9a565b5b6000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118b857836118c4565b6118c3868686611fec565b5b905061194f846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114579092919063ffffffff16565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119e481600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226790919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a849190612615565b60405180910390a360019250505b509392505050565b6001600a60016101000a81548160ff0219169083151502179055506000600254611ac330610c90565b1015611aef577f000000000000000000000000000000000000000000000000000000e8d4a51000611af3565b6002545b9050611b1f7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d826105a1565b506000600267ffffffffffffffff811115611b3d57611b3c61318e565b5b604051908082528060200260200182016040528015611b6b5781602001602082028036833780820191505090505b5090503081600081518110611b8357611b8261294a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611be657611be561294a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c829594939291906132b6565b600060405180830381600087803b158015611c9c57600080fd5b505af1158015611cb0573d6000803e3d6000fd5b5050505060007f000000000000000000000000d98ff185661df897c379b129bf427adbc638fdcf73ffffffffffffffffffffffffffffffffffffffff1647604051611cfa90613341565b60006040518083038185875af1925050503d8060008114611d37576040519150601f19603f3d011682016040523d82523d6000602084013e611d3c565b606091505b505090505050506000600a60016101000a81548160ff021916908315150217905550565b60008083118290611da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9e919061239f565b60405180910390fd5b5060008385611db69190612ed3565b9050809150509392505050565b6000611e1782600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c590919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611eac82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226790919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f4c9190612615565b60405180910390a3600190509392505050565b60007f0000000000000000000000003806b550643f8c045fa3e162c78bdd61de3c660473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611fe557507f000000000000000000000000000000000000000000000000000000e8d4a51000611fe230610c90565b10155b9050919050565b600080600090507f0000000000000000000000003806b550643f8c045fa3e162c78bdd61de3c660473ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156120545750600060086000015414155b156121205761208460646120766008600001548661133a90919063ffffffff16565b6113b490919063ffffffff16565b90506120d881600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226790919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061224a565b7f0000000000000000000000003806b550643f8c045fa3e162c78bdd61de3c660473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121815750600060086001015414155b15612249576121b160646121a36008600101548661133a90919063ffffffff16565b6113b490919063ffffffff16565b905061220581600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226790919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b61225d81846122c590919063ffffffff16565b9150509392505050565b600080828461227691906130c8565b9050838110156122bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b2906133a2565b60405180910390fd5b8091505092915050565b600061230783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611457565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561234957808201518184015260208101905061232e565b60008484015250505050565b6000601f19601f8301169050919050565b60006123718261230f565b61237b818561231a565b935061238b81856020860161232b565b61239481612355565b840191505092915050565b600060208201905081810360008301526123b98184612366565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123f6826123cb565b9050919050565b612406816123eb565b811461241157600080fd5b50565b600081359050612423816123fd565b92915050565b6000819050919050565b61243c81612429565b811461244757600080fd5b50565b60008135905061245981612433565b92915050565b60008060408385031215612476576124756123c1565b5b600061248485828601612414565b92505060206124958582860161244a565b9150509250929050565b60008115159050919050565b6124b48161249f565b82525050565b60006020820190506124cf60008301846124ab565b92915050565b600080604083850312156124ec576124eb6123c1565b5b60006124fa8582860161244a565b925050602061250b8582860161244a565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261253a57612539612515565b5b8235905067ffffffffffffffff8111156125575761255661251a565b5b6020830191508360208202830111156125735761257261251f565b5b9250929050565b6125838161249f565b811461258e57600080fd5b50565b6000813590506125a08161257a565b92915050565b6000806000604084860312156125bf576125be6123c1565b5b600084013567ffffffffffffffff8111156125dd576125dc6123c6565b5b6125e986828701612524565b935093505060206125fc86828701612591565b9150509250925092565b61260f81612429565b82525050565b600060208201905061262a6000830184612606565b92915050565b600080600060608486031215612649576126486123c1565b5b600061265786828701612414565b935050602061266886828701612414565b92505060406126798682870161244a565b9150509250925092565b600060ff82169050919050565b61269981612683565b82525050565b60006020820190506126b46000830184612690565b92915050565b6000602082840312156126d0576126cf6123c1565b5b60006126de84828501612414565b91505092915050565b60006126f2826123eb565b9050919050565b612702816126e7565b811461270d57600080fd5b50565b60008135905061271f816126f9565b92915050565b6000806040838503121561273c5761273b6123c1565b5b600061274a85828601612710565b925050602061275b8582860161244a565b9150509250929050565b61276e816123eb565b82525050565b60006020820190506127896000830184612765565b92915050565b60006040820190506127a46000830185612606565b6127b16020830184612606565b9392505050565b600080604083850312156127cf576127ce6123c1565b5b60006127dd85828601612414565b92505060206127ee85828601612414565b9150509250929050565b6000819050919050565b600061281d612818612813846123cb565b6127f8565b6123cb565b9050919050565b600061282f82612802565b9050919050565b600061284182612824565b9050919050565b61285181612836565b82525050565b600060208201905061286c6000830184612848565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b60006128a860068361231a565b91506128b382612872565b602082019050919050565b600060208201905081810360008301526128d78161289b565b9050919050565b7f4d61782066656520616c6c6f7765642069732031302500000000000000000000600082015250565b600061291460168361231a565b915061291f826128de565b602082019050919050565b6000602082019050818103600083015261294381612907565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129b382612429565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129e5576129e4612979565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115612a4757808604811115612a2357612a22612979565b5b6001851615612a325780820291505b8081029050612a40856129f0565b9450612a07565b94509492505050565b600082612a605760019050612b1c565b81612a6e5760009050612b1c565b8160018114612a845760028114612a8e57612abd565b6001915050612b1c565b60ff841115612aa057612a9f612979565b5b8360020a915084821115612ab757612ab6612979565b5b50612b1c565b5060208310610133831016604e8410600b8410161715612af25782820a905083811115612aed57612aec612979565b5b612b1c565b612aff84848460016129fd565b92509050818404811115612b1657612b15612979565b5b81810290505b9392505050565b6000612b2e82612429565b9150612b3983612683565b9250612b667fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a50565b905092915050565b6000612b7982612429565b9150612b8483612429565b9250828202612b9281612429565b91508282048414831517612ba957612ba8612979565b5b5092915050565b7f77616c6c6574206c696d6974206d757368206265206e6f74206c65737320746860008201527f616e20312070657263656e740000000000000000000000000000000000000000602082015250565b6000612c0c602c8361231a565b9150612c1782612bb0565b604082019050919050565b60006020820190508181036000830152612c3b81612bff565b9050919050565b7f4d617820747820616d6f756e74206d757374206e6f74206265206c657373207460008201527f68616e20312070657263656e7400000000000000000000000000000000000000602082015250565b6000612c9e602d8361231a565b9150612ca982612c42565b604082019050919050565b60006020820190508181036000830152612ccd81612c91565b9050919050565b6000612cdf82612824565b9050919050565b612cef81612cd4565b82525050565b6000604082019050612d0a6000830185612ce6565b612d176020830184612606565b9392505050565b600081519050612d2d8161257a565b92915050565b600060208284031215612d4957612d486123c1565b5b6000612d5784828501612d1e565b91505092915050565b7f43616e206e6f7420626c6f636b20746f6b656e20636f6e747261637400000000600082015250565b6000612d96601c8361231a565b9150612da182612d60565b602082019050919050565b60006020820190508181036000830152612dc581612d89565b9050919050565b7f43616e206e6f7420626c6f636b20726f75746572000000000000000000000000600082015250565b6000612e0260148361231a565b9150612e0d82612dcc565b602082019050919050565b60006020820190508181036000830152612e3181612df5565b9050919050565b7f43616e206e6f7420626c6f636b20706169720000000000000000000000000000600082015250565b6000612e6e60128361231a565b9150612e7982612e38565b602082019050919050565b60006020820190508181036000830152612e9d81612e61565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ede82612429565b9150612ee983612429565b925082612ef957612ef8612ea4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f6060218361231a565b9150612f6b82612f04565b604082019050919050565b60006020820190508181036000830152612f8f81612f53565b9050919050565b6000612fa182612429565b9150612fac83612429565b9250828203905081811115612fc457612fc3612979565b5b92915050565b7f426f7473206e6f7420616c6c6f776564207472616e7366657273000000000000600082015250565b6000613000601a8361231a565b915061300b82612fca565b602082019050919050565b6000602082019050818103600083015261302f81612ff3565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865207478206c60008201527f696d697400000000000000000000000000000000000000000000000000000000602082015250565b600061309260248361231a565b915061309d82613036565b604082019050919050565b600060208201905081810360008301526130c181613085565b9050919050565b60006130d382612429565b91506130de83612429565b92508282019050808211156130f6576130f5612979565b5b92915050565b7f5472616e7366657220616d6f756e742065786365656473207468652062616c6160008201527f6e6365206c696d69742e00000000000000000000000000000000000000000000602082015250565b6000613158602a8361231a565b9150613163826130fc565b604082019050919050565b600060208201905081810360008301526131878161314b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b60006131e26131dd6131d8846131bd565b6127f8565b612429565b9050919050565b6131f2816131c7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61322d816123eb565b82525050565b600061323f8383613224565b60208301905092915050565b6000602082019050919050565b6000613263826131f8565b61326d8185613203565b935061327883613214565b8060005b838110156132a95781516132908882613233565b975061329b8361324b565b92505060018101905061327c565b5085935050505092915050565b600060a0820190506132cb6000830188612606565b6132d860208301876131e9565b81810360408301526132ea8186613258565b90506132f96060830185612765565b6133066080830184612606565b9695505050505050565b600081905092915050565b50565b600061332b600083613310565b91506133368261331b565b600082019050919050565b600061334c8261331e565b9150819050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061338c601b8361231a565b915061339782613356565b602082019050919050565b600060208201905081810360008301526133bb8161337f565b905091905056fea26469706673582212205a81a2d4b3a6e9609a168eb624db31bdfa9832fcdd34996bc82089b21004ca0764736f6c63430008110033

Deployed Bytecode Sourcemap

3173:8192:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3488:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6095:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9549:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9790:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3245:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6465:359;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10538:425;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3330:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10972:107;;;;;;;;;;;;;:::i;:::-;;11088:102;;;;;;;;;;;;;:::i;:::-;;4490:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3640:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2498:131;;;;;;;;;;;;;:::i;:::-;;11198:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4560:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3565:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10025:84;;;;;;;;;;;;;:::i;:::-;;3407:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10121:409;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5089:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6310:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4866:76;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;3742:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5040:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3488:71;3527:13;3551:5;;;;;;;;;;;;;;;;;3544:12;;3488:71;:::o;6095:207::-;6161:4;6213:6;6178:11;:23;6190:10;6178:23;;;;;;;;;;;;;;;:32;6202:7;6178:32;;;;;;;;;;;;;;;:41;;;;6256:7;6235:37;;6244:10;6235:37;;;6265:6;6235:37;;;;;;:::i;:::-;;;;;;;;6290:4;6283:11;;6095:207;;;;:::o;9549:233::-;2336:19;2344:10;2336:7;:19::i;:::-;2328:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;9650:2:::1;9639:7;:13;;:31;;;;;9668:2;9656:8;:14;;9639:31;9631:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9723:7;9708:5;:12;;:22;;;;9758:8;9742:5;:13;;:24;;;;9549:233:::0;;:::o;9790:223::-;2336:19;2344:10;2336:7;:19::i;:::-;2328:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;9901:9:::1;9897:109;9920:7;;:14;;9916:1;:18;9897:109;;;9982:12;9956:11;:23;9968:7;;9976:1;9968:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9956:23;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;9936:3;;;;;:::i;:::-;;;;9897:109;;;;9790:223:::0;;;:::o;3245:79::-;3291:7;4411:1;4466:2;:15;;;;:::i;:::-;4453:9;:29;;;;:::i;:::-;3302:19;;3245:79;:::o;6465:359::-;6556:4;6611:17;6576:11;:19;6588:6;6576:19;;;;;;;;;;;;;;;:31;6596:10;6576:31;;;;;;;;;;;;;;;;:52;6573:186;;6678:69;6714:6;6678:69;;;;;;;;;;;;;;;;;:11;:19;6690:6;6678:19;;;;;;;;;;;;;;;:31;6698:10;6678:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;6644:11;:19;6656:6;6644:19;;;;;;;;;;;;;;;:31;6664:10;6644:31;;;;;;;;;;;;;;;:103;;;;6573:186;6776:40;6790:6;6798:9;6809:6;6776:13;:40::i;:::-;6769:47;;6465:359;;;;;:::o;10538:425::-;2336:19;2344:10;2336:7;:19::i;:::-;2328:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10683:1:::1;10662:17;:22;;10654:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;10768:1;10751:13;:18;;10743:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;10851:44;10891:3;10851:35;10868:17;4411:1;4466:2;:15;;;;:::i;:::-;4453:9;:29;;;;:::i;:::-;10851:16;;:35;;;;:::i;:::-;:39;;:44;;;;:::i;:::-;10832:16;:63;;;;10915:40;10951:3;10915:31;10932:13;4411:1;4466:2;:15;;;;:::i;:::-;4453:9;:29;;;;:::i;:::-;10915:16;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;10906:6;:49;;;;10538:425:::0;;:::o;3330:71::-;3373:5;4411:1;3382:16;;3330:71;:::o;10972:107::-;11036:13;11022:27;;:10;:27;;;11014:36;;;;;;11061:10;:8;:10::i;:::-;10972:107::o;11088:102::-;11136:13;11128:31;;:54;11160:21;11128:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11088:102::o;4490:62::-;;;;:::o;3640:96::-;3697:7;3715:9;:18;3725:7;3715:18;;;;;;;;;;;;;;;;3708:25;;3640:96;;;:::o;2498:131::-;2336:19;2344:10;2336:7;:19::i;:::-;2328:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2571:1:::1;2555:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2589:32;2618:1;2589:32;;;;;;:::i;:::-;;;;;;;;2498:131::o:0;11198:127::-;2336:19;2344:10;2336:7;:19::i;:::-;2328:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11281:5:::1;:14;;;11296:13;11311:5;11281:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11198:127:::0;;:::o;4560:52::-;;;;:::o;3565:69::-;3608:7;3626:5;;;;;;;;;;;3619:12;;3565:69;:::o;10025:84::-;2336:19;2344:10;2336:7;:19::i;:::-;2328:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10097:4:::1;10080:14;;:21;;;;;;;;;;;;;;;;;;10025:84::o:0;3407:75::-;3448:13;3472:7;;;;;;;;;;;;;;;;;3465:14;;3407:75;:::o;10121:409::-;2336:19;2344:10;2336:7;:19::i;:::-;2328:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10211:9:::1;10206:317;10230:4;;:11;;10226:1;:15;10206:317;;;10290:4;10271:24;;:4;;10276:1;10271:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:24;;::::0;10263:65:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10370:6;10351:26;;:4;;10356:1;10351:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:26;;::::0;10343:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10444:4;10425:24;;:4;;10430:1;10425:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:24;;::::0;10417:55:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10504:6;10487:5;:14;10493:4;;10498:1;10493:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10487:14;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10243:3;;;;;:::i;:::-;;;;10206:317;;;;10121:409:::0;;;:::o;5089:29::-;;;:::o;6310:147::-;6381:4;6405:44;6419:10;6431:9;6442:6;6405:13;:44::i;:::-;6398:51;;6310:147;;;;:::o;4866:76::-;;;;;;;;;;;;;;:::o;3742:124::-;3817:7;3835:11;:19;3847:6;3835:19;;;;;;;;;;;;;;;:28;3855:7;3835:28;;;;;;;;;;;;;;;;3828:35;;3742:124;;;;:::o;5040:42::-;;;:::o;664:246::-;722:7;751:1;746;:6;742:47;;776:1;769:8;;;;742:47;799:9;815:1;811;:5;;;;:::i;:::-;799:17;;844:1;839;835;:5;;;;:::i;:::-;:10;827:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;901:1;894:8;;;664:246;;;;;:::o;916:132::-;974:7;1001:39;1005:1;1008;1001:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;994:46;;916:132;;;;:::o;2386:104::-;2442:4;2477:5;;;;;;;;;;;2466:16;;:7;:16;;;2459:23;;2386:104;;;:::o;468:190::-;554:7;587:1;582;:6;;590:12;574:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;614:9;630:1;626;:5;;;;:::i;:::-;614:17;;649:1;642:8;;;468:190;;;;;:::o;6832:1007::-;6942:4;6916:6;5887:14;;;;;;;;;;;:46;;;;5928:5;;;;;;;;;;5915:18;;:9;:18;;;5887:46;:76;;;;5947:16;5937:26;;:6;:26;;;5887:76;5879:85;;;;;;6962:6:::1;;;;;;;;;;;:36;;;;6985:13;6972:26;;:9;:26;;;6962:36;:66;;;;7012:16;7002:26;;:6;:26;;;6962:66;6959:131;;;7050:40;7064:6;7072:9;7083:6;7050:13;:40::i;:::-;7043:47;;;;6959:131;7112:5;:13;7118:6;7112:13;;;;;;;;;;;;;;;;;;;;;;;;;7111:14;7103:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;7185:6;;7175;:16;;7167:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7270:4;7257:17;;:9;:17;;;;:38;;;;;4215:42;7278:17;;:9;:17;;;;7257:38;7253:175;;;7353:16;;7343:6;7320:9;:20;7330:9;7320:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;7312:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;7253:175;7443:18;7454:6;7443:10;:18::i;:::-;7440:46;;;7476:10;:8;:10::i;:::-;7440:46;7499:22;7525:11;:19;7537:6;7525:19;;;;;;;;;;;;;;;;;;;;;;;;;7524:20;:66;;7584:6;7524:66;;;7547:34;7555:6;7563:9;7574:6;7547:7;:34::i;:::-;7524:66;7499:91;;7623:53;7645:6;7623:53;;;;;;;;;;;;;;;;::::0;:9:::1;:17;7633:6;7623:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;7603:9;:17;7613:6;7603:17;;;;;;;;;;;;;;;:73;;;;7710:40;7735:14;7710:9;:20;7720:9;7710:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;7687:9;:20;7697:9;7687:20;;;;;;;;;;;;;;;:63;;;;7783:9;7766:43;;7775:6;7766:43;;;7794:14;7766:43;;;;;;:::i;:::-;;;;;;;;7827:4;7820:11;;;5983:1;6832:1007:::0;;;;;;:::o;8001:585::-;6038:4;6029:6;;:13;;;;;;;;;;;;;;;;;;8050:20:::1;8101:6;;8073:24;8091:4;8073:9;:24::i;:::-;:34;;:55;;8119:9;8073:55;;;8110:6;;8073:55;8050:78;;8139:38;8155:6;8164:12;8139:7;:38::i;:::-;;8188:21;8226:1;8212:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8188:40;;8257:4;8239;8244:1;8239:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;3978:42;8273:4;8278:1;8273:7;;;;;;;;:::i;:::-;;;;;;;:13;;;;;;;;;::::0;::::1;8299:6;:57;;;8371:12;8398:1;8414:4;8441;8461:15;8299:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8499:12;8517:13;:18;;8543:21;8517:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8498:71;;;8039:547;;;6074:5:::0;6065:6;;:14;;;;;;;;;;;;;;;;;;8001:585::o;1054:189::-;1140:7;1172:1;1168;:5;1175:12;1160:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1199:9;1215:1;1211;:5;;;;:::i;:::-;1199:17;;1234:1;1227:8;;;1054:189;;;;;:::o;9236:305::-;9328:4;9365:29;9387:6;9365:9;:17;9375:6;9365:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;9345:9;:17;9355:6;9345:17;;;;;;;;;;;;;;;:49;;;;9428:32;9453:6;9428:9;:20;9438:9;9428:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9405:9;:20;9415:9;9405:20;;;;;;;;;;;;;;;:55;;;;9493:9;9476:35;;9485:6;9476:35;;;9504:6;9476:35;;;;;;:::i;:::-;;;;;;;;9529:4;9522:11;;9236:305;;;;;:::o;7847:146::-;7906:4;7940;7930:14;;:6;:14;;;;:55;;;;;7976:9;7948:24;7966:4;7948:9;:24::i;:::-;:37;;7930:55;7923:62;;7847:146;;;:::o;8598:630::-;8684:7;8704:17;8724:1;8704:21;;8750:4;8740:14;;:6;:14;;;:35;;;;;8774:1;8758:5;:12;;;:17;;8740:35;8736:446;;;8821:44;4983:3;8821:24;8832:5;:12;;;8821:6;:10;;:24;;;;:::i;:::-;:28;;:44;;;;:::i;:::-;8809:56;;8907:39;8936:9;8907;:24;8925:4;8907:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8880:9;:24;8898:4;8880:24;;;;;;;;;;;;;;;:66;;;;8736:446;;;8981:4;8968:17;;:9;:17;;;:39;;;;;9006:1;8989:5;:13;;;:18;;8968:39;8964:218;;;9044:45;4983:3;9044:25;9055:5;:13;;;9044:6;:10;;:25;;;;:::i;:::-;:29;;:45;;;;:::i;:::-;9032:57;;9131:39;9160:9;9131;:24;9149:4;9131:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9104:9;:24;9122:4;9104:24;;;;;;;;;;;;;;;:66;;;;8964:218;8736:446;9199:21;9210:9;9199:6;:10;;:21;;;;:::i;:::-;9192:28;;;8598:630;;;;;:::o;141:179::-;199:7;219:9;235:1;231;:5;;;;:::i;:::-;219:17;;260:1;255;:6;;247:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;311:1;304:8;;;141:179;;;;:::o;326:136::-;384:7;411:43;415:1;418;411:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;404:50;;326:136;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:474::-;3514:6;3522;3571:2;3559:9;3550:7;3546:23;3542:32;3539:119;;;3577:79;;:::i;:::-;3539:119;3697:1;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3668:117;3824:2;3850:53;3895:7;3886:6;3875:9;3871:22;3850:53;:::i;:::-;3840:63;;3795:118;3446:474;;;;;:::o;3926:117::-;4035:1;4032;4025:12;4049:117;4158:1;4155;4148:12;4172:117;4281:1;4278;4271:12;4312:568;4385:8;4395:6;4445:3;4438:4;4430:6;4426:17;4422:27;4412:122;;4453:79;;:::i;:::-;4412:122;4566:6;4553:20;4543:30;;4596:18;4588:6;4585:30;4582:117;;;4618:79;;:::i;:::-;4582:117;4732:4;4724:6;4720:17;4708:29;;4786:3;4778:4;4770:6;4766:17;4756:8;4752:32;4749:41;4746:128;;;4793:79;;:::i;:::-;4746:128;4312:568;;;;;:::o;4886:116::-;4956:21;4971:5;4956:21;:::i;:::-;4949:5;4946:32;4936:60;;4992:1;4989;4982:12;4936:60;4886:116;:::o;5008:133::-;5051:5;5089:6;5076:20;5067:29;;5105:30;5129:5;5105:30;:::i;:::-;5008:133;;;;:::o;5147:698::-;5239:6;5247;5255;5304:2;5292:9;5283:7;5279:23;5275:32;5272:119;;;5310:79;;:::i;:::-;5272:119;5458:1;5447:9;5443:17;5430:31;5488:18;5480:6;5477:30;5474:117;;;5510:79;;:::i;:::-;5474:117;5623:80;5695:7;5686:6;5675:9;5671:22;5623:80;:::i;:::-;5605:98;;;;5401:312;5752:2;5778:50;5820:7;5811:6;5800:9;5796:22;5778:50;:::i;:::-;5768:60;;5723:115;5147:698;;;;;:::o;5851:118::-;5938:24;5956:5;5938:24;:::i;:::-;5933:3;5926:37;5851:118;;:::o;5975:222::-;6068:4;6106:2;6095:9;6091:18;6083:26;;6119:71;6187:1;6176:9;6172:17;6163:6;6119:71;:::i;:::-;5975:222;;;;:::o;6203:619::-;6280:6;6288;6296;6345:2;6333:9;6324:7;6320:23;6316:32;6313:119;;;6351:79;;:::i;:::-;6313:119;6471:1;6496:53;6541:7;6532:6;6521:9;6517:22;6496:53;:::i;:::-;6486:63;;6442:117;6598:2;6624:53;6669:7;6660:6;6649:9;6645:22;6624:53;:::i;:::-;6614:63;;6569:118;6726:2;6752:53;6797:7;6788:6;6777:9;6773:22;6752:53;:::i;:::-;6742:63;;6697:118;6203:619;;;;;:::o;6828:86::-;6863:7;6903:4;6896:5;6892:16;6881:27;;6828:86;;;:::o;6920:112::-;7003:22;7019:5;7003:22;:::i;:::-;6998:3;6991:35;6920:112;;:::o;7038:214::-;7127:4;7165:2;7154:9;7150:18;7142:26;;7178:67;7242:1;7231:9;7227:17;7218:6;7178:67;:::i;:::-;7038:214;;;;:::o;7258:329::-;7317:6;7366:2;7354:9;7345:7;7341:23;7337:32;7334:119;;;7372:79;;:::i;:::-;7334:119;7492:1;7517:53;7562:7;7553:6;7542:9;7538:22;7517:53;:::i;:::-;7507:63;;7463:117;7258:329;;;;:::o;7593:109::-;7643:7;7672:24;7690:5;7672:24;:::i;:::-;7661:35;;7593:109;;;:::o;7708:148::-;7794:37;7825:5;7794:37;:::i;:::-;7787:5;7784:48;7774:76;;7846:1;7843;7836:12;7774:76;7708:148;:::o;7862:165::-;7921:5;7959:6;7946:20;7937:29;;7975:46;8015:5;7975:46;:::i;:::-;7862:165;;;;:::o;8033:500::-;8114:6;8122;8171:2;8159:9;8150:7;8146:23;8142:32;8139:119;;;8177:79;;:::i;:::-;8139:119;8297:1;8322:66;8380:7;8371:6;8360:9;8356:22;8322:66;:::i;:::-;8312:76;;8268:130;8437:2;8463:53;8508:7;8499:6;8488:9;8484:22;8463:53;:::i;:::-;8453:63;;8408:118;8033:500;;;;;:::o;8539:118::-;8626:24;8644:5;8626:24;:::i;:::-;8621:3;8614:37;8539:118;;:::o;8663:222::-;8756:4;8794:2;8783:9;8779:18;8771:26;;8807:71;8875:1;8864:9;8860:17;8851:6;8807:71;:::i;:::-;8663:222;;;;:::o;8891:332::-;9012:4;9050:2;9039:9;9035:18;9027:26;;9063:71;9131:1;9120:9;9116:17;9107:6;9063:71;:::i;:::-;9144:72;9212:2;9201:9;9197:18;9188:6;9144:72;:::i;:::-;8891:332;;;;;:::o;9229:474::-;9297:6;9305;9354:2;9342:9;9333:7;9329:23;9325:32;9322:119;;;9360:79;;:::i;:::-;9322:119;9480:1;9505:53;9550:7;9541:6;9530:9;9526:22;9505:53;:::i;:::-;9495:63;;9451:117;9607:2;9633:53;9678:7;9669:6;9658:9;9654:22;9633:53;:::i;:::-;9623:63;;9578:118;9229:474;;;;;:::o;9709:60::-;9737:3;9758:5;9751:12;;9709:60;;;:::o;9775:142::-;9825:9;9858:53;9876:34;9885:24;9903:5;9885:24;:::i;:::-;9876:34;:::i;:::-;9858:53;:::i;:::-;9845:66;;9775:142;;;:::o;9923:126::-;9973:9;10006:37;10037:5;10006:37;:::i;:::-;9993:50;;9923:126;;;:::o;10055:152::-;10131:9;10164:37;10195:5;10164:37;:::i;:::-;10151:50;;10055:152;;;:::o;10213:183::-;10326:63;10383:5;10326:63;:::i;:::-;10321:3;10314:76;10213:183;;:::o;10402:274::-;10521:4;10559:2;10548:9;10544:18;10536:26;;10572:97;10666:1;10655:9;10651:17;10642:6;10572:97;:::i;:::-;10402:274;;;;:::o;10682:156::-;10822:8;10818:1;10810:6;10806:14;10799:32;10682:156;:::o;10844:365::-;10986:3;11007:66;11071:1;11066:3;11007:66;:::i;:::-;11000:73;;11082:93;11171:3;11082:93;:::i;:::-;11200:2;11195:3;11191:12;11184:19;;10844:365;;;:::o;11215:419::-;11381:4;11419:2;11408:9;11404:18;11396:26;;11468:9;11462:4;11458:20;11454:1;11443:9;11439:17;11432:47;11496:131;11622:4;11496:131;:::i;:::-;11488:139;;11215:419;;;:::o;11640:172::-;11780:24;11776:1;11768:6;11764:14;11757:48;11640:172;:::o;11818:366::-;11960:3;11981:67;12045:2;12040:3;11981:67;:::i;:::-;11974:74;;12057:93;12146:3;12057:93;:::i;:::-;12175:2;12170:3;12166:12;12159:19;;11818:366;;;:::o;12190:419::-;12356:4;12394:2;12383:9;12379:18;12371:26;;12443:9;12437:4;12433:20;12429:1;12418:9;12414:17;12407:47;12471:131;12597:4;12471:131;:::i;:::-;12463:139;;12190:419;;;:::o;12615:180::-;12663:77;12660:1;12653:88;12760:4;12757:1;12750:15;12784:4;12781:1;12774:15;12801:180;12849:77;12846:1;12839:88;12946:4;12943:1;12936:15;12970:4;12967:1;12960:15;12987:233;13026:3;13049:24;13067:5;13049:24;:::i;:::-;13040:33;;13095:66;13088:5;13085:77;13082:103;;13165:18;;:::i;:::-;13082:103;13212:1;13205:5;13201:13;13194:20;;12987:233;;;:::o;13226:102::-;13268:8;13315:5;13312:1;13308:13;13287:34;;13226:102;;;:::o;13334:848::-;13395:5;13402:4;13426:6;13417:15;;13450:5;13441:14;;13464:712;13485:1;13475:8;13472:15;13464:712;;;13580:4;13575:3;13571:14;13565:4;13562:24;13559:50;;;13589:18;;:::i;:::-;13559:50;13639:1;13629:8;13625:16;13622:451;;;14054:4;14047:5;14043:16;14034:25;;13622:451;14104:4;14098;14094:15;14086:23;;14134:32;14157:8;14134:32;:::i;:::-;14122:44;;13464:712;;;13334:848;;;;;;;:::o;14188:1073::-;14242:5;14433:8;14423:40;;14454:1;14445:10;;14456:5;;14423:40;14482:4;14472:36;;14499:1;14490:10;;14501:5;;14472:36;14568:4;14616:1;14611:27;;;;14652:1;14647:191;;;;14561:277;;14611:27;14629:1;14620:10;;14631:5;;;14647:191;14692:3;14682:8;14679:17;14676:43;;;14699:18;;:::i;:::-;14676:43;14748:8;14745:1;14741:16;14732:25;;14783:3;14776:5;14773:14;14770:40;;;14790:18;;:::i;:::-;14770:40;14823:5;;;14561:277;;14947:2;14937:8;14934:16;14928:3;14922:4;14919:13;14915:36;14897:2;14887:8;14884:16;14879:2;14873:4;14870:12;14866:35;14850:111;14847:246;;;15003:8;14997:4;14993:19;14984:28;;15038:3;15031:5;15028:14;15025:40;;;15045:18;;:::i;:::-;15025:40;15078:5;;14847:246;15118:42;15156:3;15146:8;15140:4;15137:1;15118:42;:::i;:::-;15103:57;;;;15192:4;15187:3;15183:14;15176:5;15173:25;15170:51;;;15201:18;;:::i;:::-;15170:51;15250:4;15243:5;15239:16;15230:25;;14188:1073;;;;;;:::o;15267:281::-;15325:5;15349:23;15367:4;15349:23;:::i;:::-;15341:31;;15393:25;15409:8;15393:25;:::i;:::-;15381:37;;15437:104;15474:66;15464:8;15458:4;15437:104;:::i;:::-;15428:113;;15267:281;;;;:::o;15554:410::-;15594:7;15617:20;15635:1;15617:20;:::i;:::-;15612:25;;15651:20;15669:1;15651:20;:::i;:::-;15646:25;;15706:1;15703;15699:9;15728:30;15746:11;15728:30;:::i;:::-;15717:41;;15907:1;15898:7;15894:15;15891:1;15888:22;15868:1;15861:9;15841:83;15818:139;;15937:18;;:::i;:::-;15818:139;15602:362;15554:410;;;;:::o;15970:231::-;16110:34;16106:1;16098:6;16094:14;16087:58;16179:14;16174:2;16166:6;16162:15;16155:39;15970:231;:::o;16207:366::-;16349:3;16370:67;16434:2;16429:3;16370:67;:::i;:::-;16363:74;;16446:93;16535:3;16446:93;:::i;:::-;16564:2;16559:3;16555:12;16548:19;;16207:366;;;:::o;16579:419::-;16745:4;16783:2;16772:9;16768:18;16760:26;;16832:9;16826:4;16822:20;16818:1;16807:9;16803:17;16796:47;16860:131;16986:4;16860:131;:::i;:::-;16852:139;;16579:419;;;:::o;17004:232::-;17144:34;17140:1;17132:6;17128:14;17121:58;17213:15;17208:2;17200:6;17196:15;17189:40;17004:232;:::o;17242:366::-;17384:3;17405:67;17469:2;17464:3;17405:67;:::i;:::-;17398:74;;17481:93;17570:3;17481:93;:::i;:::-;17599:2;17594:3;17590:12;17583:19;;17242:366;;;:::o;17614:419::-;17780:4;17818:2;17807:9;17803:18;17795:26;;17867:9;17861:4;17857:20;17853:1;17842:9;17838:17;17831:47;17895:131;18021:4;17895:131;:::i;:::-;17887:139;;17614:419;;;:::o;18039:134::-;18097:9;18130:37;18161:5;18130:37;:::i;:::-;18117:50;;18039:134;;;:::o;18179:147::-;18274:45;18313:5;18274:45;:::i;:::-;18269:3;18262:58;18179:147;;:::o;18332:348::-;18461:4;18499:2;18488:9;18484:18;18476:26;;18512:79;18588:1;18577:9;18573:17;18564:6;18512:79;:::i;:::-;18601:72;18669:2;18658:9;18654:18;18645:6;18601:72;:::i;:::-;18332:348;;;;;:::o;18686:137::-;18740:5;18771:6;18765:13;18756:22;;18787:30;18811:5;18787:30;:::i;:::-;18686:137;;;;:::o;18829:345::-;18896:6;18945:2;18933:9;18924:7;18920:23;18916:32;18913:119;;;18951:79;;:::i;:::-;18913:119;19071:1;19096:61;19149:7;19140:6;19129:9;19125:22;19096:61;:::i;:::-;19086:71;;19042:125;18829:345;;;;:::o;19180:178::-;19320:30;19316:1;19308:6;19304:14;19297:54;19180:178;:::o;19364:366::-;19506:3;19527:67;19591:2;19586:3;19527:67;:::i;:::-;19520:74;;19603:93;19692:3;19603:93;:::i;:::-;19721:2;19716:3;19712:12;19705:19;;19364:366;;;:::o;19736:419::-;19902:4;19940:2;19929:9;19925:18;19917:26;;19989:9;19983:4;19979:20;19975:1;19964:9;19960:17;19953:47;20017:131;20143:4;20017:131;:::i;:::-;20009:139;;19736:419;;;:::o;20161:170::-;20301:22;20297:1;20289:6;20285:14;20278:46;20161:170;:::o;20337:366::-;20479:3;20500:67;20564:2;20559:3;20500:67;:::i;:::-;20493:74;;20576:93;20665:3;20576:93;:::i;:::-;20694:2;20689:3;20685:12;20678:19;;20337:366;;;:::o;20709:419::-;20875:4;20913:2;20902:9;20898:18;20890:26;;20962:9;20956:4;20952:20;20948:1;20937:9;20933:17;20926:47;20990:131;21116:4;20990:131;:::i;:::-;20982:139;;20709:419;;;:::o;21134:168::-;21274:20;21270:1;21262:6;21258:14;21251:44;21134:168;:::o;21308:366::-;21450:3;21471:67;21535:2;21530:3;21471:67;:::i;:::-;21464:74;;21547:93;21636:3;21547:93;:::i;:::-;21665:2;21660:3;21656:12;21649:19;;21308:366;;;:::o;21680:419::-;21846:4;21884:2;21873:9;21869:18;21861:26;;21933:9;21927:4;21923:20;21919:1;21908:9;21904:17;21897:47;21961:131;22087:4;21961:131;:::i;:::-;21953:139;;21680:419;;;:::o;22105:180::-;22153:77;22150:1;22143:88;22250:4;22247:1;22240:15;22274:4;22271:1;22264:15;22291:185;22331:1;22348:20;22366:1;22348:20;:::i;:::-;22343:25;;22382:20;22400:1;22382:20;:::i;:::-;22377:25;;22421:1;22411:35;;22426:18;;:::i;:::-;22411:35;22468:1;22465;22461:9;22456:14;;22291:185;;;;:::o;22482:220::-;22622:34;22618:1;22610:6;22606:14;22599:58;22691:3;22686:2;22678:6;22674:15;22667:28;22482:220;:::o;22708:366::-;22850:3;22871:67;22935:2;22930:3;22871:67;:::i;:::-;22864:74;;22947:93;23036:3;22947:93;:::i;:::-;23065:2;23060:3;23056:12;23049:19;;22708:366;;;:::o;23080:419::-;23246:4;23284:2;23273:9;23269:18;23261:26;;23333:9;23327:4;23323:20;23319:1;23308:9;23304:17;23297:47;23361:131;23487:4;23361:131;:::i;:::-;23353:139;;23080:419;;;:::o;23505:194::-;23545:4;23565:20;23583:1;23565:20;:::i;:::-;23560:25;;23599:20;23617:1;23599:20;:::i;:::-;23594:25;;23643:1;23640;23636:9;23628:17;;23667:1;23661:4;23658:11;23655:37;;;23672:18;;:::i;:::-;23655:37;23505:194;;;;:::o;23705:176::-;23845:28;23841:1;23833:6;23829:14;23822:52;23705:176;:::o;23887:366::-;24029:3;24050:67;24114:2;24109:3;24050:67;:::i;:::-;24043:74;;24126:93;24215:3;24126:93;:::i;:::-;24244:2;24239:3;24235:12;24228:19;;23887:366;;;:::o;24259:419::-;24425:4;24463:2;24452:9;24448:18;24440:26;;24512:9;24506:4;24502:20;24498:1;24487:9;24483:17;24476:47;24540:131;24666:4;24540:131;:::i;:::-;24532:139;;24259:419;;;:::o;24684:223::-;24824:34;24820:1;24812:6;24808:14;24801:58;24893:6;24888:2;24880:6;24876:15;24869:31;24684:223;:::o;24913:366::-;25055:3;25076:67;25140:2;25135:3;25076:67;:::i;:::-;25069:74;;25152:93;25241:3;25152:93;:::i;:::-;25270:2;25265:3;25261:12;25254:19;;24913:366;;;:::o;25285:419::-;25451:4;25489:2;25478:9;25474:18;25466:26;;25538:9;25532:4;25528:20;25524:1;25513:9;25509:17;25502:47;25566:131;25692:4;25566:131;:::i;:::-;25558:139;;25285:419;;;:::o;25710:191::-;25750:3;25769:20;25787:1;25769:20;:::i;:::-;25764:25;;25803:20;25821:1;25803:20;:::i;:::-;25798:25;;25846:1;25843;25839:9;25832:16;;25867:3;25864:1;25861:10;25858:36;;;25874:18;;:::i;:::-;25858:36;25710:191;;;;:::o;25907:229::-;26047:34;26043:1;26035:6;26031:14;26024:58;26116:12;26111:2;26103:6;26099:15;26092:37;25907:229;:::o;26142:366::-;26284:3;26305:67;26369:2;26364:3;26305:67;:::i;:::-;26298:74;;26381:93;26470:3;26381:93;:::i;:::-;26499:2;26494:3;26490:12;26483:19;;26142:366;;;:::o;26514:419::-;26680:4;26718:2;26707:9;26703:18;26695:26;;26767:9;26761:4;26757:20;26753:1;26742:9;26738:17;26731:47;26795:131;26921:4;26795:131;:::i;:::-;26787:139;;26514:419;;;:::o;26939:180::-;26987:77;26984:1;26977:88;27084:4;27081:1;27074:15;27108:4;27105:1;27098:15;27125:85;27170:7;27199:5;27188:16;;27125:85;;;:::o;27216:158::-;27274:9;27307:61;27325:42;27334:32;27360:5;27334:32;:::i;:::-;27325:42;:::i;:::-;27307:61;:::i;:::-;27294:74;;27216:158;;;:::o;27380:147::-;27475:45;27514:5;27475:45;:::i;:::-;27470:3;27463:58;27380:147;;:::o;27533:114::-;27600:6;27634:5;27628:12;27618:22;;27533:114;;;:::o;27653:184::-;27752:11;27786:6;27781:3;27774:19;27826:4;27821:3;27817:14;27802:29;;27653:184;;;;:::o;27843:132::-;27910:4;27933:3;27925:11;;27963:4;27958:3;27954:14;27946:22;;27843:132;;;:::o;27981:108::-;28058:24;28076:5;28058:24;:::i;:::-;28053:3;28046:37;27981:108;;:::o;28095:179::-;28164:10;28185:46;28227:3;28219:6;28185:46;:::i;:::-;28263:4;28258:3;28254:14;28240:28;;28095:179;;;;:::o;28280:113::-;28350:4;28382;28377:3;28373:14;28365:22;;28280:113;;;:::o;28429:732::-;28548:3;28577:54;28625:5;28577:54;:::i;:::-;28647:86;28726:6;28721:3;28647:86;:::i;:::-;28640:93;;28757:56;28807:5;28757:56;:::i;:::-;28836:7;28867:1;28852:284;28877:6;28874:1;28871:13;28852:284;;;28953:6;28947:13;28980:63;29039:3;29024:13;28980:63;:::i;:::-;28973:70;;29066:60;29119:6;29066:60;:::i;:::-;29056:70;;28912:224;28899:1;28896;28892:9;28887:14;;28852:284;;;28856:14;29152:3;29145:10;;28553:608;;;28429:732;;;;:::o;29167:831::-;29430:4;29468:3;29457:9;29453:19;29445:27;;29482:71;29550:1;29539:9;29535:17;29526:6;29482:71;:::i;:::-;29563:80;29639:2;29628:9;29624:18;29615:6;29563:80;:::i;:::-;29690:9;29684:4;29680:20;29675:2;29664:9;29660:18;29653:48;29718:108;29821:4;29812:6;29718:108;:::i;:::-;29710:116;;29836:72;29904:2;29893:9;29889:18;29880:6;29836:72;:::i;:::-;29918:73;29986:3;29975:9;29971:19;29962:6;29918:73;:::i;:::-;29167:831;;;;;;;;:::o;30004:147::-;30105:11;30142:3;30127:18;;30004:147;;;;:::o;30157:114::-;;:::o;30277:398::-;30436:3;30457:83;30538:1;30533:3;30457:83;:::i;:::-;30450:90;;30549:93;30638:3;30549:93;:::i;:::-;30667:1;30662:3;30658:11;30651:18;;30277:398;;;:::o;30681:379::-;30865:3;30887:147;31030:3;30887:147;:::i;:::-;30880:154;;31051:3;31044:10;;30681:379;;;:::o;31066:177::-;31206:29;31202:1;31194:6;31190:14;31183:53;31066:177;:::o;31249:366::-;31391:3;31412:67;31476:2;31471:3;31412:67;:::i;:::-;31405:74;;31488:93;31577:3;31488:93;:::i;:::-;31606:2;31601:3;31597:12;31590:19;;31249:366;;;:::o;31621:419::-;31787:4;31825:2;31814:9;31810:18;31802:26;;31874:9;31868:4;31864:20;31860:1;31849:9;31845:17;31838:47;31902:131;32028:4;31902:131;:::i;:::-;31894:139;;31621:419;;;:::o

Swarm Source

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