ETH Price: $2,513.63 (+0.89%)

Token

Sashimi INU (SASHIMI)
 

Overview

Max Total Supply

1,000,000,000 SASHIMI

Holders

7

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
13,576,349.891923985 SASHIMI

Value
$0.00
0x8da3E12f6CDFd04A419b4a1168eb006d7B7264d9
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:
sashimi

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-26
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.4;

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;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

    function 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 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 sashimi is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = " Sashimi INU";
    string private constant _symbol = " SASHIMI ";
    uint8 private constant _decimals = 9;

    // RFI
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _taxFee = 2;
    uint256 private _teamFee = 1;

    // Bot detection
    mapping(address => bool) private bots;
    mapping(address => uint256) private cooldown;
    address payable private _teamAddress;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;

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

    constructor(address payable addr1) {
        _teamAddress = addr1;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_teamAddress] = 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 tokenFromReflection(_rOwned[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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_taxFee == 0 && _teamFee == 0) return;
        _taxFee = 0;
        _teamFee = 0;
    }

    function restoreAllFee() private {
        _taxFee = 2;
        _teamFee = 1;
    }

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

        if (from != owner() && to != owner()) {
            if (cooldownEnabled) {
                if (
                    from != address(this) &&
                    to != address(this) &&
                    from != address(uniswapV2Router) &&
                    to != address(uniswapV2Router)
                ) {
                    require(
                        _msgSender() == address(uniswapV2Router) ||
                            _msgSender() == uniswapV2Pair,
                        "ERR: Uniswap only"
                    );
                }
            }
            require(amount <= _maxTxAmount);
            require(!bots[from] && !bots[to]);
            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to] &&
                cooldownEnabled
            ) {
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (60 seconds);
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        bool takeFee = true;

        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    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 sendETHToFee(uint256 amount) private {
        _teamAddress.transfer(amount);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen, "trading is already open");
        IUniswapV2Router02 _uniswapV2Router =
            IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _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
        );
        swapEnabled = true;
        cooldownEnabled = false;
        _maxTxAmount = 1000000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
    }

    function manualswap() external {
        require(_msgSender() == _teamAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _teamAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

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

    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _taxFee, 3);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 taxFee,
        uint256 TeamFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        require(maxTxPercent > 0, "Amount must be greater than 0");
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(10**2);
        emit MaxTxAmountUpdated(_maxTxAmount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"addr1","type":"address"}],"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":[{"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":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","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"}]

6080604052670de0b6b3a76400006000196200001c919062000437565b6000196200002b91906200049e565b600655600260085560016009556000600e60156101000a81548160ff0219169083151502179055506000600e60166101000a81548160ff0219169083151502179055506000600e60176101000a81548160ff021916908315150217905550670de0b6b3a7640000600f55348015620000a257600080fd5b5060405162003cc938038062003cc98339818101604052810190620000c8919062000543565b6000620000da620003cd60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065460026000620001d0620003cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600062000224620003d560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000357620003cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620003be919062000586565b60405180910390a350620005a3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200044482620003fe565b91506200045183620003fe565b92508262000464576200046362000408565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620004ab82620003fe565b9150620004b883620003fe565b925082821015620004ce57620004cd6200046f565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200050b82620004de565b9050919050565b6200051d81620004fe565b81146200052957600080fd5b50565b6000815190506200053d8162000512565b92915050565b6000602082840312156200055c576200055b620004d9565b5b60006200056c848285016200052c565b91505092915050565b6200058081620003fe565b82525050565b60006020820190506200059d600083018462000575565b92915050565b61371680620005b36000396000f3fe60806040526004361061010d5760003560e01c8063715018a611610095578063b515566a11610064578063b515566a14610364578063c3c8cd801461038d578063c9567bf9146103a4578063d543dbeb146103bb578063dd62ed3e146103e457610114565b8063715018a6146102ba5780638da5cb5b146102d157806395d89b41146102fc578063a9059cbb1461032757610114565b8063273123b7116100dc578063273123b7146101e9578063313ce567146102125780635932ead11461023d5780636fc3eaec1461026657806370a082311461027d57610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610421565b60405161013b9190612716565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906127e0565b61045e565b604051610178919061283b565b60405180910390f35b34801561018d57600080fd5b5061019661047c565b6040516101a39190612865565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce9190612880565b61048c565b6040516101e0919061283b565b60405180910390f35b3480156101f557600080fd5b50610210600480360381019061020b91906128d3565b610565565b005b34801561021e57600080fd5b50610227610655565b604051610234919061291c565b60405180910390f35b34801561024957600080fd5b50610264600480360381019061025f9190612963565b61065e565b005b34801561027257600080fd5b5061027b610710565b005b34801561028957600080fd5b506102a4600480360381019061029f91906128d3565b610782565b6040516102b19190612865565b60405180910390f35b3480156102c657600080fd5b506102cf6107d3565b005b3480156102dd57600080fd5b506102e6610926565b6040516102f3919061299f565b60405180910390f35b34801561030857600080fd5b5061031161094f565b60405161031e9190612716565b60405180910390f35b34801561033357600080fd5b5061034e600480360381019061034991906127e0565b61098c565b60405161035b919061283b565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190612b02565b6109aa565b005b34801561039957600080fd5b506103a2610ad4565b005b3480156103b057600080fd5b506103b9610b4e565b005b3480156103c757600080fd5b506103e260048036038101906103dd9190612b4b565b61105e565b005b3480156103f057600080fd5b5061040b60048036038101906104069190612b78565b6111a6565b6040516104189190612865565b60405180910390f35b60606040518060400160405280600c81526020017f2053617368696d6920494e550000000000000000000000000000000000000000815250905090565b600061047261046b61122d565b8484611235565b6001905092915050565b6000670de0b6b3a7640000905090565b60006104998484846113fe565b61055a846104a561122d565b610555856040518060600160405280602881526020016136b960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050b61122d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb9092919063ffffffff16565b611235565b600190509392505050565b61056d61122d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f190612c04565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b61066661122d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ea90612c04565b60405180910390fd5b80600e60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661075161122d565b73ffffffffffffffffffffffffffffffffffffffff161461077157600080fd5b600047905061077f81611c1f565b50565b60006107cc600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8b565b9050919050565b6107db61122d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085f90612c04565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f2053415348494d49200000000000000000000000000000000000000000000000815250905090565b60006109a061099961122d565b84846113fe565b6001905092915050565b6109b261122d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3690612c04565b60405180910390fd5b60005b8151811015610ad0576001600a6000848481518110610a6457610a63612c24565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ac890612c82565b915050610a42565b5050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b1561122d565b73ffffffffffffffffffffffffffffffffffffffff1614610b3557600080fd5b6000610b4030610782565b9050610b4b81611cf9565b50565b610b5661122d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bda90612c04565b60405180910390fd5b600e60149054906101000a900460ff1615610c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2a90612d16565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cc230600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a7640000611235565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d319190612d4b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbc9190612d4b565b6040518363ffffffff1660e01b8152600401610dd9929190612d78565b6020604051808303816000875af1158015610df8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1c9190612d4b565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ea530610782565b600080610eb0610926565b426040518863ffffffff1660e01b8152600401610ed296959493929190612de6565b60606040518083038185885af1158015610ef0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f159190612e5c565b5050506001600e60166101000a81548160ff0219169083151502179055506000600e60176101000a81548160ff021916908315150217905550670de0b6b3a7640000600f819055506001600e60146101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611017929190612eaf565b6020604051808303816000875af1158015611036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105a9190612eed565b5050565b61106661122d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea90612c04565b60405180910390fd5b60008111611136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112d90612f66565b60405180910390fd5b611164606461115683670de0b6b3a7640000611f7290919063ffffffff16565b611fec90919063ffffffff16565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf600f5460405161119b9190612865565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129b90612ff8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a9061308a565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113f19190612865565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361146d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114649061311c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d3906131ae565b60405180910390fd5b6000811161151f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151690613240565b60405180910390fd5b611527610926565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115955750611565610926565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611af857600e60179054906101000a900460ff16156117c8573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561161757503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116715750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116cb5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117c757600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661171161122d565b73ffffffffffffffffffffffffffffffffffffffff1614806117875750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661176f61122d565b73ffffffffffffffffffffffffffffffffffffffff16145b6117c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bd906132ac565b60405180910390fd5b5b5b600f548111156117d757600080fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561187b5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61188457600080fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561192f5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119855750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561199d5750600e60179054906101000a900460ff165b15611a3e5742600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106119ed57600080fd5b603c426119fa91906132cc565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000611a4930610782565b9050600e60159054906101000a900460ff16158015611ab65750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ace5750600e60169054906101000a900460ff165b15611af657611adc81611cf9565b60004790506000811115611af457611af347611c1f565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b9f5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ba957600090505b611bb584848484612036565b50505050565b6000838311158290611c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfa9190612716565b60405180910390fd5b5060008385611c129190613322565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c87573d6000803e3d6000fd5b5050565b6000600654821115611cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc9906133c8565b60405180910390fd5b6000611cdc612063565b9050611cf18184611fec90919063ffffffff16565b915050919050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d3157611d306129bf565b5b604051908082528060200260200182016040528015611d5f5781602001602082028036833780820191505090505b5090503081600081518110611d7757611d76612c24565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e429190612d4b565b81600181518110611e5657611e55612c24565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ebd30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611235565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f219594939291906134a6565b600060405180830381600087803b158015611f3b57600080fd5b505af1158015611f4f573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b6000808303611f845760009050611fe6565b60008284611f929190613500565b9050828482611fa19190613589565b14611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd89061362c565b60405180910390fd5b809150505b92915050565b600061202e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061208e565b905092915050565b80612044576120436120f1565b5b61204f84848461211c565b8061205d5761205c6122e7565b5b50505050565b60008060006120706122f9565b915091506120878183611fec90919063ffffffff16565b9250505090565b600080831182906120d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cc9190612716565b60405180910390fd5b50600083856120e49190613589565b9050809150509392505050565b600060085414801561210557506000600954145b61211a57600060088190555060006009819055505b565b60008060008060008061212e87612358565b95509550955095509550955061218c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bf90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061222185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461240990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061226d81612467565b6122778483612524565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122d49190612865565b60405180910390a3505050505050505050565b60026008819055506001600981905550565b600080600060065490506000670de0b6b3a7640000905061232d670de0b6b3a7640000600654611fec90919063ffffffff16565b82101561234b57600654670de0b6b3a7640000935093505050612354565b81819350935050505b9091565b60008060008060008060008060006123748a600854600361255e565b9250925092506000612384612063565b905060008060006123978e8787876125f4565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061240183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bbb565b905092915050565b600080828461241891906132cc565b90508381101561245d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245490613698565b60405180910390fd5b8091505092915050565b6000612471612063565b905060006124888284611f7290919063ffffffff16565b90506124dc81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461240990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612539826006546123bf90919063ffffffff16565b6006819055506125548160075461240990919063ffffffff16565b6007819055505050565b60008060008061258a606461257c888a611f7290919063ffffffff16565b611fec90919063ffffffff16565b905060006125b460646125a6888b611f7290919063ffffffff16565b611fec90919063ffffffff16565b905060006125dd826125cf858c6123bf90919063ffffffff16565b6123bf90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061260d8589611f7290919063ffffffff16565b905060006126248689611f7290919063ffffffff16565b9050600061263b8789611f7290919063ffffffff16565b905060006126648261265685876123bf90919063ffffffff16565b6123bf90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126b757808201518184015260208101905061269c565b838111156126c6576000848401525b50505050565b6000601f19601f8301169050919050565b60006126e88261267d565b6126f28185612688565b9350612702818560208601612699565b61270b816126cc565b840191505092915050565b6000602082019050818103600083015261273081846126dd565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127778261274c565b9050919050565b6127878161276c565b811461279257600080fd5b50565b6000813590506127a48161277e565b92915050565b6000819050919050565b6127bd816127aa565b81146127c857600080fd5b50565b6000813590506127da816127b4565b92915050565b600080604083850312156127f7576127f6612742565b5b600061280585828601612795565b9250506020612816858286016127cb565b9150509250929050565b60008115159050919050565b61283581612820565b82525050565b6000602082019050612850600083018461282c565b92915050565b61285f816127aa565b82525050565b600060208201905061287a6000830184612856565b92915050565b60008060006060848603121561289957612898612742565b5b60006128a786828701612795565b93505060206128b886828701612795565b92505060406128c9868287016127cb565b9150509250925092565b6000602082840312156128e9576128e8612742565b5b60006128f784828501612795565b91505092915050565b600060ff82169050919050565b61291681612900565b82525050565b6000602082019050612931600083018461290d565b92915050565b61294081612820565b811461294b57600080fd5b50565b60008135905061295d81612937565b92915050565b60006020828403121561297957612978612742565b5b60006129878482850161294e565b91505092915050565b6129998161276c565b82525050565b60006020820190506129b46000830184612990565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6129f7826126cc565b810181811067ffffffffffffffff82111715612a1657612a156129bf565b5b80604052505050565b6000612a29612738565b9050612a3582826129ee565b919050565b600067ffffffffffffffff821115612a5557612a546129bf565b5b602082029050602081019050919050565b600080fd5b6000612a7e612a7984612a3a565b612a1f565b90508083825260208201905060208402830185811115612aa157612aa0612a66565b5b835b81811015612aca5780612ab68882612795565b845260208401935050602081019050612aa3565b5050509392505050565b600082601f830112612ae957612ae86129ba565b5b8135612af9848260208601612a6b565b91505092915050565b600060208284031215612b1857612b17612742565b5b600082013567ffffffffffffffff811115612b3657612b35612747565b5b612b4284828501612ad4565b91505092915050565b600060208284031215612b6157612b60612742565b5b6000612b6f848285016127cb565b91505092915050565b60008060408385031215612b8f57612b8e612742565b5b6000612b9d85828601612795565b9250506020612bae85828601612795565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612bee602083612688565b9150612bf982612bb8565b602082019050919050565b60006020820190508181036000830152612c1d81612be1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c8d826127aa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cbf57612cbe612c53565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612d00601783612688565b9150612d0b82612cca565b602082019050919050565b60006020820190508181036000830152612d2f81612cf3565b9050919050565b600081519050612d458161277e565b92915050565b600060208284031215612d6157612d60612742565b5b6000612d6f84828501612d36565b91505092915050565b6000604082019050612d8d6000830185612990565b612d9a6020830184612990565b9392505050565b6000819050919050565b6000819050919050565b6000612dd0612dcb612dc684612da1565b612dab565b6127aa565b9050919050565b612de081612db5565b82525050565b600060c082019050612dfb6000830189612990565b612e086020830188612856565b612e156040830187612dd7565b612e226060830186612dd7565b612e2f6080830185612990565b612e3c60a0830184612856565b979650505050505050565b600081519050612e56816127b4565b92915050565b600080600060608486031215612e7557612e74612742565b5b6000612e8386828701612e47565b9350506020612e9486828701612e47565b9250506040612ea586828701612e47565b9150509250925092565b6000604082019050612ec46000830185612990565b612ed16020830184612856565b9392505050565b600081519050612ee781612937565b92915050565b600060208284031215612f0357612f02612742565b5b6000612f1184828501612ed8565b91505092915050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000612f50601d83612688565b9150612f5b82612f1a565b602082019050919050565b60006020820190508181036000830152612f7f81612f43565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612fe2602483612688565b9150612fed82612f86565b604082019050919050565b6000602082019050818103600083015261301181612fd5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613074602283612688565b915061307f82613018565b604082019050919050565b600060208201905081810360008301526130a381613067565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613106602583612688565b9150613111826130aa565b604082019050919050565b60006020820190508181036000830152613135816130f9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613198602383612688565b91506131a38261313c565b604082019050919050565b600060208201905081810360008301526131c78161318b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061322a602983612688565b9150613235826131ce565b604082019050919050565b600060208201905081810360008301526132598161321d565b9050919050565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b6000613296601183612688565b91506132a182613260565b602082019050919050565b600060208201905081810360008301526132c581613289565b9050919050565b60006132d7826127aa565b91506132e2836127aa565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561331757613316612c53565b5b828201905092915050565b600061332d826127aa565b9150613338836127aa565b92508282101561334b5761334a612c53565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006133b2602a83612688565b91506133bd82613356565b604082019050919050565b600060208201905081810360008301526133e1816133a5565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61341d8161276c565b82525050565b600061342f8383613414565b60208301905092915050565b6000602082019050919050565b6000613453826133e8565b61345d81856133f3565b935061346883613404565b8060005b838110156134995781516134808882613423565b975061348b8361343b565b92505060018101905061346c565b5085935050505092915050565b600060a0820190506134bb6000830188612856565b6134c86020830187612dd7565b81810360408301526134da8186613448565b90506134e96060830185612990565b6134f66080830184612856565b9695505050505050565b600061350b826127aa565b9150613516836127aa565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561354f5761354e612c53565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613594826127aa565b915061359f836127aa565b9250826135af576135ae61355a565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613616602183612688565b9150613621826135ba565b604082019050919050565b6000602082019050818103600083015261364581613609565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613682601b83612688565b915061368d8261364c565b602082019050919050565b600060208201905081810360008301526136b181613675565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203a1cf56b9b0b432f8c05c6a445053c45f426e321883c627793e568a8b63e582b64736f6c634300080d00330000000000000000000000006963f4c45c4d6416141f2719721dea4566d22721

Deployed Bytecode

0x60806040526004361061010d5760003560e01c8063715018a611610095578063b515566a11610064578063b515566a14610364578063c3c8cd801461038d578063c9567bf9146103a4578063d543dbeb146103bb578063dd62ed3e146103e457610114565b8063715018a6146102ba5780638da5cb5b146102d157806395d89b41146102fc578063a9059cbb1461032757610114565b8063273123b7116100dc578063273123b7146101e9578063313ce567146102125780635932ead11461023d5780636fc3eaec1461026657806370a082311461027d57610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610421565b60405161013b9190612716565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906127e0565b61045e565b604051610178919061283b565b60405180910390f35b34801561018d57600080fd5b5061019661047c565b6040516101a39190612865565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce9190612880565b61048c565b6040516101e0919061283b565b60405180910390f35b3480156101f557600080fd5b50610210600480360381019061020b91906128d3565b610565565b005b34801561021e57600080fd5b50610227610655565b604051610234919061291c565b60405180910390f35b34801561024957600080fd5b50610264600480360381019061025f9190612963565b61065e565b005b34801561027257600080fd5b5061027b610710565b005b34801561028957600080fd5b506102a4600480360381019061029f91906128d3565b610782565b6040516102b19190612865565b60405180910390f35b3480156102c657600080fd5b506102cf6107d3565b005b3480156102dd57600080fd5b506102e6610926565b6040516102f3919061299f565b60405180910390f35b34801561030857600080fd5b5061031161094f565b60405161031e9190612716565b60405180910390f35b34801561033357600080fd5b5061034e600480360381019061034991906127e0565b61098c565b60405161035b919061283b565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190612b02565b6109aa565b005b34801561039957600080fd5b506103a2610ad4565b005b3480156103b057600080fd5b506103b9610b4e565b005b3480156103c757600080fd5b506103e260048036038101906103dd9190612b4b565b61105e565b005b3480156103f057600080fd5b5061040b60048036038101906104069190612b78565b6111a6565b6040516104189190612865565b60405180910390f35b60606040518060400160405280600c81526020017f2053617368696d6920494e550000000000000000000000000000000000000000815250905090565b600061047261046b61122d565b8484611235565b6001905092915050565b6000670de0b6b3a7640000905090565b60006104998484846113fe565b61055a846104a561122d565b610555856040518060600160405280602881526020016136b960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050b61122d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbb9092919063ffffffff16565b611235565b600190509392505050565b61056d61122d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f190612c04565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b61066661122d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ea90612c04565b60405180910390fd5b80600e60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661075161122d565b73ffffffffffffffffffffffffffffffffffffffff161461077157600080fd5b600047905061077f81611c1f565b50565b60006107cc600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8b565b9050919050565b6107db61122d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085f90612c04565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f2053415348494d49200000000000000000000000000000000000000000000000815250905090565b60006109a061099961122d565b84846113fe565b6001905092915050565b6109b261122d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3690612c04565b60405180910390fd5b60005b8151811015610ad0576001600a6000848481518110610a6457610a63612c24565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ac890612c82565b915050610a42565b5050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b1561122d565b73ffffffffffffffffffffffffffffffffffffffff1614610b3557600080fd5b6000610b4030610782565b9050610b4b81611cf9565b50565b610b5661122d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bda90612c04565b60405180910390fd5b600e60149054906101000a900460ff1615610c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2a90612d16565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cc230600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a7640000611235565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d319190612d4b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbc9190612d4b565b6040518363ffffffff1660e01b8152600401610dd9929190612d78565b6020604051808303816000875af1158015610df8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1c9190612d4b565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ea530610782565b600080610eb0610926565b426040518863ffffffff1660e01b8152600401610ed296959493929190612de6565b60606040518083038185885af1158015610ef0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f159190612e5c565b5050506001600e60166101000a81548160ff0219169083151502179055506000600e60176101000a81548160ff021916908315150217905550670de0b6b3a7640000600f819055506001600e60146101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611017929190612eaf565b6020604051808303816000875af1158015611036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105a9190612eed565b5050565b61106661122d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea90612c04565b60405180910390fd5b60008111611136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112d90612f66565b60405180910390fd5b611164606461115683670de0b6b3a7640000611f7290919063ffffffff16565b611fec90919063ffffffff16565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf600f5460405161119b9190612865565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129b90612ff8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a9061308a565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113f19190612865565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361146d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114649061311c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d3906131ae565b60405180910390fd5b6000811161151f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151690613240565b60405180910390fd5b611527610926565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115955750611565610926565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611af857600e60179054906101000a900460ff16156117c8573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561161757503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116715750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116cb5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117c757600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661171161122d565b73ffffffffffffffffffffffffffffffffffffffff1614806117875750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661176f61122d565b73ffffffffffffffffffffffffffffffffffffffff16145b6117c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bd906132ac565b60405180910390fd5b5b5b600f548111156117d757600080fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561187b5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61188457600080fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561192f5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119855750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561199d5750600e60179054906101000a900460ff165b15611a3e5742600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106119ed57600080fd5b603c426119fa91906132cc565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000611a4930610782565b9050600e60159054906101000a900460ff16158015611ab65750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ace5750600e60169054906101000a900460ff165b15611af657611adc81611cf9565b60004790506000811115611af457611af347611c1f565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b9f5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ba957600090505b611bb584848484612036565b50505050565b6000838311158290611c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfa9190612716565b60405180910390fd5b5060008385611c129190613322565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c87573d6000803e3d6000fd5b5050565b6000600654821115611cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc9906133c8565b60405180910390fd5b6000611cdc612063565b9050611cf18184611fec90919063ffffffff16565b915050919050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d3157611d306129bf565b5b604051908082528060200260200182016040528015611d5f5781602001602082028036833780820191505090505b5090503081600081518110611d7757611d76612c24565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e429190612d4b565b81600181518110611e5657611e55612c24565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ebd30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611235565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f219594939291906134a6565b600060405180830381600087803b158015611f3b57600080fd5b505af1158015611f4f573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b6000808303611f845760009050611fe6565b60008284611f929190613500565b9050828482611fa19190613589565b14611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd89061362c565b60405180910390fd5b809150505b92915050565b600061202e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061208e565b905092915050565b80612044576120436120f1565b5b61204f84848461211c565b8061205d5761205c6122e7565b5b50505050565b60008060006120706122f9565b915091506120878183611fec90919063ffffffff16565b9250505090565b600080831182906120d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cc9190612716565b60405180910390fd5b50600083856120e49190613589565b9050809150509392505050565b600060085414801561210557506000600954145b61211a57600060088190555060006009819055505b565b60008060008060008061212e87612358565b95509550955095509550955061218c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bf90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061222185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461240990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061226d81612467565b6122778483612524565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122d49190612865565b60405180910390a3505050505050505050565b60026008819055506001600981905550565b600080600060065490506000670de0b6b3a7640000905061232d670de0b6b3a7640000600654611fec90919063ffffffff16565b82101561234b57600654670de0b6b3a7640000935093505050612354565b81819350935050505b9091565b60008060008060008060008060006123748a600854600361255e565b9250925092506000612384612063565b905060008060006123978e8787876125f4565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061240183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bbb565b905092915050565b600080828461241891906132cc565b90508381101561245d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245490613698565b60405180910390fd5b8091505092915050565b6000612471612063565b905060006124888284611f7290919063ffffffff16565b90506124dc81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461240990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612539826006546123bf90919063ffffffff16565b6006819055506125548160075461240990919063ffffffff16565b6007819055505050565b60008060008061258a606461257c888a611f7290919063ffffffff16565b611fec90919063ffffffff16565b905060006125b460646125a6888b611f7290919063ffffffff16565b611fec90919063ffffffff16565b905060006125dd826125cf858c6123bf90919063ffffffff16565b6123bf90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061260d8589611f7290919063ffffffff16565b905060006126248689611f7290919063ffffffff16565b9050600061263b8789611f7290919063ffffffff16565b905060006126648261265685876123bf90919063ffffffff16565b6123bf90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126b757808201518184015260208101905061269c565b838111156126c6576000848401525b50505050565b6000601f19601f8301169050919050565b60006126e88261267d565b6126f28185612688565b9350612702818560208601612699565b61270b816126cc565b840191505092915050565b6000602082019050818103600083015261273081846126dd565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127778261274c565b9050919050565b6127878161276c565b811461279257600080fd5b50565b6000813590506127a48161277e565b92915050565b6000819050919050565b6127bd816127aa565b81146127c857600080fd5b50565b6000813590506127da816127b4565b92915050565b600080604083850312156127f7576127f6612742565b5b600061280585828601612795565b9250506020612816858286016127cb565b9150509250929050565b60008115159050919050565b61283581612820565b82525050565b6000602082019050612850600083018461282c565b92915050565b61285f816127aa565b82525050565b600060208201905061287a6000830184612856565b92915050565b60008060006060848603121561289957612898612742565b5b60006128a786828701612795565b93505060206128b886828701612795565b92505060406128c9868287016127cb565b9150509250925092565b6000602082840312156128e9576128e8612742565b5b60006128f784828501612795565b91505092915050565b600060ff82169050919050565b61291681612900565b82525050565b6000602082019050612931600083018461290d565b92915050565b61294081612820565b811461294b57600080fd5b50565b60008135905061295d81612937565b92915050565b60006020828403121561297957612978612742565b5b60006129878482850161294e565b91505092915050565b6129998161276c565b82525050565b60006020820190506129b46000830184612990565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6129f7826126cc565b810181811067ffffffffffffffff82111715612a1657612a156129bf565b5b80604052505050565b6000612a29612738565b9050612a3582826129ee565b919050565b600067ffffffffffffffff821115612a5557612a546129bf565b5b602082029050602081019050919050565b600080fd5b6000612a7e612a7984612a3a565b612a1f565b90508083825260208201905060208402830185811115612aa157612aa0612a66565b5b835b81811015612aca5780612ab68882612795565b845260208401935050602081019050612aa3565b5050509392505050565b600082601f830112612ae957612ae86129ba565b5b8135612af9848260208601612a6b565b91505092915050565b600060208284031215612b1857612b17612742565b5b600082013567ffffffffffffffff811115612b3657612b35612747565b5b612b4284828501612ad4565b91505092915050565b600060208284031215612b6157612b60612742565b5b6000612b6f848285016127cb565b91505092915050565b60008060408385031215612b8f57612b8e612742565b5b6000612b9d85828601612795565b9250506020612bae85828601612795565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612bee602083612688565b9150612bf982612bb8565b602082019050919050565b60006020820190508181036000830152612c1d81612be1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c8d826127aa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cbf57612cbe612c53565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612d00601783612688565b9150612d0b82612cca565b602082019050919050565b60006020820190508181036000830152612d2f81612cf3565b9050919050565b600081519050612d458161277e565b92915050565b600060208284031215612d6157612d60612742565b5b6000612d6f84828501612d36565b91505092915050565b6000604082019050612d8d6000830185612990565b612d9a6020830184612990565b9392505050565b6000819050919050565b6000819050919050565b6000612dd0612dcb612dc684612da1565b612dab565b6127aa565b9050919050565b612de081612db5565b82525050565b600060c082019050612dfb6000830189612990565b612e086020830188612856565b612e156040830187612dd7565b612e226060830186612dd7565b612e2f6080830185612990565b612e3c60a0830184612856565b979650505050505050565b600081519050612e56816127b4565b92915050565b600080600060608486031215612e7557612e74612742565b5b6000612e8386828701612e47565b9350506020612e9486828701612e47565b9250506040612ea586828701612e47565b9150509250925092565b6000604082019050612ec46000830185612990565b612ed16020830184612856565b9392505050565b600081519050612ee781612937565b92915050565b600060208284031215612f0357612f02612742565b5b6000612f1184828501612ed8565b91505092915050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000612f50601d83612688565b9150612f5b82612f1a565b602082019050919050565b60006020820190508181036000830152612f7f81612f43565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612fe2602483612688565b9150612fed82612f86565b604082019050919050565b6000602082019050818103600083015261301181612fd5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613074602283612688565b915061307f82613018565b604082019050919050565b600060208201905081810360008301526130a381613067565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613106602583612688565b9150613111826130aa565b604082019050919050565b60006020820190508181036000830152613135816130f9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613198602383612688565b91506131a38261313c565b604082019050919050565b600060208201905081810360008301526131c78161318b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061322a602983612688565b9150613235826131ce565b604082019050919050565b600060208201905081810360008301526132598161321d565b9050919050565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b6000613296601183612688565b91506132a182613260565b602082019050919050565b600060208201905081810360008301526132c581613289565b9050919050565b60006132d7826127aa565b91506132e2836127aa565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561331757613316612c53565b5b828201905092915050565b600061332d826127aa565b9150613338836127aa565b92508282101561334b5761334a612c53565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006133b2602a83612688565b91506133bd82613356565b604082019050919050565b600060208201905081810360008301526133e1816133a5565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61341d8161276c565b82525050565b600061342f8383613414565b60208301905092915050565b6000602082019050919050565b6000613453826133e8565b61345d81856133f3565b935061346883613404565b8060005b838110156134995781516134808882613423565b975061348b8361343b565b92505060018101905061346c565b5085935050505092915050565b600060a0820190506134bb6000830188612856565b6134c86020830187612dd7565b81810360408301526134da8186613448565b90506134e96060830185612990565b6134f66080830184612856565b9695505050505050565b600061350b826127aa565b9150613516836127aa565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561354f5761354e612c53565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613594826127aa565b915061359f836127aa565b9250826135af576135ae61355a565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613616602183612688565b9150613621826135ba565b604082019050919050565b6000602082019050818103600083015261364581613609565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613682601b83612688565b915061368d8261364c565b602082019050919050565b600060208201905081810360008301526136b181613675565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203a1cf56b9b0b432f8c05c6a445053c45f426e321883c627793e568a8b63e582b64736f6c634300080d0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000006963f4c45c4d6416141f2719721dea4566d22721

-----Decoded View---------------
Arg [0] : addr1 (address): 0x6963F4C45C4D6416141f2719721DEA4566D22721

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006963f4c45c4d6416141f2719721dea4566d22721


Deployed Bytecode Sourcemap

3859:12185:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5528:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6453:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5805:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6654:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12302:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5714:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7108:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11928:191;;;;;;;;;;;;;:::i;:::-;;5908:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2811:148;;;;;;;;;;;;;:::i;:::-;;2597:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5619:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6054:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12127:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11728:192;;;;;;;;;;;;;:::i;:::-;;10742:978;;;;;;;;;;;;;:::i;:::-;;15786:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6261:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5528:83;5565:13;5598:5;;;;;;;;;;;;;;;;;5591:12;;5528:83;:::o;6453:193::-;6555:4;6577:39;6586:12;:10;:12::i;:::-;6600:7;6609:6;6577:8;:39::i;:::-;6634:4;6627:11;;6453:193;;;;:::o;5805:95::-;5858:7;4424:18;5878:14;;5805:95;:::o;6654:446::-;6786:4;6803:36;6813:6;6821:9;6832:6;6803:9;:36::i;:::-;6850:220;6873:6;6894:12;:10;:12::i;:::-;6921:138;6977:6;6921:138;;;;;;;;;;;;;;;;;:11;:19;6933:6;6921:19;;;;;;;;;;;;;;;:33;6941:12;:10;:12::i;:::-;6921:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;6850:8;:220::i;:::-;7088:4;7081:11;;6654:446;;;;;:::o;12302:88::-;2734:12;:10;:12::i;:::-;2724:22;;:6;;;;;;;;;;:22;;;2716:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12377:5:::1;12362:4;:12;12367:6;12362:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12302:88:::0;:::o;5714:83::-;5755:5;4086:1;5773:16;;5714:83;:::o;7108:103::-;2734:12;:10;:12::i;:::-;2724:22;;:6;;;;;;;;;;:22;;;2716:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7198:5:::1;7180:15;;:23;;;;;;;;;;;;;;;;;;7108:103:::0;:::o;11928:191::-;11994:12;;;;;;;;;;;11978:28;;:12;:10;:12::i;:::-;:28;;;11970:37;;;;;;12018:26;12047:21;12018:50;;12079:32;12092:18;12079:12;:32::i;:::-;11959:160;11928:191::o;5908:138::-;5974:7;6001:37;6021:7;:16;6029:7;6021:16;;;;;;;;;;;;;;;;6001:19;:37::i;:::-;5994:44;;5908:138;;;:::o;2811:148::-;2734:12;:10;:12::i;:::-;2724:22;;:6;;;;;;;;;;:22;;;2716:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2918:1:::1;2881:40;;2902:6;::::0;::::1;;;;;;;;2881:40;;;;;;;;;;;;2949:1;2932:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2811:148::o:0;2597:79::-;2635:7;2662:6;;;;;;;;;;;2655:13;;2597:79;:::o;5619:87::-;5658:13;5691:7;;;;;;;;;;;;;;;;;5684:14;;5619:87;:::o;6054:199::-;6159:4;6181:42;6191:12;:10;:12::i;:::-;6205:9;6216:6;6181:9;:42::i;:::-;6241:4;6234:11;;6054:199;;;;:::o;12127:167::-;2734:12;:10;:12::i;:::-;2724:22;;:6;;;;;;;;;;:22;;;2716:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12201:9:::1;12196:91;12220:5;:12;12216:1;:16;12196:91;;;12271:4;12254;:14;12259:5;12265:1;12259:8;;;;;;;;:::i;:::-;;;;;;;;12254:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12234:3;;;;;:::i;:::-;;;;12196:91;;;;12127:167:::0;:::o;11728:192::-;11794:12;;;;;;;;;;;11778:28;;:12;:10;:12::i;:::-;:28;;;11770:37;;;;;;11818:23;11844:24;11862:4;11844:9;:24::i;:::-;11818:50;;11879:33;11896:15;11879:16;:33::i;:::-;11759:161;11728:192::o;10742:978::-;2734:12;:10;:12::i;:::-;2724:22;;:6;;;;;;;;;;:22;;;2716:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10806:11:::1;;;;;;;;;;;10805:12;10797:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10856:35;10926:42;10856:113;;10998:16;10980:15;;:34;;;;;;;;;;;;;;;;;;11025:58;11042:4;11057:15;;;;;;;;;;;4424:18;11025:8;:58::i;:::-;11128:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11110:70;;;11189:4;11196:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11110:110;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11094:13;;:126;;;;;;;;;;;;;;;;;;11231:15;;;;;;;;;;;:31;;;11270:21;11315:4;11335:24;11353:4;11335:9;:24::i;:::-;11374:1;11390::::0;11406:7:::1;:5;:7::i;:::-;11428:15;11231:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11479:4;11465:11;;:18;;;;;;;;;;;;;;;;;;11512:5;11494:15;;:23;;;;;;;;;;;;;;;;;;11543:18;11528:12;:33;;;;11586:4;11572:11;;:18;;;;;;;;;;;;;;;;;;11608:13;;;;;;;;;;;11601:29;;;11653:15;;;;;;;;;;;11684:17;11601:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10786:934;10742:978::o:0;15786:255::-;2734:12;:10;:12::i;:::-;2724:22;;:6;;;;;;;;;;:22;;;2716:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15888:1:::1;15873:12;:16;15865:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;15949:36;15979:5;15949:25;15961:12;4424:18;15949:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;15934:12;:51;;;;16001:32;16020:12;;16001:32;;;;;;:::i;:::-;;;;;;;;15786:255:::0;:::o;6261:184::-;6378:7;6410:11;:18;6422:5;6410:18;;;;;;;;;;;;;;;:27;6429:7;6410:27;;;;;;;;;;;;;;;;6403:34;;6261:184;;;;:::o;100:98::-;153:7;180:10;173:17;;100:98;:::o;7789:369::-;7933:1;7916:19;;:5;:19;;;7908:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8014:1;7995:21;;:7;:21;;;7987:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8096:6;8066:11;:18;8078:5;8066:18;;;;;;;;;;;;;;;:27;8085:7;8066:27;;;;;;;;;;;;;;;:36;;;;8134:7;8118:32;;8127:5;8118:32;;;8143:6;8118:32;;;;;;:::i;:::-;;;;;;;;7789:369;;;:::o;8166:1975::-;8304:1;8288:18;;:4;:18;;;8280:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8381:1;8367:16;;:2;:16;;;8359:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8451:1;8442:6;:10;8434:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8523:7;:5;:7::i;:::-;8515:15;;:4;:15;;;;:32;;;;;8540:7;:5;:7::i;:::-;8534:13;;:2;:13;;;;8515:32;8511:1429;;;8568:15;;;;;;;;;;;8564:526;;;8646:4;8630:21;;:4;:21;;;;:65;;;;;8690:4;8676:19;;:2;:19;;;;8630:65;:122;;;;;8736:15;;;;;;;;;;;8720:32;;:4;:32;;;;8630:122;:177;;;;;8791:15;;;;;;;;;;;8777:30;;:2;:30;;;;8630:177;8604:471;;;8908:15;;;;;;;;;;;8884:40;;:12;:10;:12::i;:::-;:40;;;:102;;;;8973:13;;;;;;;;;;;8957:29;;:12;:10;:12::i;:::-;:29;;;8884:102;8850:205;;;;;;;;;;;;:::i;:::-;;;;;;;;;8604:471;8564:526;9122:12;;9112:6;:22;;9104:31;;;;;;9159:4;:10;9164:4;9159:10;;;;;;;;;;;;;;;;;;;;;;;;;9158:11;:24;;;;;9174:4;:8;9179:2;9174:8;;;;;;;;;;;;;;;;;;;;;;;;;9173:9;9158:24;9150:33;;;;;;9228:13;;;;;;;;;;;9220:21;;:4;:21;;;:72;;;;;9276:15;;;;;;;;;;;9262:30;;:2;:30;;;;9220:72;:116;;;;;9314:18;:22;9333:2;9314:22;;;;;;;;;;;;;;;;;;;;;;;;;9313:23;9220:116;:152;;;;;9357:15;;;;;;;;;;;9220:152;9198:328;;;9430:15;9415:8;:12;9424:2;9415:12;;;;;;;;;;;;;;;;:30;9407:39;;;;;;9499:10;9480:15;:30;;;;:::i;:::-;9465:8;:12;9474:2;9465:12;;;;;;;;;;;;;;;:45;;;;9198:328;9540:28;9571:24;9589:4;9571:9;:24::i;:::-;9540:55;;9615:6;;;;;;;;;;;9614:7;:32;;;;;9633:13;;;;;;;;;;;9625:21;;:4;:21;;;;9614:32;:47;;;;;9650:11;;;;;;;;;;;9614:47;9610:319;;;9682:38;9699:20;9682:16;:38::i;:::-;9739:26;9768:21;9739:50;;9833:1;9812:18;:22;9808:106;;;9859:35;9872:21;9859:12;:35::i;:::-;9808:106;9663:266;9610:319;8549:1391;8511:1429;9950:12;9965:4;9950:19;;9986:18;:24;10005:4;9986:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10014:18;:22;10033:2;10014:22;;;;;;;;;;;;;;;;;;;;;;;;;9986:50;9982:98;;;10063:5;10053:15;;9982:98;10092:41;10107:4;10113:2;10117:6;10125:7;10092:14;:41::i;:::-;8269:1872;8166:1975;;;:::o;1362:224::-;1482:7;1515:1;1510;:6;;1518:12;1502:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1542:9;1558:1;1554;:5;;;;:::i;:::-;1542:17;;1577:1;1570:8;;;1362:224;;;;;:::o;10640:94::-;10697:12;;;;;;;;;;;:21;;:29;10719:6;10697:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10640:94;:::o;7219:323::-;7314:7;7372;;7361;:18;;7339:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;7460:19;7482:10;:8;:10::i;:::-;7460:32;;7510:24;7522:11;7510:7;:11;;:24;;;;:::i;:::-;7503:31;;;7219:323;;;:::o;10149:483::-;5142:4;5133:6;;:13;;;;;;;;;;;;;;;;;;10227:21:::1;10265:1;10251:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10227:40;;10296:4;10278;10283:1;10278:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10322:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10312:4;10317:1;10312:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10355:62;10372:4;10387:15;;;;;;;;;;;10405:11;10355:8;:62::i;:::-;10428:15;;;;;;;;;;;:66;;;10509:11;10535:1;10551:4;10578;10598:15;10428:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10216:416;5178:5:::0;5169:6;;:14;;;;;;;;;;;;;;;;;;10149:483;:::o;1594:246::-;1652:7;1681:1;1676;:6;1672:47;;1706:1;1699:8;;;;1672:47;1729:9;1745:1;1741;:5;;;;:::i;:::-;1729:17;;1774:1;1769;1765;:5;;;;:::i;:::-;:10;1757:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1831:1;1824:8;;;1594:246;;;;;:::o;1848:132::-;1906:7;1933:39;1937:1;1940;1933:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1926:46;;1848:132;;;;:::o;12398:282::-;12554:7;12549:28;;12563:14;:12;:14::i;:::-;12549:28;12588:44;12606:6;12614:9;12625:6;12588:17;:44::i;:::-;12648:7;12643:29;;12657:15;:13;:15::i;:::-;12643:29;12398:282;;;;:::o;15349:164::-;15391:7;15412:15;15429;15448:19;:17;:19::i;:::-;15411:56;;;;15485:20;15497:7;15485;:11;;:20;;;;:::i;:::-;15478:27;;;;15349:164;:::o;1988:223::-;2108:7;2140:1;2136;:5;2143:12;2128:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2167:9;2183:1;2179;:5;;;;:::i;:::-;2167:17;;2202:1;2195:8;;;1988:223;;;;;:::o;7550:137::-;7608:1;7597:7;;:12;:29;;;;;7625:1;7613:8;;:13;7597:29;7628:7;7593:42;7655:1;7645:7;:11;;;;7678:1;7667:8;:12;;;;7550:137;:::o;12688:610::-;12835:15;12865:23;12903:12;12930:23;12968:12;12995:13;13022:19;13033:7;13022:10;:19::i;:::-;12820:221;;;;;;;;;;;;13070:28;13090:7;13070;:15;13078:6;13070:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13052:7;:15;13060:6;13052:15;;;;;;;;;;;;;;;:46;;;;13130:39;13153:15;13130:7;:18;13138:9;13130:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13109:7;:18;13117:9;13109:18;;;;;;;;;;;;;;;:60;;;;13180:16;13190:5;13180:9;:16::i;:::-;13207:23;13219:4;13225;13207:11;:23::i;:::-;13263:9;13246:44;;13255:6;13246:44;;;13274:15;13246:44;;;;;;:::i;:::-;;;;;;;;12809:489;;;;;;12688:610;;;:::o;7695:86::-;7749:1;7739:7;:11;;;;7772:1;7761:8;:12;;;;7695:86::o;15521:257::-;15572:7;15581;15601:15;15619:7;;15601:25;;15637:15;4424:18;15637:25;;15687:20;4424:18;15687:7;;:11;;:20;;;;:::i;:::-;15677:7;:30;15673:61;;;15717:7;;4424:18;15709:25;;;;;;;;15673:61;15753:7;15762;15745:25;;;;;;15521:257;;;:::o;13717:607::-;13817:7;13839;13861;13883;13905;13927;13963:23;13988:12;14002:13;14032:32;14044:7;14053;;14062:1;14032:11;:32::i;:::-;13962:102;;;;;;14075:19;14097:10;:8;:10::i;:::-;14075:32;;14119:15;14136:23;14161:12;14190:46;14202:7;14211:4;14217:5;14224:11;14190;:46::i;:::-;14118:118;;;;;;14255:7;14264:15;14281:4;14287:15;14304:4;14310:5;14247:69;;;;;;;;;;;;;;;;;;;13717:607;;;;;;;:::o;1218:136::-;1276:7;1303:43;1307:1;1310;1303:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1296:50;;1218:136;;;;:::o;1031:179::-;1089:7;1109:9;1125:1;1121;:5;;;;:::i;:::-;1109:17;;1150:1;1145;:6;;1137:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1201:1;1194:8;;;1031:179;;;;:::o;13306:211::-;13359:19;13381:10;:8;:10::i;:::-;13359:32;;13402:13;13418:22;13428:11;13418:5;:9;;:22;;;;:::i;:::-;13402:38;;13476:33;13503:5;13476:7;:22;13492:4;13476:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13451:7;:22;13467:4;13451:22;;;;;;;;;;;;;;;:58;;;;13348:169;;13306:211;:::o;13525:147::-;13603:17;13615:4;13603:7;;:11;;:17;;;;:::i;:::-;13593:7;:27;;;;13644:20;13659:4;13644:10;;:14;;:20;;;;:::i;:::-;13631:10;:33;;;;13525:147;;:::o;14332:467::-;14500:7;14522;14544;14579:12;14594:28;14618:3;14594:19;14606:6;14594:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14579:43;;14633:13;14649:29;14674:3;14649:20;14661:7;14649;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14633:45;;14689:23;14715:28;14737:5;14715:17;14727:4;14715:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14689:54;;14762:15;14779:4;14785:5;14754:37;;;;;;;;;14332:467;;;;;;;:::o;14807:534::-;15001:7;15023;15045;15080:15;15098:24;15110:11;15098:7;:11;;:24;;;;:::i;:::-;15080:42;;15133:12;15148:21;15157:11;15148:4;:8;;:21;;;;:::i;:::-;15133:36;;15180:13;15196:22;15206:11;15196:5;:9;;:22;;;;:::i;:::-;15180:38;;15229:23;15255:28;15277:5;15255:17;15267:4;15255:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15229:54;;15302:7;15311:15;15328:4;15294:39;;;;;;;;;;14807:534;;;;;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:119;;;4585:79;;:::i;:::-;4547:119;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4471:329;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:116::-;5306:21;5321:5;5306:21;:::i;:::-;5299:5;5296:32;5286:60;;5342:1;5339;5332:12;5286:60;5236:116;:::o;5358:133::-;5401:5;5439:6;5426:20;5417:29;;5455:30;5479:5;5455:30;:::i;:::-;5358:133;;;;:::o;5497:323::-;5553:6;5602:2;5590:9;5581:7;5577:23;5573:32;5570:119;;;5608:79;;:::i;:::-;5570:119;5728:1;5753:50;5795:7;5786:6;5775:9;5771:22;5753:50;:::i;:::-;5743:60;;5699:114;5497:323;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:117::-;6287:1;6284;6277:12;6301:180;6349:77;6346:1;6339:88;6446:4;6443:1;6436:15;6470:4;6467:1;6460:15;6487:281;6570:27;6592:4;6570:27;:::i;:::-;6562:6;6558:40;6700:6;6688:10;6685:22;6664:18;6652:10;6649:34;6646:62;6643:88;;;6711:18;;:::i;:::-;6643:88;6751:10;6747:2;6740:22;6530:238;6487:281;;:::o;6774:129::-;6808:6;6835:20;;:::i;:::-;6825:30;;6864:33;6892:4;6884:6;6864:33;:::i;:::-;6774:129;;;:::o;6909:311::-;6986:4;7076:18;7068:6;7065:30;7062:56;;;7098:18;;:::i;:::-;7062:56;7148:4;7140:6;7136:17;7128:25;;7208:4;7202;7198:15;7190:23;;6909:311;;;:::o;7226:117::-;7335:1;7332;7325:12;7366:710;7462:5;7487:81;7503:64;7560:6;7503:64;:::i;:::-;7487:81;:::i;:::-;7478:90;;7588:5;7617:6;7610:5;7603:21;7651:4;7644:5;7640:16;7633:23;;7704:4;7696:6;7692:17;7684:6;7680:30;7733:3;7725:6;7722:15;7719:122;;;7752:79;;:::i;:::-;7719:122;7867:6;7850:220;7884:6;7879:3;7876:15;7850:220;;;7959:3;7988:37;8021:3;8009:10;7988:37;:::i;:::-;7983:3;7976:50;8055:4;8050:3;8046:14;8039:21;;7926:144;7910:4;7905:3;7901:14;7894:21;;7850:220;;;7854:21;7468:608;;7366:710;;;;;:::o;8099:370::-;8170:5;8219:3;8212:4;8204:6;8200:17;8196:27;8186:122;;8227:79;;:::i;:::-;8186:122;8344:6;8331:20;8369:94;8459:3;8451:6;8444:4;8436:6;8432:17;8369:94;:::i;:::-;8360:103;;8176:293;8099:370;;;;:::o;8475:539::-;8559:6;8608:2;8596:9;8587:7;8583:23;8579:32;8576:119;;;8614:79;;:::i;:::-;8576:119;8762:1;8751:9;8747:17;8734:31;8792:18;8784:6;8781:30;8778:117;;;8814:79;;:::i;:::-;8778:117;8919:78;8989:7;8980:6;8969:9;8965:22;8919:78;:::i;:::-;8909:88;;8705:302;8475:539;;;;:::o;9020:329::-;9079:6;9128:2;9116:9;9107:7;9103:23;9099:32;9096:119;;;9134:79;;:::i;:::-;9096:119;9254:1;9279:53;9324:7;9315:6;9304:9;9300:22;9279:53;:::i;:::-;9269:63;;9225:117;9020:329;;;;:::o;9355:474::-;9423:6;9431;9480:2;9468:9;9459:7;9455:23;9451:32;9448:119;;;9486:79;;:::i;:::-;9448:119;9606:1;9631:53;9676:7;9667:6;9656:9;9652:22;9631:53;:::i;:::-;9621:63;;9577:117;9733:2;9759:53;9804:7;9795:6;9784:9;9780:22;9759:53;:::i;:::-;9749:63;;9704:118;9355:474;;;;;:::o;9835:182::-;9975:34;9971:1;9963:6;9959:14;9952:58;9835:182;:::o;10023:366::-;10165:3;10186:67;10250:2;10245:3;10186:67;:::i;:::-;10179:74;;10262:93;10351:3;10262:93;:::i;:::-;10380:2;10375:3;10371:12;10364:19;;10023:366;;;:::o;10395:419::-;10561:4;10599:2;10588:9;10584:18;10576:26;;10648:9;10642:4;10638:20;10634:1;10623:9;10619:17;10612:47;10676:131;10802:4;10676:131;:::i;:::-;10668:139;;10395:419;;;:::o;10820:180::-;10868:77;10865:1;10858:88;10965:4;10962:1;10955:15;10989:4;10986:1;10979:15;11006:180;11054:77;11051:1;11044:88;11151:4;11148:1;11141:15;11175:4;11172:1;11165:15;11192:233;11231:3;11254:24;11272:5;11254:24;:::i;:::-;11245:33;;11300:66;11293:5;11290:77;11287:103;;11370:18;;:::i;:::-;11287:103;11417:1;11410:5;11406:13;11399:20;;11192:233;;;:::o;11431:173::-;11571:25;11567:1;11559:6;11555:14;11548:49;11431:173;:::o;11610:366::-;11752:3;11773:67;11837:2;11832:3;11773:67;:::i;:::-;11766:74;;11849:93;11938:3;11849:93;:::i;:::-;11967:2;11962:3;11958:12;11951:19;;11610:366;;;:::o;11982:419::-;12148:4;12186:2;12175:9;12171:18;12163:26;;12235:9;12229:4;12225:20;12221:1;12210:9;12206:17;12199:47;12263:131;12389:4;12263:131;:::i;:::-;12255:139;;11982:419;;;:::o;12407:143::-;12464:5;12495:6;12489:13;12480:22;;12511:33;12538:5;12511:33;:::i;:::-;12407:143;;;;:::o;12556:351::-;12626:6;12675:2;12663:9;12654:7;12650:23;12646:32;12643:119;;;12681:79;;:::i;:::-;12643:119;12801:1;12826:64;12882:7;12873:6;12862:9;12858:22;12826:64;:::i;:::-;12816:74;;12772:128;12556:351;;;;:::o;12913:332::-;13034:4;13072:2;13061:9;13057:18;13049:26;;13085:71;13153:1;13142:9;13138:17;13129:6;13085:71;:::i;:::-;13166:72;13234:2;13223:9;13219:18;13210:6;13166:72;:::i;:::-;12913:332;;;;;:::o;13251:85::-;13296:7;13325:5;13314:16;;13251:85;;;:::o;13342:60::-;13370:3;13391:5;13384:12;;13342:60;;;:::o;13408:158::-;13466:9;13499:61;13517:42;13526:32;13552:5;13526:32;:::i;:::-;13517:42;:::i;:::-;13499:61;:::i;:::-;13486:74;;13408:158;;;:::o;13572:147::-;13667:45;13706:5;13667:45;:::i;:::-;13662:3;13655:58;13572:147;;:::o;13725:807::-;13974:4;14012:3;14001:9;13997:19;13989:27;;14026:71;14094:1;14083:9;14079:17;14070:6;14026:71;:::i;:::-;14107:72;14175:2;14164:9;14160:18;14151:6;14107:72;:::i;:::-;14189:80;14265:2;14254:9;14250:18;14241:6;14189:80;:::i;:::-;14279;14355:2;14344:9;14340:18;14331:6;14279:80;:::i;:::-;14369:73;14437:3;14426:9;14422:19;14413:6;14369:73;:::i;:::-;14452;14520:3;14509:9;14505:19;14496:6;14452:73;:::i;:::-;13725:807;;;;;;;;;:::o;14538:143::-;14595:5;14626:6;14620:13;14611:22;;14642:33;14669:5;14642:33;:::i;:::-;14538:143;;;;:::o;14687:663::-;14775:6;14783;14791;14840:2;14828:9;14819:7;14815:23;14811:32;14808:119;;;14846:79;;:::i;:::-;14808:119;14966:1;14991:64;15047:7;15038:6;15027:9;15023:22;14991:64;:::i;:::-;14981:74;;14937:128;15104:2;15130:64;15186:7;15177:6;15166:9;15162:22;15130:64;:::i;:::-;15120:74;;15075:129;15243:2;15269:64;15325:7;15316:6;15305:9;15301:22;15269:64;:::i;:::-;15259:74;;15214:129;14687:663;;;;;:::o;15356:332::-;15477:4;15515:2;15504:9;15500:18;15492:26;;15528:71;15596:1;15585:9;15581:17;15572:6;15528:71;:::i;:::-;15609:72;15677:2;15666:9;15662:18;15653:6;15609:72;:::i;:::-;15356:332;;;;;:::o;15694:137::-;15748:5;15779:6;15773:13;15764:22;;15795:30;15819:5;15795:30;:::i;:::-;15694:137;;;;:::o;15837:345::-;15904:6;15953:2;15941:9;15932:7;15928:23;15924:32;15921:119;;;15959:79;;:::i;:::-;15921:119;16079:1;16104:61;16157:7;16148:6;16137:9;16133:22;16104:61;:::i;:::-;16094:71;;16050:125;15837:345;;;;:::o;16188:179::-;16328:31;16324:1;16316:6;16312:14;16305:55;16188:179;:::o;16373:366::-;16515:3;16536:67;16600:2;16595:3;16536:67;:::i;:::-;16529:74;;16612:93;16701:3;16612:93;:::i;:::-;16730:2;16725:3;16721:12;16714:19;;16373:366;;;:::o;16745:419::-;16911:4;16949:2;16938:9;16934:18;16926:26;;16998:9;16992:4;16988:20;16984:1;16973:9;16969:17;16962:47;17026:131;17152:4;17026:131;:::i;:::-;17018:139;;16745:419;;;:::o;17170:223::-;17310:34;17306:1;17298:6;17294:14;17287:58;17379:6;17374:2;17366:6;17362:15;17355:31;17170:223;:::o;17399:366::-;17541:3;17562:67;17626:2;17621:3;17562:67;:::i;:::-;17555:74;;17638:93;17727:3;17638:93;:::i;:::-;17756:2;17751:3;17747:12;17740:19;;17399:366;;;:::o;17771:419::-;17937:4;17975:2;17964:9;17960:18;17952:26;;18024:9;18018:4;18014:20;18010:1;17999:9;17995:17;17988:47;18052:131;18178:4;18052:131;:::i;:::-;18044:139;;17771:419;;;:::o;18196:221::-;18336:34;18332:1;18324:6;18320:14;18313:58;18405:4;18400:2;18392:6;18388:15;18381:29;18196:221;:::o;18423:366::-;18565:3;18586:67;18650:2;18645:3;18586:67;:::i;:::-;18579:74;;18662:93;18751:3;18662:93;:::i;:::-;18780:2;18775:3;18771:12;18764:19;;18423:366;;;:::o;18795:419::-;18961:4;18999:2;18988:9;18984:18;18976:26;;19048:9;19042:4;19038:20;19034:1;19023:9;19019:17;19012:47;19076:131;19202:4;19076:131;:::i;:::-;19068:139;;18795:419;;;:::o;19220:224::-;19360:34;19356:1;19348:6;19344:14;19337:58;19429:7;19424:2;19416:6;19412:15;19405:32;19220:224;:::o;19450:366::-;19592:3;19613:67;19677:2;19672:3;19613:67;:::i;:::-;19606:74;;19689:93;19778:3;19689:93;:::i;:::-;19807:2;19802:3;19798:12;19791:19;;19450:366;;;:::o;19822:419::-;19988:4;20026:2;20015:9;20011:18;20003:26;;20075:9;20069:4;20065:20;20061:1;20050:9;20046:17;20039:47;20103:131;20229:4;20103:131;:::i;:::-;20095:139;;19822:419;;;:::o;20247:222::-;20387:34;20383:1;20375:6;20371:14;20364:58;20456:5;20451:2;20443:6;20439:15;20432:30;20247:222;:::o;20475:366::-;20617:3;20638:67;20702:2;20697:3;20638:67;:::i;:::-;20631:74;;20714:93;20803:3;20714:93;:::i;:::-;20832:2;20827:3;20823:12;20816:19;;20475:366;;;:::o;20847:419::-;21013:4;21051:2;21040:9;21036:18;21028:26;;21100:9;21094:4;21090:20;21086:1;21075:9;21071:17;21064:47;21128:131;21254:4;21128:131;:::i;:::-;21120:139;;20847:419;;;:::o;21272:228::-;21412:34;21408:1;21400:6;21396:14;21389:58;21481:11;21476:2;21468:6;21464:15;21457:36;21272:228;:::o;21506:366::-;21648:3;21669:67;21733:2;21728:3;21669:67;:::i;:::-;21662:74;;21745:93;21834:3;21745:93;:::i;:::-;21863:2;21858:3;21854:12;21847:19;;21506:366;;;:::o;21878:419::-;22044:4;22082:2;22071:9;22067:18;22059:26;;22131:9;22125:4;22121:20;22117:1;22106:9;22102:17;22095:47;22159:131;22285:4;22159:131;:::i;:::-;22151:139;;21878:419;;;:::o;22303:167::-;22443:19;22439:1;22431:6;22427:14;22420:43;22303:167;:::o;22476:366::-;22618:3;22639:67;22703:2;22698:3;22639:67;:::i;:::-;22632:74;;22715:93;22804:3;22715:93;:::i;:::-;22833:2;22828:3;22824:12;22817:19;;22476:366;;;:::o;22848:419::-;23014:4;23052:2;23041:9;23037:18;23029:26;;23101:9;23095:4;23091:20;23087:1;23076:9;23072:17;23065:47;23129:131;23255:4;23129:131;:::i;:::-;23121:139;;22848:419;;;:::o;23273:305::-;23313:3;23332:20;23350:1;23332:20;:::i;:::-;23327:25;;23366:20;23384:1;23366:20;:::i;:::-;23361:25;;23520:1;23452:66;23448:74;23445:1;23442:81;23439:107;;;23526:18;;:::i;:::-;23439:107;23570:1;23567;23563:9;23556:16;;23273:305;;;;:::o;23584:191::-;23624:4;23644:20;23662:1;23644:20;:::i;:::-;23639:25;;23678:20;23696:1;23678:20;:::i;:::-;23673:25;;23717:1;23714;23711:8;23708:34;;;23722:18;;:::i;:::-;23708:34;23767:1;23764;23760:9;23752:17;;23584:191;;;;:::o;23781:229::-;23921:34;23917:1;23909:6;23905:14;23898:58;23990:12;23985:2;23977:6;23973:15;23966:37;23781:229;:::o;24016:366::-;24158:3;24179:67;24243:2;24238:3;24179:67;:::i;:::-;24172:74;;24255:93;24344:3;24255:93;:::i;:::-;24373:2;24368:3;24364:12;24357:19;;24016:366;;;:::o;24388:419::-;24554:4;24592:2;24581:9;24577:18;24569:26;;24641:9;24635:4;24631:20;24627:1;24616:9;24612:17;24605:47;24669:131;24795:4;24669:131;:::i;:::-;24661:139;;24388:419;;;:::o;24813:114::-;24880:6;24914:5;24908:12;24898:22;;24813:114;;;:::o;24933:184::-;25032:11;25066:6;25061:3;25054:19;25106:4;25101:3;25097:14;25082:29;;24933:184;;;;:::o;25123:132::-;25190:4;25213:3;25205:11;;25243:4;25238:3;25234:14;25226:22;;25123:132;;;:::o;25261:108::-;25338:24;25356:5;25338:24;:::i;:::-;25333:3;25326:37;25261:108;;:::o;25375:179::-;25444:10;25465:46;25507:3;25499:6;25465:46;:::i;:::-;25543:4;25538:3;25534:14;25520:28;;25375:179;;;;:::o;25560:113::-;25630:4;25662;25657:3;25653:14;25645:22;;25560:113;;;:::o;25709:732::-;25828:3;25857:54;25905:5;25857:54;:::i;:::-;25927:86;26006:6;26001:3;25927:86;:::i;:::-;25920:93;;26037:56;26087:5;26037:56;:::i;:::-;26116:7;26147:1;26132:284;26157:6;26154:1;26151:13;26132:284;;;26233:6;26227:13;26260:63;26319:3;26304:13;26260:63;:::i;:::-;26253:70;;26346:60;26399:6;26346:60;:::i;:::-;26336:70;;26192:224;26179:1;26176;26172:9;26167:14;;26132:284;;;26136:14;26432:3;26425:10;;25833:608;;;25709:732;;;;:::o;26447:831::-;26710:4;26748:3;26737:9;26733:19;26725:27;;26762:71;26830:1;26819:9;26815:17;26806:6;26762:71;:::i;:::-;26843:80;26919:2;26908:9;26904:18;26895:6;26843:80;:::i;:::-;26970:9;26964:4;26960:20;26955:2;26944:9;26940:18;26933:48;26998:108;27101:4;27092:6;26998:108;:::i;:::-;26990:116;;27116:72;27184:2;27173:9;27169:18;27160:6;27116:72;:::i;:::-;27198:73;27266:3;27255:9;27251:19;27242:6;27198:73;:::i;:::-;26447:831;;;;;;;;:::o;27284:348::-;27324:7;27347:20;27365:1;27347:20;:::i;:::-;27342:25;;27381:20;27399:1;27381:20;:::i;:::-;27376:25;;27569:1;27501:66;27497:74;27494:1;27491:81;27486:1;27479:9;27472:17;27468:105;27465:131;;;27576:18;;:::i;:::-;27465:131;27624:1;27621;27617:9;27606:20;;27284:348;;;;:::o;27638:180::-;27686:77;27683:1;27676:88;27783:4;27780:1;27773:15;27807:4;27804:1;27797:15;27824:185;27864:1;27881:20;27899:1;27881:20;:::i;:::-;27876:25;;27915:20;27933:1;27915:20;:::i;:::-;27910:25;;27954:1;27944:35;;27959:18;;:::i;:::-;27944:35;28001:1;27998;27994:9;27989:14;;27824:185;;;;:::o;28015:220::-;28155:34;28151:1;28143:6;28139:14;28132:58;28224:3;28219:2;28211:6;28207:15;28200:28;28015:220;:::o;28241:366::-;28383:3;28404:67;28468:2;28463:3;28404:67;:::i;:::-;28397:74;;28480:93;28569:3;28480:93;:::i;:::-;28598:2;28593:3;28589:12;28582:19;;28241:366;;;:::o;28613:419::-;28779:4;28817:2;28806:9;28802:18;28794:26;;28866:9;28860:4;28856:20;28852:1;28841:9;28837:17;28830:47;28894:131;29020:4;28894:131;:::i;:::-;28886:139;;28613:419;;;:::o;29038:177::-;29178:29;29174:1;29166:6;29162:14;29155:53;29038:177;:::o;29221:366::-;29363:3;29384:67;29448:2;29443:3;29384:67;:::i;:::-;29377:74;;29460:93;29549:3;29460:93;:::i;:::-;29578:2;29573:3;29569:12;29562:19;;29221:366;;;:::o;29593:419::-;29759:4;29797:2;29786:9;29782:18;29774:26;;29846:9;29840:4;29836:20;29832:1;29821:9;29817:17;29810:47;29874:131;30000:4;29874:131;:::i;:::-;29866:139;;29593:419;;;:::o

Swarm Source

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