ETH Price: $2,522.31 (+0.28%)

Token

Reality AI (RealAI)
 

Overview

Max Total Supply

100,000,000 RealAI

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,850,820.192 RealAI

Value
$0.00
0x6bfcbe96571ff6ea7b148db2ee99d89ce30a86db
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:
RealityAI

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-19
*/

/*
    Reality AI 🤖
    The AI-Based Solution to Detect and Unmask 
    Deepfake & Text/Image Generation Technologies - Fire with Fire.

    Website: https://www.realityai.app/
    Dapp: https://www.realityai.app/dashboard 
    Docs/Book: https://book.realityai.app/

    Telegram: https://t.me/realityAIETH
    Twitter: https://twitter.com/realityAIETH
    Medium: https://medium.com/@realityaieth
    Rumble: https://rumble.com/user/realityai

    Get started with Reality AI today! 
    And join us in preserving the truth in the digital age.
*/
 
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;
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 RealityAI is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "Reality AI";
    string constant _symbol = "RealAI";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 100_000_000 * (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; 
    uint256 marketingFee = 5;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = 0x71bF6977e620240d77F3Af68d08948cB69b1162E;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 4; // 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[0x71bF6977e620240d77F3Af68d08948cB69b1162E] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[0x71bF6977e620240d77F3Af68d08948cB69b1162E] = 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,
                0x71bF6977e620240d77F3Af68d08948cB69b1162E,
                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;
    }

    function setFee(uint256 _liquidityFee, uint256 _marketingFee) external onlyOwner {
         liquidityFee = _liquidityFee; 
         marketingFee = _marketingFee;
         totalFee = liquidityFee + marketingFee;
    }    
    
    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":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000aa9190620008e7565b6305f5e100620000bb919062000937565b600355606480600354620000d0919062000937565b620000dc9190620009ae565b6004555f6009556005600a55600a54600954620000fa9190620009e5565b600b556064600c557371bf6977e620240d77f3af68d08948cb69b1162e600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60146101000a81548160ff02191690831515021790555060046103e8600354620001859190620009ae565b62000191919062000937565b601055348015620001a0575f80fd5b5033805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d4919062000a84565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200035a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000380919062000a84565b306040518363ffffffff1660e01b8152600401620003a092919062000ac5565b6020604051808303815f875af1158015620003bd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003e3919062000a84565b600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600160075f7371bf6977e620240d77f3af68d08948cb69b1162e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f7371bf6977e620240d77f3af68d08948cb69b1162e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060035460055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000746919062000b01565b60405180910390a35062000b1c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620007df57808604811115620007b757620007b662000755565b5b6001851615620007c75780820291505b8081029050620007d78562000782565b945062000797565b94509492505050565b5f82620007f95760019050620008cb565b8162000808575f9050620008cb565b81600181146200082157600281146200082c5762000862565b6001915050620008cb565b60ff84111562000841576200084062000755565b5b8360020a9150848211156200085b576200085a62000755565b5b50620008cb565b5060208310610133831016604e8410600b84101617156200089c5782820a90508381111562000896576200089562000755565b5b620008cb565b620008ab84848460016200078e565b92509050818404811115620008c557620008c462000755565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620008f382620008d2565b91506200090083620008db565b92506200092f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007e8565b905092915050565b5f6200094382620008d2565b91506200095083620008d2565b92508282026200096081620008d2565b915082820484148315176200097a576200097962000755565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620009ba82620008d2565b9150620009c783620008d2565b925082620009da57620009d962000981565b5b828204905092915050565b5f620009f182620008d2565b9150620009fe83620008d2565b925082820190508082111562000a195762000a1862000755565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000a4e8262000a23565b9050919050565b62000a608162000a42565b811462000a6b575f80fd5b50565b5f8151905062000a7e8162000a55565b92915050565b5f6020828403121562000a9c5762000a9b62000a1f565b5b5f62000aab8482850162000a6e565b91505092915050565b62000abf8162000a42565b82525050565b5f60408201905062000ada5f83018562000ab4565b62000ae9602083018462000ab4565b9392505050565b62000afb81620008d2565b82525050565b5f60208201905062000b165f83018462000af0565b92915050565b61266f8062000b2a5f395ff3fe608060405260043610610138575f3560e01c80636ddd1713116100aa578063a8aa1b311161006e578063a8aa1b3114610413578063a9059cbb1461043d578063dd62ed3e14610479578063e96fada2146104b5578063f1d5f517146104df578063f887ea40146105075761013f565b80636ddd17131461034357806370a082311461036d578063715018a6146103a9578063893d20e8146103bf57806395d89b41146103e95761013f565b80632f54bf6e116100fc5780632f54bf6e14610239578063313ce56714610275578063364333f41461029f57806352f7c988146102b5578063571ac8b0146102dd5780636c0a24eb146103195761013f565b80630445b6671461014357806306fdde031461016d578063095ea7b31461019757806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b50610157610531565b6040516101649190611bfa565b60405180910390f35b348015610178575f80fd5b50610181610537565b60405161018e9190611c9d565b60405180910390f35b3480156101a2575f80fd5b506101bd60048036038101906101b89190611d45565b610574565b6040516101ca9190611d9d565b60405180910390f35b3480156101de575f80fd5b506101e7610661565b6040516101f49190611bfa565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e9190611db6565b61066a565b6040516102309190611d9d565b60405180910390f35b348015610244575f80fd5b5061025f600480360381019061025a9190611e06565b61085d565b60405161026c9190611d9d565b60405180910390f35b348015610280575f80fd5b506102896108b4565b6040516102969190611e4c565b60405180910390f35b3480156102aa575f80fd5b506102b36108bc565b005b3480156102c0575f80fd5b506102db60048036038101906102d69190611e65565b610923565b005b3480156102e8575f80fd5b5061030360048036038101906102fe9190611e06565b610993565b6040516103109190611d9d565b60405180910390f35b348015610324575f80fd5b5061032d6109c5565b60405161033a9190611bfa565b60405180910390f35b34801561034e575f80fd5b506103576109cb565b6040516103649190611d9d565b60405180910390f35b348015610378575f80fd5b50610393600480360381019061038e9190611e06565b6109de565b6040516103a09190611bfa565b60405180910390f35b3480156103b4575f80fd5b506103bd610a24565b005b3480156103ca575f80fd5b506103d3610ae4565b6040516103e09190611eb2565b60405180910390f35b3480156103f4575f80fd5b506103fd610b0b565b60405161040a9190611c9d565b60405180910390f35b34801561041e575f80fd5b50610427610b48565b6040516104349190611eb2565b60405180910390f35b348015610448575f80fd5b50610463600480360381019061045e9190611d45565b610b6d565b6040516104709190611d9d565b60405180910390f35b348015610484575f80fd5b5061049f600480360381019061049a9190611ecb565b610b81565b6040516104ac9190611bfa565b60405180910390f35b3480156104c0575f80fd5b506104c9610c03565b6040516104d69190611eb2565b60405180910390f35b3480156104ea575f80fd5b5061050560048036038101906105009190611f09565b610c28565b005b348015610512575f80fd5b5061051b610c94565b6040516105289190611f8f565b60405180910390f35b60105481565b60606040518060400160405280600a81526020017f5265616c69747920414900000000000000000000000000000000000000000000815250905090565b5f8160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161064f9190611bfa565b60405180910390a36001905092915050565b5f600354905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610849576107cc826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cb99092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610854848484610d1b565b90509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b5f6009905090565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610920573d5f803e3d5ffd5b50565b61092c3361085d565b61096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290611ff2565b60405180910390fd5b8160098190555080600a81905550600a54600954610989919061203d565b600b819055505050565b5f6109be827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610574565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a2d3361085d565b610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6390611ff2565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f604051610ada9190611eb2565b60405180910390a1565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5265616c41490000000000000000000000000000000000000000000000000000815250905090565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610b79338484610d1b565b905092915050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c313361085d565b610c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6790611ff2565b60405180910390fd5b6103e881600354610c819190612070565b610c8b91906120de565b60048190555050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf79190611c9d565b60405180910390fd5b505f8385610d0e919061210e565b9050809150509392505050565b5f60115f9054906101000a900460ff1615610d4257610d3b8484846110d2565b90506110cb565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610dec575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610ed05760085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610e9057506004548260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e8d919061203d565b11155b610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec6906121b1565b60405180910390fd5b5b610ed861129c565b15610ee657610ee561136e565b5b610f6d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cb99092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f610fb885611889565b610fc25782610fcd565b610fcc85846118dc565b5b905061101f8160055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a1b90919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110bd9190611bfa565b60405180910390a360019150505b9392505050565b5f61115a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cb99092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506111eb8260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a1b90919063ffffffff16565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112899190611bfa565b60405180910390a3600190509392505050565b5f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611306575060115f9054906101000a900460ff16155b801561131e5750600f60149054906101000a900460ff165b8015611369575060105460055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b600160115f6101000a81548160ff0219169083151502179055505f60105490505f6113cb60026113bd600b546113af60095487611a7890919063ffffffff16565b611aef90919063ffffffff16565b611aef90919063ffffffff16565b90505f6113e18284611b3890919063ffffffff16565b90505f600267ffffffffffffffff8111156113ff576113fe6121cf565b5b60405190808252806020026020018201604052801561142d5781602001602082028036833780820191505090505b50905030815f81518110611444576114436121fc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150c919061223d565b816001815181106115205761151f6121fc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b81526004016115c0959493929190612358565b5f604051808303815f87803b1580156115d7575f80fd5b505af11580156115e9573d5f803e3d5ffd5b505050505f6116018247611b3890919063ffffffff16565b90505f61162e61161d6002600954611aef90919063ffffffff16565b600b54611b3890919063ffffffff16565b90505f61166b600261165d8461164f60095488611a7890919063ffffffff16565b611aef90919063ffffffff16565b611aef90919063ffffffff16565b90505f61169583611687600a5487611a7890919063ffffffff16565b611aef90919063ffffffff16565b90505f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516116e1906123dd565b5f60405180830381858888f193505050503d805f811461171c576040519150601f19603f3d011682016040523d82523d5f602084013e611721565b606091505b5050905080611765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175c9061243b565b60405180910390fd5b5f89111561186457600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c5f807371bf6977e620240d77f3af68d08948cb69b1162e426040518863ffffffff1660e01b81526004016117e696959493929190612459565b60606040518083038185885af1158015611802573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061182791906124cc565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a60405161185b92919061251c565b60405180910390a15b505050505050505050505f60115f6101000a81548160ff021916908315150217905550565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16159050919050565b5f80611907600c546118f9600b5486611a7890919063ffffffff16565b611aef90919063ffffffff16565b90506119598160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a1b90919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119f79190611bfa565b60405180910390a3611a128184611b3890919063ffffffff16565b91505092915050565b5f808284611a29919061203d565b905083811015611a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a659061258d565b60405180910390fd5b8091505092915050565b5f808303611a88575f9050611ae9565b5f8284611a959190612070565b9050828482611aa491906120de565b14611ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adb9061261b565b60405180910390fd5b809150505b92915050565b5f611b3083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b81565b905092915050565b5f611b7983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cb9565b905092915050565b5f8083118290611bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbe9190611c9d565b60405180910390fd5b505f8385611bd591906120de565b9050809150509392505050565b5f819050919050565b611bf481611be2565b82525050565b5f602082019050611c0d5f830184611beb565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611c4a578082015181840152602081019050611c2f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611c6f82611c13565b611c798185611c1d565b9350611c89818560208601611c2d565b611c9281611c55565b840191505092915050565b5f6020820190508181035f830152611cb58184611c65565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611cea82611cc1565b9050919050565b611cfa81611ce0565b8114611d04575f80fd5b50565b5f81359050611d1581611cf1565b92915050565b611d2481611be2565b8114611d2e575f80fd5b50565b5f81359050611d3f81611d1b565b92915050565b5f8060408385031215611d5b57611d5a611cbd565b5b5f611d6885828601611d07565b9250506020611d7985828601611d31565b9150509250929050565b5f8115159050919050565b611d9781611d83565b82525050565b5f602082019050611db05f830184611d8e565b92915050565b5f805f60608486031215611dcd57611dcc611cbd565b5b5f611dda86828701611d07565b9350506020611deb86828701611d07565b9250506040611dfc86828701611d31565b9150509250925092565b5f60208284031215611e1b57611e1a611cbd565b5b5f611e2884828501611d07565b91505092915050565b5f60ff82169050919050565b611e4681611e31565b82525050565b5f602082019050611e5f5f830184611e3d565b92915050565b5f8060408385031215611e7b57611e7a611cbd565b5b5f611e8885828601611d31565b9250506020611e9985828601611d31565b9150509250929050565b611eac81611ce0565b82525050565b5f602082019050611ec55f830184611ea3565b92915050565b5f8060408385031215611ee157611ee0611cbd565b5b5f611eee85828601611d07565b9250506020611eff85828601611d07565b9150509250929050565b5f60208284031215611f1e57611f1d611cbd565b5b5f611f2b84828501611d31565b91505092915050565b5f819050919050565b5f611f57611f52611f4d84611cc1565b611f34565b611cc1565b9050919050565b5f611f6882611f3d565b9050919050565b5f611f7982611f5e565b9050919050565b611f8981611f6f565b82525050565b5f602082019050611fa25f830184611f80565b92915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f611fdc600683611c1d565b9150611fe782611fa8565b602082019050919050565b5f6020820190508181035f83015261200981611fd0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61204782611be2565b915061205283611be2565b925082820190508082111561206a57612069612010565b5b92915050565b5f61207a82611be2565b915061208583611be2565b925082820261209381611be2565b915082820484148315176120aa576120a9612010565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6120e882611be2565b91506120f383611be2565b925082612103576121026120b1565b5b828204905092915050565b5f61211882611be2565b915061212383611be2565b925082820390508181111561213b5761213a612010565b5b92915050565b7f5472616e7366657220616d6f756e7420657863656564732074686520626167205f8201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b5f61219b602583611c1d565b91506121a682612141565b604082019050919050565b5f6020820190508181035f8301526121c88161218f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061223781611cf1565b92915050565b5f6020828403121561225257612251611cbd565b5b5f61225f84828501612229565b91505092915050565b5f819050919050565b5f61228b61228661228184612268565b611f34565b611be2565b9050919050565b61229b81612271565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6122d381611ce0565b82525050565b5f6122e483836122ca565b60208301905092915050565b5f602082019050919050565b5f612306826122a1565b61231081856122ab565b935061231b836122bb565b805f5b8381101561234b57815161233288826122d9565b975061233d836122f0565b92505060018101905061231e565b5085935050505092915050565b5f60a08201905061236b5f830188611beb565b6123786020830187612292565b818103604083015261238a81866122fc565b90506123996060830185611ea3565b6123a66080830184611beb565b9695505050505050565b5f81905092915050565b50565b5f6123c85f836123b0565b91506123d3826123ba565b5f82019050919050565b5f6123e7826123bd565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e7366657200005f82015250565b5f612425601e83611c1d565b9150612430826123f1565b602082019050919050565b5f6020820190508181035f83015261245281612419565b9050919050565b5f60c08201905061246c5f830189611ea3565b6124796020830188611beb565b6124866040830187612292565b6124936060830186612292565b6124a06080830185611ea3565b6124ad60a0830184611beb565b979650505050505050565b5f815190506124c681611d1b565b92915050565b5f805f606084860312156124e3576124e2611cbd565b5b5f6124f0868287016124b8565b9350506020612501868287016124b8565b9250506040612512868287016124b8565b9150509250925092565b5f60408201905061252f5f830185611beb565b61253c6020830184611beb565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612577601b83611c1d565b915061258282612543565b602082019050919050565b5f6020820190508181035f8301526125a48161256b565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612605602183611c1d565b9150612610826125ab565b604082019050919050565b5f6020820190508181035f830152612632816125f9565b905091905056fea2646970667358221220ec98c5eee4d4e42fc0a276cb93473f086f523279f4eeb117e1924cf758ffd0c964736f6c63430008140033

Deployed Bytecode

0x608060405260043610610138575f3560e01c80636ddd1713116100aa578063a8aa1b311161006e578063a8aa1b3114610413578063a9059cbb1461043d578063dd62ed3e14610479578063e96fada2146104b5578063f1d5f517146104df578063f887ea40146105075761013f565b80636ddd17131461034357806370a082311461036d578063715018a6146103a9578063893d20e8146103bf57806395d89b41146103e95761013f565b80632f54bf6e116100fc5780632f54bf6e14610239578063313ce56714610275578063364333f41461029f57806352f7c988146102b5578063571ac8b0146102dd5780636c0a24eb146103195761013f565b80630445b6671461014357806306fdde031461016d578063095ea7b31461019757806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b50610157610531565b6040516101649190611bfa565b60405180910390f35b348015610178575f80fd5b50610181610537565b60405161018e9190611c9d565b60405180910390f35b3480156101a2575f80fd5b506101bd60048036038101906101b89190611d45565b610574565b6040516101ca9190611d9d565b60405180910390f35b3480156101de575f80fd5b506101e7610661565b6040516101f49190611bfa565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e9190611db6565b61066a565b6040516102309190611d9d565b60405180910390f35b348015610244575f80fd5b5061025f600480360381019061025a9190611e06565b61085d565b60405161026c9190611d9d565b60405180910390f35b348015610280575f80fd5b506102896108b4565b6040516102969190611e4c565b60405180910390f35b3480156102aa575f80fd5b506102b36108bc565b005b3480156102c0575f80fd5b506102db60048036038101906102d69190611e65565b610923565b005b3480156102e8575f80fd5b5061030360048036038101906102fe9190611e06565b610993565b6040516103109190611d9d565b60405180910390f35b348015610324575f80fd5b5061032d6109c5565b60405161033a9190611bfa565b60405180910390f35b34801561034e575f80fd5b506103576109cb565b6040516103649190611d9d565b60405180910390f35b348015610378575f80fd5b50610393600480360381019061038e9190611e06565b6109de565b6040516103a09190611bfa565b60405180910390f35b3480156103b4575f80fd5b506103bd610a24565b005b3480156103ca575f80fd5b506103d3610ae4565b6040516103e09190611eb2565b60405180910390f35b3480156103f4575f80fd5b506103fd610b0b565b60405161040a9190611c9d565b60405180910390f35b34801561041e575f80fd5b50610427610b48565b6040516104349190611eb2565b60405180910390f35b348015610448575f80fd5b50610463600480360381019061045e9190611d45565b610b6d565b6040516104709190611d9d565b60405180910390f35b348015610484575f80fd5b5061049f600480360381019061049a9190611ecb565b610b81565b6040516104ac9190611bfa565b60405180910390f35b3480156104c0575f80fd5b506104c9610c03565b6040516104d69190611eb2565b60405180910390f35b3480156104ea575f80fd5b5061050560048036038101906105009190611f09565b610c28565b005b348015610512575f80fd5b5061051b610c94565b6040516105289190611f8f565b60405180910390f35b60105481565b60606040518060400160405280600a81526020017f5265616c69747920414900000000000000000000000000000000000000000000815250905090565b5f8160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161064f9190611bfa565b60405180910390a36001905092915050565b5f600354905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610849576107cc826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cb99092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610854848484610d1b565b90509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b5f6009905090565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610920573d5f803e3d5ffd5b50565b61092c3361085d565b61096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290611ff2565b60405180910390fd5b8160098190555080600a81905550600a54600954610989919061203d565b600b819055505050565b5f6109be827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610574565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a2d3361085d565b610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6390611ff2565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f604051610ada9190611eb2565b60405180910390a1565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5265616c41490000000000000000000000000000000000000000000000000000815250905090565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610b79338484610d1b565b905092915050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c313361085d565b610c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6790611ff2565b60405180910390fd5b6103e881600354610c819190612070565b610c8b91906120de565b60048190555050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f838311158290610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf79190611c9d565b60405180910390fd5b505f8385610d0e919061210e565b9050809150509392505050565b5f60115f9054906101000a900460ff1615610d4257610d3b8484846110d2565b90506110cb565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610dec575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610ed05760085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610e9057506004548260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e8d919061203d565b11155b610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec6906121b1565b60405180910390fd5b5b610ed861129c565b15610ee657610ee561136e565b5b610f6d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cb99092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f610fb885611889565b610fc25782610fcd565b610fcc85846118dc565b5b905061101f8160055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a1b90919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110bd9190611bfa565b60405180910390a360019150505b9392505050565b5f61115a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cb99092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506111eb8260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a1b90919063ffffffff16565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112899190611bfa565b60405180910390a3600190509392505050565b5f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611306575060115f9054906101000a900460ff16155b801561131e5750600f60149054906101000a900460ff165b8015611369575060105460055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b600160115f6101000a81548160ff0219169083151502179055505f60105490505f6113cb60026113bd600b546113af60095487611a7890919063ffffffff16565b611aef90919063ffffffff16565b611aef90919063ffffffff16565b90505f6113e18284611b3890919063ffffffff16565b90505f600267ffffffffffffffff8111156113ff576113fe6121cf565b5b60405190808252806020026020018201604052801561142d5781602001602082028036833780820191505090505b50905030815f81518110611444576114436121fc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150c919061223d565b816001815181106115205761151f6121fc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f479050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8530426040518663ffffffff1660e01b81526004016115c0959493929190612358565b5f604051808303815f87803b1580156115d7575f80fd5b505af11580156115e9573d5f803e3d5ffd5b505050505f6116018247611b3890919063ffffffff16565b90505f61162e61161d6002600954611aef90919063ffffffff16565b600b54611b3890919063ffffffff16565b90505f61166b600261165d8461164f60095488611a7890919063ffffffff16565b611aef90919063ffffffff16565b611aef90919063ffffffff16565b90505f61169583611687600a5487611a7890919063ffffffff16565b611aef90919063ffffffff16565b90505f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516116e1906123dd565b5f60405180830381858888f193505050503d805f811461171c576040519150601f19603f3d011682016040523d82523d5f602084013e611721565b606091505b5050905080611765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175c9061243b565b60405180910390fd5b5f89111561186457600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c5f807371bf6977e620240d77f3af68d08948cb69b1162e426040518863ffffffff1660e01b81526004016117e696959493929190612459565b60606040518083038185885af1158015611802573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061182791906124cc565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a60405161185b92919061251c565b60405180910390a15b505050505050505050505f60115f6101000a81548160ff021916908315150217905550565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16159050919050565b5f80611907600c546118f9600b5486611a7890919063ffffffff16565b611aef90919063ffffffff16565b90506119598160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a1b90919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119f79190611bfa565b60405180910390a3611a128184611b3890919063ffffffff16565b91505092915050565b5f808284611a29919061203d565b905083811015611a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a659061258d565b60405180910390fd5b8091505092915050565b5f808303611a88575f9050611ae9565b5f8284611a959190612070565b9050828482611aa491906120de565b14611ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adb9061261b565b60405180910390fd5b809150505b92915050565b5f611b3083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b81565b905092915050565b5f611b7983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cb9565b905092915050565b5f8083118290611bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbe9190611c9d565b60405180910390fd5b505f8385611bd591906120de565b9050809150509392505050565b5f819050919050565b611bf481611be2565b82525050565b5f602082019050611c0d5f830184611beb565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611c4a578082015181840152602081019050611c2f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611c6f82611c13565b611c798185611c1d565b9350611c89818560208601611c2d565b611c9281611c55565b840191505092915050565b5f6020820190508181035f830152611cb58184611c65565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611cea82611cc1565b9050919050565b611cfa81611ce0565b8114611d04575f80fd5b50565b5f81359050611d1581611cf1565b92915050565b611d2481611be2565b8114611d2e575f80fd5b50565b5f81359050611d3f81611d1b565b92915050565b5f8060408385031215611d5b57611d5a611cbd565b5b5f611d6885828601611d07565b9250506020611d7985828601611d31565b9150509250929050565b5f8115159050919050565b611d9781611d83565b82525050565b5f602082019050611db05f830184611d8e565b92915050565b5f805f60608486031215611dcd57611dcc611cbd565b5b5f611dda86828701611d07565b9350506020611deb86828701611d07565b9250506040611dfc86828701611d31565b9150509250925092565b5f60208284031215611e1b57611e1a611cbd565b5b5f611e2884828501611d07565b91505092915050565b5f60ff82169050919050565b611e4681611e31565b82525050565b5f602082019050611e5f5f830184611e3d565b92915050565b5f8060408385031215611e7b57611e7a611cbd565b5b5f611e8885828601611d31565b9250506020611e9985828601611d31565b9150509250929050565b611eac81611ce0565b82525050565b5f602082019050611ec55f830184611ea3565b92915050565b5f8060408385031215611ee157611ee0611cbd565b5b5f611eee85828601611d07565b9250506020611eff85828601611d07565b9150509250929050565b5f60208284031215611f1e57611f1d611cbd565b5b5f611f2b84828501611d31565b91505092915050565b5f819050919050565b5f611f57611f52611f4d84611cc1565b611f34565b611cc1565b9050919050565b5f611f6882611f3d565b9050919050565b5f611f7982611f5e565b9050919050565b611f8981611f6f565b82525050565b5f602082019050611fa25f830184611f80565b92915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f611fdc600683611c1d565b9150611fe782611fa8565b602082019050919050565b5f6020820190508181035f83015261200981611fd0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61204782611be2565b915061205283611be2565b925082820190508082111561206a57612069612010565b5b92915050565b5f61207a82611be2565b915061208583611be2565b925082820261209381611be2565b915082820484148315176120aa576120a9612010565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6120e882611be2565b91506120f383611be2565b925082612103576121026120b1565b5b828204905092915050565b5f61211882611be2565b915061212383611be2565b925082820390508181111561213b5761213a612010565b5b92915050565b7f5472616e7366657220616d6f756e7420657863656564732074686520626167205f8201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b5f61219b602583611c1d565b91506121a682612141565b604082019050919050565b5f6020820190508181035f8301526121c88161218f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061223781611cf1565b92915050565b5f6020828403121561225257612251611cbd565b5b5f61225f84828501612229565b91505092915050565b5f819050919050565b5f61228b61228661228184612268565b611f34565b611be2565b9050919050565b61229b81612271565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6122d381611ce0565b82525050565b5f6122e483836122ca565b60208301905092915050565b5f602082019050919050565b5f612306826122a1565b61231081856122ab565b935061231b836122bb565b805f5b8381101561234b57815161233288826122d9565b975061233d836122f0565b92505060018101905061231e565b5085935050505092915050565b5f60a08201905061236b5f830188611beb565b6123786020830187612292565b818103604083015261238a81866122fc565b90506123996060830185611ea3565b6123a66080830184611beb565b9695505050505050565b5f81905092915050565b50565b5f6123c85f836123b0565b91506123d3826123ba565b5f82019050919050565b5f6123e7826123bd565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e7366657200005f82015250565b5f612425601e83611c1d565b9150612430826123f1565b602082019050919050565b5f6020820190508181035f83015261245281612419565b9050919050565b5f60c08201905061246c5f830189611ea3565b6124796020830188611beb565b6124866040830187612292565b6124936060830186612292565b6124a06080830185611ea3565b6124ad60a0830184611beb565b979650505050505050565b5f815190506124c681611d1b565b92915050565b5f805f606084860312156124e3576124e2611cbd565b5b5f6124f0868287016124b8565b9350506020612501868287016124b8565b9250506040612512868287016124b8565b9150509250925092565b5f60408201905061252f5f830185611beb565b61253c6020830184611beb565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612577601b83611c1d565b915061258282612543565b602082019050919050565b5f6020820190508181035f8301526125a48161256b565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612605602183611c1d565b9150612610826125ab565b604082019050919050565b5f6020820190508181035f830152612632816125f9565b905091905056fea2646970667358221220ec98c5eee4d4e42fc0a276cb93473f086f523279f4eeb117e1924cf758ffd0c964736f6c63430008140033

Deployed Bytecode Sourcemap

4654:7751:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5667:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6752:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7174:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6482:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7692:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2892:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6576:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11834:118;;;;;;;;;;;;;:::i;:::-;;12110:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7398:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5051:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5630:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6922:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3001:131;;;;;;;;;;;;;:::i;:::-;;6838:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6662:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5602:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7528:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7033:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5482:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11960:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5571:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5667:54;;;;:::o;6752:80::-;6800:13;6824:5;;;;;;;;;;;;;;;;;6817:12;;6752:80;:::o;7174:216::-;7249:4;7301:6;7266:11;:23;7278:10;7266:23;;;;;;;;;;;;;;;:32;7290:7;7266:32;;;;;;;;;;;;;;;:41;;;;7344:7;7323:37;;7332:10;7323:37;;;7353:6;7323:37;;;;;;:::i;:::-;;;;;;;;7378:4;7371:11;;7174:216;;;;:::o;6482:88::-;6537:7;6555:12;;6548:19;;6482:88;:::o;7692:370::-;7792:4;7847:17;7812:11;:19;7824:6;7812:19;;;;;;;;;;;;;;;:31;7832:10;7812:31;;;;;;;;;;;;;;;;:52;7809:186;;7914:69;7950:6;7914:69;;;;;;;;;;;;;;;;;:11;:19;7926:6;7914:19;;;;;;;;;;;;;;;:31;7934:10;7914:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7880:11;:19;7892:6;7880:19;;;;;;;;;;;;;;;:31;7900:10;7880:31;;;;;;;;;;;;;;;:103;;;;7809:186;8014:40;8028:6;8036:9;8047:6;8014:13;:40::i;:::-;8007:47;;7692:370;;;;;:::o;2892:103::-;2947:4;2982:5;;;;;;;;;;;2971:16;;:7;:16;;;2964:23;;2892:103;;;:::o;6576:80::-;6628:5;4980:1;6637:16;;6576:80;:::o;11834:118::-;11891:20;;;;;;;;;;;11883:38;;:61;11922:21;11883:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11834:118::o;12110:220::-;2845:19;2853:10;2845:7;:19::i;:::-;2837:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12218:13:::1;12203:12;:28;;;;12259:13;12244:12;:28;;;;12310:12;;12295;;:27;;;;:::i;:::-;12284:8;:38;;;;12110:220:::0;;:::o;7398:122::-;7453:4;7477:35;7485:7;7494:17;7477:7;:35::i;:::-;7470:42;;7398:122;;;:::o;5051:60::-;;;;:::o;5630:30::-;;;;;;;;;;;;;:::o;6922:105::-;6988:7;7006:9;:18;7016:7;7006:18;;;;;;;;;;;;;;;;6999:25;;6922:105;;;:::o;3001:131::-;2845:19;2853:10;2845:7;:19::i;:::-;2837:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3074:1:::1;3058:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;3092:32;3121:1;3092:32;;;;;;:::i;:::-;;;;;;;;3001:131::o:0;6838:78::-;6890:7;6908:5;;;;;;;;;;;6901:12;;6838:78;:::o;6662:84::-;6712:13;6736:7;;;;;;;;;;;;;;;;;6729:14;;6662:84;:::o;5602:19::-;;;;;;;;;;;;;:::o;7528:156::-;7608:4;7632:44;7646:10;7658:9;7669:6;7632:13;:44::i;:::-;7625:51;;7528:156;;;;:::o;7033:133::-;7117:7;7135:11;:19;7147:6;7135:19;;;;;;;;;;;;;;;:28;7155:7;7135:28;;;;;;;;;;;;;;;;7128:35;;7033:133;;;;:::o;5482:80::-;;;;;;;;;;;;;:::o;11960:142::-;2845:19;2853:10;2845:7;:19::i;:::-;2837:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12090:4:::1;12072:13;12057:12;;:28;;;;:::i;:::-;12056:38;;;;:::i;:::-;12037:16;:57;;;;11960:142:::0;:::o;5571:24::-;;;;;;;;;;;;;:::o;981:190::-;1067:7;1100:1;1095;:6;;1103:12;1087:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1127:9;1143:1;1139;:5;;;;:::i;:::-;1127:17;;1162:1;1155:8;;;981:190;;;;;:::o;8070:792::-;8162:4;8182:6;;;;;;;;;;;8179:63;;;8198:41;8213:6;8221:9;8232:6;8198:14;:41::i;:::-;8191:48;;;;8179:63;8279:4;;;;;;;;;;;8266:17;;:9;:17;;;;:38;;;;;8300:4;;;;;;;;;;;8287:17;;:9;:17;;;;8266:38;8262:200;;;8329:15;:26;8345:9;8329:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;8392:16;;8382:6;8359:9;:20;8369:9;8359:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;8329:79;8321:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;8262:200;8485:16;:14;:16::i;:::-;8482:35;;;8504:10;:8;:10::i;:::-;8482:35;8550:53;8572:6;8550:53;;;;;;;;;;;;;;;;;:9;:17;8560:6;8550:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8530:9;:17;8540:6;8530:17;;;;;;;;;;;;;;;:73;;;;8616:22;8641:21;8655:6;8641:13;:21::i;:::-;:56;;8691:6;8641:56;;;8665:23;8673:6;8681;8665:7;:23::i;:::-;8641:56;8616:81;;8731:40;8756:14;8731:9;:20;8741:9;8731:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8708:9;:20;8718:9;8708:20;;;;;;;;;;;;;;;:63;;;;8806:9;8789:43;;8798:6;8789:43;;;8817:14;8789:43;;;;;;:::i;:::-;;;;;;;;8850:4;8843:11;;;8070:792;;;;;;:::o;8874:330::-;8967:4;9004:53;9026:6;9004:53;;;;;;;;;;;;;;;;;:9;:17;9014:6;9004:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8984:9;:17;8994:6;8984:17;;;;;;;;;;;;;;;:73;;;;9091:32;9116:6;9091:9;:20;9101:9;9091:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9068:9;:20;9078:9;9068:20;;;;;;;;;;;;;;;:55;;;;9156:9;9139:35;;9148:6;9139:35;;;9167:6;9139:35;;;;;;:::i;:::-;;;;;;;;9192:4;9185:11;;8874:330;;;;;:::o;9671:197::-;9720:4;9758;;;;;;;;;;;9744:18;;:10;:18;;;;:38;;;;;9776:6;;;;;;;;;;;9775:7;9744:38;:62;;;;;9795:11;;;;;;;;;;;9744:62;:116;;;;;9847:13;;9819:9;:24;9837:4;9819:24;;;;;;;;;;;;;;;;:41;;9744:116;9737:123;;9671:197;:::o;9876:1572::-;5785:4;5776:6;;:13;;;;;;;;;;;;;;;;;;9925:28:::1;9956:13;;9925:44;;9980:23;10006:59;10063:1;10006:52;10049:8;;10006:38;10031:12;;10006:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;9980:85;;10076:20;10099:41;10124:15;10099:20;:24;;:41;;;;:::i;:::-;10076:64;;10153:21;10191:1;10177:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10153:40;;10222:4;10204;10209:1;10204:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10248:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10238:4;10243:1;10238:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10274:21;10298;10274:45;;10332:6;;;;;;;;;;;:57;;;10404:12;10431:1;10447:4;10474;10494:15;10332:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10531:17;10551:40;10577:13;10551:21;:25;;:40;;;;:::i;:::-;10531:60;;10602:19;10624:33;10637:19;10654:1;10637:12;;:16;;:19;;;;:::i;:::-;10624:8;;:12;;:33;;;;:::i;:::-;10602:55;;10668:26;10697:51;10746:1;10697:44;10729:11;10697:27;10711:12;;10697:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;10668:80;;10759:26;10788:44;10820:11;10788:27;10802:12;;10788:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;10759:73;;10848:21;10906:20;;;;;;;;;;;10898:34;;10940:18;10965:5;10898:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10847:128;;;10994:16;10986:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;11079:1;11061:15;:19;11058:383;;;11096:6;;;;;;;;;;;:22;;;11126:18;11172:4;11196:15;11230:1;11250::::0;11270:42:::1;11331:15;11096:265;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11381:48;11393:18;11413:15;11381:48;;;;;;;:::i;:::-;;;;;;;;11058:383;9914:1534;;;;;;;;;;5803:5:::0;5794:6;;:14;;;;;;;;;;;;;;;;;;9876:1572::o;9212:114::-;9274:4;9299:11;:19;9311:6;9299:19;;;;;;;;;;;;;;;;;;;;;;;;;9298:20;9291:27;;9212:114;;;:::o;9334:329::-;9401:7;9421:17;9441:40;9466:14;;9441:20;9452:8;;9441:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;9421:60;;9519:39;9548:9;9519;:24;9537:4;9519:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9492:9;:24;9510:4;9492:24;;;;;;;;;;;;;;;:66;;;;9599:4;9574:42;;9583:6;9574:42;;;9606:9;9574:42;;;;;;:::i;:::-;;;;;;;;9634:21;9645:9;9634:6;:10;;:21;;;;:::i;:::-;9627:28;;;9334:329;;;;:::o;654:179::-;712:7;732:9;748:1;744;:5;;;;:::i;:::-;732:17;;773:1;768;:6;;760:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;824:1;817:8;;;654:179;;;;:::o;1177:246::-;1235:7;1264:1;1259;:6;1255:47;;1289:1;1282:8;;;;1255:47;1312:9;1328:1;1324;:5;;;;:::i;:::-;1312:17;;1357:1;1352;1348;:5;;;;:::i;:::-;:10;1340:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1414:1;1407:8;;;1177:246;;;;;:::o;1429:132::-;1487:7;1514:39;1518:1;1521;1514:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1507:46;;1429:132;;;;:::o;839:136::-;897:7;924:43;928:1;931;924:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;917:50;;839:136;;;;:::o;1567:189::-;1653:7;1685:1;1681;:5;1688:12;1673:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1712:9;1728:1;1724;:5;;;;:::i;:::-;1712:17;;1747:1;1740:8;;;1567: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:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:329::-;6559:6;6608:2;6596:9;6587:7;6583:23;6579:32;6576:119;;;6614:79;;:::i;:::-;6576:119;6734:1;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6705:117;6500:329;;;;:::o;6835:60::-;6863:3;6884:5;6877:12;;6835:60;;;:::o;6901:142::-;6951:9;6984:53;7002:34;7011:24;7029:5;7011:24;:::i;:::-;7002:34;:::i;:::-;6984:53;:::i;:::-;6971:66;;6901:142;;;:::o;7049:126::-;7099:9;7132:37;7163:5;7132:37;:::i;:::-;7119:50;;7049:126;;;:::o;7181:144::-;7249:9;7282:37;7313:5;7282:37;:::i;:::-;7269:50;;7181:144;;;:::o;7331:167::-;7436:55;7485:5;7436:55;:::i;:::-;7431:3;7424:68;7331:167;;:::o;7504:258::-;7615:4;7653:2;7642:9;7638:18;7630:26;;7666:89;7752:1;7741:9;7737:17;7728:6;7666:89;:::i;:::-;7504:258;;;;:::o;7768:156::-;7908:8;7904:1;7896:6;7892:14;7885:32;7768:156;:::o;7930:365::-;8072:3;8093:66;8157:1;8152:3;8093:66;:::i;:::-;8086:73;;8168:93;8257:3;8168:93;:::i;:::-;8286:2;8281:3;8277:12;8270:19;;7930:365;;;:::o;8301:419::-;8467:4;8505:2;8494:9;8490:18;8482:26;;8554:9;8548:4;8544:20;8540:1;8529:9;8525:17;8518:47;8582:131;8708:4;8582:131;:::i;:::-;8574:139;;8301:419;;;:::o;8726:180::-;8774:77;8771:1;8764:88;8871:4;8868:1;8861:15;8895:4;8892:1;8885:15;8912:191;8952:3;8971:20;8989:1;8971:20;:::i;:::-;8966:25;;9005:20;9023:1;9005:20;:::i;:::-;9000:25;;9048:1;9045;9041:9;9034:16;;9069:3;9066:1;9063:10;9060:36;;;9076:18;;:::i;:::-;9060:36;8912:191;;;;:::o;9109:410::-;9149:7;9172:20;9190:1;9172:20;:::i;:::-;9167:25;;9206:20;9224:1;9206:20;:::i;:::-;9201:25;;9261:1;9258;9254:9;9283:30;9301:11;9283:30;:::i;:::-;9272:41;;9462:1;9453:7;9449:15;9446:1;9443:22;9423:1;9416:9;9396:83;9373:139;;9492:18;;:::i;:::-;9373:139;9157:362;9109:410;;;;:::o;9525:180::-;9573:77;9570:1;9563:88;9670:4;9667:1;9660:15;9694:4;9691:1;9684:15;9711:185;9751:1;9768:20;9786:1;9768:20;:::i;:::-;9763:25;;9802:20;9820:1;9802:20;:::i;:::-;9797:25;;9841:1;9831:35;;9846:18;;:::i;:::-;9831:35;9888:1;9885;9881:9;9876:14;;9711:185;;;;:::o;9902:194::-;9942:4;9962:20;9980:1;9962:20;:::i;:::-;9957:25;;9996:20;10014:1;9996:20;:::i;:::-;9991:25;;10040:1;10037;10033:9;10025:17;;10064:1;10058:4;10055:11;10052:37;;;10069:18;;:::i;:::-;10052:37;9902:194;;;;:::o;10102:224::-;10242:34;10238:1;10230:6;10226:14;10219:58;10311:7;10306:2;10298:6;10294:15;10287:32;10102:224;:::o;10332:366::-;10474:3;10495:67;10559:2;10554:3;10495:67;:::i;:::-;10488:74;;10571:93;10660:3;10571:93;:::i;:::-;10689:2;10684:3;10680:12;10673:19;;10332:366;;;:::o;10704:419::-;10870:4;10908:2;10897:9;10893:18;10885:26;;10957:9;10951:4;10947:20;10943:1;10932:9;10928:17;10921:47;10985:131;11111:4;10985:131;:::i;:::-;10977:139;;10704:419;;;:::o;11129:180::-;11177:77;11174:1;11167:88;11274:4;11271:1;11264:15;11298:4;11295:1;11288:15;11315:180;11363:77;11360:1;11353:88;11460:4;11457:1;11450:15;11484:4;11481:1;11474:15;11501:143;11558:5;11589:6;11583:13;11574:22;;11605:33;11632:5;11605:33;:::i;:::-;11501:143;;;;:::o;11650:351::-;11720:6;11769:2;11757:9;11748:7;11744:23;11740:32;11737:119;;;11775:79;;:::i;:::-;11737:119;11895:1;11920:64;11976:7;11967:6;11956:9;11952:22;11920:64;:::i;:::-;11910:74;;11866:128;11650:351;;;;:::o;12007:85::-;12052:7;12081:5;12070:16;;12007:85;;;:::o;12098:158::-;12156:9;12189:61;12207:42;12216:32;12242:5;12216:32;:::i;:::-;12207:42;:::i;:::-;12189:61;:::i;:::-;12176:74;;12098:158;;;:::o;12262:147::-;12357:45;12396:5;12357:45;:::i;:::-;12352:3;12345:58;12262:147;;:::o;12415:114::-;12482:6;12516:5;12510:12;12500:22;;12415:114;;;:::o;12535:184::-;12634:11;12668:6;12663:3;12656:19;12708:4;12703:3;12699:14;12684:29;;12535:184;;;;:::o;12725:132::-;12792:4;12815:3;12807:11;;12845:4;12840:3;12836:14;12828:22;;12725:132;;;:::o;12863:108::-;12940:24;12958:5;12940:24;:::i;:::-;12935:3;12928:37;12863:108;;:::o;12977:179::-;13046:10;13067:46;13109:3;13101:6;13067:46;:::i;:::-;13145:4;13140:3;13136:14;13122:28;;12977:179;;;;:::o;13162:113::-;13232:4;13264;13259:3;13255:14;13247:22;;13162:113;;;:::o;13311:732::-;13430:3;13459:54;13507:5;13459:54;:::i;:::-;13529:86;13608:6;13603:3;13529:86;:::i;:::-;13522:93;;13639:56;13689:5;13639:56;:::i;:::-;13718:7;13749:1;13734:284;13759:6;13756:1;13753:13;13734:284;;;13835:6;13829:13;13862:63;13921:3;13906:13;13862:63;:::i;:::-;13855:70;;13948:60;14001:6;13948:60;:::i;:::-;13938:70;;13794:224;13781:1;13778;13774:9;13769:14;;13734:284;;;13738:14;14034:3;14027:10;;13435:608;;;13311:732;;;;:::o;14049:831::-;14312:4;14350:3;14339:9;14335:19;14327:27;;14364:71;14432:1;14421:9;14417:17;14408:6;14364:71;:::i;:::-;14445:80;14521:2;14510:9;14506:18;14497:6;14445:80;:::i;:::-;14572:9;14566:4;14562:20;14557:2;14546:9;14542:18;14535:48;14600:108;14703:4;14694:6;14600:108;:::i;:::-;14592:116;;14718:72;14786:2;14775:9;14771:18;14762:6;14718:72;:::i;:::-;14800:73;14868:3;14857:9;14853:19;14844:6;14800:73;:::i;:::-;14049:831;;;;;;;;:::o;14886:147::-;14987:11;15024:3;15009:18;;14886:147;;;;:::o;15039:114::-;;:::o;15159:398::-;15318:3;15339:83;15420:1;15415:3;15339:83;:::i;:::-;15332:90;;15431:93;15520:3;15431:93;:::i;:::-;15549:1;15544:3;15540:11;15533:18;;15159:398;;;:::o;15563:379::-;15747:3;15769:147;15912:3;15769:147;:::i;:::-;15762:154;;15933:3;15926:10;;15563:379;;;:::o;15948:180::-;16088:32;16084:1;16076:6;16072:14;16065:56;15948:180;:::o;16134:366::-;16276:3;16297:67;16361:2;16356:3;16297:67;:::i;:::-;16290:74;;16373:93;16462:3;16373:93;:::i;:::-;16491:2;16486:3;16482:12;16475:19;;16134:366;;;:::o;16506:419::-;16672:4;16710:2;16699:9;16695:18;16687:26;;16759:9;16753:4;16749:20;16745:1;16734:9;16730:17;16723:47;16787:131;16913:4;16787:131;:::i;:::-;16779:139;;16506:419;;;:::o;16931:807::-;17180:4;17218:3;17207:9;17203:19;17195:27;;17232:71;17300:1;17289:9;17285:17;17276:6;17232:71;:::i;:::-;17313:72;17381:2;17370:9;17366:18;17357:6;17313:72;:::i;:::-;17395:80;17471:2;17460:9;17456:18;17447:6;17395:80;:::i;:::-;17485;17561:2;17550:9;17546:18;17537:6;17485:80;:::i;:::-;17575:73;17643:3;17632:9;17628:19;17619:6;17575:73;:::i;:::-;17658;17726:3;17715:9;17711:19;17702:6;17658:73;:::i;:::-;16931:807;;;;;;;;;:::o;17744:143::-;17801:5;17832:6;17826:13;17817:22;;17848:33;17875:5;17848:33;:::i;:::-;17744:143;;;;:::o;17893:663::-;17981:6;17989;17997;18046:2;18034:9;18025:7;18021:23;18017:32;18014:119;;;18052:79;;:::i;:::-;18014:119;18172:1;18197:64;18253:7;18244:6;18233:9;18229:22;18197:64;:::i;:::-;18187:74;;18143:128;18310:2;18336:64;18392:7;18383:6;18372:9;18368:22;18336:64;:::i;:::-;18326:74;;18281:129;18449:2;18475:64;18531:7;18522:6;18511:9;18507:22;18475:64;:::i;:::-;18465:74;;18420:129;17893:663;;;;;:::o;18562:332::-;18683:4;18721:2;18710:9;18706:18;18698:26;;18734:71;18802:1;18791:9;18787:17;18778:6;18734:71;:::i;:::-;18815:72;18883:2;18872:9;18868:18;18859:6;18815:72;:::i;:::-;18562:332;;;;;:::o;18900:177::-;19040:29;19036:1;19028:6;19024:14;19017:53;18900:177;:::o;19083:366::-;19225:3;19246:67;19310:2;19305:3;19246:67;:::i;:::-;19239:74;;19322:93;19411:3;19322:93;:::i;:::-;19440:2;19435:3;19431:12;19424:19;;19083:366;;;:::o;19455:419::-;19621:4;19659:2;19648:9;19644:18;19636:26;;19708:9;19702:4;19698:20;19694:1;19683:9;19679:17;19672:47;19736:131;19862:4;19736:131;:::i;:::-;19728:139;;19455:419;;;:::o;19880:220::-;20020:34;20016:1;20008:6;20004:14;19997:58;20089:3;20084:2;20076:6;20072:15;20065:28;19880:220;:::o;20106:366::-;20248:3;20269:67;20333:2;20328:3;20269:67;:::i;:::-;20262:74;;20345:93;20434:3;20345:93;:::i;:::-;20463:2;20458:3;20454:12;20447:19;;20106:366;;;:::o;20478:419::-;20644:4;20682:2;20671:9;20667:18;20659:26;;20731:9;20725:4;20721:20;20717:1;20706:9;20702:17;20695:47;20759:131;20885:4;20759:131;:::i;:::-;20751:139;;20478:419;;;:::o

Swarm Source

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