ETH Price: $3,420.39 (+1.14%)
Gas: 4 Gwei

Token

ZamoLaws (ZAMO)
 

Overview

Max Total Supply

1,000,000,000,000 ZAMO

Holders

249 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,133,161,294.075910052 ZAMO

Value
$0.00
0x4a4f365cb9422556d995ed3ad2c446d008350355
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Zamolaws is a revolutionary FAAS token Stealth Launched on Ethereum Blockchain (ERC-20) with a massive utility and use case. Zamolaws is a decentralized, transparent & community-driven token that generates passive income through reflections, weekly community giveaways, and Function as a Service.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ZamoLaws

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-28
*/

//  ________   ________   _____ ______    ________   ___        ________   ___       __    ________      
// |\_____  \ |\   __  \ |\   _ \  _   \ |\   __  \ |\  \      |\   __  \ |\  \     |\  \ |\   ____\     
//  \|___/  /|\ \  \|\  \\ \  \\\__\ \  \\ \  \|\  \\ \  \     \ \  \|\  \\ \  \    \ \  \\ \  \___|_    
//      /  / / \ \   __  \\ \  \\|__| \  \\ \  \\\  \\ \  \     \ \   __  \\ \  \  __\ \  \\ \_____  \   
//     /  /_/__ \ \  \ \  \\ \  \    \ \  \\ \  \\\  \\ \  \____ \ \  \ \  \\ \  \|\__\_\  \\|____|\  \  
//    |\________\\ \__\ \__\\ \__\    \ \__\\ \_______\\ \_______\\ \__\ \__\\ \____________\ ____\_\  \ 
//     \|_______| \|__|\|__| \|__|     \|__| \|_______| \|_______| \|__|\|__| \|____________||\_________\
//                                                                                           \|_________|  
// Telegram: https://t.me/zamolaws
// Twitter: https://twitter.com/ZamoLaws
// Website: https://zamolaws.com
// Good luck! :D

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

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);
    }
    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    
}

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

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

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

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

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

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

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

    string private constant _name = "ZamoLaws";
    string private constant _symbol = "ZAMO";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping (address => uint256) private _buyMap;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    // Buy Fee
    uint256 private _redisFeeOnBuy = 1;
    uint256 private _taxFeeOnBuy = 9;
    
    // Sell Fee
    uint256 private _redisFeeOnSell = 2;
    uint256 private _taxFeeOnSell = 13;
    
    // Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => uint256) private cooldown;
    
    address payable private _developmentAddress = payable(0x23D94B332F6F89cbD3555C645736a0bD52c70c68);
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = 5e9 * 10**9; //0.5% - 5000000000
    uint256 public _maxWalletSize = 15e9 * 10**9; //1.5%
    uint256 public _swapTokensAtAmount = 5e8 * 10**9; //0.05%

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

    constructor() {
        
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = 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 developmentWallet() public view returns (address) {
        return _developmentAddress;
    }

    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 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 (_redisFee == 0 && _taxFee == 0) return;
    
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        
        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    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()) {
            
            // Trade start check
            if (!tradingOpen) {
                revert("Trading not yet enabled!");            
            }
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                if (to != address(this) && from != address(this) && to != _developmentAddress && from != _developmentAddress) {
                    require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
                }
            }

            if (to != uniswapV2Pair && to != _developmentAddress && to != address(this)) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        
        bool takeFee = true;

        // Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            // Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                    _buyMap[to] = block.timestamp;
                    _redisFee = _redisFeeOnBuy;
                    _taxFee = _taxFeeOnBuy;
            }
    
            // Set Fee for Sells
            // TAX SELLERS 25% WHO SELL WITHIN 48 HOURS (13% development + 12% holders redistribution)
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                if (_buyMap[from] != 0 && (_buyMap[from] + (24 hours) >= block.timestamp)) {
                    _redisFee = 12;
                    _taxFee = 13;
                } else {
                    _redisFee = _redisFeeOnSell;
                    _taxFee = _taxFeeOnSell;
                }
            }
        }

        _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
        );
    }
    
    // Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) external {
        require(_msgSender() == _developmentAddress);
        _swapTokensAtAmount = swapTokensAtAmount;
    }

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

    // Set trading on/off
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap(uint256 amount) external {
        require(_msgSender() == _developmentAddress);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
    }

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

    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, _redisFee, _taxFee);
        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 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).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);
    }

    // Set swap enabled
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    // Set Max transaction
    function setMaxTxnAmount(uint256 maxTxAmount) external {
        require(_msgSender() == _developmentAddress);
        _maxTxAmount = maxTxAmount;
    }
    
    // Set Max wallet
    function setMaxWalletSize(uint256 maxWalletSize) external {
        require(_msgSender() == _developmentAddress);
        _maxWalletSize = maxWalletSize;
    }

    // Lower buy fee
    function lowerBuyTeamFee(uint256 amount) external {
        require(_msgSender() == _developmentAddress);
        require(amount >= 1 && amount <= _taxFeeOnBuy, "The amount needs to be greater than 1 and less than the current buy fee");
        _taxFeeOnBuy = amount;
    }
    // Lower sell fee
    function lowerSellTeamFee(uint256 amount) external {
        require(_msgSender() == _developmentAddress);
        require(amount >= 1 && amount <= _taxFeeOnSell, "The amount needs to be greater than 1 and less than the current sell fee");
        _taxFeeOnSell = amount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"lowerBuyTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"lowerSellTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d91906200076b565b6000196200002c9190620006f2565b60075560016009556009600a556002600b55600d600c55600b54600d55600c54600e55600d54600f55600e546010557323d94b332f6f89cbd3555c645736a0bd52c70c68601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff021916908315150217905550674563918244f4000060155567d02ab486cedc00006016556706f05b59d3b200006017553480156200011757600080fd5b5060006200012a6200060c60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460026000620001df6200060c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002be57600080fd5b505afa158015620002d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f9919062000654565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200035c57600080fd5b505afa15801562000371573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000397919062000654565b6040518363ffffffff1660e01b8152600401620003b6929190620006a8565b602060405180830381600087803b158015620003d157600080fd5b505af1158015620003e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040c919062000654565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000620004626200061460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005956200060c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620005fd9190620006d5565b60405180910390a35062000820565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200064e8162000806565b92915050565b6000602082840312156200066d576200066c62000801565b5b60006200067d848285016200063d565b91505092915050565b62000691816200072d565b82525050565b620006a28162000761565b82525050565b6000604082019050620006bf600083018562000686565b620006ce602083018462000686565b9392505050565b6000602082019050620006ec600083018462000697565b92915050565b6000620006ff8262000761565b91506200070c8362000761565b925082821015620007225762000721620007a3565b5b828203905092915050565b60006200073a8262000741565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620007788262000761565b9150620007858362000761565b925082620007985762000797620007d2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b62000811816200072d565b81146200081d57600080fd5b50565b6139c180620008306000396000f3fe6080604052600436106101a05760003560e01c8063715018a6116100ec57806395d89b411161008a578063c04a541411610064578063c04a54141461059b578063dd62ed3e146105c6578063ea1644d514610603578063f2fde38b1461062c576101a7565b806395d89b411461050a57806398a5c31514610535578063a9059cbb1461055e576101a7565b8063881dce60116100c6578063881dce60146104625780638da5cb5b1461048b5780638f70ccf7146104b65780638f9a55c0146104df576101a7565b8063715018a6146103f757806374010ece1461040e5780637d1db4a514610437576101a7565b80632fd689e31161015957806349bd5a5e1161013357806349bd5a5e1461034f5780636d8aa8f81461037a5780636fc3eaec146103a357806370a08231146103ba576101a7565b80632fd689e3146102d0578063313ce567146102fb57806346001d8e14610326576101a7565b8063043a791d146101ac57806306fdde03146101d5578063095ea7b3146102005780631694505e1461023d57806318160ddd1461026857806323b872dd14610293576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101d360048036038101906101ce9190612b1c565b610655565b005b3480156101e157600080fd5b506101ea610712565b6040516101f79190612ee2565b60405180910390f35b34801561020c57600080fd5b5061022760048036038101906102229190612aaf565b61074f565b6040516102349190612eac565b60405180910390f35b34801561024957600080fd5b5061025261076d565b60405161025f9190612ec7565b60405180910390f35b34801561027457600080fd5b5061027d610793565b60405161028a9190613104565b60405180910390f35b34801561029f57600080fd5b506102ba60048036038101906102b59190612a5c565b6107a4565b6040516102c79190612eac565b60405180910390f35b3480156102dc57600080fd5b506102e561087d565b6040516102f29190613104565b60405180910390f35b34801561030757600080fd5b50610310610883565b60405161031d9190613179565b60405180910390f35b34801561033257600080fd5b5061034d60048036038101906103489190612b1c565b61088c565b005b34801561035b57600080fd5b50610364610949565b6040516103719190612e91565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c9190612aef565b61096f565b005b3480156103af57600080fd5b506103b8610a21565b005b3480156103c657600080fd5b506103e160048036038101906103dc91906129c2565b610a93565b6040516103ee9190613104565b60405180910390f35b34801561040357600080fd5b5061040c610ae4565b005b34801561041a57600080fd5b5061043560048036038101906104309190612b1c565b610c37565b005b34801561044357600080fd5b5061044c610ca2565b6040516104599190613104565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190612b1c565b610ca8565b005b34801561049757600080fd5b506104a0610d6c565b6040516104ad9190612e91565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190612aef565b610d95565b005b3480156104eb57600080fd5b506104f4610e46565b6040516105019190613104565b60405180910390f35b34801561051657600080fd5b5061051f610e4c565b60405161052c9190612ee2565b60405180910390f35b34801561054157600080fd5b5061055c60048036038101906105579190612b1c565b610e89565b005b34801561056a57600080fd5b5061058560048036038101906105809190612aaf565b610ef4565b6040516105929190612eac565b60405180910390f35b3480156105a757600080fd5b506105b0610f12565b6040516105bd9190612e91565b60405180910390f35b3480156105d257600080fd5b506105ed60048036038101906105e89190612a1c565b610f3c565b6040516105fa9190613104565b60405180910390f35b34801561060f57600080fd5b5061062a60048036038101906106259190612b1c565b610fc3565b005b34801561063857600080fd5b50610653600480360381019061064e91906129c2565b61102e565b005b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106966111f0565b73ffffffffffffffffffffffffffffffffffffffff16146106b657600080fd5b600181101580156106c95750600a548111155b610708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ff90612f44565b60405180910390fd5b80600a8190555050565b60606040518060400160405280600881526020017f5a616d6f4c617773000000000000000000000000000000000000000000000000815250905090565b600061076361075c6111f0565b84846111f8565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b60006107b18484846113c3565b610872846107bd6111f0565b61086d8560405180606001604052806028815260200161396460289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108236111f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7e9092919063ffffffff16565b6111f8565b600190509392505050565b60175481565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108cd6111f0565b73ffffffffffffffffffffffffffffffffffffffff16146108ed57600080fd5b600181101580156109005750600c548111155b61093f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093690613004565b60405180910390fd5b80600c8190555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109776111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fb90613044565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a626111f0565b73ffffffffffffffffffffffffffffffffffffffff1614610a8257600080fd5b6000479050610a9081611ee2565b50565b6000610add600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f4e565b9050919050565b610aec6111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7090613044565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c786111f0565b73ffffffffffffffffffffffffffffffffffffffff1614610c9857600080fd5b8060158190555050565b60155481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce96111f0565b73ffffffffffffffffffffffffffffffffffffffff1614610d0957600080fd5b610d1230610a93565b8111158015610d215750600081115b610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d57906130e4565b60405180910390fd5b610d6981611fbc565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d9d6111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2190613044565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b60165481565b60606040518060400160405280600481526020017f5a414d4f00000000000000000000000000000000000000000000000000000000815250905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eca6111f0565b73ffffffffffffffffffffffffffffffffffffffff1614610eea57600080fd5b8060178190555050565b6000610f08610f016111f0565b84846113c3565b6001905092915050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110046111f0565b73ffffffffffffffffffffffffffffffffffffffff161461102457600080fd5b8060168190555050565b6110366111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ba90613044565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112a90612fa4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f906130c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf90612fc4565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113b69190613104565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142a90613084565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149a90612f04565b60405180910390fd5b600081116114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd90613064565b60405180910390fd5b6114ee610d6c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561155c575061152c610d6c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a815760148054906101000a900460ff166115ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a590612f24565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156116595750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117c6573073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156116c657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117205750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561177a5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117c5576015548111156117c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bb90612f84565b60405180910390fd5b5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156118725750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118aa57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561190757601654816118bc84610a93565b6118c691906131e9565b10611906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fd906130a4565b60405180910390fd5b5b600061191230610a93565b9050600060175482101590508080156119385750601460159054906101000a900460ff16155b80156119925750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156119aa5750601460169054906101000a900460ff165b8015611a005750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a565750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7e57611a6482611fbc565b60004790506000811115611a7c57611a7b47611ee2565b5b505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b285750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611bdb5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611bda5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611be95760009050611e6c565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c945750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cf05742600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600954600d81905550600a54600e819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d9b5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e6b576000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015611e3d57504262015180600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3a91906131e9565b10155b15611e5757600c600d81905550600d600e81905550611e6a565b600b54600d81905550600c54600e819055505b5b5b611e7884848484612244565b50505050565b6000838311158290611ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebd9190612ee2565b60405180910390fd5b5060008385611ed591906132ca565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f4a573d6000803e3d6000fd5b5050565b6000600754821115611f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8c90612f64565b60405180910390fd5b6000611f9f612271565b9050611fb4818461229c90919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ff457611ff361345b565b5b6040519080825280602002602001820160405280156120225781602001602082028036833780820191505090505b509050308160008151811061203a5761203961342c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156120dc57600080fd5b505afa1580156120f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211491906129ef565b816001815181106121285761212761342c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061218f30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111f8565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121f395949392919061311f565b600060405180830381600087803b15801561220d57600080fd5b505af1158015612221573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b80612252576122516122e6565b5b61225d848484612329565b8061226b5761226a6124f4565b5b50505050565b600080600061227e612508565b91509150612295818361229c90919063ffffffff16565b9250505090565b60006122de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061256a565b905092915050565b6000600d541480156122fa57506000600e54145b1561230457612327565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b60008060008060008061233b876125cd565b95509550955095509550955061239986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242e85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461267f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061247a816126dd565b612484848361279a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124e19190613104565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060075490506000683635c9adc5dea00000905061253e683635c9adc5dea0000060075461229c90919063ffffffff16565b82101561255d57600754683635c9adc5dea00000935093505050612566565b81819350935050505b9091565b600080831182906125b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a89190612ee2565b60405180910390fd5b50600083856125c0919061323f565b9050809150509392505050565b60008060008060008060008060006125ea8a600d54600e546127d4565b92509250925060006125fa612271565b9050600080600061260d8e87878761286a565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061267783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e7e565b905092915050565b600080828461268e91906131e9565b9050838110156126d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ca90612fe4565b60405180910390fd5b8091505092915050565b60006126e7612271565b905060006126fe82846128f390919063ffffffff16565b905061275281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461267f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6127af8260075461263590919063ffffffff16565b6007819055506127ca8160085461267f90919063ffffffff16565b6008819055505050565b60008060008061280060646127f2888a6128f390919063ffffffff16565b61229c90919063ffffffff16565b9050600061282a606461281c888b6128f390919063ffffffff16565b61229c90919063ffffffff16565b9050600061285382612845858c61263590919063ffffffff16565b61263590919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061288385896128f390919063ffffffff16565b9050600061289a86896128f390919063ffffffff16565b905060006128b187896128f390919063ffffffff16565b905060006128da826128cc858761263590919063ffffffff16565b61263590919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156129065760009050612968565b600082846129149190613270565b9050828482612923919061323f565b14612963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295a90613024565b60405180910390fd5b809150505b92915050565b60008135905061297d8161391e565b92915050565b6000815190506129928161391e565b92915050565b6000813590506129a781613935565b92915050565b6000813590506129bc8161394c565b92915050565b6000602082840312156129d8576129d761348a565b5b60006129e68482850161296e565b91505092915050565b600060208284031215612a0557612a0461348a565b5b6000612a1384828501612983565b91505092915050565b60008060408385031215612a3357612a3261348a565b5b6000612a418582860161296e565b9250506020612a528582860161296e565b9150509250929050565b600080600060608486031215612a7557612a7461348a565b5b6000612a838682870161296e565b9350506020612a948682870161296e565b9250506040612aa5868287016129ad565b9150509250925092565b60008060408385031215612ac657612ac561348a565b5b6000612ad48582860161296e565b9250506020612ae5858286016129ad565b9150509250929050565b600060208284031215612b0557612b0461348a565b5b6000612b1384828501612998565b91505092915050565b600060208284031215612b3257612b3161348a565b5b6000612b40848285016129ad565b91505092915050565b6000612b558383612b61565b60208301905092915050565b612b6a816132fe565b82525050565b612b79816132fe565b82525050565b6000612b8a826131a4565b612b9481856131c7565b9350612b9f83613194565b8060005b83811015612bd0578151612bb78882612b49565b9750612bc2836131ba565b925050600181019050612ba3565b5085935050505092915050565b612be681613310565b82525050565b612bf581613353565b82525050565b612c0481613365565b82525050565b6000612c15826131af565b612c1f81856131d8565b9350612c2f81856020860161339b565b612c388161348f565b840191505092915050565b6000612c506023836131d8565b9150612c5b826134a0565b604082019050919050565b6000612c736018836131d8565b9150612c7e826134ef565b602082019050919050565b6000612c966047836131d8565b9150612ca182613518565b606082019050919050565b6000612cb9602a836131d8565b9150612cc48261358d565b604082019050919050565b6000612cdc601c836131d8565b9150612ce7826135dc565b602082019050919050565b6000612cff6026836131d8565b9150612d0a82613605565b604082019050919050565b6000612d226022836131d8565b9150612d2d82613654565b604082019050919050565b6000612d45601b836131d8565b9150612d50826136a3565b602082019050919050565b6000612d686048836131d8565b9150612d73826136cc565b606082019050919050565b6000612d8b6021836131d8565b9150612d9682613741565b604082019050919050565b6000612dae6020836131d8565b9150612db982613790565b602082019050919050565b6000612dd16029836131d8565b9150612ddc826137b9565b604082019050919050565b6000612df46025836131d8565b9150612dff82613808565b604082019050919050565b6000612e176023836131d8565b9150612e2282613857565b604082019050919050565b6000612e3a6024836131d8565b9150612e45826138a6565b604082019050919050565b6000612e5d600c836131d8565b9150612e68826138f5565b602082019050919050565b612e7c8161333c565b82525050565b612e8b81613346565b82525050565b6000602082019050612ea66000830184612b70565b92915050565b6000602082019050612ec16000830184612bdd565b92915050565b6000602082019050612edc6000830184612bec565b92915050565b60006020820190508181036000830152612efc8184612c0a565b905092915050565b60006020820190508181036000830152612f1d81612c43565b9050919050565b60006020820190508181036000830152612f3d81612c66565b9050919050565b60006020820190508181036000830152612f5d81612c89565b9050919050565b60006020820190508181036000830152612f7d81612cac565b9050919050565b60006020820190508181036000830152612f9d81612ccf565b9050919050565b60006020820190508181036000830152612fbd81612cf2565b9050919050565b60006020820190508181036000830152612fdd81612d15565b9050919050565b60006020820190508181036000830152612ffd81612d38565b9050919050565b6000602082019050818103600083015261301d81612d5b565b9050919050565b6000602082019050818103600083015261303d81612d7e565b9050919050565b6000602082019050818103600083015261305d81612da1565b9050919050565b6000602082019050818103600083015261307d81612dc4565b9050919050565b6000602082019050818103600083015261309d81612de7565b9050919050565b600060208201905081810360008301526130bd81612e0a565b9050919050565b600060208201905081810360008301526130dd81612e2d565b9050919050565b600060208201905081810360008301526130fd81612e50565b9050919050565b60006020820190506131196000830184612e73565b92915050565b600060a0820190506131346000830188612e73565b6131416020830187612bfb565b81810360408301526131538186612b7f565b90506131626060830185612b70565b61316f6080830184612e73565b9695505050505050565b600060208201905061318e6000830184612e82565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006131f48261333c565b91506131ff8361333c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613234576132336133ce565b5b828201905092915050565b600061324a8261333c565b91506132558361333c565b925082613265576132646133fd565b5b828204905092915050565b600061327b8261333c565b91506132868361333c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132bf576132be6133ce565b5b828202905092915050565b60006132d58261333c565b91506132e08361333c565b9250828210156132f3576132f26133ce565b5b828203905092915050565b60006133098261331c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061335e82613377565b9050919050565b60006133708261333c565b9050919050565b600061338282613389565b9050919050565b60006133948261331c565b9050919050565b60005b838110156133b957808201518184015260208101905061339e565b838111156133c8576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b7f54686520616d6f756e74206e6565647320746f2062652067726561746572207460008201527f68616e203120616e64206c657373207468616e207468652063757272656e742060208201527f6275792066656500000000000000000000000000000000000000000000000000604082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54686520616d6f756e74206e6565647320746f2062652067726561746572207460008201527f68616e203120616e64206c657373207468616e207468652063757272656e742060208201527f73656c6c20666565000000000000000000000000000000000000000000000000604082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b613927816132fe565b811461393257600080fd5b50565b61393e81613310565b811461394957600080fd5b50565b6139558161333c565b811461396057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b739a4b97840eb564b4744078d3b90a9b83160e86ec87ce190c50e4012dcf6a764736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c8063715018a6116100ec57806395d89b411161008a578063c04a541411610064578063c04a54141461059b578063dd62ed3e146105c6578063ea1644d514610603578063f2fde38b1461062c576101a7565b806395d89b411461050a57806398a5c31514610535578063a9059cbb1461055e576101a7565b8063881dce60116100c6578063881dce60146104625780638da5cb5b1461048b5780638f70ccf7146104b65780638f9a55c0146104df576101a7565b8063715018a6146103f757806374010ece1461040e5780637d1db4a514610437576101a7565b80632fd689e31161015957806349bd5a5e1161013357806349bd5a5e1461034f5780636d8aa8f81461037a5780636fc3eaec146103a357806370a08231146103ba576101a7565b80632fd689e3146102d0578063313ce567146102fb57806346001d8e14610326576101a7565b8063043a791d146101ac57806306fdde03146101d5578063095ea7b3146102005780631694505e1461023d57806318160ddd1461026857806323b872dd14610293576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101d360048036038101906101ce9190612b1c565b610655565b005b3480156101e157600080fd5b506101ea610712565b6040516101f79190612ee2565b60405180910390f35b34801561020c57600080fd5b5061022760048036038101906102229190612aaf565b61074f565b6040516102349190612eac565b60405180910390f35b34801561024957600080fd5b5061025261076d565b60405161025f9190612ec7565b60405180910390f35b34801561027457600080fd5b5061027d610793565b60405161028a9190613104565b60405180910390f35b34801561029f57600080fd5b506102ba60048036038101906102b59190612a5c565b6107a4565b6040516102c79190612eac565b60405180910390f35b3480156102dc57600080fd5b506102e561087d565b6040516102f29190613104565b60405180910390f35b34801561030757600080fd5b50610310610883565b60405161031d9190613179565b60405180910390f35b34801561033257600080fd5b5061034d60048036038101906103489190612b1c565b61088c565b005b34801561035b57600080fd5b50610364610949565b6040516103719190612e91565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c9190612aef565b61096f565b005b3480156103af57600080fd5b506103b8610a21565b005b3480156103c657600080fd5b506103e160048036038101906103dc91906129c2565b610a93565b6040516103ee9190613104565b60405180910390f35b34801561040357600080fd5b5061040c610ae4565b005b34801561041a57600080fd5b5061043560048036038101906104309190612b1c565b610c37565b005b34801561044357600080fd5b5061044c610ca2565b6040516104599190613104565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190612b1c565b610ca8565b005b34801561049757600080fd5b506104a0610d6c565b6040516104ad9190612e91565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190612aef565b610d95565b005b3480156104eb57600080fd5b506104f4610e46565b6040516105019190613104565b60405180910390f35b34801561051657600080fd5b5061051f610e4c565b60405161052c9190612ee2565b60405180910390f35b34801561054157600080fd5b5061055c60048036038101906105579190612b1c565b610e89565b005b34801561056a57600080fd5b5061058560048036038101906105809190612aaf565b610ef4565b6040516105929190612eac565b60405180910390f35b3480156105a757600080fd5b506105b0610f12565b6040516105bd9190612e91565b60405180910390f35b3480156105d257600080fd5b506105ed60048036038101906105e89190612a1c565b610f3c565b6040516105fa9190613104565b60405180910390f35b34801561060f57600080fd5b5061062a60048036038101906106259190612b1c565b610fc3565b005b34801561063857600080fd5b50610653600480360381019061064e91906129c2565b61102e565b005b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106966111f0565b73ffffffffffffffffffffffffffffffffffffffff16146106b657600080fd5b600181101580156106c95750600a548111155b610708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ff90612f44565b60405180910390fd5b80600a8190555050565b60606040518060400160405280600881526020017f5a616d6f4c617773000000000000000000000000000000000000000000000000815250905090565b600061076361075c6111f0565b84846111f8565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b60006107b18484846113c3565b610872846107bd6111f0565b61086d8560405180606001604052806028815260200161396460289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108236111f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7e9092919063ffffffff16565b6111f8565b600190509392505050565b60175481565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108cd6111f0565b73ffffffffffffffffffffffffffffffffffffffff16146108ed57600080fd5b600181101580156109005750600c548111155b61093f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093690613004565b60405180910390fd5b80600c8190555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109776111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fb90613044565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a626111f0565b73ffffffffffffffffffffffffffffffffffffffff1614610a8257600080fd5b6000479050610a9081611ee2565b50565b6000610add600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f4e565b9050919050565b610aec6111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7090613044565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c786111f0565b73ffffffffffffffffffffffffffffffffffffffff1614610c9857600080fd5b8060158190555050565b60155481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce96111f0565b73ffffffffffffffffffffffffffffffffffffffff1614610d0957600080fd5b610d1230610a93565b8111158015610d215750600081115b610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d57906130e4565b60405180910390fd5b610d6981611fbc565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d9d6111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2190613044565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b60165481565b60606040518060400160405280600481526020017f5a414d4f00000000000000000000000000000000000000000000000000000000815250905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eca6111f0565b73ffffffffffffffffffffffffffffffffffffffff1614610eea57600080fd5b8060178190555050565b6000610f08610f016111f0565b84846113c3565b6001905092915050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110046111f0565b73ffffffffffffffffffffffffffffffffffffffff161461102457600080fd5b8060168190555050565b6110366111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ba90613044565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112a90612fa4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f906130c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf90612fc4565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113b69190613104565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142a90613084565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149a90612f04565b60405180910390fd5b600081116114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd90613064565b60405180910390fd5b6114ee610d6c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561155c575061152c610d6c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a815760148054906101000a900460ff166115ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a590612f24565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156116595750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117c6573073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156116c657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117205750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561177a5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117c5576015548111156117c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bb90612f84565b60405180910390fd5b5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156118725750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118aa57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561190757601654816118bc84610a93565b6118c691906131e9565b10611906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fd906130a4565b60405180910390fd5b5b600061191230610a93565b9050600060175482101590508080156119385750601460159054906101000a900460ff16155b80156119925750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156119aa5750601460169054906101000a900460ff165b8015611a005750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a565750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7e57611a6482611fbc565b60004790506000811115611a7c57611a7b47611ee2565b5b505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b285750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611bdb5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611bda5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611be95760009050611e6c565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c945750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cf05742600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600954600d81905550600a54600e819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d9b5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e6b576000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015611e3d57504262015180600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3a91906131e9565b10155b15611e5757600c600d81905550600d600e81905550611e6a565b600b54600d81905550600c54600e819055505b5b5b611e7884848484612244565b50505050565b6000838311158290611ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebd9190612ee2565b60405180910390fd5b5060008385611ed591906132ca565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f4a573d6000803e3d6000fd5b5050565b6000600754821115611f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8c90612f64565b60405180910390fd5b6000611f9f612271565b9050611fb4818461229c90919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ff457611ff361345b565b5b6040519080825280602002602001820160405280156120225781602001602082028036833780820191505090505b509050308160008151811061203a5761203961342c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156120dc57600080fd5b505afa1580156120f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211491906129ef565b816001815181106121285761212761342c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061218f30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111f8565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121f395949392919061311f565b600060405180830381600087803b15801561220d57600080fd5b505af1158015612221573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b80612252576122516122e6565b5b61225d848484612329565b8061226b5761226a6124f4565b5b50505050565b600080600061227e612508565b91509150612295818361229c90919063ffffffff16565b9250505090565b60006122de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061256a565b905092915050565b6000600d541480156122fa57506000600e54145b1561230457612327565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b60008060008060008061233b876125cd565b95509550955095509550955061239986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242e85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461267f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061247a816126dd565b612484848361279a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124e19190613104565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060075490506000683635c9adc5dea00000905061253e683635c9adc5dea0000060075461229c90919063ffffffff16565b82101561255d57600754683635c9adc5dea00000935093505050612566565b81819350935050505b9091565b600080831182906125b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a89190612ee2565b60405180910390fd5b50600083856125c0919061323f565b9050809150509392505050565b60008060008060008060008060006125ea8a600d54600e546127d4565b92509250925060006125fa612271565b9050600080600061260d8e87878761286a565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061267783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e7e565b905092915050565b600080828461268e91906131e9565b9050838110156126d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ca90612fe4565b60405180910390fd5b8091505092915050565b60006126e7612271565b905060006126fe82846128f390919063ffffffff16565b905061275281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461267f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6127af8260075461263590919063ffffffff16565b6007819055506127ca8160085461267f90919063ffffffff16565b6008819055505050565b60008060008061280060646127f2888a6128f390919063ffffffff16565b61229c90919063ffffffff16565b9050600061282a606461281c888b6128f390919063ffffffff16565b61229c90919063ffffffff16565b9050600061285382612845858c61263590919063ffffffff16565b61263590919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061288385896128f390919063ffffffff16565b9050600061289a86896128f390919063ffffffff16565b905060006128b187896128f390919063ffffffff16565b905060006128da826128cc858761263590919063ffffffff16565b61263590919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156129065760009050612968565b600082846129149190613270565b9050828482612923919061323f565b14612963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295a90613024565b60405180910390fd5b809150505b92915050565b60008135905061297d8161391e565b92915050565b6000815190506129928161391e565b92915050565b6000813590506129a781613935565b92915050565b6000813590506129bc8161394c565b92915050565b6000602082840312156129d8576129d761348a565b5b60006129e68482850161296e565b91505092915050565b600060208284031215612a0557612a0461348a565b5b6000612a1384828501612983565b91505092915050565b60008060408385031215612a3357612a3261348a565b5b6000612a418582860161296e565b9250506020612a528582860161296e565b9150509250929050565b600080600060608486031215612a7557612a7461348a565b5b6000612a838682870161296e565b9350506020612a948682870161296e565b9250506040612aa5868287016129ad565b9150509250925092565b60008060408385031215612ac657612ac561348a565b5b6000612ad48582860161296e565b9250506020612ae5858286016129ad565b9150509250929050565b600060208284031215612b0557612b0461348a565b5b6000612b1384828501612998565b91505092915050565b600060208284031215612b3257612b3161348a565b5b6000612b40848285016129ad565b91505092915050565b6000612b558383612b61565b60208301905092915050565b612b6a816132fe565b82525050565b612b79816132fe565b82525050565b6000612b8a826131a4565b612b9481856131c7565b9350612b9f83613194565b8060005b83811015612bd0578151612bb78882612b49565b9750612bc2836131ba565b925050600181019050612ba3565b5085935050505092915050565b612be681613310565b82525050565b612bf581613353565b82525050565b612c0481613365565b82525050565b6000612c15826131af565b612c1f81856131d8565b9350612c2f81856020860161339b565b612c388161348f565b840191505092915050565b6000612c506023836131d8565b9150612c5b826134a0565b604082019050919050565b6000612c736018836131d8565b9150612c7e826134ef565b602082019050919050565b6000612c966047836131d8565b9150612ca182613518565b606082019050919050565b6000612cb9602a836131d8565b9150612cc48261358d565b604082019050919050565b6000612cdc601c836131d8565b9150612ce7826135dc565b602082019050919050565b6000612cff6026836131d8565b9150612d0a82613605565b604082019050919050565b6000612d226022836131d8565b9150612d2d82613654565b604082019050919050565b6000612d45601b836131d8565b9150612d50826136a3565b602082019050919050565b6000612d686048836131d8565b9150612d73826136cc565b606082019050919050565b6000612d8b6021836131d8565b9150612d9682613741565b604082019050919050565b6000612dae6020836131d8565b9150612db982613790565b602082019050919050565b6000612dd16029836131d8565b9150612ddc826137b9565b604082019050919050565b6000612df46025836131d8565b9150612dff82613808565b604082019050919050565b6000612e176023836131d8565b9150612e2282613857565b604082019050919050565b6000612e3a6024836131d8565b9150612e45826138a6565b604082019050919050565b6000612e5d600c836131d8565b9150612e68826138f5565b602082019050919050565b612e7c8161333c565b82525050565b612e8b81613346565b82525050565b6000602082019050612ea66000830184612b70565b92915050565b6000602082019050612ec16000830184612bdd565b92915050565b6000602082019050612edc6000830184612bec565b92915050565b60006020820190508181036000830152612efc8184612c0a565b905092915050565b60006020820190508181036000830152612f1d81612c43565b9050919050565b60006020820190508181036000830152612f3d81612c66565b9050919050565b60006020820190508181036000830152612f5d81612c89565b9050919050565b60006020820190508181036000830152612f7d81612cac565b9050919050565b60006020820190508181036000830152612f9d81612ccf565b9050919050565b60006020820190508181036000830152612fbd81612cf2565b9050919050565b60006020820190508181036000830152612fdd81612d15565b9050919050565b60006020820190508181036000830152612ffd81612d38565b9050919050565b6000602082019050818103600083015261301d81612d5b565b9050919050565b6000602082019050818103600083015261303d81612d7e565b9050919050565b6000602082019050818103600083015261305d81612da1565b9050919050565b6000602082019050818103600083015261307d81612dc4565b9050919050565b6000602082019050818103600083015261309d81612de7565b9050919050565b600060208201905081810360008301526130bd81612e0a565b9050919050565b600060208201905081810360008301526130dd81612e2d565b9050919050565b600060208201905081810360008301526130fd81612e50565b9050919050565b60006020820190506131196000830184612e73565b92915050565b600060a0820190506131346000830188612e73565b6131416020830187612bfb565b81810360408301526131538186612b7f565b90506131626060830185612b70565b61316f6080830184612e73565b9695505050505050565b600060208201905061318e6000830184612e82565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006131f48261333c565b91506131ff8361333c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613234576132336133ce565b5b828201905092915050565b600061324a8261333c565b91506132558361333c565b925082613265576132646133fd565b5b828204905092915050565b600061327b8261333c565b91506132868361333c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132bf576132be6133ce565b5b828202905092915050565b60006132d58261333c565b91506132e08361333c565b9250828210156132f3576132f26133ce565b5b828203905092915050565b60006133098261331c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061335e82613377565b9050919050565b60006133708261333c565b9050919050565b600061338282613389565b9050919050565b60006133948261331c565b9050919050565b60005b838110156133b957808201518184015260208101905061339e565b838111156133c8576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b7f54686520616d6f756e74206e6565647320746f2062652067726561746572207460008201527f68616e203120616e64206c657373207468616e207468652063757272656e742060208201527f6275792066656500000000000000000000000000000000000000000000000000604082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54686520616d6f756e74206e6565647320746f2062652067726561746572207460008201527f68616e203120616e64206c657373207468616e207468652063757272656e742060208201527f73656c6c20666565000000000000000000000000000000000000000000000000604082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b613927816132fe565b811461393257600080fd5b50565b61393e81613310565b811461394957600080fd5b50565b6139558161333c565b811461396057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b739a4b97840eb564b4744078d3b90a9b83160e86ec87ce190c50e4012dcf6a764736f6c63430008070033

Deployed Bytecode Sourcemap

5068:14016:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18494:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7533:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8570:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6384:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7810:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8771:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6708:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7719:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18800:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6432:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17971:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14320:198;;;;;;;;;;;;;:::i;:::-;;7913:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2547:148;;;;;;;;;;;;;:::i;:::-;;18112:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6582:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14085:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2333:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13976:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6650:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7624:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13646:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8171:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8059:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8378:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18302:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2707:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18494:277;18579:19;;;;;;;;;;;18563:35;;:12;:10;:12::i;:::-;:35;;;18555:44;;;;;;18628:1;18618:6;:11;;:37;;;;;18643:12;;18633:6;:22;;18618:37;18610:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;18757:6;18742:12;:21;;;;18494:277;:::o;7533:83::-;7570:13;7603:5;;;;;;;;;;;;;;;;;7596:12;;7533:83;:::o;8570:193::-;8672:4;8694:39;8703:12;:10;:12::i;:::-;8717:7;8726:6;8694:8;:39::i;:::-;8751:4;8744:11;;8570:193;;;;:::o;6384:41::-;;;;;;;;;;;;;:::o;7810:95::-;7863:7;5670:12;7883:14;;7810:95;:::o;8771:446::-;8903:4;8920:36;8930:6;8938:9;8949:6;8920:9;:36::i;:::-;8967:220;8990:6;9011:12;:10;:12::i;:::-;9038:138;9094:6;9038:138;;;;;;;;;;;;;;;;;:11;:19;9050:6;9038:19;;;;;;;;;;;;;;;:33;9058:12;:10;:12::i;:::-;9038:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8967:8;:220::i;:::-;9205:4;9198:11;;8771:446;;;;;:::o;6708:48::-;;;;:::o;7719:83::-;7760:5;5293:1;7778:16;;7719:83;:::o;18800:281::-;18886:19;;;;;;;;;;;18870:35;;:12;:10;:12::i;:::-;:35;;;18862:44;;;;;;18935:1;18925:6;:11;;:38;;;;;18950:13;;18940:6;:23;;18925:38;18917:123;;;;;;;;;;;;:::i;:::-;;;;;;;;;19067:6;19051:13;:22;;;;18800:281;:::o;6432:28::-;;;;;;;;;;;;;:::o;17971:101::-;2470:12;:10;:12::i;:::-;2460:22;;:6;;;;;;;;;;:22;;;2452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18052:12:::1;18038:11;;:26;;;;;;;;;;;;;;;;;;17971:101:::0;:::o;14320:198::-;14386:19;;;;;;;;;;;14370:35;;:12;:10;:12::i;:::-;:35;;;14362:44;;;;;;14417:26;14446:21;14417:50;;14478:32;14491:18;14478:12;:32::i;:::-;14351:167;14320:198::o;7913:138::-;7979:7;8006:37;8026:7;:16;8034:7;8026:16;;;;;;;;;;;;;;;;8006:19;:37::i;:::-;7999:44;;7913:138;;;:::o;2547:148::-;2470:12;:10;:12::i;:::-;2460:22;;:6;;;;;;;;;;:22;;;2452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2654:1:::1;2617:40;;2638:6;::::0;::::1;;;;;;;;2617:40;;;;;;;;;;;;2685:1;2668:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2547:148::o:0;18112:155::-;18202:19;;;;;;;;;;;18186:35;;:12;:10;:12::i;:::-;:35;;;18178:44;;;;;;18248:11;18233:12;:26;;;;18112:155;:::o;6582:41::-;;;;:::o;14085:227::-;14165:19;;;;;;;;;;;14149:35;;:12;:10;:12::i;:::-;:35;;;14141:44;;;;;;14214:24;14232:4;14214:9;:24::i;:::-;14204:6;:34;;:48;;;;;14251:1;14242:6;:10;14204:48;14196:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;14280:24;14297:6;14280:16;:24::i;:::-;14085:227;:::o;2333:79::-;2371:7;2398:6;;;;;;;;;;;2391:13;;2333:79;:::o;13976:101::-;2470:12;:10;:12::i;:::-;2460:22;;:6;;;;;;;;;;:22;;;2452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14057:12:::1;14043:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;13976:101:::0;:::o;6650:44::-;;;;:::o;7624:87::-;7663:13;7696:7;;;;;;;;;;;;;;;;;7689:14;;7624:87;:::o;13646:186::-;13753:19;;;;;;;;;;;13737:35;;:12;:10;:12::i;:::-;:35;;;13729:44;;;;;;13806:18;13784:19;:40;;;;13646:186;:::o;8171:199::-;8276:4;8298:42;8308:12;:10;:12::i;:::-;8322:9;8333:6;8298:9;:42::i;:::-;8358:4;8351:11;;8171:199;;;;:::o;8059:104::-;8109:7;8136:19;;;;;;;;;;;8129:26;;8059:104;:::o;8378:184::-;8495:7;8527:11;:18;8539:5;8527:18;;;;;;;;;;;;;;;:27;8546:7;8527:27;;;;;;;;;;;;;;;;8520:34;;8378:184;;;;:::o;18302:162::-;18395:19;;;;;;;;;;;18379:35;;:12;:10;:12::i;:::-;:35;;;18371:44;;;;;;18443:13;18426:14;:30;;;;18302:162;:::o;2707:244::-;2470:12;:10;:12::i;:::-;2460:22;;:6;;;;;;;;;;:22;;;2452:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2816:1:::1;2796:22;;:8;:22;;;;2788:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2906:8;2877:38;;2898:6;::::0;::::1;;;;;;;;2877:38;;;;;;;;;;;;2935:8;2926:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2707:244:::0;:::o;1092:98::-;1145:7;1172:10;1165:17;;1092:98;:::o;9920:369::-;10064:1;10047:19;;:5;:19;;;;10039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10145:1;10126:21;;:7;:21;;;;10118:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10227:6;10197:11;:18;10209:5;10197:18;;;;;;;;;;;;;;;:27;10216:7;10197:27;;;;;;;;;;;;;;;:36;;;;10265:7;10249:32;;10258:5;10249:32;;;10274:6;10249:32;;;;;;:::i;:::-;;;;;;;;9920:369;;;:::o;10297:2801::-;10435:1;10419:18;;:4;:18;;;;10411:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10512:1;10498:16;;:2;:16;;;;10490:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10582:1;10573:6;:10;10565:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10654:7;:5;:7::i;:::-;10646:15;;:4;:15;;;;:32;;;;;10671:7;:5;:7::i;:::-;10665:13;;:2;:13;;;;10646:32;10642:1336;;;10748:11;;;;;;;;;;10743:99;;10780:34;;;;;;;;;;:::i;:::-;;;;;;;;10743:99;10880:13;;;;;;;;;;;10874:19;;:2;:19;;;:55;;;;;10913:15;;;;;;;;;;;10897:32;;:4;:32;;;;10874:55;10870:311;;;10968:4;10954:19;;:2;:19;;;;:44;;;;;10993:4;10977:21;;:4;:21;;;;10954:44;:73;;;;;11008:19;;;;;;;;;;;11002:25;;:2;:25;;;;10954:73;:104;;;;;11039:19;;;;;;;;;;;11031:27;;:4;:27;;;;10954:104;10950:216;;;11101:12;;11091:6;:22;;11083:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10950:216;10870:311;11207:13;;;;;;;;;;;11201:19;;:2;:19;;;;:48;;;;;11230:19;;;;;;;;;;;11224:25;;:2;:25;;;;11201:48;:71;;;;;11267:4;11253:19;;:2;:19;;;;11201:71;11197:199;;;11326:14;;11317:6;11301:13;11311:2;11301:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11293:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11197:199;11424:28;11455:24;11473:4;11455:9;:24::i;:::-;11424:55;;11494:12;11533:19;;11509:20;:43;;11494:58;;11585:7;:18;;;;;11597:6;;;;;;;;;;;11596:7;11585:18;:43;;;;;11615:13;;;;;;;;;;;11607:21;;:4;:21;;;;11585:43;:58;;;;;11632:11;;;;;;;;;;;11585:58;:87;;;;;11648:18;:24;11667:4;11648:24;;;;;;;;;;;;;;;;;;;;;;;;;11647:25;11585:87;:114;;;;;11677:18;:22;11696:2;11677:22;;;;;;;;;;;;;;;;;;;;;;;;;11676:23;11585:114;11581:386;;;11720:38;11737:20;11720:16;:38::i;:::-;11777:26;11806:21;11777:50;;11871:1;11850:18;:22;11846:106;;;11897:35;11910:21;11897:12;:35::i;:::-;11846:106;11701:266;11581:386;10680:1298;;10642:1336;11998:12;12013:4;11998:19;;12063:18;:24;12082:4;12063:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12091:18;:22;12110:2;12091:22;;;;;;;;;;;;;;;;;;;;;;;;;12063:50;12062:102;;;;12127:13;;;;;;;;;;;12119:21;;:4;:21;;;;:44;;;;;12150:13;;;;;;;;;;;12144:19;;:2;:19;;;;12119:44;12062:102;12058:979;;;12191:5;12181:15;;12058:979;;;12273:13;;;;;;;;;;;12265:21;;:4;:21;;;:55;;;;;12304:15;;;;;;;;;;;12290:30;;:2;:30;;;;12265:55;12262:222;;;12359:15;12345:7;:11;12353:2;12345:11;;;;;;;;;;;;;;;:29;;;;12409:14;;12397:9;:26;;;;12456:12;;12446:7;:22;;;;12262:222;12652:13;;;;;;;;;;;12646:19;;:2;:19;;;:55;;;;;12685:15;;;;;;;;;;;12669:32;;:4;:32;;;;12646:55;12642:384;;;12743:1;12726:7;:13;12734:4;12726:13;;;;;;;;;;;;;;;;:18;;:69;;;;;12779:15;12766:8;12749:7;:13;12757:4;12749:13;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;:45;;12726:69;12722:289;;;12832:2;12820:9;:14;;;;12867:2;12857:7;:12;;;;12722:289;;;12930:15;;12918:9;:27;;;;12978:13;;12968:7;:23;;;;12722:289;12642:384;12058:979;13049:41;13064:4;13070:2;13074:6;13082:7;13049:14;:41::i;:::-;10400:2698;10297:2801;;;:::o;3319:224::-;3439:7;3472:1;3467;:6;;3475:12;3459:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3499:9;3515:1;3511;:5;;;;:::i;:::-;3499:17;;3534:1;3527:8;;;3319:224;;;;;:::o;13840:101::-;13897:19;;;;;;;;;;;:28;;:36;13926:6;13897:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13840:101;:::o;9225:323::-;9320:7;9378;;9367;:18;;9345:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9466:19;9488:10;:8;:10::i;:::-;9466:32;;9516:24;9528:11;9516:7;:11;;:24;;;;:::i;:::-;9509:31;;;9225:323;;;:::o;13106:483::-;6867:4;6858:6;;:13;;;;;;;;;;;;;;;;;;13184:21:::1;13222:1;13208:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13184:40;;13253:4;13235;13240:1;13235:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13279:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13269:4;13274:1;13269:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13312:62;13329:4;13344:15;;;;;;;;;;;13362:11;13312:8;:62::i;:::-;13385:15;;;;;;;;;;;:66;;;13466:11;13492:1;13508:4;13535;13555:15;13385:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13173:416;6903:5:::0;6894:6;;:14;;;;;;;;;;;;;;;;;;13106:483;:::o;14526:282::-;14682:7;14677:28;;14691:14;:12;:14::i;:::-;14677:28;14716:44;14734:6;14742:9;14753:6;14716:17;:44::i;:::-;14776:7;14771:29;;14785:15;:13;:15::i;:::-;14771:29;14526:282;;;;:::o;17501:166::-;17543:7;17564:15;17581;17600:19;:17;:19::i;:::-;17563:56;;;;17639:20;17651:7;17639;:11;;:20;;;;:::i;:::-;17632:27;;;;17501:166;:::o;3805:132::-;3863:7;3890:39;3894:1;3897;3890:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3883:46;;3805:132;;;;:::o;9556:231::-;9616:1;9603:9;;:14;:30;;;;;9632:1;9621:7;;:12;9603:30;9599:43;;;9635:7;;9599:43;9678:9;;9658:17;:29;;;;9716:7;;9698:15;:25;;;;9756:1;9744:9;:13;;;;9778:1;9768:7;:11;;;;9556:231;:::o;14816:610::-;14963:15;14993:23;15031:12;15058:23;15096:12;15123:13;15150:19;15161:7;15150:10;:19::i;:::-;14948:221;;;;;;;;;;;;15198:28;15218:7;15198;:15;15206:6;15198:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15180:7;:15;15188:6;15180:15;;;;;;;;;;;;;;;:46;;;;15258:39;15281:15;15258:7;:18;15266:9;15258:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15237:7;:18;15245:9;15237:18;;;;;;;;;;;;;;;:60;;;;15308:16;15318:5;15308:9;:16::i;:::-;15335:23;15347:4;15353;15335:11;:23::i;:::-;15391:9;15374:44;;15383:6;15374:44;;;15402:15;15374:44;;;;;;:::i;:::-;;;;;;;;14937:489;;;;;;14816:610;;;:::o;9795:117::-;9851:17;;9839:9;:29;;;;9889:15;;9879:7;:25;;;;9795:117::o;17675:263::-;17726:7;17735;17755:15;17773:7;;17755:25;;17791:15;5670:12;17791:25;;17841:20;5670:12;17841:7;;:11;;:20;;;;:::i;:::-;17831:7;:30;17827:61;;;17871:7;;5670:12;17863:25;;;;;;;;17827:61;17913:7;17922;17905:25;;;;;;17675:263;;;:::o;3945:223::-;4065:7;4097:1;4093;:5;4100:12;4085:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4124:9;4140:1;4136;:5;;;;:::i;:::-;4124:17;;4159:1;4152:8;;;3945:223;;;;;:::o;15845:625::-;15945:7;15967;15989;16011;16033;16055;16091:23;16116:12;16130:13;16160:40;16172:7;16181:9;;16192:7;;16160:11;:40::i;:::-;16090:110;;;;;;16211:19;16233:10;:8;:10::i;:::-;16211:32;;16255:15;16272:23;16297:12;16326:46;16338:7;16347:4;16353:5;16360:11;16326;:46::i;:::-;16254:118;;;;;;16401:7;16410:15;16427:4;16433:15;16450:4;16456:5;16393:69;;;;;;;;;;;;;;;;;;;15845:625;;;;;;;:::o;3175:136::-;3233:7;3260:43;3264:1;3267;3260:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3253:50;;3175:136;;;;:::o;2988:179::-;3046:7;3066:9;3082:1;3078;:5;;;;:::i;:::-;3066:17;;3107:1;3102;:6;;3094:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3158:1;3151:8;;;2988:179;;;;:::o;15434:211::-;15487:19;15509:10;:8;:10::i;:::-;15487:32;;15530:13;15546:22;15556:11;15546:5;:9;;:22;;;;:::i;:::-;15530:38;;15604:33;15631:5;15604:7;:22;15620:4;15604:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15579:7;:22;15595:4;15579:22;;;;;;;;;;;;;;;:58;;;;15476:169;;15434:211;:::o;15653:147::-;15731:17;15743:4;15731:7;;:11;;:17;;;;:::i;:::-;15721:7;:27;;;;15772:20;15787:4;15772:10;;:14;;:20;;;;:::i;:::-;15759:10;:33;;;;15653:147;;:::o;16478:471::-;16647:7;16669;16691;16726:12;16741:30;16767:3;16741:21;16753:8;16741:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16726:45;;16782:13;16798:28;16822:3;16798:19;16810:6;16798:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16782:44;;16837:23;16863:28;16885:5;16863:17;16875:4;16863:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16837:54;;16912:15;16929:4;16935:5;16904:37;;;;;;;;;16478:471;;;;;;;:::o;16957:536::-;17151:7;17173;17195;17230:15;17248:24;17260:11;17248:7;:11;;:24;;;;:::i;:::-;17230:42;;17283:12;17298:21;17307:11;17298:4;:8;;:21;;;;:::i;:::-;17283:36;;17330:13;17346:22;17356:11;17346:5;:9;;:22;;;;:::i;:::-;17330:38;;17379:23;17405:28;17427:5;17405:17;17417:4;17405:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17379:54;;17454:7;17463:15;17480:4;17446:39;;;;;;;;;;16957:536;;;;;;;;:::o;3551:246::-;3609:7;3638:1;3633;:6;3629:47;;;3663:1;3656:8;;;;3629:47;3686:9;3702:1;3698;:5;;;;:::i;:::-;3686:17;;3731:1;3726;3722;:5;;;;:::i;:::-;:10;3714:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3788:1;3781:8;;;3551:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;440:139;;;;:::o;585:329::-;644:6;693:2;681:9;672:7;668:23;664:32;661:119;;;699:79;;:::i;:::-;661:119;819:1;844:53;889:7;880:6;869:9;865:22;844:53;:::i;:::-;834:63;;790:117;585:329;;;;:::o;920:351::-;990:6;1039:2;1027:9;1018:7;1014:23;1010:32;1007:119;;;1045:79;;:::i;:::-;1007:119;1165:1;1190:64;1246:7;1237:6;1226:9;1222:22;1190:64;:::i;:::-;1180:74;;1136:128;920:351;;;;:::o;1277:474::-;1345:6;1353;1402:2;1390:9;1381:7;1377:23;1373:32;1370:119;;;1408:79;;:::i;:::-;1370:119;1528:1;1553:53;1598:7;1589:6;1578:9;1574:22;1553:53;:::i;:::-;1543:63;;1499:117;1655:2;1681:53;1726:7;1717:6;1706:9;1702:22;1681:53;:::i;:::-;1671:63;;1626:118;1277:474;;;;;:::o;1757:619::-;1834:6;1842;1850;1899:2;1887:9;1878:7;1874:23;1870:32;1867:119;;;1905:79;;:::i;:::-;1867:119;2025:1;2050:53;2095:7;2086:6;2075:9;2071:22;2050:53;:::i;:::-;2040:63;;1996:117;2152:2;2178:53;2223:7;2214:6;2203:9;2199:22;2178:53;:::i;:::-;2168:63;;2123:118;2280:2;2306:53;2351:7;2342:6;2331:9;2327:22;2306:53;:::i;:::-;2296:63;;2251:118;1757:619;;;;;:::o;2382:474::-;2450:6;2458;2507:2;2495:9;2486:7;2482:23;2478:32;2475:119;;;2513:79;;:::i;:::-;2475:119;2633:1;2658:53;2703:7;2694:6;2683:9;2679:22;2658:53;:::i;:::-;2648:63;;2604:117;2760:2;2786:53;2831:7;2822:6;2811:9;2807:22;2786:53;:::i;:::-;2776:63;;2731:118;2382:474;;;;;:::o;2862:323::-;2918:6;2967:2;2955:9;2946:7;2942:23;2938:32;2935:119;;;2973:79;;:::i;:::-;2935:119;3093:1;3118:50;3160:7;3151:6;3140:9;3136:22;3118:50;:::i;:::-;3108:60;;3064:114;2862:323;;;;:::o;3191:329::-;3250:6;3299:2;3287:9;3278:7;3274:23;3270:32;3267:119;;;3305:79;;:::i;:::-;3267:119;3425:1;3450:53;3495:7;3486:6;3475:9;3471:22;3450:53;:::i;:::-;3440:63;;3396:117;3191:329;;;;:::o;3526:179::-;3595:10;3616:46;3658:3;3650:6;3616:46;:::i;:::-;3694:4;3689:3;3685:14;3671:28;;3526:179;;;;:::o;3711:108::-;3788:24;3806:5;3788:24;:::i;:::-;3783:3;3776:37;3711:108;;:::o;3825:118::-;3912:24;3930:5;3912:24;:::i;:::-;3907:3;3900:37;3825:118;;:::o;3979:732::-;4098:3;4127:54;4175:5;4127:54;:::i;:::-;4197:86;4276:6;4271:3;4197:86;:::i;:::-;4190:93;;4307:56;4357:5;4307:56;:::i;:::-;4386:7;4417:1;4402:284;4427:6;4424:1;4421:13;4402:284;;;4503:6;4497:13;4530:63;4589:3;4574:13;4530:63;:::i;:::-;4523:70;;4616:60;4669:6;4616:60;:::i;:::-;4606:70;;4462:224;4449:1;4446;4442:9;4437:14;;4402:284;;;4406:14;4702:3;4695:10;;4103:608;;;3979:732;;;;:::o;4717:109::-;4798:21;4813:5;4798:21;:::i;:::-;4793:3;4786:34;4717:109;;:::o;4832:183::-;4945:63;5002:5;4945:63;:::i;:::-;4940:3;4933:76;4832:183;;:::o;5021:147::-;5116:45;5155:5;5116:45;:::i;:::-;5111:3;5104:58;5021:147;;:::o;5174:364::-;5262:3;5290:39;5323:5;5290:39;:::i;:::-;5345:71;5409:6;5404:3;5345:71;:::i;:::-;5338:78;;5425:52;5470:6;5465:3;5458:4;5451:5;5447:16;5425:52;:::i;:::-;5502:29;5524:6;5502:29;:::i;:::-;5497:3;5493:39;5486:46;;5266:272;5174:364;;;;:::o;5544:366::-;5686:3;5707:67;5771:2;5766:3;5707:67;:::i;:::-;5700:74;;5783:93;5872:3;5783:93;:::i;:::-;5901:2;5896:3;5892:12;5885:19;;5544:366;;;:::o;5916:::-;6058:3;6079:67;6143:2;6138:3;6079:67;:::i;:::-;6072:74;;6155:93;6244:3;6155:93;:::i;:::-;6273:2;6268:3;6264:12;6257:19;;5916:366;;;:::o;6288:::-;6430:3;6451:67;6515:2;6510:3;6451:67;:::i;:::-;6444:74;;6527:93;6616:3;6527:93;:::i;:::-;6645:2;6640:3;6636:12;6629:19;;6288:366;;;:::o;6660:::-;6802:3;6823:67;6887:2;6882:3;6823:67;:::i;:::-;6816:74;;6899:93;6988:3;6899:93;:::i;:::-;7017:2;7012:3;7008:12;7001:19;;6660:366;;;:::o;7032:::-;7174:3;7195:67;7259:2;7254:3;7195:67;:::i;:::-;7188:74;;7271:93;7360:3;7271:93;:::i;:::-;7389:2;7384:3;7380:12;7373:19;;7032:366;;;:::o;7404:::-;7546:3;7567:67;7631:2;7626:3;7567:67;:::i;:::-;7560:74;;7643:93;7732:3;7643:93;:::i;:::-;7761:2;7756:3;7752:12;7745:19;;7404:366;;;:::o;7776:::-;7918:3;7939:67;8003:2;7998:3;7939:67;:::i;:::-;7932:74;;8015:93;8104:3;8015:93;:::i;:::-;8133:2;8128:3;8124:12;8117:19;;7776:366;;;:::o;8148:::-;8290:3;8311:67;8375:2;8370:3;8311:67;:::i;:::-;8304:74;;8387:93;8476:3;8387:93;:::i;:::-;8505:2;8500:3;8496:12;8489:19;;8148:366;;;:::o;8520:::-;8662:3;8683:67;8747:2;8742:3;8683:67;:::i;:::-;8676:74;;8759:93;8848:3;8759:93;:::i;:::-;8877:2;8872:3;8868:12;8861:19;;8520:366;;;:::o;8892:::-;9034:3;9055:67;9119:2;9114:3;9055:67;:::i;:::-;9048:74;;9131:93;9220:3;9131:93;:::i;:::-;9249:2;9244:3;9240:12;9233:19;;8892:366;;;:::o;9264:::-;9406:3;9427:67;9491:2;9486:3;9427:67;:::i;:::-;9420:74;;9503:93;9592:3;9503:93;:::i;:::-;9621:2;9616:3;9612:12;9605:19;;9264:366;;;:::o;9636:::-;9778:3;9799:67;9863:2;9858:3;9799:67;:::i;:::-;9792:74;;9875:93;9964:3;9875:93;:::i;:::-;9993:2;9988:3;9984:12;9977:19;;9636:366;;;:::o;10008:::-;10150:3;10171:67;10235:2;10230:3;10171:67;:::i;:::-;10164:74;;10247:93;10336:3;10247:93;:::i;:::-;10365:2;10360:3;10356:12;10349:19;;10008:366;;;:::o;10380:::-;10522:3;10543:67;10607:2;10602:3;10543:67;:::i;:::-;10536:74;;10619:93;10708:3;10619:93;:::i;:::-;10737:2;10732:3;10728:12;10721:19;;10380:366;;;:::o;10752:::-;10894:3;10915:67;10979:2;10974:3;10915:67;:::i;:::-;10908:74;;10991:93;11080:3;10991:93;:::i;:::-;11109:2;11104:3;11100:12;11093:19;;10752:366;;;:::o;11124:::-;11266:3;11287:67;11351:2;11346:3;11287:67;:::i;:::-;11280:74;;11363:93;11452:3;11363:93;:::i;:::-;11481:2;11476:3;11472:12;11465:19;;11124:366;;;:::o;11496:118::-;11583:24;11601:5;11583:24;:::i;:::-;11578:3;11571:37;11496:118;;:::o;11620:112::-;11703:22;11719:5;11703:22;:::i;:::-;11698:3;11691:35;11620:112;;:::o;11738:222::-;11831:4;11869:2;11858:9;11854:18;11846:26;;11882:71;11950:1;11939:9;11935:17;11926:6;11882:71;:::i;:::-;11738:222;;;;:::o;11966:210::-;12053:4;12091:2;12080:9;12076:18;12068:26;;12104:65;12166:1;12155:9;12151:17;12142:6;12104:65;:::i;:::-;11966:210;;;;:::o;12182:274::-;12301:4;12339:2;12328:9;12324:18;12316:26;;12352:97;12446:1;12435:9;12431:17;12422:6;12352:97;:::i;:::-;12182:274;;;;:::o;12462:313::-;12575:4;12613:2;12602:9;12598:18;12590:26;;12662:9;12656:4;12652:20;12648:1;12637:9;12633:17;12626:47;12690:78;12763:4;12754:6;12690:78;:::i;:::-;12682:86;;12462:313;;;;:::o;12781:419::-;12947:4;12985:2;12974:9;12970:18;12962:26;;13034:9;13028:4;13024:20;13020:1;13009:9;13005:17;12998:47;13062:131;13188:4;13062:131;:::i;:::-;13054:139;;12781:419;;;:::o;13206:::-;13372:4;13410:2;13399:9;13395:18;13387:26;;13459:9;13453:4;13449:20;13445:1;13434:9;13430:17;13423:47;13487:131;13613:4;13487:131;:::i;:::-;13479:139;;13206:419;;;:::o;13631:::-;13797:4;13835:2;13824:9;13820:18;13812:26;;13884:9;13878:4;13874:20;13870:1;13859:9;13855:17;13848:47;13912:131;14038:4;13912:131;:::i;:::-;13904:139;;13631:419;;;:::o;14056:::-;14222:4;14260:2;14249:9;14245:18;14237:26;;14309:9;14303:4;14299:20;14295:1;14284:9;14280:17;14273:47;14337:131;14463:4;14337:131;:::i;:::-;14329:139;;14056:419;;;:::o;14481:::-;14647:4;14685:2;14674:9;14670:18;14662:26;;14734:9;14728:4;14724:20;14720:1;14709:9;14705:17;14698:47;14762:131;14888:4;14762:131;:::i;:::-;14754:139;;14481:419;;;:::o;14906:::-;15072:4;15110:2;15099:9;15095:18;15087:26;;15159:9;15153:4;15149:20;15145:1;15134:9;15130:17;15123:47;15187:131;15313:4;15187:131;:::i;:::-;15179:139;;14906:419;;;:::o;15331:::-;15497:4;15535:2;15524:9;15520:18;15512:26;;15584:9;15578:4;15574:20;15570:1;15559:9;15555:17;15548:47;15612:131;15738:4;15612:131;:::i;:::-;15604:139;;15331:419;;;:::o;15756:::-;15922:4;15960:2;15949:9;15945:18;15937:26;;16009:9;16003:4;15999:20;15995:1;15984:9;15980:17;15973:47;16037:131;16163:4;16037:131;:::i;:::-;16029:139;;15756:419;;;:::o;16181:::-;16347:4;16385:2;16374:9;16370:18;16362:26;;16434:9;16428:4;16424:20;16420:1;16409:9;16405:17;16398:47;16462:131;16588:4;16462:131;:::i;:::-;16454:139;;16181:419;;;:::o;16606:::-;16772:4;16810:2;16799:9;16795:18;16787:26;;16859:9;16853:4;16849:20;16845:1;16834:9;16830:17;16823:47;16887:131;17013:4;16887:131;:::i;:::-;16879:139;;16606:419;;;:::o;17031:::-;17197:4;17235:2;17224:9;17220:18;17212:26;;17284:9;17278:4;17274:20;17270:1;17259:9;17255:17;17248:47;17312:131;17438:4;17312:131;:::i;:::-;17304:139;;17031:419;;;:::o;17456:::-;17622:4;17660:2;17649:9;17645:18;17637:26;;17709:9;17703:4;17699:20;17695:1;17684:9;17680:17;17673:47;17737:131;17863:4;17737:131;:::i;:::-;17729:139;;17456:419;;;:::o;17881:::-;18047:4;18085:2;18074:9;18070:18;18062:26;;18134:9;18128:4;18124:20;18120:1;18109:9;18105:17;18098:47;18162:131;18288:4;18162:131;:::i;:::-;18154:139;;17881:419;;;:::o;18306:::-;18472:4;18510:2;18499:9;18495:18;18487:26;;18559:9;18553:4;18549:20;18545:1;18534:9;18530:17;18523:47;18587:131;18713:4;18587:131;:::i;:::-;18579:139;;18306:419;;;:::o;18731:::-;18897:4;18935:2;18924:9;18920:18;18912:26;;18984:9;18978:4;18974:20;18970:1;18959:9;18955:17;18948:47;19012:131;19138:4;19012:131;:::i;:::-;19004:139;;18731:419;;;:::o;19156:::-;19322:4;19360:2;19349:9;19345:18;19337:26;;19409:9;19403:4;19399:20;19395:1;19384:9;19380:17;19373:47;19437:131;19563:4;19437:131;:::i;:::-;19429:139;;19156:419;;;:::o;19581:222::-;19674:4;19712:2;19701:9;19697:18;19689:26;;19725:71;19793:1;19782:9;19778:17;19769:6;19725:71;:::i;:::-;19581:222;;;;:::o;19809:831::-;20072:4;20110:3;20099:9;20095:19;20087:27;;20124:71;20192:1;20181:9;20177:17;20168:6;20124:71;:::i;:::-;20205:80;20281:2;20270:9;20266:18;20257:6;20205:80;:::i;:::-;20332:9;20326:4;20322:20;20317:2;20306:9;20302:18;20295:48;20360:108;20463:4;20454:6;20360:108;:::i;:::-;20352:116;;20478:72;20546:2;20535:9;20531:18;20522:6;20478:72;:::i;:::-;20560:73;20628:3;20617:9;20613:19;20604:6;20560:73;:::i;:::-;19809:831;;;;;;;;:::o;20646:214::-;20735:4;20773:2;20762:9;20758:18;20750:26;;20786:67;20850:1;20839:9;20835:17;20826:6;20786:67;:::i;:::-;20646:214;;;;:::o;20947:132::-;21014:4;21037:3;21029:11;;21067:4;21062:3;21058:14;21050:22;;20947:132;;;:::o;21085:114::-;21152:6;21186:5;21180:12;21170:22;;21085:114;;;:::o;21205:99::-;21257:6;21291:5;21285:12;21275:22;;21205:99;;;:::o;21310:113::-;21380:4;21412;21407:3;21403:14;21395:22;;21310:113;;;:::o;21429:184::-;21528:11;21562:6;21557:3;21550:19;21602:4;21597:3;21593:14;21578:29;;21429:184;;;;:::o;21619:169::-;21703:11;21737:6;21732:3;21725:19;21777:4;21772:3;21768:14;21753:29;;21619:169;;;;:::o;21794:305::-;21834:3;21853:20;21871:1;21853:20;:::i;:::-;21848:25;;21887:20;21905:1;21887:20;:::i;:::-;21882:25;;22041:1;21973:66;21969:74;21966:1;21963:81;21960:107;;;22047:18;;:::i;:::-;21960:107;22091:1;22088;22084:9;22077:16;;21794:305;;;;:::o;22105:185::-;22145:1;22162:20;22180:1;22162:20;:::i;:::-;22157:25;;22196:20;22214:1;22196:20;:::i;:::-;22191:25;;22235:1;22225:35;;22240:18;;:::i;:::-;22225:35;22282:1;22279;22275:9;22270:14;;22105:185;;;;:::o;22296:348::-;22336:7;22359:20;22377:1;22359:20;:::i;:::-;22354:25;;22393:20;22411:1;22393:20;:::i;:::-;22388:25;;22581:1;22513:66;22509:74;22506:1;22503:81;22498:1;22491:9;22484:17;22480:105;22477:131;;;22588:18;;:::i;:::-;22477:131;22636:1;22633;22629:9;22618:20;;22296:348;;;;:::o;22650:191::-;22690:4;22710:20;22728:1;22710:20;:::i;:::-;22705:25;;22744:20;22762:1;22744:20;:::i;:::-;22739:25;;22783:1;22780;22777:8;22774:34;;;22788:18;;:::i;:::-;22774:34;22833:1;22830;22826:9;22818:17;;22650:191;;;;:::o;22847:96::-;22884:7;22913:24;22931:5;22913:24;:::i;:::-;22902:35;;22847:96;;;:::o;22949:90::-;22983:7;23026:5;23019:13;23012:21;23001:32;;22949:90;;;:::o;23045:126::-;23082:7;23122:42;23115:5;23111:54;23100:65;;23045:126;;;:::o;23177:77::-;23214:7;23243:5;23232:16;;23177:77;;;:::o;23260:86::-;23295:7;23335:4;23328:5;23324:16;23313:27;;23260:86;;;:::o;23352:152::-;23428:9;23461:37;23492:5;23461:37;:::i;:::-;23448:50;;23352:152;;;:::o;23510:121::-;23568:9;23601:24;23619:5;23601:24;:::i;:::-;23588:37;;23510:121;;;:::o;23637:126::-;23687:9;23720:37;23751:5;23720:37;:::i;:::-;23707:50;;23637:126;;;:::o;23769:113::-;23819:9;23852:24;23870:5;23852:24;:::i;:::-;23839:37;;23769:113;;;:::o;23888:307::-;23956:1;23966:113;23980:6;23977:1;23974:13;23966:113;;;24065:1;24060:3;24056:11;24050:18;24046:1;24041:3;24037:11;24030:39;24002:2;23999:1;23995:10;23990:15;;23966:113;;;24097:6;24094:1;24091:13;24088:101;;;24177:1;24168:6;24163:3;24159:16;24152:27;24088:101;23937:258;23888:307;;;:::o;24201:180::-;24249:77;24246:1;24239:88;24346:4;24343:1;24336:15;24370:4;24367:1;24360:15;24387:180;24435:77;24432:1;24425:88;24532:4;24529:1;24522:15;24556:4;24553:1;24546:15;24573:180;24621:77;24618:1;24611:88;24718:4;24715:1;24708:15;24742:4;24739:1;24732:15;24759:180;24807:77;24804:1;24797:88;24904:4;24901:1;24894:15;24928:4;24925:1;24918:15;25068:117;25177:1;25174;25167:12;25191:102;25232:6;25283:2;25279:7;25274:2;25267:5;25263:14;25259:28;25249:38;;25191:102;;;:::o;25299:222::-;25439:34;25435:1;25427:6;25423:14;25416:58;25508:5;25503:2;25495:6;25491:15;25484:30;25299:222;:::o;25527:174::-;25667:26;25663:1;25655:6;25651:14;25644:50;25527:174;:::o;25707:295::-;25847:34;25843:1;25835:6;25831:14;25824:58;25916:34;25911:2;25903:6;25899:15;25892:59;25985:9;25980:2;25972:6;25968:15;25961:34;25707:295;:::o;26008:229::-;26148:34;26144:1;26136:6;26132:14;26125:58;26217:12;26212:2;26204:6;26200:15;26193:37;26008:229;:::o;26243:178::-;26383:30;26379:1;26371:6;26367:14;26360:54;26243:178;:::o;26427:225::-;26567:34;26563:1;26555:6;26551:14;26544:58;26636:8;26631:2;26623:6;26619:15;26612:33;26427:225;:::o;26658:221::-;26798:34;26794:1;26786:6;26782:14;26775:58;26867:4;26862:2;26854:6;26850:15;26843:29;26658:221;:::o;26885:177::-;27025:29;27021:1;27013:6;27009:14;27002:53;26885:177;:::o;27068:296::-;27208:34;27204:1;27196:6;27192:14;27185:58;27277:34;27272:2;27264:6;27260:15;27253:59;27346:10;27341:2;27333:6;27329:15;27322:35;27068:296;:::o;27370:220::-;27510:34;27506:1;27498:6;27494:14;27487:58;27579:3;27574:2;27566:6;27562:15;27555:28;27370:220;:::o;27596:182::-;27736:34;27732:1;27724:6;27720:14;27713:58;27596:182;:::o;27784:228::-;27924:34;27920:1;27912:6;27908:14;27901:58;27993:11;27988:2;27980:6;27976:15;27969:36;27784:228;:::o;28018:224::-;28158:34;28154:1;28146:6;28142:14;28135:58;28227:7;28222:2;28214:6;28210:15;28203:32;28018:224;:::o;28248:222::-;28388:34;28384:1;28376:6;28372:14;28365:58;28457:5;28452:2;28444:6;28440:15;28433:30;28248:222;:::o;28476:223::-;28616:34;28612:1;28604:6;28600:14;28593:58;28685:6;28680:2;28672:6;28668:15;28661:31;28476:223;:::o;28705:162::-;28845:14;28841:1;28833:6;28829:14;28822:38;28705:162;:::o;28873:122::-;28946:24;28964:5;28946:24;:::i;:::-;28939:5;28936:35;28926:63;;28985:1;28982;28975:12;28926:63;28873:122;:::o;29001:116::-;29071:21;29086:5;29071:21;:::i;:::-;29064:5;29061:32;29051:60;;29107:1;29104;29097:12;29051:60;29001:116;:::o;29123:122::-;29196:24;29214:5;29196:24;:::i;:::-;29189:5;29186:35;29176:63;;29235:1;29232;29225:12;29176:63;29123:122;:::o

Swarm Source

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