ETH Price: $3,184.97 (-7.47%)
Gas: 3 Gwei

Token

Flying Saucer (FS)
 

Overview

Max Total Supply

1,000,000,000,000 FS

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,099,695.789551869 FS

Value
$0.00
0x271AE6e3653d3E031aa5864b7F62924A3ad62621
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:
FlyingSaucer

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-07-05
*/

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

    string private constant _name = "Flying Saucer";
    string private constant _symbol = "FS";
    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 = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _taxFee = 2;
    uint256 private _teamFee = 15;

    // 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 = 5;
        _teamFee = 20;
    }

    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 = true;
        _maxTxAmount = 10000000000 * 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, _teamFee);
        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 _setTeamWallet(address payable teamWallet) external onlyOwner() {
        _teamAddress = teamWallet;
    }

    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 payable","name":"teamWallet","type":"address"}],"name":"_setTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"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"}]

6080604052683635c9adc5dea000006000196200001d9190620004eb565b6000196200002c919062000472565b6006556002600855600f6009556000600e60156101000a81548160ff0219169083151502179055506000600e60166101000a81548160ff0219169083151502179055506000600e60176101000a81548160ff021916908315150217905550683635c9adc5dea00000600f55348015620000a457600080fd5b5060405162003ea638038062003ea68339818101604052810190620000ca919062000418565b6000620000dc620003d060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065460026000620001d2620003d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600062000226620003d860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000359620003d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620003c1919062000455565b60405180910390a3506200059b565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620004128162000581565b92915050565b6000602082840312156200042b57600080fd5b60006200043b8482850162000401565b91505092915050565b6200044f81620004e1565b82525050565b60006020820190506200046c600083018462000444565b92915050565b60006200047f82620004e1565b91506200048c83620004e1565b925082821015620004a257620004a162000523565b5b828203905092915050565b6000620004ba82620004c1565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620004f882620004e1565b91506200050583620004e1565b92508262000518576200051762000552565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6200058c81620004ad565b81146200059857600080fd5b50565b6138fb80620005ab6000396000f3fe6080604052600436106101185760003560e01c8063715018a6116100a0578063b80ec98d11610064578063b80ec98d14610398578063c3c8cd80146103c1578063c9567bf9146103d8578063d543dbeb146103ef578063dd62ed3e146104185761011f565b8063715018a6146102c55780638da5cb5b146102dc57806395d89b4114610307578063a9059cbb14610332578063b515566a1461036f5761011f565b8063273123b7116100e7578063273123b7146101f4578063313ce5671461021d5780635932ead1146102485780636fc3eaec1461027157806370a08231146102885761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c57806323b872dd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610455565b6040516101469190612f9a565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612abd565b610492565b6040516101839190612f7f565b60405180910390f35b34801561019857600080fd5b506101a16104b0565b6040516101ae919061313c565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190612a6e565b6104c1565b6040516101eb9190612f7f565b60405180910390f35b34801561020057600080fd5b5061021b600480360381019061021691906129b7565b61059a565b005b34801561022957600080fd5b5061023261068a565b60405161023f91906131b1565b60405180910390f35b34801561025457600080fd5b5061026f600480360381019061026a9190612b3a565b610693565b005b34801561027d57600080fd5b50610286610745565b005b34801561029457600080fd5b506102af60048036038101906102aa91906129b7565b6107b7565b6040516102bc919061313c565b60405180910390f35b3480156102d157600080fd5b506102da610808565b005b3480156102e857600080fd5b506102f161095b565b6040516102fe9190612eb1565b60405180910390f35b34801561031357600080fd5b5061031c610984565b6040516103299190612f9a565b60405180910390f35b34801561033e57600080fd5b5061035960048036038101906103549190612abd565b6109c1565b6040516103669190612f7f565b60405180910390f35b34801561037b57600080fd5b5061039660048036038101906103919190612af9565b6109df565b005b3480156103a457600080fd5b506103bf60048036038101906103ba9190612a09565b610b2f565b005b3480156103cd57600080fd5b506103d6610c08565b005b3480156103e457600080fd5b506103ed610c82565b005b3480156103fb57600080fd5b5061041660048036038101906104119190612b8c565b6111de565b005b34801561042457600080fd5b5061043f600480360381019061043a9190612a32565b611327565b60405161044c919061313c565b60405180910390f35b60606040518060400160405280600d81526020017f466c79696e672053617563657200000000000000000000000000000000000000815250905090565b60006104a661049f6113ae565b84846113b6565b6001905092915050565b6000683635c9adc5dea00000905090565b60006104ce848484611581565b61058f846104da6113ae565b61058a8560405180606001604052806028815260200161389e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105406113ae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d409092919063ffffffff16565b6113b6565b600190509392505050565b6105a26113ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461062f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106269061307c565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b61069b6113ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071f9061307c565b60405180910390fd5b80600e60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107866113ae565b73ffffffffffffffffffffffffffffffffffffffff16146107a657600080fd5b60004790506107b481611da4565b50565b6000610801600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e10565b9050919050565b6108106113ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461089d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108949061307c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f4653000000000000000000000000000000000000000000000000000000000000815250905090565b60006109d56109ce6113ae565b8484611581565b6001905092915050565b6109e76113ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6b9061307c565b60405180910390fd5b60005b8151811015610b2b576001600a6000848481518110610abf577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b2390613464565b915050610a77565b5050565b610b376113ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbb9061307c565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c496113ae565b73ffffffffffffffffffffffffffffffffffffffff1614610c6957600080fd5b6000610c74306107b7565b9050610c7f81611e7e565b50565b610c8a6113ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0e9061307c565b60405180910390fd5b600e60149054906101000a900460ff1615610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e906130fc565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610df730600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006113b6565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e3d57600080fd5b505afa158015610e51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7591906129e0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ed757600080fd5b505afa158015610eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0f91906129e0565b6040518363ffffffff1660e01b8152600401610f2c929190612ecc565b602060405180830381600087803b158015610f4657600080fd5b505af1158015610f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7e91906129e0565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611007306107b7565b60008061101261095b565b426040518863ffffffff1660e01b815260040161103496959493929190612f1e565b6060604051808303818588803b15801561104d57600080fd5b505af1158015611061573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110869190612bb5565b5050506001600e60166101000a81548160ff0219169083151502179055506001600e60176101000a81548160ff021916908315150217905550678ac7230489e80000600f819055506001600e60146101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611188929190612ef5565b602060405180830381600087803b1580156111a257600080fd5b505af11580156111b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111da9190612b63565b5050565b6111e66113ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126a9061307c565b60405180910390fd5b600081116112b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ad9061303c565b60405180910390fd5b6112e560646112d783683635c9adc5dea0000061217890919063ffffffff16565b6121f390919063ffffffff16565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf600f5460405161131c919061313c565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d906130dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148d90612ffc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611574919061313c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e8906130bc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165890612fbc565b60405180910390fd5b600081116116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b9061309c565b60405180910390fd5b6116ac61095b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561171a57506116ea61095b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c7d57600e60179054906101000a900460ff161561194d573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561179c57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117f65750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118505750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561194c57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118966113ae565b73ffffffffffffffffffffffffffffffffffffffff16148061190c5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118f46113ae565b73ffffffffffffffffffffffffffffffffffffffff16145b61194b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119429061311c565b60405180910390fd5b5b5b600f5481111561195c57600080fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a005750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a0957600080fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ab45750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b0a5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b225750600e60179054906101000a900460ff165b15611bc35742600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b7257600080fd5b603c42611b7f9190613272565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000611bce306107b7565b9050600e60159054906101000a900460ff16158015611c3b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611c535750600e60169054906101000a900460ff165b15611c7b57611c6181611e7e565b60004790506000811115611c7957611c7847611da4565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d245750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d2e57600090505b611d3a8484848461223d565b50505050565b6000838311158290611d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7f9190612f9a565b60405180910390fd5b5060008385611d979190613353565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e0c573d6000803e3d6000fd5b5050565b6000600654821115611e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4e90612fdc565b60405180910390fd5b6000611e6161226a565b9050611e7681846121f390919063ffffffff16565b915050919050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611edc577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611f0a5781602001602082028036833780820191505090505b5090503081600081518110611f48577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611fea57600080fd5b505afa158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202291906129e0565b8160018151811061205c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120c330600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113b6565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612127959493929190613157565b600060405180830381600087803b15801561214157600080fd5b505af1158015612155573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b60008083141561218b57600090506121ed565b6000828461219991906132f9565b90508284826121a891906132c8565b146121e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121df9061305c565b60405180910390fd5b809150505b92915050565b600061223583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612295565b905092915050565b8061224b5761224a6122f8565b5b612256848484612329565b80612264576122636124f4565b5b50505050565b6000806000612277612506565b9150915061228e81836121f390919063ffffffff16565b9250505090565b600080831182906122dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d39190612f9a565b60405180910390fd5b50600083856122eb91906132c8565b9050809150509392505050565b600060085414801561230c57506000600954145b1561231657612327565b600060088190555060006009819055505b565b60008060008060008061233b87612568565b95509550955095509550955061239986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242e85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061247a81612678565b6124848483612735565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124e1919061313c565b60405180910390a3505050505050505050565b60056008819055506014600981905550565b600080600060065490506000683635c9adc5dea00000905061253c683635c9adc5dea000006006546121f390919063ffffffff16565b82101561255b57600654683635c9adc5dea00000935093505050612564565b81819350935050505b9091565b60008060008060008060008060006125858a60085460095461276f565b925092509250600061259561226a565b905060008060006125a88e878787612805565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061261283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d40565b905092915050565b60008082846126299190613272565b90508381101561266e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126659061301c565b60405180910390fd5b8091505092915050565b600061268261226a565b90506000612699828461217890919063ffffffff16565b90506126ed81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61274a826006546125d090919063ffffffff16565b6006819055506127658160075461261a90919063ffffffff16565b6007819055505050565b60008060008061279b606461278d888a61217890919063ffffffff16565b6121f390919063ffffffff16565b905060006127c560646127b7888b61217890919063ffffffff16565b6121f390919063ffffffff16565b905060006127ee826127e0858c6125d090919063ffffffff16565b6125d090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061281e858961217890919063ffffffff16565b90506000612835868961217890919063ffffffff16565b9050600061284c878961217890919063ffffffff16565b905060006128758261286785876125d090919063ffffffff16565b6125d090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60006128a161289c846131f1565b6131cc565b905080838252602082019050828560208602820111156128c057600080fd5b60005b858110156128f057816128d688826128fa565b8452602084019350602083019250506001810190506128c3565b5050509392505050565b60008135905061290981613841565b92915050565b60008151905061291e81613841565b92915050565b60008135905061293381613858565b92915050565b600082601f83011261294a57600080fd5b813561295a84826020860161288e565b91505092915050565b6000813590506129728161386f565b92915050565b6000815190506129878161386f565b92915050565b60008135905061299c81613886565b92915050565b6000815190506129b181613886565b92915050565b6000602082840312156129c957600080fd5b60006129d7848285016128fa565b91505092915050565b6000602082840312156129f257600080fd5b6000612a008482850161290f565b91505092915050565b600060208284031215612a1b57600080fd5b6000612a2984828501612924565b91505092915050565b60008060408385031215612a4557600080fd5b6000612a53858286016128fa565b9250506020612a64858286016128fa565b9150509250929050565b600080600060608486031215612a8357600080fd5b6000612a91868287016128fa565b9350506020612aa2868287016128fa565b9250506040612ab38682870161298d565b9150509250925092565b60008060408385031215612ad057600080fd5b6000612ade858286016128fa565b9250506020612aef8582860161298d565b9150509250929050565b600060208284031215612b0b57600080fd5b600082013567ffffffffffffffff811115612b2557600080fd5b612b3184828501612939565b91505092915050565b600060208284031215612b4c57600080fd5b6000612b5a84828501612963565b91505092915050565b600060208284031215612b7557600080fd5b6000612b8384828501612978565b91505092915050565b600060208284031215612b9e57600080fd5b6000612bac8482850161298d565b91505092915050565b600080600060608486031215612bca57600080fd5b6000612bd8868287016129a2565b9350506020612be9868287016129a2565b9250506040612bfa868287016129a2565b9150509250925092565b6000612c108383612c1c565b60208301905092915050565b612c2581613387565b82525050565b612c3481613387565b82525050565b6000612c458261322d565b612c4f8185613250565b9350612c5a8361321d565b8060005b83811015612c8b578151612c728882612c04565b9750612c7d83613243565b925050600181019050612c5e565b5085935050505092915050565b612ca1816133ab565b82525050565b612cb0816133ee565b82525050565b6000612cc182613238565b612ccb8185613261565b9350612cdb818560208601613400565b612ce48161353a565b840191505092915050565b6000612cfc602383613261565b9150612d078261354b565b604082019050919050565b6000612d1f602a83613261565b9150612d2a8261359a565b604082019050919050565b6000612d42602283613261565b9150612d4d826135e9565b604082019050919050565b6000612d65601b83613261565b9150612d7082613638565b602082019050919050565b6000612d88601d83613261565b9150612d9382613661565b602082019050919050565b6000612dab602183613261565b9150612db68261368a565b604082019050919050565b6000612dce602083613261565b9150612dd9826136d9565b602082019050919050565b6000612df1602983613261565b9150612dfc82613702565b604082019050919050565b6000612e14602583613261565b9150612e1f82613751565b604082019050919050565b6000612e37602483613261565b9150612e42826137a0565b604082019050919050565b6000612e5a601783613261565b9150612e65826137ef565b602082019050919050565b6000612e7d601183613261565b9150612e8882613818565b602082019050919050565b612e9c816133d7565b82525050565b612eab816133e1565b82525050565b6000602082019050612ec66000830184612c2b565b92915050565b6000604082019050612ee16000830185612c2b565b612eee6020830184612c2b565b9392505050565b6000604082019050612f0a6000830185612c2b565b612f176020830184612e93565b9392505050565b600060c082019050612f336000830189612c2b565b612f406020830188612e93565b612f4d6040830187612ca7565b612f5a6060830186612ca7565b612f676080830185612c2b565b612f7460a0830184612e93565b979650505050505050565b6000602082019050612f946000830184612c98565b92915050565b60006020820190508181036000830152612fb48184612cb6565b905092915050565b60006020820190508181036000830152612fd581612cef565b9050919050565b60006020820190508181036000830152612ff581612d12565b9050919050565b6000602082019050818103600083015261301581612d35565b9050919050565b6000602082019050818103600083015261303581612d58565b9050919050565b6000602082019050818103600083015261305581612d7b565b9050919050565b6000602082019050818103600083015261307581612d9e565b9050919050565b6000602082019050818103600083015261309581612dc1565b9050919050565b600060208201905081810360008301526130b581612de4565b9050919050565b600060208201905081810360008301526130d581612e07565b9050919050565b600060208201905081810360008301526130f581612e2a565b9050919050565b6000602082019050818103600083015261311581612e4d565b9050919050565b6000602082019050818103600083015261313581612e70565b9050919050565b60006020820190506131516000830184612e93565b92915050565b600060a08201905061316c6000830188612e93565b6131796020830187612ca7565b818103604083015261318b8186612c3a565b905061319a6060830185612c2b565b6131a76080830184612e93565b9695505050505050565b60006020820190506131c66000830184612ea2565b92915050565b60006131d66131e7565b90506131e28282613433565b919050565b6000604051905090565b600067ffffffffffffffff82111561320c5761320b61350b565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061327d826133d7565b9150613288836133d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132bd576132bc6134ad565b5b828201905092915050565b60006132d3826133d7565b91506132de836133d7565b9250826132ee576132ed6134dc565b5b828204905092915050565b6000613304826133d7565b915061330f836133d7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613348576133476134ad565b5b828202905092915050565b600061335e826133d7565b9150613369836133d7565b92508282101561337c5761337b6134ad565b5b828203905092915050565b6000613392826133b7565b9050919050565b60006133a4826133b7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006133f9826133d7565b9050919050565b60005b8381101561341e578082015181840152602081019050613403565b8381111561342d576000848401525b50505050565b61343c8261353a565b810181811067ffffffffffffffff8211171561345b5761345a61350b565b5b80604052505050565b600061346f826133d7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156134a2576134a16134ad565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b61384a81613387565b811461385557600080fd5b50565b61386181613399565b811461386c57600080fd5b50565b613878816133ab565b811461388357600080fd5b50565b61388f816133d7565b811461389a57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208409c7384a75183a2831a60db2fe93e96731cec1ba9509fed2b54963e0b4a7d364736f6c63430008040033000000000000000000000000b596b58cbb81d4f8936f5b46104ecfc568dc4ccb

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063715018a6116100a0578063b80ec98d11610064578063b80ec98d14610398578063c3c8cd80146103c1578063c9567bf9146103d8578063d543dbeb146103ef578063dd62ed3e146104185761011f565b8063715018a6146102c55780638da5cb5b146102dc57806395d89b4114610307578063a9059cbb14610332578063b515566a1461036f5761011f565b8063273123b7116100e7578063273123b7146101f4578063313ce5671461021d5780635932ead1146102485780636fc3eaec1461027157806370a08231146102885761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c57806323b872dd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610455565b6040516101469190612f9a565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612abd565b610492565b6040516101839190612f7f565b60405180910390f35b34801561019857600080fd5b506101a16104b0565b6040516101ae919061313c565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190612a6e565b6104c1565b6040516101eb9190612f7f565b60405180910390f35b34801561020057600080fd5b5061021b600480360381019061021691906129b7565b61059a565b005b34801561022957600080fd5b5061023261068a565b60405161023f91906131b1565b60405180910390f35b34801561025457600080fd5b5061026f600480360381019061026a9190612b3a565b610693565b005b34801561027d57600080fd5b50610286610745565b005b34801561029457600080fd5b506102af60048036038101906102aa91906129b7565b6107b7565b6040516102bc919061313c565b60405180910390f35b3480156102d157600080fd5b506102da610808565b005b3480156102e857600080fd5b506102f161095b565b6040516102fe9190612eb1565b60405180910390f35b34801561031357600080fd5b5061031c610984565b6040516103299190612f9a565b60405180910390f35b34801561033e57600080fd5b5061035960048036038101906103549190612abd565b6109c1565b6040516103669190612f7f565b60405180910390f35b34801561037b57600080fd5b5061039660048036038101906103919190612af9565b6109df565b005b3480156103a457600080fd5b506103bf60048036038101906103ba9190612a09565b610b2f565b005b3480156103cd57600080fd5b506103d6610c08565b005b3480156103e457600080fd5b506103ed610c82565b005b3480156103fb57600080fd5b5061041660048036038101906104119190612b8c565b6111de565b005b34801561042457600080fd5b5061043f600480360381019061043a9190612a32565b611327565b60405161044c919061313c565b60405180910390f35b60606040518060400160405280600d81526020017f466c79696e672053617563657200000000000000000000000000000000000000815250905090565b60006104a661049f6113ae565b84846113b6565b6001905092915050565b6000683635c9adc5dea00000905090565b60006104ce848484611581565b61058f846104da6113ae565b61058a8560405180606001604052806028815260200161389e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105406113ae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d409092919063ffffffff16565b6113b6565b600190509392505050565b6105a26113ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461062f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106269061307c565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b61069b6113ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071f9061307c565b60405180910390fd5b80600e60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107866113ae565b73ffffffffffffffffffffffffffffffffffffffff16146107a657600080fd5b60004790506107b481611da4565b50565b6000610801600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e10565b9050919050565b6108106113ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461089d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108949061307c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f4653000000000000000000000000000000000000000000000000000000000000815250905090565b60006109d56109ce6113ae565b8484611581565b6001905092915050565b6109e76113ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6b9061307c565b60405180910390fd5b60005b8151811015610b2b576001600a6000848481518110610abf577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b2390613464565b915050610a77565b5050565b610b376113ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbb9061307c565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c496113ae565b73ffffffffffffffffffffffffffffffffffffffff1614610c6957600080fd5b6000610c74306107b7565b9050610c7f81611e7e565b50565b610c8a6113ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0e9061307c565b60405180910390fd5b600e60149054906101000a900460ff1615610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e906130fc565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610df730600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006113b6565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e3d57600080fd5b505afa158015610e51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7591906129e0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ed757600080fd5b505afa158015610eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0f91906129e0565b6040518363ffffffff1660e01b8152600401610f2c929190612ecc565b602060405180830381600087803b158015610f4657600080fd5b505af1158015610f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7e91906129e0565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611007306107b7565b60008061101261095b565b426040518863ffffffff1660e01b815260040161103496959493929190612f1e565b6060604051808303818588803b15801561104d57600080fd5b505af1158015611061573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110869190612bb5565b5050506001600e60166101000a81548160ff0219169083151502179055506001600e60176101000a81548160ff021916908315150217905550678ac7230489e80000600f819055506001600e60146101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611188929190612ef5565b602060405180830381600087803b1580156111a257600080fd5b505af11580156111b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111da9190612b63565b5050565b6111e66113ae565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126a9061307c565b60405180910390fd5b600081116112b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ad9061303c565b60405180910390fd5b6112e560646112d783683635c9adc5dea0000061217890919063ffffffff16565b6121f390919063ffffffff16565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf600f5460405161131c919061313c565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d906130dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148d90612ffc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611574919061313c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e8906130bc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165890612fbc565b60405180910390fd5b600081116116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b9061309c565b60405180910390fd5b6116ac61095b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561171a57506116ea61095b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c7d57600e60179054906101000a900460ff161561194d573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561179c57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117f65750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118505750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561194c57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118966113ae565b73ffffffffffffffffffffffffffffffffffffffff16148061190c5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118f46113ae565b73ffffffffffffffffffffffffffffffffffffffff16145b61194b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119429061311c565b60405180910390fd5b5b5b600f5481111561195c57600080fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a005750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a0957600080fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ab45750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b0a5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b225750600e60179054906101000a900460ff165b15611bc35742600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b7257600080fd5b603c42611b7f9190613272565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000611bce306107b7565b9050600e60159054906101000a900460ff16158015611c3b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611c535750600e60169054906101000a900460ff165b15611c7b57611c6181611e7e565b60004790506000811115611c7957611c7847611da4565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d245750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d2e57600090505b611d3a8484848461223d565b50505050565b6000838311158290611d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7f9190612f9a565b60405180910390fd5b5060008385611d979190613353565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e0c573d6000803e3d6000fd5b5050565b6000600654821115611e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4e90612fdc565b60405180910390fd5b6000611e6161226a565b9050611e7681846121f390919063ffffffff16565b915050919050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611edc577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611f0a5781602001602082028036833780820191505090505b5090503081600081518110611f48577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611fea57600080fd5b505afa158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202291906129e0565b8160018151811061205c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120c330600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113b6565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612127959493929190613157565b600060405180830381600087803b15801561214157600080fd5b505af1158015612155573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b60008083141561218b57600090506121ed565b6000828461219991906132f9565b90508284826121a891906132c8565b146121e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121df9061305c565b60405180910390fd5b809150505b92915050565b600061223583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612295565b905092915050565b8061224b5761224a6122f8565b5b612256848484612329565b80612264576122636124f4565b5b50505050565b6000806000612277612506565b9150915061228e81836121f390919063ffffffff16565b9250505090565b600080831182906122dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d39190612f9a565b60405180910390fd5b50600083856122eb91906132c8565b9050809150509392505050565b600060085414801561230c57506000600954145b1561231657612327565b600060088190555060006009819055505b565b60008060008060008061233b87612568565b95509550955095509550955061239986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242e85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061247a81612678565b6124848483612735565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124e1919061313c565b60405180910390a3505050505050505050565b60056008819055506014600981905550565b600080600060065490506000683635c9adc5dea00000905061253c683635c9adc5dea000006006546121f390919063ffffffff16565b82101561255b57600654683635c9adc5dea00000935093505050612564565b81819350935050505b9091565b60008060008060008060008060006125858a60085460095461276f565b925092509250600061259561226a565b905060008060006125a88e878787612805565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061261283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d40565b905092915050565b60008082846126299190613272565b90508381101561266e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126659061301c565b60405180910390fd5b8091505092915050565b600061268261226a565b90506000612699828461217890919063ffffffff16565b90506126ed81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61274a826006546125d090919063ffffffff16565b6006819055506127658160075461261a90919063ffffffff16565b6007819055505050565b60008060008061279b606461278d888a61217890919063ffffffff16565b6121f390919063ffffffff16565b905060006127c560646127b7888b61217890919063ffffffff16565b6121f390919063ffffffff16565b905060006127ee826127e0858c6125d090919063ffffffff16565b6125d090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061281e858961217890919063ffffffff16565b90506000612835868961217890919063ffffffff16565b9050600061284c878961217890919063ffffffff16565b905060006128758261286785876125d090919063ffffffff16565b6125d090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60006128a161289c846131f1565b6131cc565b905080838252602082019050828560208602820111156128c057600080fd5b60005b858110156128f057816128d688826128fa565b8452602084019350602083019250506001810190506128c3565b5050509392505050565b60008135905061290981613841565b92915050565b60008151905061291e81613841565b92915050565b60008135905061293381613858565b92915050565b600082601f83011261294a57600080fd5b813561295a84826020860161288e565b91505092915050565b6000813590506129728161386f565b92915050565b6000815190506129878161386f565b92915050565b60008135905061299c81613886565b92915050565b6000815190506129b181613886565b92915050565b6000602082840312156129c957600080fd5b60006129d7848285016128fa565b91505092915050565b6000602082840312156129f257600080fd5b6000612a008482850161290f565b91505092915050565b600060208284031215612a1b57600080fd5b6000612a2984828501612924565b91505092915050565b60008060408385031215612a4557600080fd5b6000612a53858286016128fa565b9250506020612a64858286016128fa565b9150509250929050565b600080600060608486031215612a8357600080fd5b6000612a91868287016128fa565b9350506020612aa2868287016128fa565b9250506040612ab38682870161298d565b9150509250925092565b60008060408385031215612ad057600080fd5b6000612ade858286016128fa565b9250506020612aef8582860161298d565b9150509250929050565b600060208284031215612b0b57600080fd5b600082013567ffffffffffffffff811115612b2557600080fd5b612b3184828501612939565b91505092915050565b600060208284031215612b4c57600080fd5b6000612b5a84828501612963565b91505092915050565b600060208284031215612b7557600080fd5b6000612b8384828501612978565b91505092915050565b600060208284031215612b9e57600080fd5b6000612bac8482850161298d565b91505092915050565b600080600060608486031215612bca57600080fd5b6000612bd8868287016129a2565b9350506020612be9868287016129a2565b9250506040612bfa868287016129a2565b9150509250925092565b6000612c108383612c1c565b60208301905092915050565b612c2581613387565b82525050565b612c3481613387565b82525050565b6000612c458261322d565b612c4f8185613250565b9350612c5a8361321d565b8060005b83811015612c8b578151612c728882612c04565b9750612c7d83613243565b925050600181019050612c5e565b5085935050505092915050565b612ca1816133ab565b82525050565b612cb0816133ee565b82525050565b6000612cc182613238565b612ccb8185613261565b9350612cdb818560208601613400565b612ce48161353a565b840191505092915050565b6000612cfc602383613261565b9150612d078261354b565b604082019050919050565b6000612d1f602a83613261565b9150612d2a8261359a565b604082019050919050565b6000612d42602283613261565b9150612d4d826135e9565b604082019050919050565b6000612d65601b83613261565b9150612d7082613638565b602082019050919050565b6000612d88601d83613261565b9150612d9382613661565b602082019050919050565b6000612dab602183613261565b9150612db68261368a565b604082019050919050565b6000612dce602083613261565b9150612dd9826136d9565b602082019050919050565b6000612df1602983613261565b9150612dfc82613702565b604082019050919050565b6000612e14602583613261565b9150612e1f82613751565b604082019050919050565b6000612e37602483613261565b9150612e42826137a0565b604082019050919050565b6000612e5a601783613261565b9150612e65826137ef565b602082019050919050565b6000612e7d601183613261565b9150612e8882613818565b602082019050919050565b612e9c816133d7565b82525050565b612eab816133e1565b82525050565b6000602082019050612ec66000830184612c2b565b92915050565b6000604082019050612ee16000830185612c2b565b612eee6020830184612c2b565b9392505050565b6000604082019050612f0a6000830185612c2b565b612f176020830184612e93565b9392505050565b600060c082019050612f336000830189612c2b565b612f406020830188612e93565b612f4d6040830187612ca7565b612f5a6060830186612ca7565b612f676080830185612c2b565b612f7460a0830184612e93565b979650505050505050565b6000602082019050612f946000830184612c98565b92915050565b60006020820190508181036000830152612fb48184612cb6565b905092915050565b60006020820190508181036000830152612fd581612cef565b9050919050565b60006020820190508181036000830152612ff581612d12565b9050919050565b6000602082019050818103600083015261301581612d35565b9050919050565b6000602082019050818103600083015261303581612d58565b9050919050565b6000602082019050818103600083015261305581612d7b565b9050919050565b6000602082019050818103600083015261307581612d9e565b9050919050565b6000602082019050818103600083015261309581612dc1565b9050919050565b600060208201905081810360008301526130b581612de4565b9050919050565b600060208201905081810360008301526130d581612e07565b9050919050565b600060208201905081810360008301526130f581612e2a565b9050919050565b6000602082019050818103600083015261311581612e4d565b9050919050565b6000602082019050818103600083015261313581612e70565b9050919050565b60006020820190506131516000830184612e93565b92915050565b600060a08201905061316c6000830188612e93565b6131796020830187612ca7565b818103604083015261318b8186612c3a565b905061319a6060830185612c2b565b6131a76080830184612e93565b9695505050505050565b60006020820190506131c66000830184612ea2565b92915050565b60006131d66131e7565b90506131e28282613433565b919050565b6000604051905090565b600067ffffffffffffffff82111561320c5761320b61350b565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061327d826133d7565b9150613288836133d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132bd576132bc6134ad565b5b828201905092915050565b60006132d3826133d7565b91506132de836133d7565b9250826132ee576132ed6134dc565b5b828204905092915050565b6000613304826133d7565b915061330f836133d7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613348576133476134ad565b5b828202905092915050565b600061335e826133d7565b9150613369836133d7565b92508282101561337c5761337b6134ad565b5b828203905092915050565b6000613392826133b7565b9050919050565b60006133a4826133b7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006133f9826133d7565b9050919050565b60005b8381101561341e578082015181840152602081019050613403565b8381111561342d576000848401525b50505050565b61343c8261353a565b810181811067ffffffffffffffff8211171561345b5761345a61350b565b5b80604052505050565b600061346f826133d7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156134a2576134a16134ad565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b61384a81613387565b811461385557600080fd5b50565b61386181613399565b811461386c57600080fd5b50565b613878816133ab565b811461388357600080fd5b50565b61388f816133d7565b811461389a57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208409c7384a75183a2831a60db2fe93e96731cec1ba9509fed2b54963e0b4a7d364736f6c63430008040033

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

000000000000000000000000b596b58cbb81d4f8936f5b46104ecfc568dc4ccb

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b596b58cbb81d4f8936f5b46104ecfc568dc4ccb


Deployed Bytecode Sourcemap

3859:12325:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5531:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6456:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5808:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6657:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12306:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5717:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7111:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11932:191;;;;;;;;;;;;;:::i;:::-;;5911:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2811:148;;;;;;;;;;;;;:::i;:::-;;2597:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5622:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6057:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12131:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15801:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11732:192;;;;;;;;;;;;;:::i;:::-;;10746:978;;;;;;;;;;;;;:::i;:::-;;15926:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6264:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5531:83;5568:13;5601:5;;;;;;;;;;;;;;;;;5594:12;;5531:83;:::o;6456:193::-;6558:4;6580:39;6589:12;:10;:12::i;:::-;6603:7;6612:6;6580:8;:39::i;:::-;6637:4;6630:11;;6456:193;;;;:::o;5808:95::-;5861:7;4423:21;5881:14;;5808:95;:::o;6657:446::-;6789:4;6806:36;6816:6;6824:9;6835:6;6806:9;:36::i;:::-;6853:220;6876:6;6897:12;:10;:12::i;:::-;6924:138;6980:6;6924:138;;;;;;;;;;;;;;;;;:11;:19;6936:6;6924:19;;;;;;;;;;;;;;;:33;6944:12;:10;:12::i;:::-;6924:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;6853:8;:220::i;:::-;7091:4;7084:11;;6657:446;;;;;:::o;12306:88::-;2734:12;:10;:12::i;:::-;2724:22;;:6;;;;;;;;;;:22;;;2716:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12381:5:::1;12366:4;:12;12371:6;12366:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12306:88:::0;:::o;5717:83::-;5758:5;4085:1;5776:16;;5717:83;:::o;7111:103::-;2734:12;:10;:12::i;:::-;2724:22;;:6;;;;;;;;;;:22;;;2716:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7201:5:::1;7183:15;;:23;;;;;;;;;;;;;;;;;;7111:103:::0;:::o;11932:191::-;11998:12;;;;;;;;;;;11982:28;;:12;:10;:12::i;:::-;:28;;;11974:37;;;;;;12022:26;12051:21;12022:50;;12083:32;12096:18;12083:12;:32::i;:::-;11932:191;:::o;5911:138::-;5977:7;6004:37;6024:7;:16;6032:7;6024:16;;;;;;;;;;;;;;;;6004:19;:37::i;:::-;5997:44;;5911: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;5622:87::-;5661:13;5694:7;;;;;;;;;;;;;;;;;5687:14;;5622:87;:::o;6057:199::-;6162:4;6184:42;6194:12;:10;:12::i;:::-;6208:9;6219:6;6184:9;:42::i;:::-;6244:4;6237:11;;6057:199;;;;:::o;12131:167::-;2734:12;:10;:12::i;:::-;2724:22;;:6;;;;;;;;;;:22;;;2716:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12205:9:::1;12200:91;12224:5;:12;12220:1;:16;12200:91;;;12275:4;12258;:14;12263:5;12269:1;12263:8;;;;;;;;;;;;;;;;;;;;;;12258:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12238:3;;;;;:::i;:::-;;;;12200:91;;;;12131:167:::0;:::o;15801:117::-;2734:12;:10;:12::i;:::-;2724:22;;:6;;;;;;;;;;:22;;;2716:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15900:10:::1;15885:12;;:25;;;;;;;;;;;;;;;;;;15801:117:::0;:::o;11732:192::-;11798:12;;;;;;;;;;;11782:28;;:12;:10;:12::i;:::-;:28;;;11774:37;;;;;;11822:23;11848:24;11866:4;11848:9;:24::i;:::-;11822:50;;11883:33;11900:15;11883:16;:33::i;:::-;11732:192;:::o;10746:978::-;2734:12;:10;:12::i;:::-;2724:22;;:6;;;;;;;;;;:22;;;2716:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10810:11:::1;;;;;;;;;;;10809:12;10801:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10860:35;10930:42;10860:113;;11002:16;10984:15;;:34;;;;;;;;;;;;;;;;;;11029:58;11046:4;11061:15;;;;;;;;;;;4423:21;11029:8;:58::i;:::-;11132:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11114:70;;;11193:4;11200:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11114:110;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11098:13;;:126;;;;;;;;;;;;;;;;;;11235:15;;;;;;;;;;;:31;;;11274:21;11319:4;11339:24;11357:4;11339:9;:24::i;:::-;11378:1;11394::::0;11410:7:::1;:5;:7::i;:::-;11432:15;11235:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11483:4;11469:11;;:18;;;;;;;;;;;;;;;;;;11516:4;11498:15;;:22;;;;;;;;;;;;;;;;;;11546:19;11531:12;:34;;;;11590:4;11576:11;;:18;;;;;;;;;;;;;;;;;;11612:13;;;;;;;;;;;11605:29;;;11657:15;;;;;;;;;;;11688:17;11605:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2794:1;10746:978::o:0;15926:255::-;2734:12;:10;:12::i;:::-;2724:22;;:6;;;;;;;;;;:22;;;2716:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16028:1:::1;16013:12;:16;16005:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;16089:36;16119:5;16089:25;16101:12;4423:21;16089:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;16074:12;:51;;;;16141:32;16160:12;;16141:32;;;;;;:::i;:::-;;;;;;;;15926:255:::0;:::o;6264:184::-;6381:7;6413:11;:18;6425:5;6413:18;;;;;;;;;;;;;;;:27;6432:7;6413:27;;;;;;;;;;;;;;;;6406:34;;6264:184;;;;:::o;100:98::-;153:7;180:10;173:17;;100:98;:::o;7793:369::-;7937:1;7920:19;;:5;:19;;;;7912:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8018:1;7999:21;;:7;:21;;;;7991:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8100:6;8070:11;:18;8082:5;8070:18;;;;;;;;;;;;;;;:27;8089:7;8070:27;;;;;;;;;;;;;;;:36;;;;8138:7;8122:32;;8131:5;8122:32;;;8147:6;8122:32;;;;;;:::i;:::-;;;;;;;;7793:369;;;:::o;8170:1975::-;8308:1;8292:18;;:4;:18;;;;8284:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8385:1;8371:16;;:2;:16;;;;8363:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8455:1;8446:6;:10;8438:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8527:7;:5;:7::i;:::-;8519:15;;:4;:15;;;;:32;;;;;8544:7;:5;:7::i;:::-;8538:13;;:2;:13;;;;8519:32;8515:1429;;;8572:15;;;;;;;;;;;8568:526;;;8650:4;8634:21;;:4;:21;;;;:65;;;;;8694:4;8680:19;;:2;:19;;;;8634:65;:122;;;;;8740:15;;;;;;;;;;;8724:32;;:4;:32;;;;8634:122;:177;;;;;8795:15;;;;;;;;;;;8781:30;;:2;:30;;;;8634:177;8608:471;;;8912:15;;;;;;;;;;;8888:40;;:12;:10;:12::i;:::-;:40;;;:102;;;;8977:13;;;;;;;;;;;8961:29;;:12;:10;:12::i;:::-;:29;;;8888:102;8854:205;;;;;;;;;;;;:::i;:::-;;;;;;;;;8608:471;8568:526;9126:12;;9116:6;:22;;9108:31;;;;;;9163:4;:10;9168:4;9163:10;;;;;;;;;;;;;;;;;;;;;;;;;9162:11;:24;;;;;9178:4;:8;9183:2;9178:8;;;;;;;;;;;;;;;;;;;;;;;;;9177:9;9162:24;9154:33;;;;;;9232:13;;;;;;;;;;;9224:21;;:4;:21;;;:72;;;;;9280:15;;;;;;;;;;;9266:30;;:2;:30;;;;9224:72;:116;;;;;9318:18;:22;9337:2;9318:22;;;;;;;;;;;;;;;;;;;;;;;;;9317:23;9224:116;:152;;;;;9361:15;;;;;;;;;;;9224:152;9202:328;;;9434:15;9419:8;:12;9428:2;9419:12;;;;;;;;;;;;;;;;:30;9411:39;;;;;;9503:10;9484:15;:30;;;;:::i;:::-;9469:8;:12;9478:2;9469:12;;;;;;;;;;;;;;;:45;;;;9202:328;9544:28;9575:24;9593:4;9575:9;:24::i;:::-;9544:55;;9619:6;;;;;;;;;;;9618:7;:32;;;;;9637:13;;;;;;;;;;;9629:21;;:4;:21;;;;9618:32;:47;;;;;9654:11;;;;;;;;;;;9618:47;9614:319;;;9686:38;9703:20;9686:16;:38::i;:::-;9743:26;9772:21;9743:50;;9837:1;9816:18;:22;9812:106;;;9863:35;9876:21;9863:12;:35::i;:::-;9812:106;9614:319;;8515:1429;;9954:12;9969:4;9954:19;;9990:18;:24;10009:4;9990:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10018:18;:22;10037:2;10018:22;;;;;;;;;;;;;;;;;;;;;;;;;9990:50;9986:98;;;10067:5;10057:15;;9986:98;10096:41;10111:4;10117:2;10121:6;10129:7;10096:14;:41::i;:::-;8170: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;10644:94::-;10701:12;;;;;;;;;;;:21;;:29;10723:6;10701:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10644:94;:::o;7222:323::-;7317:7;7375;;7364;:18;;7342:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;7463:19;7485:10;:8;:10::i;:::-;7463:32;;7513:24;7525:11;7513:7;:11;;:24;;;;:::i;:::-;7506:31;;;7222:323;;;:::o;10153:483::-;5145:4;5136:6;;:13;;;;;;;;;;;;;;;;;;10231:21:::1;10269:1;10255:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10231:40;;10300:4;10282;10287:1;10282:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10326:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10316:4;10321:1;10316:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;10359:62;10376:4;10391:15;;;;;;;;;;;10409:11;10359:8;:62::i;:::-;10432:15;;;;;;;;;;;:66;;;10513:11;10539:1;10555:4;10582;10602:15;10432:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5160:1;5181:5:::0;5172:6;;:14;;;;;;;;;;;;;;;;;;10153: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;12402:282::-;12558:7;12553:28;;12567:14;:12;:14::i;:::-;12553:28;12592:44;12610:6;12618:9;12629:6;12592:17;:44::i;:::-;12652:7;12647:29;;12661:15;:13;:15::i;:::-;12647:29;12402:282;;;;:::o;15360:164::-;15402:7;15423:15;15440;15459:19;:17;:19::i;:::-;15422:56;;;;15496:20;15508:7;15496;:11;;:20;;;;:::i;:::-;15489:27;;;;15360: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;7553:137::-;7611:1;7600:7;;:12;:29;;;;;7628:1;7616:8;;:13;7600:29;7596:42;;;7631:7;;7596:42;7658:1;7648:7;:11;;;;7681:1;7670:8;:12;;;;7553:137;:::o;12692:610::-;12839:15;12869:23;12907:12;12934:23;12972:12;12999:13;13026:19;13037:7;13026:10;:19::i;:::-;12824:221;;;;;;;;;;;;13074:28;13094:7;13074;:15;13082:6;13074:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13056:7;:15;13064:6;13056:15;;;;;;;;;;;;;;;:46;;;;13134:39;13157:15;13134:7;:18;13142:9;13134:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13113:7;:18;13121:9;13113:18;;;;;;;;;;;;;;;:60;;;;13184:16;13194:5;13184:9;:16::i;:::-;13211:23;13223:4;13229;13211:11;:23::i;:::-;13267:9;13250:44;;13259:6;13250:44;;;13278:15;13250:44;;;;;;:::i;:::-;;;;;;;;12692:610;;;;;;;;;:::o;7698:87::-;7752:1;7742:7;:11;;;;7775:2;7764:8;:13;;;;7698:87::o;15532:257::-;15583:7;15592;15612:15;15630:7;;15612:25;;15648:15;4423:21;15648:25;;15698:20;4423:21;15698:7;;:11;;:20;;;;:::i;:::-;15688:7;:30;15684:61;;;15728:7;;4423:21;15720:25;;;;;;;;15684:61;15764:7;15773;15756:25;;;;;;15532:257;;;:::o;13721:614::-;13821:7;13843;13865;13887;13909;13931;13967:23;13992:12;14006:13;14036:39;14048:7;14057;;14066:8;;14036:11;:39::i;:::-;13966:109;;;;;;14086:19;14108:10;:8;:10::i;:::-;14086:32;;14130:15;14147:23;14172:12;14201:46;14213:7;14222:4;14228:5;14235:11;14201;:46::i;:::-;14129:118;;;;;;14266:7;14275:15;14292:4;14298:15;14315:4;14321:5;14258:69;;;;;;;;;;;;;;;;;;;13721:614;;;;;;;:::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;13310:211::-;13363:19;13385:10;:8;:10::i;:::-;13363:32;;13406:13;13422:22;13432:11;13422:5;:9;;:22;;;;:::i;:::-;13406:38;;13480:33;13507:5;13480:7;:22;13496:4;13480:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13455:7;:22;13471:4;13455:22;;;;;;;;;;;;;;;:58;;;;13310:211;;;:::o;13529:147::-;13607:17;13619:4;13607:7;;:11;;:17;;;;:::i;:::-;13597:7;:27;;;;13648:20;13663:4;13648:10;;:14;;:20;;;;:::i;:::-;13635:10;:33;;;;13529:147;;:::o;14343:467::-;14511:7;14533;14555;14590:12;14605:28;14629:3;14605:19;14617:6;14605:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14590:43;;14644:13;14660:29;14685:3;14660:20;14672:7;14660;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14644:45;;14700:23;14726:28;14748:5;14726:17;14738:4;14726:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14700:54;;14773:15;14790:4;14796:5;14765:37;;;;;;;;;14343:467;;;;;;;:::o;14818:534::-;15012:7;15034;15056;15091:15;15109:24;15121:11;15109:7;:11;;:24;;;;:::i;:::-;15091:42;;15144:12;15159:21;15168:11;15159:4;:8;;:21;;;;:::i;:::-;15144:36;;15191:13;15207:22;15217:11;15207:5;:9;;:22;;;;:::i;:::-;15191:38;;15240:23;15266:28;15288:5;15266:17;15278:4;15266:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15240:54;;15313:7;15322:15;15339:4;15305:39;;;;;;;;;;14818:534;;;;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;979:155::-;1033:5;1071:6;1058:20;1049:29;;1087:41;1122:5;1087:41;:::i;:::-;1039:95;;;;:::o;1157:303::-;1228:5;1277:3;1270:4;1262:6;1258:17;1254:27;1244:2;;1295:1;1292;1285:12;1244:2;1335:6;1322:20;1360:94;1450:3;1442:6;1435:4;1427:6;1423:17;1360:94;:::i;:::-;1351:103;;1234:226;;;;;:::o;1466:133::-;1509:5;1547:6;1534:20;1525:29;;1563:30;1587:5;1563:30;:::i;:::-;1515:84;;;;:::o;1605:137::-;1659:5;1690:6;1684:13;1675:22;;1706:30;1730:5;1706:30;:::i;:::-;1665:77;;;;:::o;1748:139::-;1794:5;1832:6;1819:20;1810:29;;1848:33;1875:5;1848:33;:::i;:::-;1800:87;;;;:::o;1893:143::-;1950:5;1981:6;1975:13;1966:22;;1997:33;2024:5;1997:33;:::i;:::-;1956:80;;;;:::o;2042:262::-;2101:6;2150:2;2138:9;2129:7;2125:23;2121:32;2118:2;;;2166:1;2163;2156:12;2118:2;2209:1;2234:53;2279:7;2270:6;2259:9;2255:22;2234:53;:::i;:::-;2224:63;;2180:117;2108:196;;;;:::o;2310:284::-;2380:6;2429:2;2417:9;2408:7;2404:23;2400:32;2397:2;;;2445:1;2442;2435:12;2397:2;2488:1;2513:64;2569:7;2560:6;2549:9;2545:22;2513:64;:::i;:::-;2503:74;;2459:128;2387:207;;;;:::o;2600:278::-;2667:6;2716:2;2704:9;2695:7;2691:23;2687:32;2684:2;;;2732:1;2729;2722:12;2684:2;2775:1;2800:61;2853:7;2844:6;2833:9;2829:22;2800:61;:::i;:::-;2790:71;;2746:125;2674:204;;;;:::o;2884:407::-;2952:6;2960;3009:2;2997:9;2988:7;2984:23;2980:32;2977:2;;;3025:1;3022;3015:12;2977:2;3068:1;3093:53;3138:7;3129:6;3118:9;3114:22;3093:53;:::i;:::-;3083:63;;3039:117;3195:2;3221:53;3266:7;3257:6;3246:9;3242:22;3221:53;:::i;:::-;3211:63;;3166:118;2967:324;;;;;:::o;3297:552::-;3374:6;3382;3390;3439:2;3427:9;3418:7;3414:23;3410:32;3407:2;;;3455:1;3452;3445:12;3407:2;3498:1;3523:53;3568:7;3559:6;3548:9;3544:22;3523:53;:::i;:::-;3513:63;;3469:117;3625:2;3651:53;3696:7;3687:6;3676:9;3672:22;3651:53;:::i;:::-;3641:63;;3596:118;3753:2;3779:53;3824:7;3815:6;3804:9;3800:22;3779:53;:::i;:::-;3769:63;;3724:118;3397:452;;;;;:::o;3855:407::-;3923:6;3931;3980:2;3968:9;3959:7;3955:23;3951:32;3948:2;;;3996:1;3993;3986:12;3948:2;4039:1;4064:53;4109:7;4100:6;4089:9;4085:22;4064:53;:::i;:::-;4054:63;;4010:117;4166:2;4192:53;4237:7;4228:6;4217:9;4213:22;4192:53;:::i;:::-;4182:63;;4137:118;3938:324;;;;;:::o;4268:405::-;4352:6;4401:2;4389:9;4380:7;4376:23;4372:32;4369:2;;;4417:1;4414;4407:12;4369:2;4488:1;4477:9;4473:17;4460:31;4518:18;4510:6;4507:30;4504:2;;;4550:1;4547;4540:12;4504:2;4578:78;4648:7;4639:6;4628:9;4624:22;4578:78;:::i;:::-;4568:88;;4431:235;4359:314;;;;:::o;4679:256::-;4735:6;4784:2;4772:9;4763:7;4759:23;4755:32;4752:2;;;4800:1;4797;4790:12;4752:2;4843:1;4868:50;4910:7;4901:6;4890:9;4886:22;4868:50;:::i;:::-;4858:60;;4814:114;4742:193;;;;:::o;4941:278::-;5008:6;5057:2;5045:9;5036:7;5032:23;5028:32;5025:2;;;5073:1;5070;5063:12;5025:2;5116:1;5141:61;5194:7;5185:6;5174:9;5170:22;5141:61;:::i;:::-;5131:71;;5087:125;5015:204;;;;:::o;5225:262::-;5284:6;5333:2;5321:9;5312:7;5308:23;5304:32;5301:2;;;5349:1;5346;5339:12;5301:2;5392:1;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5363:117;5291:196;;;;:::o;5493:596::-;5581:6;5589;5597;5646:2;5634:9;5625:7;5621:23;5617:32;5614:2;;;5662:1;5659;5652:12;5614:2;5705:1;5730:64;5786:7;5777:6;5766:9;5762:22;5730:64;:::i;:::-;5720:74;;5676:128;5843:2;5869:64;5925:7;5916:6;5905:9;5901:22;5869:64;:::i;:::-;5859:74;;5814:129;5982:2;6008:64;6064:7;6055:6;6044:9;6040:22;6008:64;:::i;:::-;5998:74;;5953:129;5604:485;;;;;:::o;6095:179::-;6164:10;6185:46;6227:3;6219:6;6185:46;:::i;:::-;6263:4;6258:3;6254:14;6240:28;;6175:99;;;;:::o;6280:108::-;6357:24;6375:5;6357:24;:::i;:::-;6352:3;6345:37;6335:53;;:::o;6394:118::-;6481:24;6499:5;6481:24;:::i;:::-;6476:3;6469:37;6459:53;;:::o;6548:732::-;6667:3;6696:54;6744:5;6696:54;:::i;:::-;6766:86;6845:6;6840:3;6766:86;:::i;:::-;6759:93;;6876:56;6926:5;6876:56;:::i;:::-;6955:7;6986:1;6971:284;6996:6;6993:1;6990:13;6971:284;;;7072:6;7066:13;7099:63;7158:3;7143:13;7099:63;:::i;:::-;7092:70;;7185:60;7238:6;7185:60;:::i;:::-;7175:70;;7031:224;7018:1;7015;7011:9;7006:14;;6971:284;;;6975:14;7271:3;7264:10;;6672:608;;;;;;;:::o;7286:109::-;7367:21;7382:5;7367:21;:::i;:::-;7362:3;7355:34;7345:50;;:::o;7401:147::-;7496:45;7535:5;7496:45;:::i;:::-;7491:3;7484:58;7474:74;;:::o;7554:364::-;7642:3;7670:39;7703:5;7670:39;:::i;:::-;7725:71;7789:6;7784:3;7725:71;:::i;:::-;7718:78;;7805:52;7850:6;7845:3;7838:4;7831:5;7827:16;7805:52;:::i;:::-;7882:29;7904:6;7882:29;:::i;:::-;7877:3;7873:39;7866:46;;7646:272;;;;;:::o;7924:366::-;8066:3;8087:67;8151:2;8146:3;8087:67;:::i;:::-;8080:74;;8163:93;8252:3;8163:93;:::i;:::-;8281:2;8276:3;8272:12;8265:19;;8070:220;;;:::o;8296:366::-;8438:3;8459:67;8523:2;8518:3;8459:67;:::i;:::-;8452:74;;8535:93;8624:3;8535:93;:::i;:::-;8653:2;8648:3;8644:12;8637:19;;8442:220;;;:::o;8668:366::-;8810:3;8831:67;8895:2;8890:3;8831:67;:::i;:::-;8824:74;;8907:93;8996:3;8907:93;:::i;:::-;9025:2;9020:3;9016:12;9009:19;;8814:220;;;:::o;9040:366::-;9182:3;9203:67;9267:2;9262:3;9203:67;:::i;:::-;9196:74;;9279:93;9368:3;9279:93;:::i;:::-;9397:2;9392:3;9388:12;9381:19;;9186:220;;;:::o;9412:366::-;9554:3;9575:67;9639:2;9634:3;9575:67;:::i;:::-;9568:74;;9651:93;9740:3;9651:93;:::i;:::-;9769:2;9764:3;9760:12;9753:19;;9558:220;;;:::o;9784:366::-;9926:3;9947:67;10011:2;10006:3;9947:67;:::i;:::-;9940:74;;10023:93;10112:3;10023:93;:::i;:::-;10141:2;10136:3;10132:12;10125:19;;9930:220;;;:::o;10156:366::-;10298:3;10319:67;10383:2;10378:3;10319:67;:::i;:::-;10312:74;;10395:93;10484:3;10395:93;:::i;:::-;10513:2;10508:3;10504:12;10497:19;;10302:220;;;:::o;10528:366::-;10670:3;10691:67;10755:2;10750:3;10691:67;:::i;:::-;10684:74;;10767:93;10856:3;10767:93;:::i;:::-;10885:2;10880:3;10876:12;10869:19;;10674:220;;;:::o;10900:366::-;11042:3;11063:67;11127:2;11122:3;11063:67;:::i;:::-;11056:74;;11139:93;11228:3;11139:93;:::i;:::-;11257:2;11252:3;11248:12;11241:19;;11046:220;;;:::o;11272:366::-;11414:3;11435:67;11499:2;11494:3;11435:67;:::i;:::-;11428:74;;11511:93;11600:3;11511:93;:::i;:::-;11629:2;11624:3;11620:12;11613:19;;11418:220;;;:::o;11644:366::-;11786:3;11807:67;11871:2;11866:3;11807:67;:::i;:::-;11800:74;;11883:93;11972:3;11883:93;:::i;:::-;12001:2;11996:3;11992:12;11985:19;;11790:220;;;:::o;12016:366::-;12158:3;12179:67;12243:2;12238:3;12179:67;:::i;:::-;12172:74;;12255:93;12344:3;12255:93;:::i;:::-;12373:2;12368:3;12364:12;12357:19;;12162:220;;;:::o;12388:118::-;12475:24;12493:5;12475:24;:::i;:::-;12470:3;12463:37;12453:53;;:::o;12512:112::-;12595:22;12611:5;12595:22;:::i;:::-;12590:3;12583:35;12573:51;;:::o;12630:222::-;12723:4;12761:2;12750:9;12746:18;12738:26;;12774:71;12842:1;12831:9;12827:17;12818:6;12774:71;:::i;:::-;12728:124;;;;:::o;12858:332::-;12979:4;13017:2;13006:9;13002:18;12994:26;;13030:71;13098:1;13087:9;13083:17;13074:6;13030:71;:::i;:::-;13111:72;13179:2;13168:9;13164:18;13155:6;13111:72;:::i;:::-;12984:206;;;;;:::o;13196:332::-;13317:4;13355:2;13344:9;13340:18;13332:26;;13368:71;13436:1;13425:9;13421:17;13412:6;13368:71;:::i;:::-;13449:72;13517:2;13506:9;13502:18;13493:6;13449:72;:::i;:::-;13322:206;;;;;:::o;13534:807::-;13783:4;13821:3;13810:9;13806:19;13798:27;;13835:71;13903:1;13892:9;13888:17;13879:6;13835:71;:::i;:::-;13916:72;13984:2;13973:9;13969:18;13960:6;13916:72;:::i;:::-;13998:80;14074:2;14063:9;14059:18;14050:6;13998:80;:::i;:::-;14088;14164:2;14153:9;14149:18;14140:6;14088:80;:::i;:::-;14178:73;14246:3;14235:9;14231:19;14222:6;14178:73;:::i;:::-;14261;14329:3;14318:9;14314:19;14305:6;14261:73;:::i;:::-;13788:553;;;;;;;;;:::o;14347:210::-;14434:4;14472:2;14461:9;14457:18;14449:26;;14485:65;14547:1;14536:9;14532:17;14523:6;14485:65;:::i;:::-;14439:118;;;;:::o;14563:313::-;14676:4;14714:2;14703:9;14699:18;14691:26;;14763:9;14757:4;14753:20;14749:1;14738:9;14734:17;14727:47;14791:78;14864:4;14855:6;14791:78;:::i;:::-;14783:86;;14681:195;;;;:::o;14882:419::-;15048:4;15086:2;15075:9;15071:18;15063:26;;15135:9;15129:4;15125:20;15121:1;15110:9;15106:17;15099:47;15163:131;15289:4;15163:131;:::i;:::-;15155:139;;15053:248;;;:::o;15307:419::-;15473:4;15511:2;15500:9;15496:18;15488:26;;15560:9;15554:4;15550:20;15546:1;15535:9;15531:17;15524:47;15588:131;15714:4;15588:131;:::i;:::-;15580:139;;15478:248;;;:::o;15732:419::-;15898:4;15936:2;15925:9;15921:18;15913:26;;15985:9;15979:4;15975:20;15971:1;15960:9;15956:17;15949:47;16013:131;16139:4;16013:131;:::i;:::-;16005:139;;15903:248;;;:::o;16157:419::-;16323:4;16361:2;16350:9;16346:18;16338:26;;16410:9;16404:4;16400:20;16396:1;16385:9;16381:17;16374:47;16438:131;16564:4;16438:131;:::i;:::-;16430:139;;16328:248;;;:::o;16582:419::-;16748:4;16786:2;16775:9;16771:18;16763:26;;16835:9;16829:4;16825:20;16821:1;16810:9;16806:17;16799:47;16863:131;16989:4;16863:131;:::i;:::-;16855:139;;16753:248;;;:::o;17007:419::-;17173:4;17211:2;17200:9;17196:18;17188:26;;17260:9;17254:4;17250:20;17246:1;17235:9;17231:17;17224:47;17288:131;17414:4;17288:131;:::i;:::-;17280:139;;17178:248;;;:::o;17432:419::-;17598:4;17636:2;17625:9;17621:18;17613:26;;17685:9;17679:4;17675:20;17671:1;17660:9;17656:17;17649:47;17713:131;17839:4;17713:131;:::i;:::-;17705:139;;17603:248;;;:::o;17857:419::-;18023:4;18061:2;18050:9;18046:18;18038:26;;18110:9;18104:4;18100:20;18096:1;18085:9;18081:17;18074:47;18138:131;18264:4;18138:131;:::i;:::-;18130:139;;18028:248;;;:::o;18282:419::-;18448:4;18486:2;18475:9;18471:18;18463:26;;18535:9;18529:4;18525:20;18521:1;18510:9;18506:17;18499:47;18563:131;18689:4;18563:131;:::i;:::-;18555:139;;18453:248;;;:::o;18707:419::-;18873:4;18911:2;18900:9;18896:18;18888:26;;18960:9;18954:4;18950:20;18946:1;18935:9;18931:17;18924:47;18988:131;19114:4;18988:131;:::i;:::-;18980:139;;18878:248;;;:::o;19132:419::-;19298:4;19336:2;19325:9;19321:18;19313:26;;19385:9;19379:4;19375:20;19371:1;19360:9;19356:17;19349:47;19413:131;19539:4;19413:131;:::i;:::-;19405:139;;19303:248;;;:::o;19557:419::-;19723:4;19761:2;19750:9;19746:18;19738:26;;19810:9;19804:4;19800:20;19796:1;19785:9;19781:17;19774:47;19838:131;19964:4;19838:131;:::i;:::-;19830:139;;19728:248;;;:::o;19982:222::-;20075:4;20113:2;20102:9;20098:18;20090:26;;20126:71;20194:1;20183:9;20179:17;20170:6;20126:71;:::i;:::-;20080:124;;;;:::o;20210:831::-;20473:4;20511:3;20500:9;20496:19;20488:27;;20525:71;20593:1;20582:9;20578:17;20569:6;20525:71;:::i;:::-;20606:80;20682:2;20671:9;20667:18;20658:6;20606:80;:::i;:::-;20733:9;20727:4;20723:20;20718:2;20707:9;20703:18;20696:48;20761:108;20864:4;20855:6;20761:108;:::i;:::-;20753:116;;20879:72;20947:2;20936:9;20932:18;20923:6;20879:72;:::i;:::-;20961:73;21029:3;21018:9;21014:19;21005:6;20961:73;:::i;:::-;20478:563;;;;;;;;:::o;21047:214::-;21136:4;21174:2;21163:9;21159:18;21151:26;;21187:67;21251:1;21240:9;21236:17;21227:6;21187:67;:::i;:::-;21141:120;;;;:::o;21267:129::-;21301:6;21328:20;;:::i;:::-;21318:30;;21357:33;21385:4;21377:6;21357:33;:::i;:::-;21308:88;;;:::o;21402:75::-;21435:6;21468:2;21462:9;21452:19;;21442:35;:::o;21483:311::-;21560:4;21650:18;21642:6;21639:30;21636:2;;;21672:18;;:::i;:::-;21636:2;21722:4;21714:6;21710:17;21702:25;;21782:4;21776;21772:15;21764:23;;21565:229;;;:::o;21800:132::-;21867:4;21890:3;21882:11;;21920:4;21915:3;21911:14;21903:22;;21872:60;;;:::o;21938:114::-;22005:6;22039:5;22033:12;22023:22;;22012:40;;;:::o;22058:99::-;22110:6;22144:5;22138:12;22128:22;;22117:40;;;:::o;22163:113::-;22233:4;22265;22260:3;22256:14;22248:22;;22238:38;;;:::o;22282:184::-;22381:11;22415:6;22410:3;22403:19;22455:4;22450:3;22446:14;22431:29;;22393:73;;;;:::o;22472:169::-;22556:11;22590:6;22585:3;22578:19;22630:4;22625:3;22621:14;22606:29;;22568:73;;;;:::o;22647:305::-;22687:3;22706:20;22724:1;22706:20;:::i;:::-;22701:25;;22740:20;22758:1;22740:20;:::i;:::-;22735:25;;22894:1;22826:66;22822:74;22819:1;22816:81;22813:2;;;22900:18;;:::i;:::-;22813:2;22944:1;22941;22937:9;22930:16;;22691:261;;;;:::o;22958:185::-;22998:1;23015:20;23033:1;23015:20;:::i;:::-;23010:25;;23049:20;23067:1;23049:20;:::i;:::-;23044:25;;23088:1;23078:2;;23093:18;;:::i;:::-;23078:2;23135:1;23132;23128:9;23123:14;;23000:143;;;;:::o;23149:348::-;23189:7;23212:20;23230:1;23212:20;:::i;:::-;23207:25;;23246:20;23264:1;23246:20;:::i;:::-;23241:25;;23434:1;23366:66;23362:74;23359:1;23356:81;23351:1;23344:9;23337:17;23333:105;23330:2;;;23441:18;;:::i;:::-;23330:2;23489:1;23486;23482:9;23471:20;;23197:300;;;;:::o;23503:191::-;23543:4;23563:20;23581:1;23563:20;:::i;:::-;23558:25;;23597:20;23615:1;23597:20;:::i;:::-;23592:25;;23636:1;23633;23630:8;23627:2;;;23641:18;;:::i;:::-;23627:2;23686:1;23683;23679:9;23671:17;;23548:146;;;;:::o;23700:96::-;23737:7;23766:24;23784:5;23766:24;:::i;:::-;23755:35;;23745:51;;;:::o;23802:104::-;23847:7;23876:24;23894:5;23876:24;:::i;:::-;23865:35;;23855:51;;;:::o;23912:90::-;23946:7;23989:5;23982:13;23975:21;23964:32;;23954:48;;;:::o;24008:126::-;24045:7;24085:42;24078:5;24074:54;24063:65;;24053:81;;;:::o;24140:77::-;24177:7;24206:5;24195:16;;24185:32;;;:::o;24223:86::-;24258:7;24298:4;24291:5;24287:16;24276:27;;24266:43;;;:::o;24315:121::-;24373:9;24406:24;24424:5;24406:24;:::i;:::-;24393:37;;24383:53;;;:::o;24442:307::-;24510:1;24520:113;24534:6;24531:1;24528:13;24520:113;;;24619:1;24614:3;24610:11;24604:18;24600:1;24595:3;24591:11;24584:39;24556:2;24553:1;24549:10;24544:15;;24520:113;;;24651:6;24648:1;24645:13;24642:2;;;24731:1;24722:6;24717:3;24713:16;24706:27;24642:2;24491:258;;;;:::o;24755:281::-;24838:27;24860:4;24838:27;:::i;:::-;24830:6;24826:40;24968:6;24956:10;24953:22;24932:18;24920:10;24917:34;24914:62;24911:2;;;24979:18;;:::i;:::-;24911:2;25019:10;25015:2;25008:22;24798:238;;;:::o;25042:233::-;25081:3;25104:24;25122:5;25104:24;:::i;:::-;25095:33;;25150:66;25143:5;25140:77;25137:2;;;25220:18;;:::i;:::-;25137:2;25267:1;25260:5;25256:13;25249:20;;25085:190;;;:::o;25281:180::-;25329:77;25326:1;25319:88;25426:4;25423:1;25416:15;25450:4;25447:1;25440:15;25467:180;25515:77;25512:1;25505:88;25612:4;25609:1;25602:15;25636:4;25633:1;25626:15;25653:180;25701:77;25698:1;25691:88;25798:4;25795:1;25788:15;25822:4;25819:1;25812:15;25839:102;25880:6;25931:2;25927:7;25922:2;25915:5;25911:14;25907:28;25897:38;;25887:54;;;:::o;25947:222::-;26087:34;26083:1;26075:6;26071:14;26064:58;26156:5;26151:2;26143:6;26139:15;26132:30;26053:116;:::o;26175:229::-;26315:34;26311:1;26303:6;26299:14;26292:58;26384:12;26379:2;26371:6;26367:15;26360:37;26281:123;:::o;26410:221::-;26550:34;26546:1;26538:6;26534:14;26527:58;26619:4;26614:2;26606:6;26602:15;26595:29;26516:115;:::o;26637:177::-;26777:29;26773:1;26765:6;26761:14;26754:53;26743:71;:::o;26820:179::-;26960:31;26956:1;26948:6;26944:14;26937:55;26926:73;:::o;27005:220::-;27145:34;27141:1;27133:6;27129:14;27122:58;27214:3;27209:2;27201:6;27197:15;27190:28;27111:114;:::o;27231:182::-;27371:34;27367:1;27359:6;27355:14;27348:58;27337:76;:::o;27419:228::-;27559:34;27555:1;27547:6;27543:14;27536:58;27628:11;27623:2;27615:6;27611:15;27604:36;27525:122;:::o;27653:224::-;27793:34;27789:1;27781:6;27777:14;27770:58;27862:7;27857:2;27849:6;27845:15;27838:32;27759:118;:::o;27883:223::-;28023:34;28019:1;28011:6;28007:14;28000:58;28092:6;28087:2;28079:6;28075:15;28068:31;27989:117;:::o;28112:173::-;28252:25;28248:1;28240:6;28236:14;28229:49;28218:67;:::o;28291:167::-;28431:19;28427:1;28419:6;28415:14;28408:43;28397:61;:::o;28464:122::-;28537:24;28555:5;28537:24;:::i;:::-;28530:5;28527:35;28517:2;;28576:1;28573;28566:12;28517:2;28507:79;:::o;28592:138::-;28673:32;28699:5;28673:32;:::i;:::-;28666:5;28663:43;28653:2;;28720:1;28717;28710:12;28653:2;28643:87;:::o;28736:116::-;28806:21;28821:5;28806:21;:::i;:::-;28799:5;28796:32;28786:2;;28842:1;28839;28832:12;28786:2;28776:76;:::o;28858:122::-;28931:24;28949:5;28931:24;:::i;:::-;28924:5;28921:35;28911:2;;28970:1;28967;28960:12;28911:2;28901:79;:::o

Swarm Source

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