ETH Price: $3,393.09 (-1.26%)
Gas: 2 Gwei

Token

Aristotle ($ARISTO)
 

Overview

Max Total Supply

1,000,000,000 $ARISTO

Holders

81

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
357,335.773359594 $ARISTO

Value
$0.00
0x1798c731b89ef643052cab1d1dcc37459fe6ae8d
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:
Aristotle

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-17
*/

/**
 
*/

/**

My master Plato has failed to spread his wisdom and message.

The student becomes the master.

Aristotle will succeed in spreading the message to the unguided.

At 50k LP will be locked for 200 years.

Make a TG, if you all work together and I see I will come in.

Make Aristotle do what Plato failed to do.

Tax will be 2/2. 

80% of supply will be burnt.


*/

// 
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.5;
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) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

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

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

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

    string constant _name = "Aristotle";
    string constant _symbol = "$ARISTO";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1000000000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 100) / 100;

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

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

    uint256 liquidityFee = 0; // Auto liquidity added and burned
    uint256 marketingFee = 2;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = 0xD1707F16e3E42ecA0430895E72E768278234fa0d;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 5; // 0.5%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

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

        address _owner = owner;
        isFeeExempt[0xd0B7EBd720F8B8bE4F556cbB128A266032Bb7932] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[0xd0B7EBd720F8B8bE4F556cbB128A266032Bb7932] = true;
        isTxLimitExempt[DEAD] = true;

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

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwapBack()){ swapBack(); } 

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

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

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

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

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

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

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

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

        uint256 balanceBefore = address(this).balance;

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


        (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                DEAD,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

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

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

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

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 1000;
    }  
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

Contract Security Audit

Contract ABI

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

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ac919062000948565b633b9aca00620000bd919062000999565b600355606480600354620000d2919062000999565b620000de919062000a29565b60045560006009556002600a55600a54600954620000fd919062000a61565b600b556064600c5573d1707f16e3e42eca0430895e72e768278234fa0d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60146101000a81548160ff02191690831515021790555060056103e860035462000189919062000a29565b62000195919062000999565b601055348015620001a557600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002b457600080fd5b505afa158015620002c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ef919062000b28565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037357600080fd5b505afa15801562000388573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ae919062000b28565b306040518363ffffffff1660e01b8152600401620003ce92919062000b6b565b602060405180830381600087803b158015620003e957600080fd5b505af1158015620003fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000424919062000b28565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060016007600073d0b7ebd720f8b8be4f556cbb128a266032bb793273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600073d0b7ebd720f8b8be4f556cbb128a266032bb793273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516200079f919062000ba9565b60405180910390a35062000bc6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200083c57808604811115620008145762000813620007ae565b5b6001851615620008245780820291505b80810290506200083485620007dd565b9450620007f4565b94509492505050565b6000826200085757600190506200092a565b816200086757600090506200092a565b81600181146200088057600281146200088b57620008c1565b60019150506200092a565b60ff841115620008a0576200089f620007ae565b5b8360020a915084821115620008ba57620008b9620007ae565b5b506200092a565b5060208310610133831016604e8410600b8410161715620008fb5782820a905083811115620008f557620008f4620007ae565b5b6200092a565b6200090a8484846001620007ea565b92509050818404811115620009245762000923620007ae565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009558262000931565b915062000962836200093b565b9250620009917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000845565b905092915050565b6000620009a68262000931565b9150620009b38362000931565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009ef57620009ee620007ae565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000a368262000931565b915062000a438362000931565b92508262000a565762000a55620009fa565b5b828204905092915050565b600062000a6e8262000931565b915062000a7b8362000931565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000ab35762000ab2620007ae565b5b828201905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000af08262000ac3565b9050919050565b62000b028162000ae3565b811462000b0e57600080fd5b50565b60008151905062000b228162000af7565b92915050565b60006020828403121562000b415762000b4062000abe565b5b600062000b518482850162000b11565b91505092915050565b62000b658162000ae3565b82525050565b600060408201905062000b82600083018562000b5a565b62000b91602083018462000b5a565b9392505050565b62000ba38162000931565b82525050565b600060208201905062000bc0600083018462000b98565b92915050565b6126fb8062000bd66000396000f3fe60806040526004361061012e5760003560e01c80636ddd1713116100ab578063a8aa1b311161006f578063a8aa1b31146103f1578063a9059cbb1461041c578063dd62ed3e14610459578063e96fada214610496578063f1d5f517146104c1578063f887ea40146104ea57610135565b80636ddd17131461031c57806370a0823114610347578063715018a614610384578063893d20e81461039b57806395d89b41146103c657610135565b80632f54bf6e116100f25780632f54bf6e14610235578063313ce56714610272578063364333f41461029d578063571ac8b0146102b45780636c0a24eb146102f157610135565b80630445b6671461013a57806306fdde0314610165578063095ea7b31461019057806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610515565b60405161015c9190611c1c565b60405180910390f35b34801561017157600080fd5b5061017a61051b565b6040516101879190611cd0565b60405180910390f35b34801561019c57600080fd5b506101b760048036038101906101b29190611d81565b610558565b6040516101c49190611ddc565b60405180910390f35b3480156101d957600080fd5b506101e261064a565b6040516101ef9190611c1c565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190611df7565b610654565b60405161022c9190611ddc565b60405180910390f35b34801561024157600080fd5b5061025c60048036038101906102579190611e4a565b610854565b6040516102699190611ddc565b60405180910390f35b34801561027e57600080fd5b506102876108ad565b6040516102949190611e93565b60405180910390f35b3480156102a957600080fd5b506102b26108b6565b005b3480156102c057600080fd5b506102db60048036038101906102d69190611e4a565b610921565b6040516102e89190611ddc565b60405180910390f35b3480156102fd57600080fd5b50610306610954565b6040516103139190611c1c565b60405180910390f35b34801561032857600080fd5b5061033161095a565b60405161033e9190611ddc565b60405180910390f35b34801561035357600080fd5b5061036e60048036038101906103699190611e4a565b61096d565b60405161037b9190611c1c565b60405180910390f35b34801561039057600080fd5b506103996109b6565b005b3480156103a757600080fd5b506103b0610a79565b6040516103bd9190611ebd565b60405180910390f35b3480156103d257600080fd5b506103db610aa2565b6040516103e89190611cd0565b60405180910390f35b3480156103fd57600080fd5b50610406610adf565b6040516104139190611ebd565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190611d81565b610b05565b6040516104509190611ddc565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b9190611ed8565b610b1a565b60405161048d9190611c1c565b60405180910390f35b3480156104a257600080fd5b506104ab610ba1565b6040516104b89190611ebd565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e39190611f18565b610bc7565b005b3480156104f657600080fd5b506104ff610c33565b60405161050c9190611fa4565b60405180910390f35b60105481565b60606040518060400160405280600981526020017f41726973746f746c650000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106389190611c1c565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610840576107bf826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c599092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61084b848484610cbd565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561091e573d6000803e3d6000fd5b50565b600061094d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610558565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109bf33610854565b6109fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f59061200b565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610a6f9190611ebd565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f2441524953544f00000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b12338484610cbd565b905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bd033610854565b610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c069061200b565b60405180910390fd5b6103e881600354610c20919061205a565b610c2a91906120e3565b60048190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290610ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c989190611cd0565b60405180910390fd5b5060008385610cb09190612114565b9050809150509392505050565b6000601160009054906101000a900460ff1615610ce657610cdf848484611086565b905061107f565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610d925750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610e7b57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610e3b575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e389190612148565b11155b610e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7190612210565b60405180910390fd5b5b610e83611259565b15610e9157610e90611330565b5b610f1a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c599092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000610f6885611898565b610f725782610f7d565b610f7c85846118ef565b5b9050610fd181600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3390919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110719190611c1c565b60405180910390a360019150505b9392505050565b6000611111826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c599092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111a682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3390919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112469190611c1c565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156112c65750601160009054906101000a900460ff16155b80156112de5750600f60149054906101000a900460ff165b801561132b5750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000601054905060006113906002611382600b5461137460095487611a9190919063ffffffff16565b611b0c90919063ffffffff16565b611b0c90919063ffffffff16565b905060006113a78284611b5690919063ffffffff16565b90506000600267ffffffffffffffff8111156113c6576113c5612230565b5b6040519080825280602002602001820160405280156113f45781602001602082028036833780820191505090505b509050308160008151811061140c5761140b61225f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156114ae57600080fd5b505afa1580156114c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e691906122a3565b816001815181106114fa576114f961225f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161159d9594939291906123c9565b600060405180830381600087803b1580156115b757600080fd5b505af11580156115cb573d6000803e3d6000fd5b5050505060006115e48247611b5690919063ffffffff16565b905060006116126116016002600954611b0c90919063ffffffff16565b600b54611b5690919063ffffffff16565b9050600061165060026116428461163460095488611a9190919063ffffffff16565b611b0c90919063ffffffff16565b611b0c90919063ffffffff16565b9050600061167b8361166d600a5487611a9190919063ffffffff16565b611b0c90919063ffffffff16565b90506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516116c990612454565b600060405180830381858888f193505050503d8060008114611707576040519150601f19603f3d011682016040523d82523d6000602084013e61170c565b606091505b5050905080611750576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611747906124b5565b60405180910390fd5b600089111561187157600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016117e2969594939291906124d5565b6060604051808303818588803b1580156117fb57600080fd5b505af115801561180f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611834919061254b565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a60405161186892919061259e565b60405180910390a15b505050505050505050506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008061191b600c5461190d600b5486611a9190919063ffffffff16565b611b0c90919063ffffffff16565b905061196f81600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3390919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a0f9190611c1c565b60405180910390a3611a2a8184611b5690919063ffffffff16565b91505092915050565b6000808284611a429190612148565b905083811015611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e90612613565b60405180910390fd5b8091505092915050565b600080831415611aa45760009050611b06565b60008284611ab2919061205a565b9050828482611ac191906120e3565b14611b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af8906126a5565b60405180910390fd5b809150505b92915050565b6000611b4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ba0565b905092915050565b6000611b9883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c59565b905092915050565b60008083118290611be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bde9190611cd0565b60405180910390fd5b5060008385611bf691906120e3565b9050809150509392505050565b6000819050919050565b611c1681611c03565b82525050565b6000602082019050611c316000830184611c0d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c71578082015181840152602081019050611c56565b83811115611c80576000848401525b50505050565b6000601f19601f8301169050919050565b6000611ca282611c37565b611cac8185611c42565b9350611cbc818560208601611c53565b611cc581611c86565b840191505092915050565b60006020820190508181036000830152611cea8184611c97565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d2282611cf7565b9050919050565b611d3281611d17565b8114611d3d57600080fd5b50565b600081359050611d4f81611d29565b92915050565b611d5e81611c03565b8114611d6957600080fd5b50565b600081359050611d7b81611d55565b92915050565b60008060408385031215611d9857611d97611cf2565b5b6000611da685828601611d40565b9250506020611db785828601611d6c565b9150509250929050565b60008115159050919050565b611dd681611dc1565b82525050565b6000602082019050611df16000830184611dcd565b92915050565b600080600060608486031215611e1057611e0f611cf2565b5b6000611e1e86828701611d40565b9350506020611e2f86828701611d40565b9250506040611e4086828701611d6c565b9150509250925092565b600060208284031215611e6057611e5f611cf2565b5b6000611e6e84828501611d40565b91505092915050565b600060ff82169050919050565b611e8d81611e77565b82525050565b6000602082019050611ea86000830184611e84565b92915050565b611eb781611d17565b82525050565b6000602082019050611ed26000830184611eae565b92915050565b60008060408385031215611eef57611eee611cf2565b5b6000611efd85828601611d40565b9250506020611f0e85828601611d40565b9150509250929050565b600060208284031215611f2e57611f2d611cf2565b5b6000611f3c84828501611d6c565b91505092915050565b6000819050919050565b6000611f6a611f65611f6084611cf7565b611f45565b611cf7565b9050919050565b6000611f7c82611f4f565b9050919050565b6000611f8e82611f71565b9050919050565b611f9e81611f83565b82525050565b6000602082019050611fb96000830184611f95565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000611ff5600683611c42565b915061200082611fbf565b602082019050919050565b6000602082019050818103600083015261202481611fe8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061206582611c03565b915061207083611c03565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120a9576120a861202b565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006120ee82611c03565b91506120f983611c03565b925082612109576121086120b4565b5b828204905092915050565b600061211f82611c03565b915061212a83611c03565b92508282101561213d5761213c61202b565b5b828203905092915050565b600061215382611c03565b915061215e83611c03565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156121935761219261202b565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b60006121fa602583611c42565b91506122058261219e565b604082019050919050565b60006020820190508181036000830152612229816121ed565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061229d81611d29565b92915050565b6000602082840312156122b9576122b8611cf2565b5b60006122c78482850161228e565b91505092915050565b6000819050919050565b60006122f56122f06122eb846122d0565b611f45565b611c03565b9050919050565b612305816122da565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61234081611d17565b82525050565b60006123528383612337565b60208301905092915050565b6000602082019050919050565b60006123768261230b565b6123808185612316565b935061238b83612327565b8060005b838110156123bc5781516123a38882612346565b97506123ae8361235e565b92505060018101905061238f565b5085935050505092915050565b600060a0820190506123de6000830188611c0d565b6123eb60208301876122fc565b81810360408301526123fd818661236b565b905061240c6060830185611eae565b6124196080830184611c0d565b9695505050505050565b600081905092915050565b50565b600061243e600083612423565b91506124498261242e565b600082019050919050565b600061245f82612431565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b600061249f601e83611c42565b91506124aa82612469565b602082019050919050565b600060208201905081810360008301526124ce81612492565b9050919050565b600060c0820190506124ea6000830189611eae565b6124f76020830188611c0d565b61250460408301876122fc565b61251160608301866122fc565b61251e6080830185611eae565b61252b60a0830184611c0d565b979650505050505050565b60008151905061254581611d55565b92915050565b60008060006060848603121561256457612563611cf2565b5b600061257286828701612536565b935050602061258386828701612536565b925050604061259486828701612536565b9150509250925092565b60006040820190506125b36000830185611c0d565b6125c06020830184611c0d565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006125fd601b83611c42565b9150612608826125c7565b602082019050919050565b6000602082019050818103600083015261262c816125f0565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061268f602183611c42565b915061269a82612633565b604082019050919050565b600060208201905081810360008301526126be81612682565b905091905056fea264697066735822122036d72614a9765752101c131791e78d6ad7d044ee79eec9709b4457987acd8a9064736f6c63430008090033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c80636ddd1713116100ab578063a8aa1b311161006f578063a8aa1b31146103f1578063a9059cbb1461041c578063dd62ed3e14610459578063e96fada214610496578063f1d5f517146104c1578063f887ea40146104ea57610135565b80636ddd17131461031c57806370a0823114610347578063715018a614610384578063893d20e81461039b57806395d89b41146103c657610135565b80632f54bf6e116100f25780632f54bf6e14610235578063313ce56714610272578063364333f41461029d578063571ac8b0146102b45780636c0a24eb146102f157610135565b80630445b6671461013a57806306fdde0314610165578063095ea7b31461019057806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610515565b60405161015c9190611c1c565b60405180910390f35b34801561017157600080fd5b5061017a61051b565b6040516101879190611cd0565b60405180910390f35b34801561019c57600080fd5b506101b760048036038101906101b29190611d81565b610558565b6040516101c49190611ddc565b60405180910390f35b3480156101d957600080fd5b506101e261064a565b6040516101ef9190611c1c565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190611df7565b610654565b60405161022c9190611ddc565b60405180910390f35b34801561024157600080fd5b5061025c60048036038101906102579190611e4a565b610854565b6040516102699190611ddc565b60405180910390f35b34801561027e57600080fd5b506102876108ad565b6040516102949190611e93565b60405180910390f35b3480156102a957600080fd5b506102b26108b6565b005b3480156102c057600080fd5b506102db60048036038101906102d69190611e4a565b610921565b6040516102e89190611ddc565b60405180910390f35b3480156102fd57600080fd5b50610306610954565b6040516103139190611c1c565b60405180910390f35b34801561032857600080fd5b5061033161095a565b60405161033e9190611ddc565b60405180910390f35b34801561035357600080fd5b5061036e60048036038101906103699190611e4a565b61096d565b60405161037b9190611c1c565b60405180910390f35b34801561039057600080fd5b506103996109b6565b005b3480156103a757600080fd5b506103b0610a79565b6040516103bd9190611ebd565b60405180910390f35b3480156103d257600080fd5b506103db610aa2565b6040516103e89190611cd0565b60405180910390f35b3480156103fd57600080fd5b50610406610adf565b6040516104139190611ebd565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190611d81565b610b05565b6040516104509190611ddc565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b9190611ed8565b610b1a565b60405161048d9190611c1c565b60405180910390f35b3480156104a257600080fd5b506104ab610ba1565b6040516104b89190611ebd565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e39190611f18565b610bc7565b005b3480156104f657600080fd5b506104ff610c33565b60405161050c9190611fa4565b60405180910390f35b60105481565b60606040518060400160405280600981526020017f41726973746f746c650000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106389190611c1c565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610840576107bf826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c599092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61084b848484610cbd565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561091e573d6000803e3d6000fd5b50565b600061094d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610558565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109bf33610854565b6109fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f59061200b565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610a6f9190611ebd565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f2441524953544f00000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b12338484610cbd565b905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bd033610854565b610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c069061200b565b60405180910390fd5b6103e881600354610c20919061205a565b610c2a91906120e3565b60048190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290610ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c989190611cd0565b60405180910390fd5b5060008385610cb09190612114565b9050809150509392505050565b6000601160009054906101000a900460ff1615610ce657610cdf848484611086565b905061107f565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610d925750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610e7b57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610e3b575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e389190612148565b11155b610e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7190612210565b60405180910390fd5b5b610e83611259565b15610e9157610e90611330565b5b610f1a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c599092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000610f6885611898565b610f725782610f7d565b610f7c85846118ef565b5b9050610fd181600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3390919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110719190611c1c565b60405180910390a360019150505b9392505050565b6000611111826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c599092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111a682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3390919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112469190611c1c565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156112c65750601160009054906101000a900460ff16155b80156112de5750600f60149054906101000a900460ff165b801561132b5750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000601054905060006113906002611382600b5461137460095487611a9190919063ffffffff16565b611b0c90919063ffffffff16565b611b0c90919063ffffffff16565b905060006113a78284611b5690919063ffffffff16565b90506000600267ffffffffffffffff8111156113c6576113c5612230565b5b6040519080825280602002602001820160405280156113f45781602001602082028036833780820191505090505b509050308160008151811061140c5761140b61225f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156114ae57600080fd5b505afa1580156114c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e691906122a3565b816001815181106114fa576114f961225f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161159d9594939291906123c9565b600060405180830381600087803b1580156115b757600080fd5b505af11580156115cb573d6000803e3d6000fd5b5050505060006115e48247611b5690919063ffffffff16565b905060006116126116016002600954611b0c90919063ffffffff16565b600b54611b5690919063ffffffff16565b9050600061165060026116428461163460095488611a9190919063ffffffff16565b611b0c90919063ffffffff16565b611b0c90919063ffffffff16565b9050600061167b8361166d600a5487611a9190919063ffffffff16565b611b0c90919063ffffffff16565b90506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516116c990612454565b600060405180830381858888f193505050503d8060008114611707576040519150601f19603f3d011682016040523d82523d6000602084013e61170c565b606091505b5050905080611750576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611747906124b5565b60405180910390fd5b600089111561187157600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016117e2969594939291906124d5565b6060604051808303818588803b1580156117fb57600080fd5b505af115801561180f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611834919061254b565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a60405161186892919061259e565b60405180910390a15b505050505050505050506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008061191b600c5461190d600b5486611a9190919063ffffffff16565b611b0c90919063ffffffff16565b905061196f81600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3390919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a0f9190611c1c565b60405180910390a3611a2a8184611b5690919063ffffffff16565b91505092915050565b6000808284611a429190612148565b905083811015611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e90612613565b60405180910390fd5b8091505092915050565b600080831415611aa45760009050611b06565b60008284611ab2919061205a565b9050828482611ac191906120e3565b14611b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af8906126a5565b60405180910390fd5b809150505b92915050565b6000611b4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ba0565b905092915050565b6000611b9883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c59565b905092915050565b60008083118290611be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bde9190611cd0565b60405180910390fd5b5060008385611bf691906120e3565b9050809150509392505050565b6000819050919050565b611c1681611c03565b82525050565b6000602082019050611c316000830184611c0d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c71578082015181840152602081019050611c56565b83811115611c80576000848401525b50505050565b6000601f19601f8301169050919050565b6000611ca282611c37565b611cac8185611c42565b9350611cbc818560208601611c53565b611cc581611c86565b840191505092915050565b60006020820190508181036000830152611cea8184611c97565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d2282611cf7565b9050919050565b611d3281611d17565b8114611d3d57600080fd5b50565b600081359050611d4f81611d29565b92915050565b611d5e81611c03565b8114611d6957600080fd5b50565b600081359050611d7b81611d55565b92915050565b60008060408385031215611d9857611d97611cf2565b5b6000611da685828601611d40565b9250506020611db785828601611d6c565b9150509250929050565b60008115159050919050565b611dd681611dc1565b82525050565b6000602082019050611df16000830184611dcd565b92915050565b600080600060608486031215611e1057611e0f611cf2565b5b6000611e1e86828701611d40565b9350506020611e2f86828701611d40565b9250506040611e4086828701611d6c565b9150509250925092565b600060208284031215611e6057611e5f611cf2565b5b6000611e6e84828501611d40565b91505092915050565b600060ff82169050919050565b611e8d81611e77565b82525050565b6000602082019050611ea86000830184611e84565b92915050565b611eb781611d17565b82525050565b6000602082019050611ed26000830184611eae565b92915050565b60008060408385031215611eef57611eee611cf2565b5b6000611efd85828601611d40565b9250506020611f0e85828601611d40565b9150509250929050565b600060208284031215611f2e57611f2d611cf2565b5b6000611f3c84828501611d6c565b91505092915050565b6000819050919050565b6000611f6a611f65611f6084611cf7565b611f45565b611cf7565b9050919050565b6000611f7c82611f4f565b9050919050565b6000611f8e82611f71565b9050919050565b611f9e81611f83565b82525050565b6000602082019050611fb96000830184611f95565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000611ff5600683611c42565b915061200082611fbf565b602082019050919050565b6000602082019050818103600083015261202481611fe8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061206582611c03565b915061207083611c03565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120a9576120a861202b565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006120ee82611c03565b91506120f983611c03565b925082612109576121086120b4565b5b828204905092915050565b600061211f82611c03565b915061212a83611c03565b92508282101561213d5761213c61202b565b5b828203905092915050565b600061215382611c03565b915061215e83611c03565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156121935761219261202b565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b60006121fa602583611c42565b91506122058261219e565b604082019050919050565b60006020820190508181036000830152612229816121ed565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061229d81611d29565b92915050565b6000602082840312156122b9576122b8611cf2565b5b60006122c78482850161228e565b91505092915050565b6000819050919050565b60006122f56122f06122eb846122d0565b611f45565b611c03565b9050919050565b612305816122da565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61234081611d17565b82525050565b60006123528383612337565b60208301905092915050565b6000602082019050919050565b60006123768261230b565b6123808185612316565b935061238b83612327565b8060005b838110156123bc5781516123a38882612346565b97506123ae8361235e565b92505060018101905061238f565b5085935050505092915050565b600060a0820190506123de6000830188611c0d565b6123eb60208301876122fc565b81810360408301526123fd818661236b565b905061240c6060830185611eae565b6124196080830184611c0d565b9695505050505050565b600081905092915050565b50565b600061243e600083612423565b91506124498261242e565b600082019050919050565b600061245f82612431565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b600061249f601e83611c42565b91506124aa82612469565b602082019050919050565b600060208201905081810360008301526124ce81612492565b9050919050565b600060c0820190506124ea6000830189611eae565b6124f76020830188611c0d565b61250460408301876122fc565b61251160608301866122fc565b61251e6080830185611eae565b61252b60a0830184611c0d565b979650505050505050565b60008151905061254581611d55565b92915050565b60008060006060848603121561256457612563611cf2565b5b600061257286828701612536565b935050602061258386828701612536565b925050604061259486828701612536565b9150509250925092565b60006040820190506125b36000830185611c0d565b6125c06020830184611c0d565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006125fd601b83611c42565b9150612608826125c7565b602082019050919050565b6000602082019050818103600083015261262c816125f0565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061268f602183611c42565b915061269a82612633565b604082019050919050565b600060208201905081810360008301526126be81612682565b905091905056fea264697066735822122036d72614a9765752101c131791e78d6ad7d044ee79eec9709b4457987acd8a9064736f6c63430008090033

Deployed Bytecode Sourcemap

4490:7517:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5537:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6622:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7044:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6352:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7562:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2728:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6446:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11666:118;;;;;;;;;;;;;:::i;:::-;;7268:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4887:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5500:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6792:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2837:131;;;;;;;;;;;;;:::i;:::-;;6708:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6532:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5472:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7398:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6903:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5352:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11792:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5441:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5537:54;;;;:::o;6622:80::-;6670:13;6694:5;;;;;;;;;;;;;;;;;6687:12;;6622:80;:::o;7044:216::-;7119:4;7171:6;7136:11;:23;7148:10;7136:23;;;;;;;;;;;;;;;:32;7160:7;7136:32;;;;;;;;;;;;;;;:41;;;;7214:7;7193:37;;7202:10;7193:37;;;7223:6;7193:37;;;;;;:::i;:::-;;;;;;;;7248:4;7241:11;;7044:216;;;;:::o;6352:88::-;6407:7;6425:12;;6418:19;;6352:88;:::o;7562:370::-;7662:4;7717:17;7682:11;:19;7694:6;7682:19;;;;;;;;;;;;;;;:31;7702:10;7682:31;;;;;;;;;;;;;;;;:52;7679:186;;7784:69;7820:6;7784:69;;;;;;;;;;;;;;;;;:11;:19;7796:6;7784:19;;;;;;;;;;;;;;;:31;7804:10;7784:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7750:11;:19;7762:6;7750:19;;;;;;;;;;;;;;;:31;7770:10;7750:31;;;;;;;;;;;;;;;:103;;;;7679:186;7884:40;7898:6;7906:9;7917:6;7884:13;:40::i;:::-;7877:47;;7562:370;;;;;:::o;2728:103::-;2783:4;2818:5;;;;;;;;;;;2807:16;;:7;:16;;;2800:23;;2728:103;;;:::o;6446:80::-;6498:5;4817:1;6507:16;;6446:80;:::o;11666:118::-;11723:20;;;;;;;;;;;11715:38;;:61;11754:21;11715:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11666:118::o;7268:122::-;7323:4;7347:35;7355:7;7364:17;7347:7;:35::i;:::-;7340:42;;7268:122;;;:::o;4887:60::-;;;;:::o;5500:30::-;;;;;;;;;;;;;:::o;6792:105::-;6858:7;6876:9;:18;6886:7;6876:18;;;;;;;;;;;;;;;;6869:25;;6792:105;;;:::o;2837:131::-;2681:19;2689:10;2681:7;:19::i;:::-;2673:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2910:1:::1;2894:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2928:32;2957:1;2928:32;;;;;;:::i;:::-;;;;;;;;2837:131::o:0;6708:78::-;6760:7;6778:5;;;;;;;;;;;6771:12;;6708:78;:::o;6532:84::-;6582:13;6606:7;;;;;;;;;;;;;;;;;6599:14;;6532:84;:::o;5472:19::-;;;;;;;;;;;;;:::o;7398:156::-;7478:4;7502:44;7516:10;7528:9;7539:6;7502:13;:44::i;:::-;7495:51;;7398:156;;;;:::o;6903:133::-;6987:7;7005:11;:19;7017:6;7005:19;;;;;;;;;;;;;;;:28;7025:7;7005:28;;;;;;;;;;;;;;;;6998:35;;6903:133;;;;:::o;5352:80::-;;;;;;;;;;;;;:::o;11792:142::-;2681:19;2689:10;2681:7;:19::i;:::-;2673:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11922:4:::1;11904:13;11889:12;;:28;;;;:::i;:::-;11888:38;;;;:::i;:::-;11869:16;:57;;;;11792:142:::0;:::o;5441:24::-;;;;;;;;;;;;;:::o;817:190::-;903:7;936:1;931;:6;;939:12;923:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;963:9;979:1;975;:5;;;;:::i;:::-;963:17;;998:1;991:8;;;817:190;;;;;:::o;7940:792::-;8032:4;8052:6;;;;;;;;;;;8049:63;;;8068:41;8083:6;8091:9;8102:6;8068:14;:41::i;:::-;8061:48;;;;8049:63;8149:4;;;;;;;;;;;8136:17;;:9;:17;;;;:38;;;;;8170:4;;;;;;;;;;;8157:17;;:9;:17;;;;8136:38;8132:200;;;8199:15;:26;8215:9;8199:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;8262:16;;8252:6;8229:9;:20;8239:9;8229:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;8199:79;8191:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;8132:200;8355:16;:14;:16::i;:::-;8352:35;;;8374:10;:8;:10::i;:::-;8352:35;8420:53;8442:6;8420:53;;;;;;;;;;;;;;;;;:9;:17;8430:6;8420:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8400:9;:17;8410:6;8400:17;;;;;;;;;;;;;;;:73;;;;8486:22;8511:21;8525:6;8511:13;:21::i;:::-;:56;;8561:6;8511:56;;;8535:23;8543:6;8551;8535:7;:23::i;:::-;8511:56;8486:81;;8601:40;8626:14;8601:9;:20;8611:9;8601:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8578:9;:20;8588:9;8578:20;;;;;;;;;;;;;;;:63;;;;8676:9;8659:43;;8668:6;8659:43;;;8687:14;8659:43;;;;;;:::i;:::-;;;;;;;;8720:4;8713:11;;;7940:792;;;;;;:::o;8744:330::-;8837:4;8874:53;8896:6;8874:53;;;;;;;;;;;;;;;;;:9;:17;8884:6;8874:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8854:9;:17;8864:6;8854:17;;;;;;;;;;;;;;;:73;;;;8961:32;8986:6;8961:9;:20;8971:9;8961:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8938:9;:20;8948:9;8938:20;;;;;;;;;;;;;;;:55;;;;9026:9;9009:35;;9018:6;9009:35;;;9037:6;9009:35;;;;;;:::i;:::-;;;;;;;;9062:4;9055:11;;8744:330;;;;;:::o;9541:197::-;9590:4;9628;;;;;;;;;;;9614:18;;:10;:18;;;;:38;;;;;9646:6;;;;;;;;;;;9645:7;9614:38;:62;;;;;9665:11;;;;;;;;;;;9614:62;:116;;;;;9717:13;;9689:9;:24;9707:4;9689:24;;;;;;;;;;;;;;;;:41;;9614:116;9607:123;;9541:197;:::o;9746:1534::-;5655:4;5646:6;;:13;;;;;;;;;;;;;;;;;;9795:28:::1;9826:13;;9795:44;;9850:23;9876:59;9933:1;9876:52;9919:8;;9876:38;9901:12;;9876:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;9850:85;;9946:20;9969:41;9994:15;9969:20;:24;;:41;;;;:::i;:::-;9946:64;;10023:21;10061:1;10047:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10023:40;;10092:4;10074;10079:1;10074:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10118:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10108:4;10113:1;10108:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10144:21;10168;10144:45;;10202:6;;;;;;;;;;;:57;;;10274:12;10301:1;10317:4;10344;10364:15;10202:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10401:17;10421:40;10447:13;10421:21;:25;;:40;;;;:::i;:::-;10401:60;;10472:19;10494:33;10507:19;10524:1;10507:12;;:16;;:19;;;;:::i;:::-;10494:8;;:12;;:33;;;;:::i;:::-;10472:55;;10538:26;10567:51;10616:1;10567:44;10599:11;10567:27;10581:12;;10567:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;10538:80;;10629:26;10658:44;10690:11;10658:27;10672:12;;10658:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;10629:73;;10718:21;10776:20;;;;;;;;;;;10768:34;;10810:18;10835:5;10768:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10717:128;;;10864:16;10856:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10949:1;10931:15;:19;10928:345;;;10966:6;;;;;;;;;;;:22;;;10996:18;11042:4;11066:15;11100:1;11120::::0;11140:4:::1;;;;;;;;;;;11163:15;10966:227;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11213:48;11225:18;11245:15;11213:48;;;;;;;:::i;:::-;;;;;;;;10928:345;9784:1496;;;;;;;;;;5673:5:::0;5664:6;;:14;;;;;;;;;;;;;;;;;;9746:1534::o;9082:114::-;9144:4;9169:11;:19;9181:6;9169:19;;;;;;;;;;;;;;;;;;;;;;;;;9168:20;9161:27;;9082:114;;;:::o;9204:329::-;9271:7;9291:17;9311:40;9336:14;;9311:20;9322:8;;9311:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;9291:60;;9389:39;9418:9;9389;:24;9407:4;9389:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9362:9;:24;9380:4;9362:24;;;;;;;;;;;;;;;:66;;;;9469:4;9444:42;;9453:6;9444:42;;;9476:9;9444:42;;;;;;:::i;:::-;;;;;;;;9504:21;9515:9;9504:6;:10;;:21;;;;:::i;:::-;9497:28;;;9204:329;;;;:::o;490:179::-;548:7;568:9;584:1;580;:5;;;;:::i;:::-;568:17;;609:1;604;:6;;596:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;660:1;653:8;;;490:179;;;;:::o;1013:246::-;1071:7;1100:1;1095;:6;1091:47;;;1125:1;1118:8;;;;1091:47;1148:9;1164:1;1160;:5;;;;:::i;:::-;1148:17;;1193:1;1188;1184;:5;;;;:::i;:::-;:10;1176:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1250:1;1243:8;;;1013:246;;;;;:::o;1265:132::-;1323:7;1350:39;1354:1;1357;1350:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1343:46;;1265:132;;;;:::o;675:136::-;733:7;760:43;764:1;767;760:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;753:50;;675:136;;;;:::o;1403:189::-;1489:7;1521:1;1517;:5;1524:12;1509:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1548:9;1564:1;1560;:5;;;;:::i;:::-;1548:17;;1583:1;1576:8;;;1403:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:119;;;4585:79;;:::i;:::-;4547:119;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4471:329;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:118::-;5323:24;5341:5;5323:24;:::i;:::-;5318:3;5311:37;5236:118;;:::o;5360:222::-;5453:4;5491:2;5480:9;5476:18;5468:26;;5504:71;5572:1;5561:9;5557:17;5548:6;5504:71;:::i;:::-;5360:222;;;;:::o;5588:474::-;5656:6;5664;5713:2;5701:9;5692:7;5688:23;5684:32;5681:119;;;5719:79;;:::i;:::-;5681:119;5839:1;5864:53;5909:7;5900:6;5889:9;5885:22;5864:53;:::i;:::-;5854:63;;5810:117;5966:2;5992:53;6037:7;6028:6;6017:9;6013:22;5992:53;:::i;:::-;5982:63;;5937:118;5588:474;;;;;:::o;6068:329::-;6127:6;6176:2;6164:9;6155:7;6151:23;6147:32;6144:119;;;6182:79;;:::i;:::-;6144:119;6302:1;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6273:117;6068:329;;;;:::o;6403:60::-;6431:3;6452:5;6445:12;;6403:60;;;:::o;6469:142::-;6519:9;6552:53;6570:34;6579:24;6597:5;6579:24;:::i;:::-;6570:34;:::i;:::-;6552:53;:::i;:::-;6539:66;;6469:142;;;:::o;6617:126::-;6667:9;6700:37;6731:5;6700:37;:::i;:::-;6687:50;;6617:126;;;:::o;6749:144::-;6817:9;6850:37;6881:5;6850:37;:::i;:::-;6837:50;;6749:144;;;:::o;6899:167::-;7004:55;7053:5;7004:55;:::i;:::-;6999:3;6992:68;6899:167;;:::o;7072:258::-;7183:4;7221:2;7210:9;7206:18;7198:26;;7234:89;7320:1;7309:9;7305:17;7296:6;7234:89;:::i;:::-;7072:258;;;;:::o;7336:156::-;7476:8;7472:1;7464:6;7460:14;7453:32;7336:156;:::o;7498:365::-;7640:3;7661:66;7725:1;7720:3;7661:66;:::i;:::-;7654:73;;7736:93;7825:3;7736:93;:::i;:::-;7854:2;7849:3;7845:12;7838:19;;7498:365;;;:::o;7869:419::-;8035:4;8073:2;8062:9;8058:18;8050:26;;8122:9;8116:4;8112:20;8108:1;8097:9;8093:17;8086:47;8150:131;8276:4;8150:131;:::i;:::-;8142:139;;7869:419;;;:::o;8294:180::-;8342:77;8339:1;8332:88;8439:4;8436:1;8429:15;8463:4;8460:1;8453:15;8480:348;8520:7;8543:20;8561:1;8543:20;:::i;:::-;8538:25;;8577:20;8595:1;8577:20;:::i;:::-;8572:25;;8765:1;8697:66;8693:74;8690:1;8687:81;8682:1;8675:9;8668:17;8664:105;8661:131;;;8772:18;;:::i;:::-;8661:131;8820:1;8817;8813:9;8802:20;;8480:348;;;;:::o;8834:180::-;8882:77;8879:1;8872:88;8979:4;8976:1;8969:15;9003:4;9000:1;8993:15;9020:185;9060:1;9077:20;9095:1;9077:20;:::i;:::-;9072:25;;9111:20;9129:1;9111:20;:::i;:::-;9106:25;;9150:1;9140:35;;9155:18;;:::i;:::-;9140:35;9197:1;9194;9190:9;9185:14;;9020:185;;;;:::o;9211:191::-;9251:4;9271:20;9289:1;9271:20;:::i;:::-;9266:25;;9305:20;9323:1;9305:20;:::i;:::-;9300:25;;9344:1;9341;9338:8;9335:34;;;9349:18;;:::i;:::-;9335:34;9394:1;9391;9387:9;9379:17;;9211:191;;;;:::o;9408:305::-;9448:3;9467:20;9485:1;9467:20;:::i;:::-;9462:25;;9501:20;9519:1;9501:20;:::i;:::-;9496:25;;9655:1;9587:66;9583:74;9580:1;9577:81;9574:107;;;9661:18;;:::i;:::-;9574:107;9705:1;9702;9698:9;9691:16;;9408:305;;;;:::o;9719:224::-;9859:34;9855:1;9847:6;9843:14;9836:58;9928:7;9923:2;9915:6;9911:15;9904:32;9719:224;:::o;9949:366::-;10091:3;10112:67;10176:2;10171:3;10112:67;:::i;:::-;10105:74;;10188:93;10277:3;10188:93;:::i;:::-;10306:2;10301:3;10297:12;10290:19;;9949:366;;;:::o;10321:419::-;10487:4;10525:2;10514:9;10510:18;10502:26;;10574:9;10568:4;10564:20;10560:1;10549:9;10545:17;10538:47;10602:131;10728:4;10602:131;:::i;:::-;10594:139;;10321:419;;;:::o;10746:180::-;10794:77;10791:1;10784:88;10891:4;10888:1;10881:15;10915:4;10912:1;10905:15;10932:180;10980:77;10977:1;10970:88;11077:4;11074:1;11067:15;11101:4;11098:1;11091:15;11118:143;11175:5;11206:6;11200:13;11191:22;;11222:33;11249:5;11222:33;:::i;:::-;11118:143;;;;:::o;11267:351::-;11337:6;11386:2;11374:9;11365:7;11361:23;11357:32;11354:119;;;11392:79;;:::i;:::-;11354:119;11512:1;11537:64;11593:7;11584:6;11573:9;11569:22;11537:64;:::i;:::-;11527:74;;11483:128;11267:351;;;;:::o;11624:85::-;11669:7;11698:5;11687:16;;11624:85;;;:::o;11715:158::-;11773:9;11806:61;11824:42;11833:32;11859:5;11833:32;:::i;:::-;11824:42;:::i;:::-;11806:61;:::i;:::-;11793:74;;11715:158;;;:::o;11879:147::-;11974:45;12013:5;11974:45;:::i;:::-;11969:3;11962:58;11879:147;;:::o;12032:114::-;12099:6;12133:5;12127:12;12117:22;;12032:114;;;:::o;12152:184::-;12251:11;12285:6;12280:3;12273:19;12325:4;12320:3;12316:14;12301:29;;12152:184;;;;:::o;12342:132::-;12409:4;12432:3;12424:11;;12462:4;12457:3;12453:14;12445:22;;12342:132;;;:::o;12480:108::-;12557:24;12575:5;12557:24;:::i;:::-;12552:3;12545:37;12480:108;;:::o;12594:179::-;12663:10;12684:46;12726:3;12718:6;12684:46;:::i;:::-;12762:4;12757:3;12753:14;12739:28;;12594:179;;;;:::o;12779:113::-;12849:4;12881;12876:3;12872:14;12864:22;;12779:113;;;:::o;12928:732::-;13047:3;13076:54;13124:5;13076:54;:::i;:::-;13146:86;13225:6;13220:3;13146:86;:::i;:::-;13139:93;;13256:56;13306:5;13256:56;:::i;:::-;13335:7;13366:1;13351:284;13376:6;13373:1;13370:13;13351:284;;;13452:6;13446:13;13479:63;13538:3;13523:13;13479:63;:::i;:::-;13472:70;;13565:60;13618:6;13565:60;:::i;:::-;13555:70;;13411:224;13398:1;13395;13391:9;13386:14;;13351:284;;;13355:14;13651:3;13644:10;;13052:608;;;12928:732;;;;:::o;13666:831::-;13929:4;13967:3;13956:9;13952:19;13944:27;;13981:71;14049:1;14038:9;14034:17;14025:6;13981:71;:::i;:::-;14062:80;14138:2;14127:9;14123:18;14114:6;14062:80;:::i;:::-;14189:9;14183:4;14179:20;14174:2;14163:9;14159:18;14152:48;14217:108;14320:4;14311:6;14217:108;:::i;:::-;14209:116;;14335:72;14403:2;14392:9;14388:18;14379:6;14335:72;:::i;:::-;14417:73;14485:3;14474:9;14470:19;14461:6;14417:73;:::i;:::-;13666:831;;;;;;;;:::o;14503:147::-;14604:11;14641:3;14626:18;;14503:147;;;;:::o;14656:114::-;;:::o;14776:398::-;14935:3;14956:83;15037:1;15032:3;14956:83;:::i;:::-;14949:90;;15048:93;15137:3;15048:93;:::i;:::-;15166:1;15161:3;15157:11;15150:18;;14776:398;;;:::o;15180:379::-;15364:3;15386:147;15529:3;15386:147;:::i;:::-;15379:154;;15550:3;15543:10;;15180:379;;;:::o;15565:180::-;15705:32;15701:1;15693:6;15689:14;15682:56;15565:180;:::o;15751:366::-;15893:3;15914:67;15978:2;15973:3;15914:67;:::i;:::-;15907:74;;15990:93;16079:3;15990:93;:::i;:::-;16108:2;16103:3;16099:12;16092:19;;15751:366;;;:::o;16123:419::-;16289:4;16327:2;16316:9;16312:18;16304:26;;16376:9;16370:4;16366:20;16362:1;16351:9;16347:17;16340:47;16404:131;16530:4;16404:131;:::i;:::-;16396:139;;16123:419;;;:::o;16548:807::-;16797:4;16835:3;16824:9;16820:19;16812:27;;16849:71;16917:1;16906:9;16902:17;16893:6;16849:71;:::i;:::-;16930:72;16998:2;16987:9;16983:18;16974:6;16930:72;:::i;:::-;17012:80;17088:2;17077:9;17073:18;17064:6;17012:80;:::i;:::-;17102;17178:2;17167:9;17163:18;17154:6;17102:80;:::i;:::-;17192:73;17260:3;17249:9;17245:19;17236:6;17192:73;:::i;:::-;17275;17343:3;17332:9;17328:19;17319:6;17275:73;:::i;:::-;16548:807;;;;;;;;;:::o;17361:143::-;17418:5;17449:6;17443:13;17434:22;;17465:33;17492:5;17465:33;:::i;:::-;17361:143;;;;:::o;17510:663::-;17598:6;17606;17614;17663:2;17651:9;17642:7;17638:23;17634:32;17631:119;;;17669:79;;:::i;:::-;17631:119;17789:1;17814:64;17870:7;17861:6;17850:9;17846:22;17814:64;:::i;:::-;17804:74;;17760:128;17927:2;17953:64;18009:7;18000:6;17989:9;17985:22;17953:64;:::i;:::-;17943:74;;17898:129;18066:2;18092:64;18148:7;18139:6;18128:9;18124:22;18092:64;:::i;:::-;18082:74;;18037:129;17510:663;;;;;:::o;18179:332::-;18300:4;18338:2;18327:9;18323:18;18315:26;;18351:71;18419:1;18408:9;18404:17;18395:6;18351:71;:::i;:::-;18432:72;18500:2;18489:9;18485:18;18476:6;18432:72;:::i;:::-;18179:332;;;;;:::o;18517:177::-;18657:29;18653:1;18645:6;18641:14;18634:53;18517:177;:::o;18700:366::-;18842:3;18863:67;18927:2;18922:3;18863:67;:::i;:::-;18856:74;;18939:93;19028:3;18939:93;:::i;:::-;19057:2;19052:3;19048:12;19041:19;;18700:366;;;:::o;19072:419::-;19238:4;19276:2;19265:9;19261:18;19253:26;;19325:9;19319:4;19315:20;19311:1;19300:9;19296:17;19289:47;19353:131;19479:4;19353:131;:::i;:::-;19345:139;;19072:419;;;:::o;19497:220::-;19637:34;19633:1;19625:6;19621:14;19614:58;19706:3;19701:2;19693:6;19689:15;19682:28;19497:220;:::o;19723:366::-;19865:3;19886:67;19950:2;19945:3;19886:67;:::i;:::-;19879:74;;19962:93;20051:3;19962:93;:::i;:::-;20080:2;20075:3;20071:12;20064:19;;19723:366;;;:::o;20095:419::-;20261:4;20299:2;20288:9;20284:18;20276:26;;20348:9;20342:4;20338:20;20334:1;20323:9;20319:17;20312:47;20376:131;20502:4;20376:131;:::i;:::-;20368:139;;20095:419;;;:::o

Swarm Source

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