ETH Price: $2,508.33 (+0.39%)

Token

Floki Classic Burn (FlokiC Burn)
 

Overview

Max Total Supply

100,000,000 FlokiC Burn

Holders

37

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
103,573.204726161 FlokiC Burn

Value
$0.00
0x60e8e6ac1b87a29fc239157a4bf49fae75a473ae
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:
FlokiClassicBurn

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-06-27
*/

/**

FLOKI CLASSIC BURN

Tokenomics
LP: 2ETH
Max txn: 1%
Max wallet: 1%
Tax:  6% Buy, 6% Sell
- 2% LP
- 4% Burn Wallet

TG: https://t.me/FlokiClassicBurn

*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.12;

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 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 Auth {
    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 {
        emit OwnershipTransferred(address(0));
        owner = 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 addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract FlokiClassicBurn is ERC20, Auth {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "Floki Classic Burn";
    string public constant symbol = "FlokiC Burn";
    uint8 public constant decimals = 9;
    uint256 public constant totalSupply = 100 * 10**6 * 10**decimals;

    uint256 public _maxTxAmount = totalSupply / 100;
    uint256 public _maxWalletToken = totalSupply / 50;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

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

    uint256 public constant liquidityFee = 2;
    uint256 public constant marketingFee = 4;
    uint256 public constant totalFee = 6;
    uint256 public constant feeDenominator = 100;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = totalSupply / 1000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x23ceEB106b9c4cfa39820Ab7ACd77E3BA2165143;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingFeeReceiver] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[DEAD] = true;
        isWalletLimitExempt[marketingFeeReceiver] = true;

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

    function getOwner() external view override returns (address) { return owner; }
    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 (!isOwner(sender) && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }

        require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "TX Limit Exceeded");

        if(shouldSwapBack()){ swapBack(); }

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

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

        balanceOf[recipient] = balanceOf[recipient].add(amountReceived);

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


    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        if(totalFee == 0 ){
            return amount;
        }

        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);

        balanceOf[address(this)] = balanceOf[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
        && balanceOf[address(this)] >= swapThreshold;
    }

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

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));        
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);

        payable(marketingFeeReceiver).transfer(amountETHMarketing);

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


    function getCirculatingSupply() public view returns (uint256) {
        return totalSupply.sub(balanceOf[DEAD]).sub(balanceOf[ZERO]);
    }

event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

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":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","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":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"view","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":[],"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":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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"}]

60a060405260646009600a62000016919062000b39565b6305f5e10062000027919062000b8a565b62000033919062000c1a565b60015560326009600a62000048919062000b39565b6305f5e10062000059919062000b8a565b62000065919062000c1a565b6002556001600b60146101000a81548160ff0219169083151502179055506103e86009600a62000096919062000b39565b6305f5e100620000a7919062000b8a565b620000b3919062000c1a565b600c55348015620000c357600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ef919062000cbc565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000290573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b6919062000cbc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396608051306040518363ffffffff1660e01b8152600401620002f492919062000cff565b6020604051808303816000875af115801562000314573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033a919062000cbc565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507323ceeb106b9c4cfa39820ab7acd77e3ba2165143600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009600a620008bd919062000b39565b6305f5e100620008ce919062000b8a565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000971919062000b39565b6305f5e10062000982919062000b8a565b60405162000991919062000d3d565b60405180910390a362000d5a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a2d5780860481111562000a055762000a046200099f565b5b600185161562000a155780820291505b808102905062000a2585620009ce565b9450620009e5565b94509492505050565b60008262000a48576001905062000b1b565b8162000a58576000905062000b1b565b816001811462000a71576002811462000a7c5762000ab2565b600191505062000b1b565b60ff84111562000a915762000a906200099f565b5b8360020a91508482111562000aab5762000aaa6200099f565b5b5062000b1b565b5060208310610133831016604e8410600b841016171562000aec5782820a90508381111562000ae65762000ae56200099f565b5b62000b1b565b62000afb8484846001620009db565b9250905081840481111562000b155762000b146200099f565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b468262000b22565b915062000b538362000b2c565b925062000b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a36565b905092915050565b600062000b978262000b22565b915062000ba48362000b22565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000be05762000bdf6200099f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c278262000b22565b915062000c348362000b22565b92508262000c475762000c4662000beb565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c848262000c57565b9050919050565b62000c968162000c77565b811462000ca257600080fd5b50565b60008151905062000cb68162000c8b565b92915050565b60006020828403121562000cd55762000cd462000c52565b5b600062000ce58482850162000ca5565b91505092915050565b62000cf98162000c77565b82525050565b600060408201905062000d16600083018562000cee565b62000d25602083018462000cee565b9392505050565b62000d378162000b22565b82525050565b600060208201905062000d54600083018462000d2c565b92915050565b60805161291d62000d766000396000611770015261291d6000f3fe6080604052600436106101855760003560e01c806370a08231116100d157806398118cb41161008a578063ca33e64c11610064578063ca33e64c1461059b578063dd62ed3e146105c6578063e96fada214610603578063f887ea401461062e5761018c565b806398118cb414610508578063a8aa1b3114610533578063a9059cbb1461055e5761018c565b806370a0823114610408578063715018a61461044557806378109e541461045c5780637d1db4a514610487578063893d20e8146104b257806395d89b41146104dd5761018c565b806323b872dd1161013e578063313ce56711610118578063313ce5671461034a578063571ac8b0146103755780636b67c4df146103b25780636ddd1713146103dd5761018c565b806323b872dd146102a55780632b112e49146102e25780632f54bf6e1461030d5761018c565b80630445b6671461019157806306fdde03146101bc578063095ea7b3146101e7578063180b0d7e1461022457806318160ddd1461024f5780631df4ccfc1461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610659565b6040516101b39190611d9b565b60405180910390f35b3480156101c857600080fd5b506101d161065f565b6040516101de9190611e4f565b60405180910390f35b3480156101f357600080fd5b5061020e60048036038101906102099190611f00565b610698565b60405161021b9190611f5b565b60405180910390f35b34801561023057600080fd5b5061023961078a565b6040516102469190611d9b565b60405180910390f35b34801561025b57600080fd5b5061026461078f565b6040516102719190611d9b565b60405180910390f35b34801561028657600080fd5b5061028f6107af565b60405161029c9190611d9b565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c79190611f76565b6107b4565b6040516102d99190611f5b565b60405180910390f35b3480156102ee57600080fd5b506102f76109b4565b6040516103049190611d9b565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190611fc9565b610a7c565b6040516103419190611f5b565b60405180910390f35b34801561035657600080fd5b5061035f610ad5565b60405161036c9190612012565b60405180910390f35b34801561038157600080fd5b5061039c60048036038101906103979190611fc9565b610ada565b6040516103a99190611f5b565b60405180910390f35b3480156103be57600080fd5b506103c7610b0d565b6040516103d49190611d9b565b60405180910390f35b3480156103e957600080fd5b506103f2610b12565b6040516103ff9190611f5b565b60405180910390f35b34801561041457600080fd5b5061042f600480360381019061042a9190611fc9565b610b25565b60405161043c9190611d9b565b60405180910390f35b34801561045157600080fd5b5061045a610b3d565b005b34801561046857600080fd5b50610471610c00565b60405161047e9190611d9b565b60405180910390f35b34801561049357600080fd5b5061049c610c06565b6040516104a99190611d9b565b60405180910390f35b3480156104be57600080fd5b506104c7610c0c565b6040516104d4919061203c565b60405180910390f35b3480156104e957600080fd5b506104f2610c35565b6040516104ff9190611e4f565b60405180910390f35b34801561051457600080fd5b5061051d610c6e565b60405161052a9190611d9b565b60405180910390f35b34801561053f57600080fd5b50610548610c73565b604051610555919061203c565b60405180910390f35b34801561056a57600080fd5b5061058560048036038101906105809190611f00565b610c99565b6040516105929190611f5b565b60405180910390f35b3480156105a757600080fd5b506105b0610cae565b6040516105bd919061203c565b60405180910390f35b3480156105d257600080fd5b506105ed60048036038101906105e89190612057565b610cd4565b6040516105fa9190611d9b565b60405180910390f35b34801561060f57600080fd5b50610618610d5b565b604051610625919061203c565b60405180910390f35b34801561063a57600080fd5b50610643610d81565b60405161065091906120f6565b60405180910390f35b600c5481565b6040518060400160405280601281526020017f466c6f6b6920436c6173736963204275726e000000000000000000000000000081525081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107789190611d9b565b60405180910390a36001905092915050565b606481565b6009600a61079d9190612273565b6305f5e1006107ac91906122be565b81565b600681565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109a05761091f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610da79092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6109ab848484610e0b565b90509392505050565b6000610a77600360008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a696003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546009600a610a4c9190612273565b6305f5e100610a5b91906122be565b61136990919063ffffffff16565b61136990919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600981565b6000610b06827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610698565b9050919050565b600481565b600b60149054906101000a900460ff1681565b60036020528060005260406000206000915090505481565b610b4633610a7c565b610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c90612364565b60405180910390fd5b7f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610bb5919061203c565b60405180910390a160008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60025481565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040518060400160405280600b81526020017f466c6f6b6943204275726e00000000000000000000000000000000000000000081525081565b600281565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ca6338484610e0b565b905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290610def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de69190611e4f565b60405180910390fd5b5060008385610dfe9190612384565b9050809150509392505050565b6000600d60009054906101000a900460ff1615610e3457610e2d8484846113b3565b9050611362565b610e3d84610a7c565b158015610e945750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610eea5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610f445750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610fd95760025482600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f9791906123b8565b1115610fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcf9061245a565b60405180910390fd5b5b600154821115806110335750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806110875750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd906124c6565b60405180910390fd5b6110ce611586565b156110dc576110db61165d565b5b611165826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610da79092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061124b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61125e576112598584611aa9565b611260565b825b90506112b481600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bfd90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113549190611d9b565b60405180910390a360019150505b9392505050565b60006113ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610da7565b905092915050565b600061143e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610da79092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114d382600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bfd90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115739190611d9b565b60405180910390a3600190509392505050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156115f35750600d60009054906101000a900460ff16155b801561160b5750600b60149054906101000a900460ff165b80156116585750600c54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001600d60006101000a81548160ff02191690831515021790555060006116b660026116a8600661169a6002600c54611c5b90919063ffffffff16565b611cd590919063ffffffff16565b611cd590919063ffffffff16565b905060006116cf82600c5461136990919063ffffffff16565b90506000600267ffffffffffffffff8111156116ee576116ed6124e6565b5b60405190808252806020026020018201604052801561171c5781602001602082028036833780820191505090505b509050308160008151811061173457611733612515565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106117a3576117a2612515565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161184195949392919061263d565b600060405180830381600087803b15801561185b57600080fd5b505af115801561186f573d6000803e3d6000fd5b50505050600047905060006118a1611891600280611cd590919063ffffffff16565b600661136990919063ffffffff16565b905060006118de60026118d0846118c2600288611c5b90919063ffffffff16565b611cd590919063ffffffff16565b611cd590919063ffffffff16565b90506000611908836118fa600487611c5b90919063ffffffff16565b611cd590919063ffffffff16565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611972573d6000803e3d6000fd5b506000871115611a8557600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611a0596959493929190612697565b60606040518083038185885af1158015611a23573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a48919061270d565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068288604051611a7c929190612760565b60405180910390a15b505050505050506000600d60006101000a81548160ff021916908315150217905550565b600080600603611abb57819050611bf7565b6000611ae46064611ad6600686611c5b90919063ffffffff16565b611cd590919063ffffffff16565b9050611b3881600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bfd90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bd89190611d9b565b60405180910390a3611bf3818461136990919063ffffffff16565b9150505b92915050565b6000808284611c0c91906123b8565b905083811015611c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c48906127d5565b60405180910390fd5b8091505092915050565b6000808303611c6d5760009050611ccf565b60008284611c7b91906122be565b9050828482611c8a9190612824565b14611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc1906128c7565b60405180910390fd5b809150505b92915050565b6000611d1783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d1f565b905092915050565b60008083118290611d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5d9190611e4f565b60405180910390fd5b5060008385611d759190612824565b9050809150509392505050565b6000819050919050565b611d9581611d82565b82525050565b6000602082019050611db06000830184611d8c565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611df0578082015181840152602081019050611dd5565b83811115611dff576000848401525b50505050565b6000601f19601f8301169050919050565b6000611e2182611db6565b611e2b8185611dc1565b9350611e3b818560208601611dd2565b611e4481611e05565b840191505092915050565b60006020820190508181036000830152611e698184611e16565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ea182611e76565b9050919050565b611eb181611e96565b8114611ebc57600080fd5b50565b600081359050611ece81611ea8565b92915050565b611edd81611d82565b8114611ee857600080fd5b50565b600081359050611efa81611ed4565b92915050565b60008060408385031215611f1757611f16611e71565b5b6000611f2585828601611ebf565b9250506020611f3685828601611eeb565b9150509250929050565b60008115159050919050565b611f5581611f40565b82525050565b6000602082019050611f706000830184611f4c565b92915050565b600080600060608486031215611f8f57611f8e611e71565b5b6000611f9d86828701611ebf565b9350506020611fae86828701611ebf565b9250506040611fbf86828701611eeb565b9150509250925092565b600060208284031215611fdf57611fde611e71565b5b6000611fed84828501611ebf565b91505092915050565b600060ff82169050919050565b61200c81611ff6565b82525050565b60006020820190506120276000830184612003565b92915050565b61203681611e96565b82525050565b6000602082019050612051600083018461202d565b92915050565b6000806040838503121561206e5761206d611e71565b5b600061207c85828601611ebf565b925050602061208d85828601611ebf565b9150509250929050565b6000819050919050565b60006120bc6120b76120b284611e76565b612097565b611e76565b9050919050565b60006120ce826120a1565b9050919050565b60006120e0826120c3565b9050919050565b6120f0816120d5565b82525050565b600060208201905061210b60008301846120e7565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156121975780860481111561217357612172612111565b5b60018516156121825780820291505b808102905061219085612140565b9450612157565b94509492505050565b6000826121b0576001905061226c565b816121be576000905061226c565b81600181146121d457600281146121de5761220d565b600191505061226c565b60ff8411156121f0576121ef612111565b5b8360020a91508482111561220757612206612111565b5b5061226c565b5060208310610133831016604e8410600b84101617156122425782820a90508381111561223d5761223c612111565b5b61226c565b61224f848484600161214d565b9250905081840481111561226657612265612111565b5b81810290505b9392505050565b600061227e82611d82565b915061228983611ff6565b92506122b67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846121a0565b905092915050565b60006122c982611d82565b91506122d483611d82565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561230d5761230c612111565b5b828202905092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061234e600683611dc1565b915061235982612318565b602082019050919050565b6000602082019050818103600083015261237d81612341565b9050919050565b600061238f82611d82565b915061239a83611d82565b9250828210156123ad576123ac612111565b5b828203905092915050565b60006123c382611d82565b91506123ce83611d82565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561240357612402612111565b5b828201905092915050565b7f6d61782077616c6c6574206c696d697420726561636865640000000000000000600082015250565b6000612444601883611dc1565b915061244f8261240e565b602082019050919050565b6000602082019050818103600083015261247381612437565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006124b0601183611dc1565b91506124bb8261247a565b602082019050919050565b600060208201905081810360008301526124df816124a3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061256961256461255f84612544565b612097565b611d82565b9050919050565b6125798161254e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6125b481611e96565b82525050565b60006125c683836125ab565b60208301905092915050565b6000602082019050919050565b60006125ea8261257f565b6125f4818561258a565b93506125ff8361259b565b8060005b8381101561263057815161261788826125ba565b9750612622836125d2565b925050600181019050612603565b5085935050505092915050565b600060a0820190506126526000830188611d8c565b61265f6020830187612570565b818103604083015261267181866125df565b9050612680606083018561202d565b61268d6080830184611d8c565b9695505050505050565b600060c0820190506126ac600083018961202d565b6126b96020830188611d8c565b6126c66040830187612570565b6126d36060830186612570565b6126e0608083018561202d565b6126ed60a0830184611d8c565b979650505050505050565b60008151905061270781611ed4565b92915050565b60008060006060848603121561272657612725611e71565b5b6000612734868287016126f8565b9350506020612745868287016126f8565b9250506040612756868287016126f8565b9150509250925092565b60006040820190506127756000830185611d8c565b6127826020830184611d8c565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006127bf601b83611dc1565b91506127ca82612789565b602082019050919050565b600060208201905081810360008301526127ee816127b2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061282f82611d82565b915061283a83611d82565b92508261284a576128496127f5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006128b1602183611dc1565b91506128bc82612855565b604082019050919050565b600060208201905081810360008301526128e0816128a4565b905091905056fea26469706673582212203781254aa32b291da66568ebd9706cb5ad7218a0bf7cbb24412a428b63f2029864736f6c634300080e0033

Deployed Bytecode

0x6080604052600436106101855760003560e01c806370a08231116100d157806398118cb41161008a578063ca33e64c11610064578063ca33e64c1461059b578063dd62ed3e146105c6578063e96fada214610603578063f887ea401461062e5761018c565b806398118cb414610508578063a8aa1b3114610533578063a9059cbb1461055e5761018c565b806370a0823114610408578063715018a61461044557806378109e541461045c5780637d1db4a514610487578063893d20e8146104b257806395d89b41146104dd5761018c565b806323b872dd1161013e578063313ce56711610118578063313ce5671461034a578063571ac8b0146103755780636b67c4df146103b25780636ddd1713146103dd5761018c565b806323b872dd146102a55780632b112e49146102e25780632f54bf6e1461030d5761018c565b80630445b6671461019157806306fdde03146101bc578063095ea7b3146101e7578063180b0d7e1461022457806318160ddd1461024f5780631df4ccfc1461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610659565b6040516101b39190611d9b565b60405180910390f35b3480156101c857600080fd5b506101d161065f565b6040516101de9190611e4f565b60405180910390f35b3480156101f357600080fd5b5061020e60048036038101906102099190611f00565b610698565b60405161021b9190611f5b565b60405180910390f35b34801561023057600080fd5b5061023961078a565b6040516102469190611d9b565b60405180910390f35b34801561025b57600080fd5b5061026461078f565b6040516102719190611d9b565b60405180910390f35b34801561028657600080fd5b5061028f6107af565b60405161029c9190611d9b565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c79190611f76565b6107b4565b6040516102d99190611f5b565b60405180910390f35b3480156102ee57600080fd5b506102f76109b4565b6040516103049190611d9b565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190611fc9565b610a7c565b6040516103419190611f5b565b60405180910390f35b34801561035657600080fd5b5061035f610ad5565b60405161036c9190612012565b60405180910390f35b34801561038157600080fd5b5061039c60048036038101906103979190611fc9565b610ada565b6040516103a99190611f5b565b60405180910390f35b3480156103be57600080fd5b506103c7610b0d565b6040516103d49190611d9b565b60405180910390f35b3480156103e957600080fd5b506103f2610b12565b6040516103ff9190611f5b565b60405180910390f35b34801561041457600080fd5b5061042f600480360381019061042a9190611fc9565b610b25565b60405161043c9190611d9b565b60405180910390f35b34801561045157600080fd5b5061045a610b3d565b005b34801561046857600080fd5b50610471610c00565b60405161047e9190611d9b565b60405180910390f35b34801561049357600080fd5b5061049c610c06565b6040516104a99190611d9b565b60405180910390f35b3480156104be57600080fd5b506104c7610c0c565b6040516104d4919061203c565b60405180910390f35b3480156104e957600080fd5b506104f2610c35565b6040516104ff9190611e4f565b60405180910390f35b34801561051457600080fd5b5061051d610c6e565b60405161052a9190611d9b565b60405180910390f35b34801561053f57600080fd5b50610548610c73565b604051610555919061203c565b60405180910390f35b34801561056a57600080fd5b5061058560048036038101906105809190611f00565b610c99565b6040516105929190611f5b565b60405180910390f35b3480156105a757600080fd5b506105b0610cae565b6040516105bd919061203c565b60405180910390f35b3480156105d257600080fd5b506105ed60048036038101906105e89190612057565b610cd4565b6040516105fa9190611d9b565b60405180910390f35b34801561060f57600080fd5b50610618610d5b565b604051610625919061203c565b60405180910390f35b34801561063a57600080fd5b50610643610d81565b60405161065091906120f6565b60405180910390f35b600c5481565b6040518060400160405280601281526020017f466c6f6b6920436c6173736963204275726e000000000000000000000000000081525081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107789190611d9b565b60405180910390a36001905092915050565b606481565b6009600a61079d9190612273565b6305f5e1006107ac91906122be565b81565b600681565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109a05761091f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610da79092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6109ab848484610e0b565b90509392505050565b6000610a77600360008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a696003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546009600a610a4c9190612273565b6305f5e100610a5b91906122be565b61136990919063ffffffff16565b61136990919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600981565b6000610b06827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610698565b9050919050565b600481565b600b60149054906101000a900460ff1681565b60036020528060005260406000206000915090505481565b610b4633610a7c565b610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c90612364565b60405180910390fd5b7f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610bb5919061203c565b60405180910390a160008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60025481565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040518060400160405280600b81526020017f466c6f6b6943204275726e00000000000000000000000000000000000000000081525081565b600281565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ca6338484610e0b565b905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290610def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de69190611e4f565b60405180910390fd5b5060008385610dfe9190612384565b9050809150509392505050565b6000600d60009054906101000a900460ff1615610e3457610e2d8484846113b3565b9050611362565b610e3d84610a7c565b158015610e945750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610eea5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610f445750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610fd95760025482600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f9791906123b8565b1115610fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcf9061245a565b60405180910390fd5b5b600154821115806110335750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806110875750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd906124c6565b60405180910390fd5b6110ce611586565b156110dc576110db61165d565b5b611165826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610da79092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061124b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61125e576112598584611aa9565b611260565b825b90506112b481600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bfd90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113549190611d9b565b60405180910390a360019150505b9392505050565b60006113ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610da7565b905092915050565b600061143e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610da79092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114d382600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bfd90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115739190611d9b565b60405180910390a3600190509392505050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156115f35750600d60009054906101000a900460ff16155b801561160b5750600b60149054906101000a900460ff165b80156116585750600c54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001600d60006101000a81548160ff02191690831515021790555060006116b660026116a8600661169a6002600c54611c5b90919063ffffffff16565b611cd590919063ffffffff16565b611cd590919063ffffffff16565b905060006116cf82600c5461136990919063ffffffff16565b90506000600267ffffffffffffffff8111156116ee576116ed6124e6565b5b60405190808252806020026020018201604052801561171c5781602001602082028036833780820191505090505b509050308160008151811061173457611733612515565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106117a3576117a2612515565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161184195949392919061263d565b600060405180830381600087803b15801561185b57600080fd5b505af115801561186f573d6000803e3d6000fd5b50505050600047905060006118a1611891600280611cd590919063ffffffff16565b600661136990919063ffffffff16565b905060006118de60026118d0846118c2600288611c5b90919063ffffffff16565b611cd590919063ffffffff16565b611cd590919063ffffffff16565b90506000611908836118fa600487611c5b90919063ffffffff16565b611cd590919063ffffffff16565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611972573d6000803e3d6000fd5b506000871115611a8557600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611a0596959493929190612697565b60606040518083038185885af1158015611a23573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a48919061270d565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068288604051611a7c929190612760565b60405180910390a15b505050505050506000600d60006101000a81548160ff021916908315150217905550565b600080600603611abb57819050611bf7565b6000611ae46064611ad6600686611c5b90919063ffffffff16565b611cd590919063ffffffff16565b9050611b3881600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bfd90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bd89190611d9b565b60405180910390a3611bf3818461136990919063ffffffff16565b9150505b92915050565b6000808284611c0c91906123b8565b905083811015611c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c48906127d5565b60405180910390fd5b8091505092915050565b6000808303611c6d5760009050611ccf565b60008284611c7b91906122be565b9050828482611c8a9190612824565b14611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc1906128c7565b60405180910390fd5b809150505b92915050565b6000611d1783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d1f565b905092915050565b60008083118290611d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5d9190611e4f565b60405180910390fd5b5060008385611d759190612824565b9050809150509392505050565b6000819050919050565b611d9581611d82565b82525050565b6000602082019050611db06000830184611d8c565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611df0578082015181840152602081019050611dd5565b83811115611dff576000848401525b50505050565b6000601f19601f8301169050919050565b6000611e2182611db6565b611e2b8185611dc1565b9350611e3b818560208601611dd2565b611e4481611e05565b840191505092915050565b60006020820190508181036000830152611e698184611e16565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ea182611e76565b9050919050565b611eb181611e96565b8114611ebc57600080fd5b50565b600081359050611ece81611ea8565b92915050565b611edd81611d82565b8114611ee857600080fd5b50565b600081359050611efa81611ed4565b92915050565b60008060408385031215611f1757611f16611e71565b5b6000611f2585828601611ebf565b9250506020611f3685828601611eeb565b9150509250929050565b60008115159050919050565b611f5581611f40565b82525050565b6000602082019050611f706000830184611f4c565b92915050565b600080600060608486031215611f8f57611f8e611e71565b5b6000611f9d86828701611ebf565b9350506020611fae86828701611ebf565b9250506040611fbf86828701611eeb565b9150509250925092565b600060208284031215611fdf57611fde611e71565b5b6000611fed84828501611ebf565b91505092915050565b600060ff82169050919050565b61200c81611ff6565b82525050565b60006020820190506120276000830184612003565b92915050565b61203681611e96565b82525050565b6000602082019050612051600083018461202d565b92915050565b6000806040838503121561206e5761206d611e71565b5b600061207c85828601611ebf565b925050602061208d85828601611ebf565b9150509250929050565b6000819050919050565b60006120bc6120b76120b284611e76565b612097565b611e76565b9050919050565b60006120ce826120a1565b9050919050565b60006120e0826120c3565b9050919050565b6120f0816120d5565b82525050565b600060208201905061210b60008301846120e7565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156121975780860481111561217357612172612111565b5b60018516156121825780820291505b808102905061219085612140565b9450612157565b94509492505050565b6000826121b0576001905061226c565b816121be576000905061226c565b81600181146121d457600281146121de5761220d565b600191505061226c565b60ff8411156121f0576121ef612111565b5b8360020a91508482111561220757612206612111565b5b5061226c565b5060208310610133831016604e8410600b84101617156122425782820a90508381111561223d5761223c612111565b5b61226c565b61224f848484600161214d565b9250905081840481111561226657612265612111565b5b81810290505b9392505050565b600061227e82611d82565b915061228983611ff6565b92506122b67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846121a0565b905092915050565b60006122c982611d82565b91506122d483611d82565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561230d5761230c612111565b5b828202905092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061234e600683611dc1565b915061235982612318565b602082019050919050565b6000602082019050818103600083015261237d81612341565b9050919050565b600061238f82611d82565b915061239a83611d82565b9250828210156123ad576123ac612111565b5b828203905092915050565b60006123c382611d82565b91506123ce83611d82565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561240357612402612111565b5b828201905092915050565b7f6d61782077616c6c6574206c696d697420726561636865640000000000000000600082015250565b6000612444601883611dc1565b915061244f8261240e565b602082019050919050565b6000602082019050818103600083015261247381612437565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006124b0601183611dc1565b91506124bb8261247a565b602082019050919050565b600060208201905081810360008301526124df816124a3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061256961256461255f84612544565b612097565b611d82565b9050919050565b6125798161254e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6125b481611e96565b82525050565b60006125c683836125ab565b60208301905092915050565b6000602082019050919050565b60006125ea8261257f565b6125f4818561258a565b93506125ff8361259b565b8060005b8381101561263057815161261788826125ba565b9750612622836125d2565b925050600181019050612603565b5085935050505092915050565b600060a0820190506126526000830188611d8c565b61265f6020830187612570565b818103604083015261267181866125df565b9050612680606083018561202d565b61268d6080830184611d8c565b9695505050505050565b600060c0820190506126ac600083018961202d565b6126b96020830188611d8c565b6126c66040830187612570565b6126d36060830186612570565b6126e0608083018561202d565b6126ed60a0830184611d8c565b979650505050505050565b60008151905061270781611ed4565b92915050565b60008060006060848603121561272657612725611e71565b5b6000612734868287016126f8565b9350506020612745868287016126f8565b9250506040612756868287016126f8565b9150509250925092565b60006040820190506127756000830185611d8c565b6127826020830184611d8c565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006127bf601b83611dc1565b91506127ca82612789565b602082019050919050565b600060208201905081810360008301526127ee816127b2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061282f82611d82565b915061283a83611d82565b92508261284a576128496127f5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006128b1602183611dc1565b91506128bc82612855565b604082019050919050565b600060208201905081810360008301526128e0816128a4565b905091905056fea26469706673582212203781254aa32b291da66568ebd9706cb5ad7218a0bf7cbb24412a428b63f2029864736f6c634300080e0033

Deployed Bytecode Sourcemap

3330:6956:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4566:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3590:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5987:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4330:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3740:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4287:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6505:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10077:141;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2279:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3699:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6211:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4240:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4529:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3925:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2390:131;;;;;;;;;;;;;:::i;:::-;;3867:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3813:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5762:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3647:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4193:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4501:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6341:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4383:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5846:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4426:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4470:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4566:49;;;;:::o;3590:50::-;;;;;;;;;;;;;;;;;;;:::o;5987:216::-;6062:4;6114:6;6079:11;:23;6091:10;6079:23;;;;;;;;;;;;;;;:32;6103:7;6079:32;;;;;;;;;;;;;;;:41;;;;6157:7;6136:37;;6145:10;6136:37;;;6166:6;6136:37;;;;;;:::i;:::-;;;;;;;;6191:4;6184:11;;5987:216;;;;:::o;4330:44::-;4371:3;4330:44;:::o;3740:64::-;3732:1;3792:2;:12;;;;:::i;:::-;3778:11;:26;;;;:::i;:::-;3740:64;:::o;4287:36::-;4322:1;4287:36;:::o;6505:370::-;6605:4;6660:17;6625:11;:19;6637:6;6625:19;;;;;;;;;;;;;;;:31;6645:10;6625:31;;;;;;;;;;;;;;;;:52;6622:186;;6727:69;6763:6;6727:69;;;;;;;;;;;;;;;;;:11;:19;6739:6;6727:19;;;;;;;;;;;;;;;:31;6747:10;6727:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;6693:11;:19;6705:6;6693:19;;;;;;;;;;;;;;;:31;6713:10;6693:31;;;;;;;;;;;;;;;:103;;;;6622:186;6827:40;6841:6;6849:9;6860:6;6827:13;:40::i;:::-;6820:47;;6505:370;;;;;:::o;10077:141::-;10130:7;10157:53;10194:9;:15;3539:42;10194:15;;;;;;;;;;;;;;;;10157:32;10173:9;:15;3466:42;10173:15;;;;;;;;;;;;;;;;3732:1;3792:2;:12;;;;:::i;:::-;3778:11;:26;;;;:::i;:::-;10157:15;;:32;;;;:::i;:::-;:36;;:53;;;;:::i;:::-;10150:60;;10077:141;:::o;2279:103::-;2334:4;2369:5;;;;;;;;;;;2358:16;;:7;:16;;;2351:23;;2279:103;;;:::o;3699:34::-;3732:1;3699:34;:::o;6211:122::-;6266:4;6290:35;6298:7;6307:17;6290:7;:35::i;:::-;6283:42;;6211:122;;;:::o;4240:40::-;4279:1;4240:40;:::o;4529:30::-;;;;;;;;;;;;;:::o;3925:45::-;;;;;;;;;;;;;;;;;:::o;2390:131::-;2230:19;2238:10;2230:7;:19::i;:::-;2222:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2452:32:::1;2481:1;2452:32;;;;;;:::i;:::-;;;;;;;;2511:1;2495:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2390:131::o:0;3867:49::-;;;;:::o;3813:47::-;;;;:::o;5762:78::-;5814:7;5832:5;;;;;;;;;;;5825:12;;5762:78;:::o;3647:45::-;;;;;;;;;;;;;;;;;;;:::o;4193:40::-;4232:1;4193:40;:::o;4501:19::-;;;;;;;;;;;;;:::o;6341:156::-;6421:4;6445:44;6459:10;6471:9;6482:6;6445:13;:44::i;:::-;6438:51;;6341:156;;;;:::o;4383:36::-;;;;;;;;;;;;;:::o;5846:133::-;5930:7;5948:11;:19;5960:6;5948:19;;;;;;;;;;;;;;;:28;5968:7;5948:28;;;;;;;;;;;;;;;;5941:35;;5846:133;;;;:::o;4426:35::-;;;;;;;;;;;;;:::o;4470:24::-;;;;;;;;;;;;;:::o;598:192::-;684:7;717:1;712;:6;;720:12;704:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;744:9;760:1;756;:5;;;;:::i;:::-;744:17;;781:1;774:8;;;598:192;;;;;:::o;6883:950::-;6975:4;6995:6;;;;;;;;;;;6992:63;;;7011:41;7026:6;7034:9;7045:6;7011:14;:41::i;:::-;7004:48;;;;6992:63;7072:15;7080:6;7072:7;:15::i;:::-;7071:16;:48;;;;;7092:19;:27;7112:6;7092:27;;;;;;;;;;;;;;;;;;;;;;;;;7091:28;7071:48;:83;;;;;7124:19;:30;7144:9;7124:30;;;;;;;;;;;;;;;;;;;;;;;;;7123:31;7071:83;:104;;;;;7171:4;;;;;;;;;;;7158:17;;:9;:17;;;;7071:104;7067:223;;;7235:15;;7224:6;7201:9;:20;7211:9;7201:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;7200:50;;7192:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;7067:223;7321:12;;7311:6;:22;;7310:51;;;;7338:15;:23;7354:6;7338:23;;;;;;;;;;;;;;;;;;;;;;;;;7310:51;:81;;;;7365:15;:26;7381:9;7365:26;;;;;;;;;;;;;;;;;;;;;;;;;7310:81;7302:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;7429:16;:14;:16::i;:::-;7426:35;;;7448:10;:8;:10::i;:::-;7426:35;7493:53;7515:6;7493:53;;;;;;;;;;;;;;;;;:9;:17;7503:6;7493:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;7473:9;:17;7483:6;7473:17;;;;;;;;;;;;;;;:73;;;;7559:22;7585:11;:19;7597:6;7585:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;7608:11;:22;7620:9;7608:22;;;;;;;;;;;;;;;;;;;;;;;;;7585:45;7584:82;;7643:23;7651:6;7659;7643:7;:23::i;:::-;7584:82;;;7634:6;7584:82;7559:107;;7702:40;7727:14;7702:9;:20;7712:9;7702:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;7679:9;:20;7689:9;7679:20;;;;;;;;;;;;;;;:63;;;;7777:9;7760:43;;7769:6;7760:43;;;7788:14;7760:43;;;;;;:::i;:::-;;;;;;;;7821:4;7814:11;;;6883:950;;;;;;:::o;456:136::-;514:7;541:43;545:1;548;541:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;534:50;;456:136;;;;:::o;7845:330::-;7938:4;7975:53;7997:6;7975:53;;;;;;;;;;;;;;;;;:9;:17;7985:6;7975:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;7955:9;:17;7965:6;7955:17;;;;;;;;;;;;;;;:73;;;;8062:32;8087:6;8062:9;:20;8072:9;8062:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8039:9;:20;8049:9;8039:20;;;;;;;;;;;;;;;:55;;;;8127:9;8110:35;;8119:6;8110:35;;;8138:6;8110:35;;;;;;:::i;:::-;;;;;;;;8163:4;8156:11;;7845:330;;;;;:::o;8596:197::-;8645:4;8683;;;;;;;;;;;8669:18;;:10;:18;;;;:38;;;;;8701:6;;;;;;;;;;;8700:7;8669:38;:62;;;;;8720:11;;;;;;;;;;;8669:62;:116;;;;;8772:13;;8744:9;:24;8762:4;8744:24;;;;;;;;;;;;;;;;:41;;8669:116;8662:123;;8596:197;:::o;8801:1266::-;4671:4;4662:6;;:13;;;;;;;;;;;;;;;;;;8850:23:::1;8876:52;8926:1;8876:45;4322:1;8876:31;4232:1;8876:13;;:17;;:31;;;;:::i;:::-;:35;;:45;;;;:::i;:::-;:49;;:52;;;;:::i;:::-;8850:78;;8939:20;8962:34;8980:15;8962:13;;:17;;:34;;;;:::i;:::-;8939:57;;9009:21;9047:1;9033:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9009:40;;9078:4;9060;9065:1;9060:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9104:4;9094;9099:1;9094:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;9121:6;;;;;;;;;;;:57;;;9193:12;9220:1;9236:4;9263;9283:15;9121:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9322:17;9342:21;9322:41;;9376:19;9398:33;9411:19;9428:1;4232::::0;9411:16:::1;;:19;;;;:::i;:::-;4322:1;9398:12;;:33;;;;:::i;:::-;9376:55;;9450:26;9479:51;9528:1;9479:44;9511:11;9479:27;4232:1;9479:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;9450:80;;9541:26;9570:44;9602:11;9570:27;4279:1;9570:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;9541:73;;9635:20;;;;;;;;;;;9627:38;;:58;9666:18;9627:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;9719:1;9701:15;:19;9698:362;;;9736:6;;;;;;;;;;;:22;;;9766:18;9812:4;9836:15;9870:1;9890::::0;9910:21:::1;;;;;;;;;;;9950:15;9736:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10000:48;10012:18;10032:15;10000:48;;;;;;;:::i;:::-;;;;;;;;9698:362;8839:1228;;;;;;;4689:5:::0;4680:6;;:14;;;;;;;;;;;;;;;;;;8801:1266::o;8185:403::-;8252:7;8287:1;4322;8275:13;8272:58;;8312:6;8305:13;;;;8272:58;8342:17;8362:40;4371:3;8362:20;4322:1;8362:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;8342:60;;8442:39;8471:9;8442;:24;8460:4;8442:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8415:9;:24;8433:4;8415:24;;;;;;;;;;;;;;;:66;;;;8522:4;8497:42;;8506:6;8497:42;;;8529:9;8497:42;;;;;;:::i;:::-;;;;;;;;8559:21;8570:9;8559:6;:10;;:21;;;;:::i;:::-;8552:28;;;8185:403;;;;;:::o;269:181::-;327:7;347:9;363:1;359;:5;;;;:::i;:::-;347:17;;388:1;383;:6;;375:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;441:1;434:8;;;269:181;;;;:::o;796:250::-;854:7;883:1;878;:6;874:47;;908:1;901:8;;;;874:47;933:9;949:1;945;:5;;;;:::i;:::-;933:17;;978:1;973;969;:5;;;;:::i;:::-;:10;961:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1037:1;1030:8;;;796:250;;;;;:::o;1052:132::-;1110:7;1137:39;1141:1;1144;1137:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1130:46;;1052:132;;;;:::o;1190:189::-;1276:7;1308:1;1304;:5;1311:12;1296:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1335:9;1351:1;1347;:5;;;;:::i;:::-;1335:17;;1370:1;1363:8;;;1190: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:60::-;6096:3;6117:5;6110:12;;6068:60;;;:::o;6134:142::-;6184:9;6217:53;6235:34;6244:24;6262:5;6244:24;:::i;:::-;6235:34;:::i;:::-;6217:53;:::i;:::-;6204:66;;6134:142;;;:::o;6282:126::-;6332:9;6365:37;6396:5;6365:37;:::i;:::-;6352:50;;6282:126;;;:::o;6414:144::-;6482:9;6515:37;6546:5;6515:37;:::i;:::-;6502:50;;6414:144;;;:::o;6564:167::-;6669:55;6718:5;6669:55;:::i;:::-;6664:3;6657:68;6564:167;;:::o;6737:258::-;6848:4;6886:2;6875:9;6871:18;6863:26;;6899:89;6985:1;6974:9;6970:17;6961:6;6899:89;:::i;:::-;6737:258;;;;:::o;7001:180::-;7049:77;7046:1;7039:88;7146:4;7143:1;7136:15;7170:4;7167:1;7160:15;7187:102;7229:8;7276:5;7273:1;7269:13;7248:34;;7187:102;;;:::o;7295:848::-;7356:5;7363:4;7387:6;7378:15;;7411:5;7402:14;;7425:712;7446:1;7436:8;7433:15;7425:712;;;7541:4;7536:3;7532:14;7526:4;7523:24;7520:50;;;7550:18;;:::i;:::-;7520:50;7600:1;7590:8;7586:16;7583:451;;;8015:4;8008:5;8004:16;7995:25;;7583:451;8065:4;8059;8055:15;8047:23;;8095:32;8118:8;8095:32;:::i;:::-;8083:44;;7425:712;;;7295:848;;;;;;;:::o;8149:1073::-;8203:5;8394:8;8384:40;;8415:1;8406:10;;8417:5;;8384:40;8443:4;8433:36;;8460:1;8451:10;;8462:5;;8433:36;8529:4;8577:1;8572:27;;;;8613:1;8608:191;;;;8522:277;;8572:27;8590:1;8581:10;;8592:5;;;8608:191;8653:3;8643:8;8640:17;8637:43;;;8660:18;;:::i;:::-;8637:43;8709:8;8706:1;8702:16;8693:25;;8744:3;8737:5;8734:14;8731:40;;;8751:18;;:::i;:::-;8731:40;8784:5;;;8522:277;;8908:2;8898:8;8895:16;8889:3;8883:4;8880:13;8876:36;8858:2;8848:8;8845:16;8840:2;8834:4;8831:12;8827:35;8811:111;8808:246;;;8964:8;8958:4;8954:19;8945:28;;8999:3;8992:5;8989:14;8986:40;;;9006:18;;:::i;:::-;8986:40;9039:5;;8808:246;9079:42;9117:3;9107:8;9101:4;9098:1;9079:42;:::i;:::-;9064:57;;;;9153:4;9148:3;9144:14;9137:5;9134:25;9131:51;;;9162:18;;:::i;:::-;9131:51;9211:4;9204:5;9200:16;9191:25;;8149:1073;;;;;;:::o;9228:281::-;9286:5;9310:23;9328:4;9310:23;:::i;:::-;9302:31;;9354:25;9370:8;9354:25;:::i;:::-;9342:37;;9398:104;9435:66;9425:8;9419:4;9398:104;:::i;:::-;9389:113;;9228:281;;;;:::o;9515:348::-;9555:7;9578:20;9596:1;9578:20;:::i;:::-;9573:25;;9612:20;9630:1;9612:20;:::i;:::-;9607:25;;9800:1;9732:66;9728:74;9725:1;9722:81;9717:1;9710:9;9703:17;9699:105;9696:131;;;9807:18;;:::i;:::-;9696:131;9855:1;9852;9848:9;9837:20;;9515:348;;;;:::o;9869:156::-;10009:8;10005:1;9997:6;9993:14;9986:32;9869:156;:::o;10031:365::-;10173:3;10194:66;10258:1;10253:3;10194:66;:::i;:::-;10187:73;;10269:93;10358:3;10269:93;:::i;:::-;10387:2;10382:3;10378:12;10371:19;;10031:365;;;:::o;10402:419::-;10568:4;10606:2;10595:9;10591:18;10583:26;;10655:9;10649:4;10645:20;10641:1;10630:9;10626:17;10619:47;10683:131;10809:4;10683:131;:::i;:::-;10675:139;;10402:419;;;:::o;10827:191::-;10867:4;10887:20;10905:1;10887:20;:::i;:::-;10882:25;;10921:20;10939:1;10921:20;:::i;:::-;10916:25;;10960:1;10957;10954:8;10951:34;;;10965:18;;:::i;:::-;10951:34;11010:1;11007;11003:9;10995:17;;10827:191;;;;:::o;11024:305::-;11064:3;11083:20;11101:1;11083:20;:::i;:::-;11078:25;;11117:20;11135:1;11117:20;:::i;:::-;11112:25;;11271:1;11203:66;11199:74;11196:1;11193:81;11190:107;;;11277:18;;:::i;:::-;11190:107;11321:1;11318;11314:9;11307:16;;11024:305;;;;:::o;11335:174::-;11475:26;11471:1;11463:6;11459:14;11452:50;11335:174;:::o;11515:366::-;11657:3;11678:67;11742:2;11737:3;11678:67;:::i;:::-;11671:74;;11754:93;11843:3;11754:93;:::i;:::-;11872:2;11867:3;11863:12;11856:19;;11515:366;;;:::o;11887:419::-;12053:4;12091:2;12080:9;12076:18;12068:26;;12140:9;12134:4;12130:20;12126:1;12115:9;12111:17;12104:47;12168:131;12294:4;12168:131;:::i;:::-;12160:139;;11887:419;;;:::o;12312:167::-;12452:19;12448:1;12440:6;12436:14;12429:43;12312:167;:::o;12485:366::-;12627:3;12648:67;12712:2;12707:3;12648:67;:::i;:::-;12641:74;;12724:93;12813:3;12724:93;:::i;:::-;12842:2;12837:3;12833:12;12826:19;;12485:366;;;:::o;12857:419::-;13023:4;13061:2;13050:9;13046:18;13038:26;;13110:9;13104:4;13100:20;13096:1;13085:9;13081:17;13074:47;13138:131;13264:4;13138:131;:::i;:::-;13130:139;;12857:419;;;:::o;13282:180::-;13330:77;13327:1;13320:88;13427:4;13424:1;13417:15;13451:4;13448:1;13441:15;13468:180;13516:77;13513:1;13506:88;13613:4;13610:1;13603:15;13637:4;13634:1;13627:15;13654:85;13699:7;13728:5;13717:16;;13654:85;;;:::o;13745:158::-;13803:9;13836:61;13854:42;13863:32;13889:5;13863:32;:::i;:::-;13854:42;:::i;:::-;13836:61;:::i;:::-;13823:74;;13745:158;;;:::o;13909:147::-;14004:45;14043:5;14004:45;:::i;:::-;13999:3;13992:58;13909:147;;:::o;14062:114::-;14129:6;14163:5;14157:12;14147:22;;14062:114;;;:::o;14182:184::-;14281:11;14315:6;14310:3;14303:19;14355:4;14350:3;14346:14;14331:29;;14182:184;;;;:::o;14372:132::-;14439:4;14462:3;14454:11;;14492:4;14487:3;14483:14;14475:22;;14372:132;;;:::o;14510:108::-;14587:24;14605:5;14587:24;:::i;:::-;14582:3;14575:37;14510:108;;:::o;14624:179::-;14693:10;14714:46;14756:3;14748:6;14714:46;:::i;:::-;14792:4;14787:3;14783:14;14769:28;;14624:179;;;;:::o;14809:113::-;14879:4;14911;14906:3;14902:14;14894:22;;14809:113;;;:::o;14958:732::-;15077:3;15106:54;15154:5;15106:54;:::i;:::-;15176:86;15255:6;15250:3;15176:86;:::i;:::-;15169:93;;15286:56;15336:5;15286:56;:::i;:::-;15365:7;15396:1;15381:284;15406:6;15403:1;15400:13;15381:284;;;15482:6;15476:13;15509:63;15568:3;15553:13;15509:63;:::i;:::-;15502:70;;15595:60;15648:6;15595:60;:::i;:::-;15585:70;;15441:224;15428:1;15425;15421:9;15416:14;;15381:284;;;15385:14;15681:3;15674:10;;15082:608;;;14958:732;;;;:::o;15696:831::-;15959:4;15997:3;15986:9;15982:19;15974:27;;16011:71;16079:1;16068:9;16064:17;16055:6;16011:71;:::i;:::-;16092:80;16168:2;16157:9;16153:18;16144:6;16092:80;:::i;:::-;16219:9;16213:4;16209:20;16204:2;16193:9;16189:18;16182:48;16247:108;16350:4;16341:6;16247:108;:::i;:::-;16239:116;;16365:72;16433:2;16422:9;16418:18;16409:6;16365:72;:::i;:::-;16447:73;16515:3;16504:9;16500:19;16491:6;16447:73;:::i;:::-;15696:831;;;;;;;;:::o;16533:807::-;16782:4;16820:3;16809:9;16805:19;16797:27;;16834:71;16902:1;16891:9;16887:17;16878:6;16834:71;:::i;:::-;16915:72;16983:2;16972:9;16968:18;16959:6;16915:72;:::i;:::-;16997:80;17073:2;17062:9;17058:18;17049:6;16997:80;:::i;:::-;17087;17163:2;17152:9;17148:18;17139:6;17087:80;:::i;:::-;17177:73;17245:3;17234:9;17230:19;17221:6;17177:73;:::i;:::-;17260;17328:3;17317:9;17313:19;17304:6;17260:73;:::i;:::-;16533:807;;;;;;;;;:::o;17346:143::-;17403:5;17434:6;17428:13;17419:22;;17450:33;17477:5;17450:33;:::i;:::-;17346:143;;;;:::o;17495:663::-;17583:6;17591;17599;17648:2;17636:9;17627:7;17623:23;17619:32;17616:119;;;17654:79;;:::i;:::-;17616:119;17774:1;17799:64;17855:7;17846:6;17835:9;17831:22;17799:64;:::i;:::-;17789:74;;17745:128;17912:2;17938:64;17994:7;17985:6;17974:9;17970:22;17938:64;:::i;:::-;17928:74;;17883:129;18051:2;18077:64;18133:7;18124:6;18113:9;18109:22;18077:64;:::i;:::-;18067:74;;18022:129;17495:663;;;;;:::o;18164:332::-;18285:4;18323:2;18312:9;18308:18;18300:26;;18336:71;18404:1;18393:9;18389:17;18380:6;18336:71;:::i;:::-;18417:72;18485:2;18474:9;18470:18;18461:6;18417:72;:::i;:::-;18164:332;;;;;:::o;18502:177::-;18642:29;18638:1;18630:6;18626:14;18619:53;18502:177;:::o;18685:366::-;18827:3;18848:67;18912:2;18907:3;18848:67;:::i;:::-;18841:74;;18924:93;19013:3;18924:93;:::i;:::-;19042:2;19037:3;19033:12;19026:19;;18685:366;;;:::o;19057:419::-;19223:4;19261:2;19250:9;19246:18;19238:26;;19310:9;19304:4;19300:20;19296:1;19285:9;19281:17;19274:47;19338:131;19464:4;19338:131;:::i;:::-;19330:139;;19057:419;;;:::o;19482:180::-;19530:77;19527:1;19520:88;19627:4;19624:1;19617:15;19651:4;19648:1;19641:15;19668:185;19708:1;19725:20;19743:1;19725:20;:::i;:::-;19720:25;;19759:20;19777:1;19759:20;:::i;:::-;19754:25;;19798:1;19788:35;;19803:18;;:::i;:::-;19788:35;19845:1;19842;19838:9;19833:14;;19668:185;;;;:::o;19859:220::-;19999:34;19995:1;19987:6;19983:14;19976:58;20068:3;20063:2;20055:6;20051:15;20044:28;19859:220;:::o;20085:366::-;20227:3;20248:67;20312:2;20307:3;20248:67;:::i;:::-;20241:74;;20324:93;20413:3;20324:93;:::i;:::-;20442:2;20437:3;20433:12;20426:19;;20085:366;;;:::o;20457:419::-;20623:4;20661:2;20650:9;20646:18;20638:26;;20710:9;20704:4;20700:20;20696:1;20685:9;20681:17;20674:47;20738:131;20864:4;20738:131;:::i;:::-;20730:139;;20457:419;;;:::o

Swarm Source

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