ETH Price: $3,069.11 (-1.11%)

Token

DogeBread (DogeBread)
 

Overview

Max Total Supply

100,000,000 DogeBread

Holders

115

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000017701282 DogeBread

Value
$0.00
0x3e3f55174c4f67947598a2bd6e0c41df3641fca2
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:
DogeBread

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-27
*/

/**
        
        Website   : http://dogebread.xyz/
        Telegram  : https://t.me/DogeBreadERC20
        Twitter/X : https://twitter.com/DogeBreadERC

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.18;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

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

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function factory() external pure returns (address);

    function WETH() external pure returns (address);
}

contract DogeBread is Context, IERC20, Ownable {
    uint256 private constant _totalSupply = 100_000_000e18;
    uint256 private constant onePercent = 1_000_000e18;
    uint256 private constant tenthPercent = 100_000e18;
    uint256 private minSwap = 250_000e18;
    uint256 private maxSwap = onePercent;
    uint8 private constant _decimals = 18;

    IUniswapV2Router02 immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address immutable WETH;
    address payable immutable marketingWallet;

    uint256 public buyTax;
    uint256 public sellTax;
    uint public lpTax;
    
    
    
    uint8 private launch;
    uint8 private inSwapAndLiquify;

    uint256 private launchBlock;
    uint256 public maxTxAmount = onePercent; //max Tx for first mins after launch

    string private constant _name = "DogeBread";
    string private constant _symbol = "DogeBread";

    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFeeWallet;

    constructor() {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        WETH = uniswapV2Router.WETH();
        buyTax = 20;
        sellTax = 30;
        lpTax = 1;

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            WETH
        );

        
        marketingWallet = payable(msg.sender);
        _balance[msg.sender] = _totalSupply;
        _isExcludedFromFeeWallet[marketingWallet] = true;
        _isExcludedFromFeeWallet[msg.sender] = true;
        _isExcludedFromFeeWallet[address(this)] = true;
        _allowances[address(this)][address(uniswapV2Router)] = type(uint256)
            .max;
        _allowances[msg.sender][address(uniswapV2Router)] = type(uint256).max;
        _allowances[marketingWallet][address(uniswapV2Router)] = type(uint256)
            .max;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()] - amount
        );
        return true;
    }

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

    function openTrading() external onlyOwner {
        launch = 1;
        launchBlock = block.number;
    }

    function addExcludedWallet(address wallet) external onlyOwner {
        _isExcludedFromFeeWallet[wallet] = true;
    }

    function removeLimits() external onlyOwner {
        maxTxAmount = _totalSupply;
    }

    function changeTax(uint256 newBuyTax, uint256 newSellTax, uint newLpTax) external onlyOwner {
        require(newBuyTax < 90 || newSellTax < 90, "Cannot set taxes above 90%");
        buyTax = newBuyTax;
        sellTax = newSellTax;
        lpTax = newLpTax;
    }

    function manage_blacklist(address[] calldata addresses) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            _balance[addresses[i]] = 0;
        }
    }

    function changeMaxSwapThreshold(uint256 newMaxSwapThreshold) external onlyOwner {
        require(newMaxSwapThreshold < 999, "Max Swap cannot be greater than 99%");
        require(newMaxSwapThreshold > minSwap, "Max Swap cannot be less than min swap");
        maxSwap = newMaxSwapThreshold * tenthPercent;
    }

    function changeMinSwapThreshold(uint256 newMinSwapThreshold) external onlyOwner {
        require(newMinSwapThreshold < 999, "Min Swap cannot be greater than 99%");
        require(newMinSwapThreshold < maxSwap, "Min Swap cannot be greater than max swap");
        minSwap = newMinSwapThreshold * tenthPercent;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 1e9, "Min transfer amt");

        uint256 _tax;
        if (_isExcludedFromFeeWallet[from] || _isExcludedFromFeeWallet[to]) {
            _tax = 0;
        } else {
            require(
                launch != 0 && amount <= maxTxAmount,
                "Launch / Max TxAmount 1% at launch"
            );

            if (inSwapAndLiquify == 1) {
                //No tax transfer
                _balance[from] -= amount;
                _balance[to] += amount;

                emit Transfer(from, to, amount);
                return;
            }

            if (from == uniswapV2Pair) {
                _tax = buyTax + lpTax;
            } else if (to == uniswapV2Pair) {
                uint256 tokensToSwap = _balance[address(this)];
                if (tokensToSwap > minSwap && inSwapAndLiquify == 0) {
                    if (tokensToSwap > maxSwap) {
                        tokensToSwap = maxSwap;
                    }
                    
                    uint liqidityToken = (tokensToSwap * lpTax) / (((buyTax + sellTax) / 2 ) + lpTax );
                    uint tokensTosell = tokensToSwap - liqidityToken;

                    inSwapAndLiquify = 1;
                    address[] memory path = new address[](2);
                    path[0] = address(this);
                    path[1] = WETH;
                    
                    uniswapV2Router
                        .swapExactTokensForETHSupportingFeeOnTransferTokens(
                            tokensTosell,
                            0,
                            path,
                            marketingWallet,
                            block.timestamp
                        );
                    
                    
                    if ( liqidityToken > 0) {
                        
                        uniswapV2Router
                        .swapExactTokensForETHSupportingFeeOnTransferTokens(
                            liqidityToken / 2,
                            0,
                            path,
                            address(this),
                            block.timestamp
                        );
                        
                        uint newBal = address(this).balance;
                        uniswapV2Router
                        .addLiquidityETH{value : newBal}(address(this),
                            liqidityToken / 2,
                            0,
                            0,
                            owner(),
                            block.timestamp
                        );
                    }
                    inSwapAndLiquify = 0;
                    
                }
                
                _tax = sellTax + lpTax;
            } else {
                _tax = 0;
            }
        }

        //Is there tax for sender|receiver?
        if (_tax != 0) {
            //Tax transfer
            uint256 taxTokens = (amount * _tax) / 100;
            uint256 transferAmount = amount - taxTokens;

            _balance[from] -= amount;
            _balance[to] += transferAmount;
            _balance[address(this)] += taxTokens;
            emit Transfer(from, address(this), taxTokens);
            emit Transfer(from, to, transferAmount);
        } else {
            //No tax transfer
            _balance[from] -= amount;
            _balance[to] += amount;

            emit Transfer(from, to, amount);
        }
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"addExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxSwapThreshold","type":"uint256"}],"name":"changeMaxSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinSwapThreshold","type":"uint256"}],"name":"changeMinSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"},{"internalType":"uint256","name":"newLpTax","type":"uint256"}],"name":"changeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"lpTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","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":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6101006040526934f086f3b33b6840000060025569d3c21bcecceda100000060035569d3c21bcecceda10000006009553480156200003c57600080fd5b5060006200004f6200071f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000183573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a9919062000791565b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250506014600481905550601e600581905550600160068190555060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000242573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000268919062000791565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060c0516040518363ffffffff1660e01b8152600401620002a6929190620007d4565b6020604051808303816000875af1158015620002c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ec919062000791565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250503373ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250506a52b7d2dcc80cd2e4000000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600c600060e05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b600060e05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620006a76200071f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a52b7d2dcc80cd2e40000006040516200071191906200081c565b60405180910390a362000839565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000759826200072c565b9050919050565b6200076b816200074c565b81146200077757600080fd5b50565b6000815190506200078b8162000760565b92915050565b600060208284031215620007aa57620007a962000727565b5b6000620007ba848285016200077a565b91505092915050565b620007ce816200074c565b82525050565b6000604082019050620007eb6000830185620007c3565b620007fa6020830184620007c3565b9392505050565b6000819050919050565b620008168162000801565b82525050565b60006020820190506200083360008301846200080b565b92915050565b60805160a05160c05160e051612ed76200088f60003960006118d90152600061182a0152600081816107e8015281816115e3015261164d0152600081816118990152818161195601526119fb0152612ed76000f3fe60806040526004361061014f5760003560e01c8063751039fc116100b6578063aca1f1571161006f578063aca1f1571461047b578063c9567bf9146104a4578063cc1776d3146104bb578063dba9d420146104e6578063dd62ed3e1461050f578063f2fde38b1461054c57610156565b8063751039fc1461037d5780638c0b5e22146103945780638da5cb5b146103bf57806395d89b41146103ea578063974ea01e14610415578063a9059cbb1461043e57610156565b806341e1259d1161010857806341e1259d1461028157806349bd5a5e146102aa5780634f7041a5146102d557806355811acc1461030057806370a0823114610329578063715018a61461036657610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c35780631de3b450146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610575565b60405161017d9190611fd4565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190612094565b6105b2565b6040516101ba91906120ef565b60405180910390f35b3480156101cf57600080fd5b506101d86105d0565b6040516101e59190612119565b60405180910390f35b3480156101fa57600080fd5b506102036105e3565b6040516102109190612119565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190612134565b6105e9565b60405161024d91906120ef565b60405180910390f35b34801561026257600080fd5b5061026b6106a1565b60405161027891906121a3565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a391906121be565b6106aa565b005b3480156102b657600080fd5b506102bf6107e6565b6040516102cc91906121fa565b60405180910390f35b3480156102e157600080fd5b506102ea61080a565b6040516102f79190612119565b60405180910390f35b34801561030c57600080fd5b50610327600480360381019061032291906121be565b610810565b005b34801561033557600080fd5b50610350600480360381019061034b9190612215565b61094c565b60405161035d9190612119565b60405180910390f35b34801561037257600080fd5b5061037b610995565b005b34801561038957600080fd5b50610392610ae8565b005b3480156103a057600080fd5b506103a9610b91565b6040516103b69190612119565b60405180910390f35b3480156103cb57600080fd5b506103d4610b97565b6040516103e191906121fa565b60405180910390f35b3480156103f657600080fd5b506103ff610bc0565b60405161040c9190611fd4565b60405180910390f35b34801561042157600080fd5b5061043c60048036038101906104379190612242565b610bfd565b005b34801561044a57600080fd5b5061046560048036038101906104609190612094565b610cfa565b60405161047291906120ef565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d91906122fa565b610d18565b005b3480156104b057600080fd5b506104b9610e3d565b005b3480156104c757600080fd5b506104d0610ef7565b6040516104dd9190612119565b60405180910390f35b3480156104f257600080fd5b5061050d60048036038101906105089190612215565b610efd565b005b34801561051b57600080fd5b5061053660048036038101906105319190612347565b610fed565b6040516105439190612119565b60405180910390f35b34801561055857600080fd5b50610573600480360381019061056e9190612215565b611074565b005b60606040518060400160405280600981526020017f446f676542726561640000000000000000000000000000000000000000000000815250905090565b60006105c66105bf611115565b848461111d565b6001905092915050565b60006a52b7d2dcc80cd2e4000000905090565b60065481565b60006105f68484846112e6565b61069684610602611115565b84600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061064c611115565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461069191906123b6565b61111d565b600190509392505050565b60006012905090565b6106b2611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073690612436565b60405180910390fd5b6103e78110610783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077a906124c8565b60405180910390fd5b60035481106107c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107be9061255a565b60405180910390fd5b69152d02c7e14af6800000816107dd919061257a565b60028190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60045481565b610818611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089c90612436565b60405180910390fd5b6103e781106108e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e09061262e565b60405180910390fd5b600254811161092d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610924906126c0565b60405180910390fd5b69152d02c7e14af680000081610943919061257a565b60038190555050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61099d611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2190612436565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610af0611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7490612436565b60405180910390fd5b6a52b7d2dcc80cd2e4000000600981905550565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f446f676542726561640000000000000000000000000000000000000000000000815250905090565b610c05611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8990612436565b60405180910390fd5b605a831080610ca15750605a82105b610ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd79061272c565b60405180910390fd5b826004819055508160058190555080600681905550505050565b6000610d0e610d07611115565b84846112e6565b6001905092915050565b610d20611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da490612436565b60405180910390fd5b60005b82829050811015610e38576000600a6000858585818110610dd457610dd361274c565b5b9050602002016020810190610de99190612215565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080610e319061277b565b9050610db0565b505050565b610e45611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec990612436565b60405180910390fd5b6001600760006101000a81548160ff021916908360ff16021790555043600881905550565b60055481565b610f05611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8990612436565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61107c611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090612436565b60405180910390fd5b61111281611e18565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361118c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118390612835565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f2906128c7565b60405180910390fd5b80600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112d99190612119565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c90612959565b60405180910390fd5b633b9aca00811161139b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611392906129c5565b60405180910390fd5b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061143e5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561144c5760009050611af8565b6000600760009054906101000a900460ff1660ff161415801561147157506009548211155b6114b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a790612a57565b60405180910390fd5b6001600760019054906101000a900460ff1660ff16036115e15781600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461151991906123b6565b9250508190555081600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461156f9190612a77565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115d39190612119565b60405180910390a350611e13565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361164b576006546004546116449190612a77565b9050611af7565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611af1576000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506002548111801561170557506000600760019054906101000a900460ff1660ff16145b15611ad95760035481111561171a5760035490505b600060065460026005546004546117319190612a77565b61173b9190612ada565b6117459190612a77565b60065483611753919061257a565b61175d9190612ada565b90506000818361176d91906123b6565b90506001600760016101000a81548160ff021916908360ff1602179055506000600267ffffffffffffffff8111156117a8576117a7612b0b565b5b6040519080825280602002602001820160405280156117d65781602001602082028036833780820191505090505b50905030816000815181106117ee576117ed61274c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061185d5761185c61274c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947836000847f0000000000000000000000000000000000000000000000000000000000000000426040518663ffffffff1660e01b8152600401611919959493929190612c92565b600060405180830381600087803b15801561193357600080fd5b505af1158015611947573d6000803e3d6000fd5b505050506000831115611ab9577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94760028561199d9190612ada565b60008430426040518663ffffffff1660e01b81526004016119c2959493929190612cec565b600060405180830381600087803b1580156119dc57600080fd5b505af11580156119f0573d6000803e3d6000fd5b5050505060004790507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7198230600288611a449190612ada565b600080611a4f610b97565b426040518863ffffffff1660e01b8152600401611a7196959493929190612d46565b60606040518083038185885af1158015611a8f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ab49190612dbc565b505050505b6000600760016101000a81548160ff021916908360ff1602179055505050505b600654600554611ae99190612a77565b915050611af6565b600090505b5b5b60008114611cff57600060648284611b10919061257a565b611b1a9190612ada565b905060008184611b2a91906123b6565b905083600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b7b91906123b6565b9250508190555080600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bd19190612a77565b9250508190555081600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c279190612a77565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c8b9190612119565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cf09190612119565b60405180910390a35050611e11565b81600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d4e91906123b6565b9250508190555081600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611da49190612a77565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e089190612119565b60405180910390a35b505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7e90612e81565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f7e578082015181840152602081019050611f63565b60008484015250505050565b6000601f19601f8301169050919050565b6000611fa682611f44565b611fb08185611f4f565b9350611fc0818560208601611f60565b611fc981611f8a565b840191505092915050565b60006020820190508181036000830152611fee8184611f9b565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061202b82612000565b9050919050565b61203b81612020565b811461204657600080fd5b50565b60008135905061205881612032565b92915050565b6000819050919050565b6120718161205e565b811461207c57600080fd5b50565b60008135905061208e81612068565b92915050565b600080604083850312156120ab576120aa611ff6565b5b60006120b985828601612049565b92505060206120ca8582860161207f565b9150509250929050565b60008115159050919050565b6120e9816120d4565b82525050565b600060208201905061210460008301846120e0565b92915050565b6121138161205e565b82525050565b600060208201905061212e600083018461210a565b92915050565b60008060006060848603121561214d5761214c611ff6565b5b600061215b86828701612049565b935050602061216c86828701612049565b925050604061217d8682870161207f565b9150509250925092565b600060ff82169050919050565b61219d81612187565b82525050565b60006020820190506121b86000830184612194565b92915050565b6000602082840312156121d4576121d3611ff6565b5b60006121e28482850161207f565b91505092915050565b6121f481612020565b82525050565b600060208201905061220f60008301846121eb565b92915050565b60006020828403121561222b5761222a611ff6565b5b600061223984828501612049565b91505092915050565b60008060006060848603121561225b5761225a611ff6565b5b60006122698682870161207f565b935050602061227a8682870161207f565b925050604061228b8682870161207f565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126122ba576122b9612295565b5b8235905067ffffffffffffffff8111156122d7576122d661229a565b5b6020830191508360208202830111156122f3576122f261229f565b5b9250929050565b6000806020838503121561231157612310611ff6565b5b600083013567ffffffffffffffff81111561232f5761232e611ffb565b5b61233b858286016122a4565b92509250509250929050565b6000806040838503121561235e5761235d611ff6565b5b600061236c85828601612049565b925050602061237d85828601612049565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006123c18261205e565b91506123cc8361205e565b92508282039050818111156123e4576123e3612387565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612420602083611f4f565b915061242b826123ea565b602082019050919050565b6000602082019050818103600083015261244f81612413565b9050919050565b7f4d696e20537761702063616e6e6f742062652067726561746572207468616e2060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b60006124b2602383611f4f565b91506124bd82612456565b604082019050919050565b600060208201905081810360008301526124e1816124a5565b9050919050565b7f4d696e20537761702063616e6e6f742062652067726561746572207468616e2060008201527f6d61782073776170000000000000000000000000000000000000000000000000602082015250565b6000612544602883611f4f565b915061254f826124e8565b604082019050919050565b6000602082019050818103600083015261257381612537565b9050919050565b60006125858261205e565b91506125908361205e565b925082820261259e8161205e565b915082820484148315176125b5576125b4612387565b5b5092915050565b7f4d617820537761702063616e6e6f742062652067726561746572207468616e2060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b6000612618602383611f4f565b9150612623826125bc565b604082019050919050565b600060208201905081810360008301526126478161260b565b9050919050565b7f4d617820537761702063616e6e6f74206265206c657373207468616e206d696e60008201527f2073776170000000000000000000000000000000000000000000000000000000602082015250565b60006126aa602583611f4f565b91506126b58261264e565b604082019050919050565b600060208201905081810360008301526126d98161269d565b9050919050565b7f43616e6e6f74207365742074617865732061626f766520393025000000000000600082015250565b6000612716601a83611f4f565b9150612721826126e0565b602082019050919050565b6000602082019050818103600083015261274581612709565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006127868261205e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127b8576127b7612387565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061281f602483611f4f565b915061282a826127c3565b604082019050919050565b6000602082019050818103600083015261284e81612812565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006128b1602283611f4f565b91506128bc82612855565b604082019050919050565b600060208201905081810360008301526128e0816128a4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612943602583611f4f565b915061294e826128e7565b604082019050919050565b6000602082019050818103600083015261297281612936565b9050919050565b7f4d696e207472616e7366657220616d7400000000000000000000000000000000600082015250565b60006129af601083611f4f565b91506129ba82612979565b602082019050919050565b600060208201905081810360008301526129de816129a2565b9050919050565b7f4c61756e6368202f204d6178205478416d6f756e74203125206174206c61756e60008201527f6368000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a41602283611f4f565b9150612a4c826129e5565b604082019050919050565b60006020820190508181036000830152612a7081612a34565b9050919050565b6000612a828261205e565b9150612a8d8361205e565b9250828201905080821115612aa557612aa4612387565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ae58261205e565b9150612af08361205e565b925082612b0057612aff612aab565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b6000612b69612b64612b5f84612b3a565b612b44565b61205e565b9050919050565b612b7981612b4e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612bb481612020565b82525050565b6000612bc68383612bab565b60208301905092915050565b6000602082019050919050565b6000612bea82612b7f565b612bf48185612b8a565b9350612bff83612b9b565b8060005b83811015612c30578151612c178882612bba565b9750612c2283612bd2565b925050600181019050612c03565b5085935050505092915050565b6000612c58612c53612c4e84612000565b612b44565b612000565b9050919050565b6000612c6a82612c3d565b9050919050565b6000612c7c82612c5f565b9050919050565b612c8c81612c71565b82525050565b600060a082019050612ca7600083018861210a565b612cb46020830187612b70565b8181036040830152612cc68186612bdf565b9050612cd56060830185612c83565b612ce2608083018461210a565b9695505050505050565b600060a082019050612d01600083018861210a565b612d0e6020830187612b70565b8181036040830152612d208186612bdf565b9050612d2f60608301856121eb565b612d3c608083018461210a565b9695505050505050565b600060c082019050612d5b60008301896121eb565b612d68602083018861210a565b612d756040830187612b70565b612d826060830186612b70565b612d8f60808301856121eb565b612d9c60a083018461210a565b979650505050505050565b600081519050612db681612068565b92915050565b600080600060608486031215612dd557612dd4611ff6565b5b6000612de386828701612da7565b9350506020612df486828701612da7565b9250506040612e0586828701612da7565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612e6b602683611f4f565b9150612e7682612e0f565b604082019050919050565b60006020820190508181036000830152612e9a81612e5e565b905091905056fea264697066735822122063e57465ae605b0ebb994a5f8b2409a4a89dbaa113b4aa9a5f6b23bdb3d3b65b64736f6c63430008120033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063751039fc116100b6578063aca1f1571161006f578063aca1f1571461047b578063c9567bf9146104a4578063cc1776d3146104bb578063dba9d420146104e6578063dd62ed3e1461050f578063f2fde38b1461054c57610156565b8063751039fc1461037d5780638c0b5e22146103945780638da5cb5b146103bf57806395d89b41146103ea578063974ea01e14610415578063a9059cbb1461043e57610156565b806341e1259d1161010857806341e1259d1461028157806349bd5a5e146102aa5780634f7041a5146102d557806355811acc1461030057806370a0823114610329578063715018a61461036657610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c35780631de3b450146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610575565b60405161017d9190611fd4565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190612094565b6105b2565b6040516101ba91906120ef565b60405180910390f35b3480156101cf57600080fd5b506101d86105d0565b6040516101e59190612119565b60405180910390f35b3480156101fa57600080fd5b506102036105e3565b6040516102109190612119565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190612134565b6105e9565b60405161024d91906120ef565b60405180910390f35b34801561026257600080fd5b5061026b6106a1565b60405161027891906121a3565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a391906121be565b6106aa565b005b3480156102b657600080fd5b506102bf6107e6565b6040516102cc91906121fa565b60405180910390f35b3480156102e157600080fd5b506102ea61080a565b6040516102f79190612119565b60405180910390f35b34801561030c57600080fd5b50610327600480360381019061032291906121be565b610810565b005b34801561033557600080fd5b50610350600480360381019061034b9190612215565b61094c565b60405161035d9190612119565b60405180910390f35b34801561037257600080fd5b5061037b610995565b005b34801561038957600080fd5b50610392610ae8565b005b3480156103a057600080fd5b506103a9610b91565b6040516103b69190612119565b60405180910390f35b3480156103cb57600080fd5b506103d4610b97565b6040516103e191906121fa565b60405180910390f35b3480156103f657600080fd5b506103ff610bc0565b60405161040c9190611fd4565b60405180910390f35b34801561042157600080fd5b5061043c60048036038101906104379190612242565b610bfd565b005b34801561044a57600080fd5b5061046560048036038101906104609190612094565b610cfa565b60405161047291906120ef565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d91906122fa565b610d18565b005b3480156104b057600080fd5b506104b9610e3d565b005b3480156104c757600080fd5b506104d0610ef7565b6040516104dd9190612119565b60405180910390f35b3480156104f257600080fd5b5061050d60048036038101906105089190612215565b610efd565b005b34801561051b57600080fd5b5061053660048036038101906105319190612347565b610fed565b6040516105439190612119565b60405180910390f35b34801561055857600080fd5b50610573600480360381019061056e9190612215565b611074565b005b60606040518060400160405280600981526020017f446f676542726561640000000000000000000000000000000000000000000000815250905090565b60006105c66105bf611115565b848461111d565b6001905092915050565b60006a52b7d2dcc80cd2e4000000905090565b60065481565b60006105f68484846112e6565b61069684610602611115565b84600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061064c611115565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461069191906123b6565b61111d565b600190509392505050565b60006012905090565b6106b2611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073690612436565b60405180910390fd5b6103e78110610783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077a906124c8565b60405180910390fd5b60035481106107c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107be9061255a565b60405180910390fd5b69152d02c7e14af6800000816107dd919061257a565b60028190555050565b7f000000000000000000000000ad61b69a440c2df68592edfcb9e8ab10a4fa898781565b60045481565b610818611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089c90612436565b60405180910390fd5b6103e781106108e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e09061262e565b60405180910390fd5b600254811161092d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610924906126c0565b60405180910390fd5b69152d02c7e14af680000081610943919061257a565b60038190555050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61099d611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2190612436565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610af0611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7490612436565b60405180910390fd5b6a52b7d2dcc80cd2e4000000600981905550565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f446f676542726561640000000000000000000000000000000000000000000000815250905090565b610c05611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8990612436565b60405180910390fd5b605a831080610ca15750605a82105b610ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd79061272c565b60405180910390fd5b826004819055508160058190555080600681905550505050565b6000610d0e610d07611115565b84846112e6565b6001905092915050565b610d20611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da490612436565b60405180910390fd5b60005b82829050811015610e38576000600a6000858585818110610dd457610dd361274c565b5b9050602002016020810190610de99190612215565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080610e319061277b565b9050610db0565b505050565b610e45611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec990612436565b60405180910390fd5b6001600760006101000a81548160ff021916908360ff16021790555043600881905550565b60055481565b610f05611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8990612436565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61107c611115565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090612436565b60405180910390fd5b61111281611e18565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361118c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118390612835565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f2906128c7565b60405180910390fd5b80600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112d99190612119565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c90612959565b60405180910390fd5b633b9aca00811161139b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611392906129c5565b60405180910390fd5b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061143e5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561144c5760009050611af8565b6000600760009054906101000a900460ff1660ff161415801561147157506009548211155b6114b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a790612a57565b60405180910390fd5b6001600760019054906101000a900460ff1660ff16036115e15781600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461151991906123b6565b9250508190555081600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461156f9190612a77565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115d39190612119565b60405180910390a350611e13565b7f000000000000000000000000ad61b69a440c2df68592edfcb9e8ab10a4fa898773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361164b576006546004546116449190612a77565b9050611af7565b7f000000000000000000000000ad61b69a440c2df68592edfcb9e8ab10a4fa898773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611af1576000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506002548111801561170557506000600760019054906101000a900460ff1660ff16145b15611ad95760035481111561171a5760035490505b600060065460026005546004546117319190612a77565b61173b9190612ada565b6117459190612a77565b60065483611753919061257a565b61175d9190612ada565b90506000818361176d91906123b6565b90506001600760016101000a81548160ff021916908360ff1602179055506000600267ffffffffffffffff8111156117a8576117a7612b0b565b5b6040519080825280602002602001820160405280156117d65781602001602082028036833780820191505090505b50905030816000815181106117ee576117ed61274c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061185d5761185c61274c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947836000847f00000000000000000000000087cb8f2889ff800d6d931a5ee594efc3a8d61640426040518663ffffffff1660e01b8152600401611919959493929190612c92565b600060405180830381600087803b15801561193357600080fd5b505af1158015611947573d6000803e3d6000fd5b505050506000831115611ab9577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac94760028561199d9190612ada565b60008430426040518663ffffffff1660e01b81526004016119c2959493929190612cec565b600060405180830381600087803b1580156119dc57600080fd5b505af11580156119f0573d6000803e3d6000fd5b5050505060004790507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7198230600288611a449190612ada565b600080611a4f610b97565b426040518863ffffffff1660e01b8152600401611a7196959493929190612d46565b60606040518083038185885af1158015611a8f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ab49190612dbc565b505050505b6000600760016101000a81548160ff021916908360ff1602179055505050505b600654600554611ae99190612a77565b915050611af6565b600090505b5b5b60008114611cff57600060648284611b10919061257a565b611b1a9190612ada565b905060008184611b2a91906123b6565b905083600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b7b91906123b6565b9250508190555080600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bd19190612a77565b9250508190555081600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c279190612a77565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c8b9190612119565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cf09190612119565b60405180910390a35050611e11565b81600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d4e91906123b6565b9250508190555081600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611da49190612a77565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e089190612119565b60405180910390a35b505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7e90612e81565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f7e578082015181840152602081019050611f63565b60008484015250505050565b6000601f19601f8301169050919050565b6000611fa682611f44565b611fb08185611f4f565b9350611fc0818560208601611f60565b611fc981611f8a565b840191505092915050565b60006020820190508181036000830152611fee8184611f9b565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061202b82612000565b9050919050565b61203b81612020565b811461204657600080fd5b50565b60008135905061205881612032565b92915050565b6000819050919050565b6120718161205e565b811461207c57600080fd5b50565b60008135905061208e81612068565b92915050565b600080604083850312156120ab576120aa611ff6565b5b60006120b985828601612049565b92505060206120ca8582860161207f565b9150509250929050565b60008115159050919050565b6120e9816120d4565b82525050565b600060208201905061210460008301846120e0565b92915050565b6121138161205e565b82525050565b600060208201905061212e600083018461210a565b92915050565b60008060006060848603121561214d5761214c611ff6565b5b600061215b86828701612049565b935050602061216c86828701612049565b925050604061217d8682870161207f565b9150509250925092565b600060ff82169050919050565b61219d81612187565b82525050565b60006020820190506121b86000830184612194565b92915050565b6000602082840312156121d4576121d3611ff6565b5b60006121e28482850161207f565b91505092915050565b6121f481612020565b82525050565b600060208201905061220f60008301846121eb565b92915050565b60006020828403121561222b5761222a611ff6565b5b600061223984828501612049565b91505092915050565b60008060006060848603121561225b5761225a611ff6565b5b60006122698682870161207f565b935050602061227a8682870161207f565b925050604061228b8682870161207f565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126122ba576122b9612295565b5b8235905067ffffffffffffffff8111156122d7576122d661229a565b5b6020830191508360208202830111156122f3576122f261229f565b5b9250929050565b6000806020838503121561231157612310611ff6565b5b600083013567ffffffffffffffff81111561232f5761232e611ffb565b5b61233b858286016122a4565b92509250509250929050565b6000806040838503121561235e5761235d611ff6565b5b600061236c85828601612049565b925050602061237d85828601612049565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006123c18261205e565b91506123cc8361205e565b92508282039050818111156123e4576123e3612387565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612420602083611f4f565b915061242b826123ea565b602082019050919050565b6000602082019050818103600083015261244f81612413565b9050919050565b7f4d696e20537761702063616e6e6f742062652067726561746572207468616e2060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b60006124b2602383611f4f565b91506124bd82612456565b604082019050919050565b600060208201905081810360008301526124e1816124a5565b9050919050565b7f4d696e20537761702063616e6e6f742062652067726561746572207468616e2060008201527f6d61782073776170000000000000000000000000000000000000000000000000602082015250565b6000612544602883611f4f565b915061254f826124e8565b604082019050919050565b6000602082019050818103600083015261257381612537565b9050919050565b60006125858261205e565b91506125908361205e565b925082820261259e8161205e565b915082820484148315176125b5576125b4612387565b5b5092915050565b7f4d617820537761702063616e6e6f742062652067726561746572207468616e2060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b6000612618602383611f4f565b9150612623826125bc565b604082019050919050565b600060208201905081810360008301526126478161260b565b9050919050565b7f4d617820537761702063616e6e6f74206265206c657373207468616e206d696e60008201527f2073776170000000000000000000000000000000000000000000000000000000602082015250565b60006126aa602583611f4f565b91506126b58261264e565b604082019050919050565b600060208201905081810360008301526126d98161269d565b9050919050565b7f43616e6e6f74207365742074617865732061626f766520393025000000000000600082015250565b6000612716601a83611f4f565b9150612721826126e0565b602082019050919050565b6000602082019050818103600083015261274581612709565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006127868261205e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127b8576127b7612387565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061281f602483611f4f565b915061282a826127c3565b604082019050919050565b6000602082019050818103600083015261284e81612812565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006128b1602283611f4f565b91506128bc82612855565b604082019050919050565b600060208201905081810360008301526128e0816128a4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612943602583611f4f565b915061294e826128e7565b604082019050919050565b6000602082019050818103600083015261297281612936565b9050919050565b7f4d696e207472616e7366657220616d7400000000000000000000000000000000600082015250565b60006129af601083611f4f565b91506129ba82612979565b602082019050919050565b600060208201905081810360008301526129de816129a2565b9050919050565b7f4c61756e6368202f204d6178205478416d6f756e74203125206174206c61756e60008201527f6368000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a41602283611f4f565b9150612a4c826129e5565b604082019050919050565b60006020820190508181036000830152612a7081612a34565b9050919050565b6000612a828261205e565b9150612a8d8361205e565b9250828201905080821115612aa557612aa4612387565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ae58261205e565b9150612af08361205e565b925082612b0057612aff612aab565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b6000612b69612b64612b5f84612b3a565b612b44565b61205e565b9050919050565b612b7981612b4e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612bb481612020565b82525050565b6000612bc68383612bab565b60208301905092915050565b6000602082019050919050565b6000612bea82612b7f565b612bf48185612b8a565b9350612bff83612b9b565b8060005b83811015612c30578151612c178882612bba565b9750612c2283612bd2565b925050600181019050612c03565b5085935050505092915050565b6000612c58612c53612c4e84612000565b612b44565b612000565b9050919050565b6000612c6a82612c3d565b9050919050565b6000612c7c82612c5f565b9050919050565b612c8c81612c71565b82525050565b600060a082019050612ca7600083018861210a565b612cb46020830187612b70565b8181036040830152612cc68186612bdf565b9050612cd56060830185612c83565b612ce2608083018461210a565b9695505050505050565b600060a082019050612d01600083018861210a565b612d0e6020830187612b70565b8181036040830152612d208186612bdf565b9050612d2f60608301856121eb565b612d3c608083018461210a565b9695505050505050565b600060c082019050612d5b60008301896121eb565b612d68602083018861210a565b612d756040830187612b70565b612d826060830186612b70565b612d8f60808301856121eb565b612d9c60a083018461210a565b979650505050505050565b600081519050612db681612068565b92915050565b600080600060608486031215612dd557612dd4611ff6565b5b6000612de386828701612da7565b9350506020612df486828701612da7565b9250506040612e0586828701612da7565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612e6b602683611f4f565b9150612e7682612e0f565b604082019050919050565b60006020820190508181036000830152612e9a81612e5e565b905091905056fea264697066735822122063e57465ae605b0ebb994a5f8b2409a4a89dbaa113b4aa9a5f6b23bdb3d3b65b64736f6c63430008120033

Deployed Bytecode Sourcemap

3112:9196:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5237:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6147:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5514:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3705:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6348:350;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5423:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8221:320;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3524:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3648:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7896:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5622:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2162:148;;;;;;;;;;;;;:::i;:::-;;7327:88;;;;;;;;;;;;;:::i;:::-;;3847:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1557:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5328:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7423:270;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5748:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7701:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7083:108;;;;;;;;;;;;;:::i;:::-;;3676:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7199:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5955:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1771:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5237:83;5274:13;5307:5;;;;;;;;;;;;;;;;;5300:12;;5237:83;:::o;6147:193::-;6249:4;6271:39;6280:12;:10;:12::i;:::-;6294:7;6303:6;6271:8;:39::i;:::-;6328:4;6321:11;;6147:193;;;;:::o;5514:100::-;5567:7;3206:14;5587:19;;5514:100;:::o;3705:17::-;;;;:::o;6348:350::-;6480:4;6497:36;6507:6;6515:9;6526:6;6497:9;:36::i;:::-;6544:124;6567:6;6588:12;:10;:12::i;:::-;6651:6;6615:11;:19;6627:6;6615:19;;;;;;;;;;;;;;;:33;6635:12;:10;:12::i;:::-;6615:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;6544:8;:124::i;:::-;6686:4;6679:11;;6348:350;;;;;:::o;5423:83::-;5464:5;3462:2;5482:16;;5423:83;:::o;8221:320::-;1694:12;:10;:12::i;:::-;1684:22;;:6;;;;;;;;;;:22;;;1676:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8342:3:::1;8320:19;:25;8312:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8426:7;;8404:19;:29;8396:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;3324:10;8499:19;:34;;;;:::i;:::-;8489:7;:44;;;;8221:320:::0;:::o;3524:38::-;;;:::o;3648:21::-;;;;:::o;7896:317::-;1694:12;:10;:12::i;:::-;1684:22;;:6;;;;;;;;;;:22;;;1676:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8017:3:::1;7995:19;:25;7987:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8101:7;;8079:19;:29;8071:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3324:10;8171:19;:34;;;;:::i;:::-;8161:7;:44;;;;7896:317:::0;:::o;5622:118::-;5688:7;5715:8;:17;5724:7;5715:17;;;;;;;;;;;;;;;;5708:24;;5622:118;;;:::o;2162:148::-;1694:12;:10;:12::i;:::-;1684:22;;:6;;;;;;;;;;:22;;;1676:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2269:1:::1;2232:40;;2253:6;::::0;::::1;;;;;;;;2232:40;;;;;;;;;;;;2300:1;2283:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2162:148::o:0;7327:88::-;1694:12;:10;:12::i;:::-;1684:22;;:6;;;;;;;;;;:22;;;1676:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3206:14:::1;7381:11;:26;;;;7327:88::o:0;3847:39::-;;;;:::o;1557:79::-;1595:7;1622:6;;;;;;;;;;;1615:13;;1557:79;:::o;5328:87::-;5367:13;5400:7;;;;;;;;;;;;;;;;;5393:14;;5328:87;:::o;7423:270::-;1694:12;:10;:12::i;:::-;1684:22;;:6;;;;;;;;;;:22;;;1676:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7546:2:::1;7534:9;:14;:33;;;;7565:2;7552:10;:15;7534:33;7526:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7618:9;7609:6;:18;;;;7648:10;7638:7;:20;;;;7677:8;7669:5;:16;;;;7423:270:::0;;;:::o;5748:199::-;5853:4;5875:42;5885:12;:10;:12::i;:::-;5899:9;5910:6;5875:9;:42::i;:::-;5935:4;5928:11;;5748:199;;;;:::o;7701:187::-;1694:12;:10;:12::i;:::-;1684:22;;:6;;;;;;;;;;:22;;;1676:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7790:9:::1;7785:96;7805:9;;:16;;7801:1;:20;7785:96;;;7868:1;7843:8;:22;7852:9;;7862:1;7852:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7843:22;;;;;;;;;;;;;;;:26;;;;7823:3;;;;:::i;:::-;;;7785:96;;;;7701:187:::0;;:::o;7083:108::-;1694:12;:10;:12::i;:::-;1684:22;;:6;;;;;;;;;;:22;;;1676:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7145:1:::1;7136:6;;:10;;;;;;;;;;;;;;;;;;7171:12;7157:11;:26;;;;7083:108::o:0;3676:22::-;;;;:::o;7199:120::-;1694:12;:10;:12::i;:::-;1684:22;;:6;;;;;;;;;;:22;;;1676:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7307:4:::1;7272:24;:32;7297:6;7272:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;7199:120:::0;:::o;5955:184::-;6072:7;6104:11;:18;6116:5;6104:18;;;;;;;;;;;;;;;:27;6123:7;6104:27;;;;;;;;;;;;;;;;6097:34;;5955:184;;;;:::o;1771:109::-;1694:12;:10;:12::i;:::-;1684:22;;:6;;;;;;;;;;:22;;;1676:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1844:28:::1;1863:8;1844:18;:28::i;:::-;1771:109:::0;:::o;271:98::-;324:7;351:10;344:17;;271:98;:::o;6706:369::-;6850:1;6833:19;;:5;:19;;;6825:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6931:1;6912:21;;:7;:21;;;6904:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7013:6;6983:11;:18;6995:5;6983:18;;;;;;;;;;;;;;;:27;7002:7;6983:27;;;;;;;;;;;;;;;:36;;;;7051:7;7035:32;;7044:5;7035:32;;;7060:6;7035:32;;;;;;:::i;:::-;;;;;;;;6706:369;;;:::o;8549:3719::-;8687:1;8671:18;;:4;:18;;;8663:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8759:3;8750:6;:12;8742:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;8796:12;8823:24;:30;8848:4;8823:30;;;;;;;;;;;;;;;;;;;;;;;;;:62;;;;8857:24;:28;8882:2;8857:28;;;;;;;;;;;;;;;;;;;;;;;;;8823:62;8819:2792;;;8909:1;8902:8;;8819:2792;;;8979:1;8969:6;;;;;;;;;;;:11;;;;:36;;;;;8994:11;;8984:6;:21;;8969:36;8943:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;9116:1;9096:16;;;;;;;;;;;:21;;;9092:239;;9191:6;9173:8;:14;9182:4;9173:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;9232:6;9216:8;:12;9225:2;9216:12;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;9279:2;9264:26;;9273:4;9264:26;;;9283:6;9264:26;;;;;;:::i;:::-;;;;;;;;9309:7;;;9092:239;9359:13;9351:21;;:4;:21;;;9347:2253;;9409:5;;9400:6;;:14;;;;:::i;:::-;9393:21;;9347:2253;;;9446:13;9440:19;;:2;:19;;;9436:2164;;9480:20;9503:8;:23;9520:4;9503:23;;;;;;;;;;;;;;;;9480:46;;9564:7;;9549:12;:22;:47;;;;;9595:1;9575:16;;;;;;;;;;;:21;;;9549:47;9545:1932;;;9640:7;;9625:12;:22;9621:101;;;9691:7;;9676:22;;9621:101;9766:18;9841:5;;9835:1;9824:7;;9815:6;;:16;;;;:::i;:::-;9814:22;;;;:::i;:::-;9813:33;;;;:::i;:::-;9803:5;;9788:12;:20;;;;:::i;:::-;9787:61;;;;:::i;:::-;9766:82;;9871:17;9906:13;9891:12;:28;;;;:::i;:::-;9871:48;;9963:1;9944:16;;:20;;;;;;;;;;;;;;;;;;9987:21;10025:1;10011:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9987:40;;10068:4;10050;10055:1;10050:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10106:4;10096;10101:1;10096:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;10155:15;:92;;;10278:12;10321:1;10353:4;10388:15;10434;10155:321;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10564:1;10548:13;:17;10543:850;;;10620:15;:92;;;10759:1;10743:13;:17;;;;:::i;:::-;10791:1;10823:4;10866;10902:15;10620:324;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10997:11;11011:21;10997:35;;11059:15;:57;;;11125:6;11141:4;11193:1;11177:13;:17;;;;:::i;:::-;11225:1;11257;11289:7;:5;:7::i;:::-;11327:15;11059:310;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10567:826;10543:850;11434:1;11415:16;;:20;;;;;;;;;;;;;;;;;;9598:1879;;;9545:1932;11530:5;;11520:7;;:15;;;;:::i;:::-;11513:22;;9461:2090;9436:2164;;;11583:1;11576:8;;9436:2164;9347:2253;8819:2792;11680:1;11672:4;:9;11668:593;;11726:17;11764:3;11756:4;11747:6;:13;;;;:::i;:::-;11746:21;;;;:::i;:::-;11726:41;;11782:22;11816:9;11807:6;:18;;;;:::i;:::-;11782:43;;11860:6;11842:8;:14;11851:4;11842:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;11897:14;11881:8;:12;11890:2;11881:12;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;11953:9;11926:8;:23;11943:4;11926:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;12005:4;11982:40;;11991:4;11982:40;;;12012:9;11982:40;;;;;;:::i;:::-;;;;;;;;12057:2;12042:34;;12051:4;12042:34;;;12061:14;12042:34;;;;;;:::i;:::-;;;;;;;;11683:405;;11668:593;;;12158:6;12140:8;:14;12149:4;12140:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;12195:6;12179:8;:12;12188:2;12179:12;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;12238:2;12223:26;;12232:4;12223:26;;;12242:6;12223:26;;;;;;:::i;:::-;;;;;;;;11668:593;8652:3616;8549:3719;;;;:::o;1888:266::-;1996:1;1976:22;;:8;:22;;;1954:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;2109:8;2080:38;;2101:6;;;;;;;;;;2080:38;;;;;;;;;;;;2138:8;2129:6;;:17;;;;;;;;;;;;;;;;;;1888:266;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::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:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:329::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:619::-;5952:6;5960;5968;6017:2;6005:9;5996:7;5992:23;5988:32;5985:119;;;6023:79;;:::i;:::-;5985:119;6143:1;6168:53;6213:7;6204:6;6193:9;6189:22;6168:53;:::i;:::-;6158:63;;6114:117;6270:2;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6241:118;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;5875:619;;;;;:::o;6500:117::-;6609:1;6606;6599:12;6623:117;6732:1;6729;6722:12;6746:117;6855:1;6852;6845:12;6886:568;6959:8;6969:6;7019:3;7012:4;7004:6;7000:17;6996:27;6986:122;;7027:79;;:::i;:::-;6986:122;7140:6;7127:20;7117:30;;7170:18;7162:6;7159:30;7156:117;;;7192:79;;:::i;:::-;7156:117;7306:4;7298:6;7294:17;7282:29;;7360:3;7352:4;7344:6;7340:17;7330:8;7326:32;7323:41;7320:128;;;7367:79;;:::i;:::-;7320:128;6886:568;;;;;:::o;7460:559::-;7546:6;7554;7603:2;7591:9;7582:7;7578:23;7574:32;7571:119;;;7609:79;;:::i;:::-;7571:119;7757:1;7746:9;7742:17;7729:31;7787:18;7779:6;7776:30;7773:117;;;7809:79;;:::i;:::-;7773:117;7922:80;7994:7;7985:6;7974:9;7970:22;7922:80;:::i;:::-;7904:98;;;;7700:312;7460:559;;;;;:::o;8025:474::-;8093:6;8101;8150:2;8138:9;8129:7;8125:23;8121:32;8118:119;;;8156:79;;:::i;:::-;8118:119;8276:1;8301:53;8346:7;8337:6;8326:9;8322:22;8301:53;:::i;:::-;8291:63;;8247:117;8403:2;8429:53;8474:7;8465:6;8454:9;8450:22;8429:53;:::i;:::-;8419:63;;8374:118;8025:474;;;;;:::o;8505:180::-;8553:77;8550:1;8543:88;8650:4;8647:1;8640:15;8674:4;8671:1;8664:15;8691:194;8731:4;8751:20;8769:1;8751:20;:::i;:::-;8746:25;;8785:20;8803:1;8785:20;:::i;:::-;8780:25;;8829:1;8826;8822:9;8814:17;;8853:1;8847:4;8844:11;8841:37;;;8858:18;;:::i;:::-;8841:37;8691:194;;;;:::o;8891:182::-;9031:34;9027:1;9019:6;9015:14;9008:58;8891:182;:::o;9079:366::-;9221:3;9242:67;9306:2;9301:3;9242:67;:::i;:::-;9235:74;;9318:93;9407:3;9318:93;:::i;:::-;9436:2;9431:3;9427:12;9420:19;;9079:366;;;:::o;9451:419::-;9617:4;9655:2;9644:9;9640:18;9632:26;;9704:9;9698:4;9694:20;9690:1;9679:9;9675:17;9668:47;9732:131;9858:4;9732:131;:::i;:::-;9724:139;;9451:419;;;:::o;9876:222::-;10016:34;10012:1;10004:6;10000:14;9993:58;10085:5;10080:2;10072:6;10068:15;10061:30;9876:222;:::o;10104:366::-;10246:3;10267:67;10331:2;10326:3;10267:67;:::i;:::-;10260:74;;10343:93;10432:3;10343:93;:::i;:::-;10461:2;10456:3;10452:12;10445:19;;10104:366;;;:::o;10476:419::-;10642:4;10680:2;10669:9;10665:18;10657:26;;10729:9;10723:4;10719:20;10715:1;10704:9;10700:17;10693:47;10757:131;10883:4;10757:131;:::i;:::-;10749:139;;10476:419;;;:::o;10901:227::-;11041:34;11037:1;11029:6;11025:14;11018:58;11110:10;11105:2;11097:6;11093:15;11086:35;10901:227;:::o;11134:366::-;11276:3;11297:67;11361:2;11356:3;11297:67;:::i;:::-;11290:74;;11373:93;11462:3;11373:93;:::i;:::-;11491:2;11486:3;11482:12;11475:19;;11134:366;;;:::o;11506:419::-;11672:4;11710:2;11699:9;11695:18;11687:26;;11759:9;11753:4;11749:20;11745:1;11734:9;11730:17;11723:47;11787:131;11913:4;11787:131;:::i;:::-;11779:139;;11506:419;;;:::o;11931:410::-;11971:7;11994:20;12012:1;11994:20;:::i;:::-;11989:25;;12028:20;12046:1;12028:20;:::i;:::-;12023:25;;12083:1;12080;12076:9;12105:30;12123:11;12105:30;:::i;:::-;12094:41;;12284:1;12275:7;12271:15;12268:1;12265:22;12245:1;12238:9;12218:83;12195:139;;12314:18;;:::i;:::-;12195:139;11979:362;11931:410;;;;:::o;12347:222::-;12487:34;12483:1;12475:6;12471:14;12464:58;12556:5;12551:2;12543:6;12539:15;12532:30;12347:222;:::o;12575:366::-;12717:3;12738:67;12802:2;12797:3;12738:67;:::i;:::-;12731:74;;12814:93;12903:3;12814:93;:::i;:::-;12932:2;12927:3;12923:12;12916:19;;12575:366;;;:::o;12947:419::-;13113:4;13151:2;13140:9;13136:18;13128:26;;13200:9;13194:4;13190:20;13186:1;13175:9;13171:17;13164:47;13228:131;13354:4;13228:131;:::i;:::-;13220:139;;12947:419;;;:::o;13372:224::-;13512:34;13508:1;13500:6;13496:14;13489:58;13581:7;13576:2;13568:6;13564:15;13557:32;13372:224;:::o;13602:366::-;13744:3;13765:67;13829:2;13824:3;13765:67;:::i;:::-;13758:74;;13841:93;13930:3;13841:93;:::i;:::-;13959:2;13954:3;13950:12;13943:19;;13602:366;;;:::o;13974:419::-;14140:4;14178:2;14167:9;14163:18;14155:26;;14227:9;14221:4;14217:20;14213:1;14202:9;14198:17;14191:47;14255:131;14381:4;14255:131;:::i;:::-;14247:139;;13974:419;;;:::o;14399:176::-;14539:28;14535:1;14527:6;14523:14;14516:52;14399:176;:::o;14581:366::-;14723:3;14744:67;14808:2;14803:3;14744:67;:::i;:::-;14737:74;;14820:93;14909:3;14820:93;:::i;:::-;14938:2;14933:3;14929:12;14922:19;;14581:366;;;:::o;14953:419::-;15119:4;15157:2;15146:9;15142:18;15134:26;;15206:9;15200:4;15196:20;15192:1;15181:9;15177:17;15170:47;15234:131;15360:4;15234:131;:::i;:::-;15226:139;;14953:419;;;:::o;15378:180::-;15426:77;15423:1;15416:88;15523:4;15520:1;15513:15;15547:4;15544:1;15537:15;15564:233;15603:3;15626:24;15644:5;15626:24;:::i;:::-;15617:33;;15672:66;15665:5;15662:77;15659:103;;15742:18;;:::i;:::-;15659:103;15789:1;15782:5;15778:13;15771:20;;15564:233;;;:::o;15803:223::-;15943:34;15939:1;15931:6;15927:14;15920:58;16012:6;16007:2;15999:6;15995:15;15988:31;15803:223;:::o;16032:366::-;16174:3;16195:67;16259:2;16254:3;16195:67;:::i;:::-;16188:74;;16271:93;16360:3;16271:93;:::i;:::-;16389:2;16384:3;16380:12;16373:19;;16032:366;;;:::o;16404:419::-;16570:4;16608:2;16597:9;16593:18;16585:26;;16657:9;16651:4;16647:20;16643:1;16632:9;16628:17;16621:47;16685:131;16811:4;16685:131;:::i;:::-;16677:139;;16404:419;;;:::o;16829:221::-;16969:34;16965:1;16957:6;16953:14;16946:58;17038:4;17033:2;17025:6;17021:15;17014:29;16829:221;:::o;17056:366::-;17198:3;17219:67;17283:2;17278:3;17219:67;:::i;:::-;17212:74;;17295:93;17384:3;17295:93;:::i;:::-;17413:2;17408:3;17404:12;17397:19;;17056:366;;;:::o;17428:419::-;17594:4;17632:2;17621:9;17617:18;17609:26;;17681:9;17675:4;17671:20;17667:1;17656:9;17652:17;17645:47;17709:131;17835:4;17709:131;:::i;:::-;17701:139;;17428:419;;;:::o;17853:224::-;17993:34;17989:1;17981:6;17977:14;17970:58;18062:7;18057:2;18049:6;18045:15;18038:32;17853:224;:::o;18083:366::-;18225:3;18246:67;18310:2;18305:3;18246:67;:::i;:::-;18239:74;;18322:93;18411:3;18322:93;:::i;:::-;18440:2;18435:3;18431:12;18424:19;;18083:366;;;:::o;18455:419::-;18621:4;18659:2;18648:9;18644:18;18636:26;;18708:9;18702:4;18698:20;18694:1;18683:9;18679:17;18672:47;18736:131;18862:4;18736:131;:::i;:::-;18728:139;;18455:419;;;:::o;18880:166::-;19020:18;19016:1;19008:6;19004:14;18997:42;18880:166;:::o;19052:366::-;19194:3;19215:67;19279:2;19274:3;19215:67;:::i;:::-;19208:74;;19291:93;19380:3;19291:93;:::i;:::-;19409:2;19404:3;19400:12;19393:19;;19052:366;;;:::o;19424:419::-;19590:4;19628:2;19617:9;19613:18;19605:26;;19677:9;19671:4;19667:20;19663:1;19652:9;19648:17;19641:47;19705:131;19831:4;19705:131;:::i;:::-;19697:139;;19424:419;;;:::o;19849:221::-;19989:34;19985:1;19977:6;19973:14;19966:58;20058:4;20053:2;20045:6;20041:15;20034:29;19849:221;:::o;20076:366::-;20218:3;20239:67;20303:2;20298:3;20239:67;:::i;:::-;20232:74;;20315:93;20404:3;20315:93;:::i;:::-;20433:2;20428:3;20424:12;20417:19;;20076:366;;;:::o;20448:419::-;20614:4;20652:2;20641:9;20637:18;20629:26;;20701:9;20695:4;20691:20;20687:1;20676:9;20672:17;20665:47;20729:131;20855:4;20729:131;:::i;:::-;20721:139;;20448:419;;;:::o;20873:191::-;20913:3;20932:20;20950:1;20932:20;:::i;:::-;20927:25;;20966:20;20984:1;20966:20;:::i;:::-;20961:25;;21009:1;21006;21002:9;20995:16;;21030:3;21027:1;21024:10;21021:36;;;21037:18;;:::i;:::-;21021:36;20873:191;;;;:::o;21070:180::-;21118:77;21115:1;21108:88;21215:4;21212:1;21205:15;21239:4;21236:1;21229:15;21256:185;21296:1;21313:20;21331:1;21313:20;:::i;:::-;21308:25;;21347:20;21365:1;21347:20;:::i;:::-;21342:25;;21386:1;21376:35;;21391:18;;:::i;:::-;21376:35;21433:1;21430;21426:9;21421:14;;21256:185;;;;:::o;21447:180::-;21495:77;21492:1;21485:88;21592:4;21589:1;21582:15;21616:4;21613:1;21606:15;21633:85;21678:7;21707:5;21696:16;;21633:85;;;:::o;21724:60::-;21752:3;21773:5;21766:12;;21724:60;;;:::o;21790:158::-;21848:9;21881:61;21899:42;21908:32;21934:5;21908:32;:::i;:::-;21899:42;:::i;:::-;21881:61;:::i;:::-;21868:74;;21790:158;;;:::o;21954:147::-;22049:45;22088:5;22049:45;:::i;:::-;22044:3;22037:58;21954:147;;:::o;22107:114::-;22174:6;22208:5;22202:12;22192:22;;22107:114;;;:::o;22227:184::-;22326:11;22360:6;22355:3;22348:19;22400:4;22395:3;22391:14;22376:29;;22227:184;;;;:::o;22417:132::-;22484:4;22507:3;22499:11;;22537:4;22532:3;22528:14;22520:22;;22417:132;;;:::o;22555:108::-;22632:24;22650:5;22632:24;:::i;:::-;22627:3;22620:37;22555:108;;:::o;22669:179::-;22738:10;22759:46;22801:3;22793:6;22759:46;:::i;:::-;22837:4;22832:3;22828:14;22814:28;;22669:179;;;;:::o;22854:113::-;22924:4;22956;22951:3;22947:14;22939:22;;22854:113;;;:::o;23003:732::-;23122:3;23151:54;23199:5;23151:54;:::i;:::-;23221:86;23300:6;23295:3;23221:86;:::i;:::-;23214:93;;23331:56;23381:5;23331:56;:::i;:::-;23410:7;23441:1;23426:284;23451:6;23448:1;23445:13;23426:284;;;23527:6;23521:13;23554:63;23613:3;23598:13;23554:63;:::i;:::-;23547:70;;23640:60;23693:6;23640:60;:::i;:::-;23630:70;;23486:224;23473:1;23470;23466:9;23461:14;;23426:284;;;23430:14;23726:3;23719:10;;23127:608;;;23003:732;;;;:::o;23741:142::-;23791:9;23824:53;23842:34;23851:24;23869:5;23851:24;:::i;:::-;23842:34;:::i;:::-;23824:53;:::i;:::-;23811:66;;23741:142;;;:::o;23889:126::-;23939:9;23972:37;24003:5;23972:37;:::i;:::-;23959:50;;23889:126;;;:::o;24021:134::-;24079:9;24112:37;24143:5;24112:37;:::i;:::-;24099:50;;24021:134;;;:::o;24161:147::-;24256:45;24295:5;24256:45;:::i;:::-;24251:3;24244:58;24161:147;;:::o;24314:847::-;24585:4;24623:3;24612:9;24608:19;24600:27;;24637:71;24705:1;24694:9;24690:17;24681:6;24637:71;:::i;:::-;24718:80;24794:2;24783:9;24779:18;24770:6;24718:80;:::i;:::-;24845:9;24839:4;24835:20;24830:2;24819:9;24815:18;24808:48;24873:108;24976:4;24967:6;24873:108;:::i;:::-;24865:116;;24991:80;25067:2;25056:9;25052:18;25043:6;24991:80;:::i;:::-;25081:73;25149:3;25138:9;25134:19;25125:6;25081:73;:::i;:::-;24314:847;;;;;;;;:::o;25167:831::-;25430:4;25468:3;25457:9;25453:19;25445:27;;25482:71;25550:1;25539:9;25535:17;25526:6;25482:71;:::i;:::-;25563:80;25639:2;25628:9;25624:18;25615:6;25563:80;:::i;:::-;25690:9;25684:4;25680:20;25675:2;25664:9;25660:18;25653:48;25718:108;25821:4;25812:6;25718:108;:::i;:::-;25710:116;;25836:72;25904:2;25893:9;25889:18;25880:6;25836:72;:::i;:::-;25918:73;25986:3;25975:9;25971:19;25962:6;25918:73;:::i;:::-;25167:831;;;;;;;;:::o;26004:807::-;26253:4;26291:3;26280:9;26276:19;26268:27;;26305:71;26373:1;26362:9;26358:17;26349:6;26305:71;:::i;:::-;26386:72;26454:2;26443:9;26439:18;26430:6;26386:72;:::i;:::-;26468:80;26544:2;26533:9;26529:18;26520:6;26468:80;:::i;:::-;26558;26634:2;26623:9;26619:18;26610:6;26558:80;:::i;:::-;26648:73;26716:3;26705:9;26701:19;26692:6;26648:73;:::i;:::-;26731;26799:3;26788:9;26784:19;26775:6;26731:73;:::i;:::-;26004:807;;;;;;;;;:::o;26817:143::-;26874:5;26905:6;26899:13;26890:22;;26921:33;26948:5;26921:33;:::i;:::-;26817:143;;;;:::o;26966:663::-;27054:6;27062;27070;27119:2;27107:9;27098:7;27094:23;27090:32;27087:119;;;27125:79;;:::i;:::-;27087:119;27245:1;27270:64;27326:7;27317:6;27306:9;27302:22;27270:64;:::i;:::-;27260:74;;27216:128;27383:2;27409:64;27465:7;27456:6;27445:9;27441:22;27409:64;:::i;:::-;27399:74;;27354:129;27522:2;27548:64;27604:7;27595:6;27584:9;27580:22;27548:64;:::i;:::-;27538:74;;27493:129;26966:663;;;;;:::o;27635:225::-;27775:34;27771:1;27763:6;27759:14;27752:58;27844:8;27839:2;27831:6;27827:15;27820:33;27635:225;:::o;27866:366::-;28008:3;28029:67;28093:2;28088:3;28029:67;:::i;:::-;28022:74;;28105:93;28194:3;28105:93;:::i;:::-;28223:2;28218:3;28214:12;28207:19;;27866:366;;;:::o;28238:419::-;28404:4;28442:2;28431:9;28427:18;28419:26;;28491:9;28485:4;28481:20;28477:1;28466:9;28462:17;28455:47;28519:131;28645:4;28519:131;:::i;:::-;28511:139;;28238:419;;;:::o

Swarm Source

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