ETH Price: $3,155.29 (+1.49%)
Gas: 4 Gwei

Token

Blue Collar Crypto, LLC (BLUE)
 

Overview

Max Total Supply

100,000,000 BLUE

Holders

91

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
beaverbuild
Balance
900,000 BLUE

Value
$0.00
0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BlueCollarCryptoLLC

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**

██████╗░██╗░░░░░██╗░░░██╗███████╗            
██╔══██╗██║░░░░░██║░░░██║██╔════╝            
██████╦╝██║░░░░░██║░░░██║█████╗░░            
██╔══██╗██║░░░░░██║░░░██║██╔══╝░░            
██████╦╝███████╗╚██████╔╝███████╗            
╚═════╝░╚══════╝░╚═════╝░╚══════╝            

███████╗██████╗░░█████╗░░░░░░░██████╗░░█████╗░
██╔════╝██╔══██╗██╔══██╗░░░░░░╚════██╗██╔══██╗
█████╗░░██████╔╝██║░░╚═╝█████╗░░███╔═╝██║░░██║
██╔══╝░░██╔══██╗██║░░██╗╚════╝██╔══╝░░██║░░██║
███████╗██║░░██║╚█████╔╝░░░░░░███████╗╚█████╔╝
╚══════╝╚═╝░░╚═╝░╚════╝░░░░░░░╚══════╝░╚════╝░

*/

pragma solidity ^0.8.9;
// SPDX-License-Identifier: Unlicensed
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 BlueCollarCryptoLLC is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Blue Collar Crypto, LLC";
    string private constant _symbol = "BLUE";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 10;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 10;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; 
    mapping (address => uint256) public _buyMap;
    mapping (address => bool) public preTrader;
    address public contentAddress = 0x336E09f24770EecC604ab8D1822c9cB9Cb877a06;
    address public marketingAddress = 0x899696777f2B13A05229bc276548241F6f487AcA;
    address public devAddress = 0x1813A0CAa516a5347954ff49367E2c13aa807539;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 1500000 * 10**_decimals;
    uint256 public _maxWalletSize = 1500000 * 10**_decimals;
    uint256 public _swapTokensAtAmount = 2000 * 10**_decimals;

    struct Distribution {
        uint256 devTeam;
        uint256 marketing;
        uint256 content;
    }

    Distribution public distribution;

    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[devAddress] = true;
        _isExcludedFromFee[marketingAddress] = true;
        _isExcludedFromFee[contentAddress] = true;

        distribution = Distribution(20, 40, 40);

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

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function 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() && !preTrader[from] && !preTrader[to]) {

            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            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)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _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
        );
    }

    function sendETHToFee(uint256 amount) private lockTheSwap {
        uint256 distributionEth = amount;
        uint256 marketingShare = distributionEth.mul(distribution.marketing).div(100);
        uint256 contentShare = distributionEth.mul(distribution.content).div(100);
        uint256 devTeamShare = distributionEth.mul(distribution.devTeam).div(100);
        payable(marketingAddress).transfer(marketingShare);
        payable(devAddress).transfer(devTeamShare);
        payable(contentAddress).transfer(contentShare);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == devAddress || _msgSender() == marketingAddress || _msgSender() == contentAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == devAddress || _msgSender() == marketingAddress || _msgSender() == contentAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

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

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

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

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

    function setDistribution(uint256 devTeam, uint256 marketing, uint256 content) external onlyOwner {        
        distribution.devTeam = devTeam;
        distribution.marketing = marketing;
        distribution.content = content;
    }

    function setWalletAddresses(address devAddr, address marketingAddr, address contentAddr) external onlyOwner {
        devAddress = devAddr;
        marketingAddress = marketingAddr;
        contentAddress = contentAddr;
    }

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

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function allowPreTrading(address[] calldata accounts, bool allowed) public onlyOwner {
       for(uint256 i = 0; i < accounts.length; i++) {
           require(preTrader[accounts[i]] != allowed, "TOKEN: Already enabled.");
            preTrader[accounts[i]] = allowed;
        }
    }
}

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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contentAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distribution","outputs":[{"internalType":"uint256","name":"devTeam","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"content","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"devTeam","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"content","type":"uint256"}],"name":"setDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","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":[{"internalType":"address","name":"devAddr","type":"address"},{"internalType":"address","name":"marketingAddr","type":"address"},{"internalType":"address","name":"contentAddr","type":"address"}],"name":"setWalletAddresses","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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","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"}]

60806040526009600a62000014919062000a28565b6305f5e10062000025919062000a79565b60001962000034919062000b09565b60001962000043919062000b41565b6006556000600855600a6009556000600a55600a600b55600a54600c55600b54600d55600c54600e55600d54600f5573336e09f24770eecc604ab8d1822c9cb9cb877a06601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073899696777f2b13a05229bc276548241f6f487aca601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731813a0caa516a5347954ff49367e2c13aa807539601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601760156101000a81548160ff0219169083151502179055506001601760166101000a81548160ff0219169083151502179055506009600a620001b7919062000a28565b6216e360620001c7919062000a79565b6018556009600a620001da919062000a28565b6216e360620001ea919062000a79565b6019556009600a620001fd919062000a28565b6107d06200020c919062000a79565b601a553480156200021c57600080fd5b5060006200022f6200085d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620002e46200085d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c357600080fd5b505afa158015620003d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fe919062000be6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200046157600080fd5b505afa15801562000476573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049c919062000be6565b6040518363ffffffff1660e01b8152600401620004bb92919062000c29565b602060405180830381600087803b158015620004d657600080fd5b505af1158015620004eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000511919062000be6565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620005676200086560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550604051806060016040528060148152602001602881526020016028815250601b600082015181600001556020820151816001015560408201518160020155905050620007cf6200085d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200082e919062000a28565b6305f5e1006200083f919062000a79565b6040516200084e919062000c67565b60405180910390a35062000c84565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200091c57808604811115620008f457620008f36200088e565b5b6001851615620009045780820291505b80810290506200091485620008bd565b9450620008d4565b94509492505050565b60008262000937576001905062000a0a565b8162000947576000905062000a0a565b81600181146200096057600281146200096b57620009a1565b600191505062000a0a565b60ff84111562000980576200097f6200088e565b5b8360020a9150848211156200099a57620009996200088e565b5b5062000a0a565b5060208310610133831016604e8410600b8410161715620009db5782820a905083811115620009d557620009d46200088e565b5b62000a0a565b620009ea8484846001620008ca565b9250905081840481111562000a045762000a036200088e565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a358262000a11565b915062000a428362000a1b565b925062000a717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000925565b905092915050565b600062000a868262000a11565b915062000a938362000a11565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000acf5762000ace6200088e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b168262000a11565b915062000b238362000a11565b92508262000b365762000b3562000ada565b5b828206905092915050565b600062000b4e8262000a11565b915062000b5b8362000a11565b92508282101562000b715762000b706200088e565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bae8262000b81565b9050919050565b62000bc08162000ba1565b811462000bcc57600080fd5b50565b60008151905062000be08162000bb5565b92915050565b60006020828403121562000bff5762000bfe62000b7c565b5b600062000c0f8482850162000bcf565b91505092915050565b62000c238162000ba1565b82525050565b600060408201905062000c40600083018562000c18565b62000c4f602083018462000c18565b9392505050565b62000c618162000a11565b82525050565b600060208201905062000c7e600083018462000c56565b92915050565b614a8b8062000c946000396000f3fe6080604052600436106102285760003560e01c806374010ece11610123578063a5ece941116100ab578063c492f0461161006f578063c492f046146107f1578063dd62ed3e1461081a578063ea1644d514610857578063f2fde38b14610880578063fb6287d2146108a95761022f565b8063a5ece941146106f8578063a9059cbb14610723578063bdd795ef14610760578063bfd792841461079d578063c3c8cd80146107da5761022f565b80638f70ccf7116100f25780638f70ccf7146106275780638f9a55c01461065057806395d89b411461067b57806398a5c315146106a6578063a2a957bb146106cf5761022f565b806374010ece1461056b5780637d1db4a5146105945780637f2feddc146105bf5780638da5cb5b146105fc5761022f565b80633ad10ef6116101b15780636d8aa8f8116101755780636d8aa8f8146104ae5780636f343052146104d75780636fc3eaec1461050057806370a0823114610517578063715018a6146105545761022f565b80633ad10ef6146103d957806349bd5a5e1461040457806353a082a21461042f5780635ee58efc146104585780636b999053146104855761022f565b80631694505e116101f85780631694505e146102f057806318160ddd1461031b57806323b872dd146103465780632fd689e314610383578063313ce567146103ae5761022f565b8062b8cf2a1461023457806306fdde031461025d578063095ea7b314610288578063129b9775146102c55761022f565b3661022f57005b600080fd5b34801561024057600080fd5b5061025b60048036038101906102569190613750565b6108d2565b005b34801561026957600080fd5b506102726109fc565b60405161027f9190613821565b60405180910390f35b34801561029457600080fd5b506102af60048036038101906102aa9190613879565b610a39565b6040516102bc91906138d4565b60405180910390f35b3480156102d157600080fd5b506102da610a57565b6040516102e791906138fe565b60405180910390f35b3480156102fc57600080fd5b50610305610a7d565b6040516103129190613978565b60405180910390f35b34801561032757600080fd5b50610330610aa3565b60405161033d91906139a2565b60405180910390f35b34801561035257600080fd5b5061036d600480360381019061036891906139bd565b610ac7565b60405161037a91906138d4565b60405180910390f35b34801561038f57600080fd5b50610398610ba0565b6040516103a591906139a2565b60405180910390f35b3480156103ba57600080fd5b506103c3610ba6565b6040516103d09190613a2c565b60405180910390f35b3480156103e557600080fd5b506103ee610baf565b6040516103fb91906138fe565b60405180910390f35b34801561041057600080fd5b50610419610bd5565b60405161042691906138fe565b60405180910390f35b34801561043b57600080fd5b5061045660048036038101906104519190613ace565b610bfb565b005b34801561046457600080fd5b5061046d610def565b60405161047c93929190613b2e565b60405180910390f35b34801561049157600080fd5b506104ac60048036038101906104a79190613b65565b610e07565b005b3480156104ba57600080fd5b506104d560048036038101906104d09190613b92565b610ef7565b005b3480156104e357600080fd5b506104fe60048036038101906104f99190613bbf565b610fa9565b005b34801561050c57600080fd5b50610515611061565b005b34801561052357600080fd5b5061053e60048036038101906105399190613b65565b611191565b60405161054b91906139a2565b60405180910390f35b34801561056057600080fd5b506105696111e2565b005b34801561057757600080fd5b50610592600480360381019061058d9190613c12565b611335565b005b3480156105a057600080fd5b506105a96113d4565b6040516105b691906139a2565b60405180910390f35b3480156105cb57600080fd5b506105e660048036038101906105e19190613b65565b6113da565b6040516105f391906139a2565b60405180910390f35b34801561060857600080fd5b506106116113f2565b60405161061e91906138fe565b60405180910390f35b34801561063357600080fd5b5061064e60048036038101906106499190613b92565b61141b565b005b34801561065c57600080fd5b506106656114cd565b60405161067291906139a2565b60405180910390f35b34801561068757600080fd5b506106906114d3565b60405161069d9190613821565b60405180910390f35b3480156106b257600080fd5b506106cd60048036038101906106c89190613c12565b611510565b005b3480156106db57600080fd5b506106f660048036038101906106f19190613c3f565b6115af565b005b34801561070457600080fd5b5061070d611666565b60405161071a91906138fe565b60405180910390f35b34801561072f57600080fd5b5061074a60048036038101906107459190613879565b61168c565b60405161075791906138d4565b60405180910390f35b34801561076c57600080fd5b5061078760048036038101906107829190613b65565b6116aa565b60405161079491906138d4565b60405180910390f35b3480156107a957600080fd5b506107c460048036038101906107bf9190613b65565b6116ca565b6040516107d191906138d4565b60405180910390f35b3480156107e657600080fd5b506107ef6116ea565b005b3480156107fd57600080fd5b5061081860048036038101906108139190613ace565b611822565b005b34801561082657600080fd5b50610841600480360381019061083c9190613ca6565b61195c565b60405161084e91906139a2565b60405180910390f35b34801561086357600080fd5b5061087e60048036038101906108799190613c12565b6119e3565b005b34801561088c57600080fd5b506108a760048036038101906108a29190613b65565b611a82565b005b3480156108b557600080fd5b506108d060048036038101906108cb9190613ce6565b611c44565b005b6108da611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e90613d85565b60405180910390fd5b60005b81518110156109f85760016010600084848151811061098c5761098b613da5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109f090613e03565b91505061096a565b5050565b60606040518060400160405280601781526020017f426c756520436f6c6c61722043727970746f2c204c4c43000000000000000000815250905090565b6000610a4d610a46611da1565b8484611da9565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a610ab39190613f7f565b6305f5e100610ac29190613fca565b905090565b6000610ad4848484611f74565b610b9584610ae0611da1565b610b9085604051806060016040528060288152602001614a2e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b46611da1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128be9092919063ffffffff16565b611da9565b600190509392505050565b601a5481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c03611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790613d85565b60405180910390fd5b60005b83839050811015610de95781151560126000868685818110610cb857610cb7613da5565b5b9050602002016020810190610ccd9190613b65565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f90614070565b60405180910390fd5b8160126000868685818110610d7057610d6f613da5565b5b9050602002016020810190610d859190613b65565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610de190613e03565b915050610c93565b50505050565b601b8060000154908060010154908060020154905083565b610e0f611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9390613d85565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610eff611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8390613d85565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b610fb1611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103590613d85565b60405180910390fd5b82601b6000018190555081601b6001018190555080601b60020181905550505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110a2611da1565b73ffffffffffffffffffffffffffffffffffffffff1614806111185750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611100611da1565b73ffffffffffffffffffffffffffffffffffffffff16145b806111775750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661115f611da1565b73ffffffffffffffffffffffffffffffffffffffff16145b61118057600080fd5b600047905061118e81612922565b50565b60006111db600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2c565b9050919050565b6111ea611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126e90613d85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61133d611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c190613d85565b60405180910390fd5b8060188190555050565b60185481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611423611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a790613d85565b60405180910390fd5b80601760146101000a81548160ff02191690831515021790555050565b60195481565b60606040518060400160405280600481526020017f424c554500000000000000000000000000000000000000000000000000000000815250905090565b611518611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c90613d85565b60405180910390fd5b80601a8190555050565b6115b7611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b90613d85565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116a0611699611da1565b8484611f74565b6001905092915050565b60126020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661172b611da1565b73ffffffffffffffffffffffffffffffffffffffff1614806117a15750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611789611da1565b73ffffffffffffffffffffffffffffffffffffffff16145b806118005750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117e8611da1565b73ffffffffffffffffffffffffffffffffffffffff16145b61180957600080fd5b600061181430611191565b905061181f81612b9a565b50565b61182a611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ae90613d85565b60405180910390fd5b60005b838390508110156119565781600560008686858181106118dd576118dc613da5565b5b90506020020160208101906118f29190613b65565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061194e90613e03565b9150506118ba565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119eb611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6f90613d85565b60405180910390fd5b8060198190555050565b611a8a611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0e90613d85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7e90614102565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c4c611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd090613d85565b60405180910390fd5b82601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1090614194565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8090614226565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f6791906139a2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdb906142b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204b9061434a565b60405180910390fd5b60008111612097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208e906143dc565b60405180910390fd5b61209f6113f2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561210d57506120dd6113f2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121635750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121b95750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156125bd57601760149054906101000a900460ff1661225f57601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661225e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122559061446e565b60405180910390fd5b5b6018548111156122a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229b906144da565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123485750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237e9061456c565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461243457601954816123e984611191565b6123f3919061458c565b10612433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242a90614654565b60405180910390fd5b5b600061243f30611191565b90506000601a548210159050601854821061245a5760185491505b8080156124745750601760159054906101000a900460ff16155b80156124ce5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156124e65750601760169054906101000a900460ff165b801561253c5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125925750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156125ba576125a082612b9a565b600047905060008111156125b8576125b747612922565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126645750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806127175750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156127165750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561272557600090506128ac565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156127d05750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156127e857600854600c81905550600954600d819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156128935750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156128ab57600a54600c81905550600b54600d819055505b5b6128b884848484612e22565b50505050565b6000838311158290612906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fd9190613821565b60405180910390fd5b50600083856129159190614674565b9050809150509392505050565b6001601760156101000a81548160ff0219169083151502179055506000819050600061296f6064612961601b6001015485612e4f90919063ffffffff16565b612eca90919063ffffffff16565b9050600061299e6064612990601b6002015486612e4f90919063ffffffff16565b612eca90919063ffffffff16565b905060006129cd60646129bf601b6000015487612e4f90919063ffffffff16565b612eca90919063ffffffff16565b9050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015612a37573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612aa0573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612b09573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b6000600654821115612b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6a9061471a565b60405180910390fd5b6000612b7d612f14565b9050612b928184612eca90919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612bd257612bd16135af565b5b604051908082528060200260200182016040528015612c005781602001602082028036833780820191505090505b5090503081600081518110612c1857612c17613da5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612cba57600080fd5b505afa158015612cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cf2919061474f565b81600181518110612d0657612d05613da5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d6d30601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611da9565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612dd1959493929190614875565b600060405180830381600087803b158015612deb57600080fd5b505af1158015612dff573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b80612e3057612e2f612f3f565b5b612e3b848484612f82565b80612e4957612e4861314d565b5b50505050565b600080831415612e625760009050612ec4565b60008284612e709190613fca565b9050828482612e7f91906148fe565b14612ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb6906149a1565b60405180910390fd5b809150505b92915050565b6000612f0c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613161565b905092915050565b6000806000612f216131c4565b91509150612f388183612eca90919063ffffffff16565b9250505090565b6000600c54148015612f5357506000600d54145b15612f5d57612f80565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612f948761325f565b955095509550955095509550612ff286600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132c790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061308785600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461331190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130d38161336f565b6130dd848361342c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161313a91906139a2565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080831182906131a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161319f9190613821565b60405180910390fd5b50600083856131b791906148fe565b9050809150509392505050565b6000806000600654905060006009600a6131de9190613f7f565b6305f5e1006131ed9190613fca565b90506132206009600a6132009190613f7f565b6305f5e10061320f9190613fca565b600654612eca90919063ffffffff16565b821015613252576006546009600a6132389190613f7f565b6305f5e1006132479190613fca565b93509350505061325b565b81819350935050505b9091565b600080600080600080600080600061327c8a600c54600d54613466565b925092509250600061328c612f14565b9050600080600061329f8e8787876134fc565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061330983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128be565b905092915050565b6000808284613320919061458c565b905083811015613365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161335c90614a0d565b60405180910390fd5b8091505092915050565b6000613379612f14565b905060006133908284612e4f90919063ffffffff16565b90506133e481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461331190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b613441826006546132c790919063ffffffff16565b60068190555061345c8160075461331190919063ffffffff16565b6007819055505050565b6000806000806134926064613484888a612e4f90919063ffffffff16565b612eca90919063ffffffff16565b905060006134bc60646134ae888b612e4f90919063ffffffff16565b612eca90919063ffffffff16565b905060006134e5826134d7858c6132c790919063ffffffff16565b6132c790919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806135158589612e4f90919063ffffffff16565b9050600061352c8689612e4f90919063ffffffff16565b905060006135438789612e4f90919063ffffffff16565b9050600061356c8261355e85876132c790919063ffffffff16565b6132c790919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6135e78261359e565b810181811067ffffffffffffffff82111715613606576136056135af565b5b80604052505050565b6000613619613585565b905061362582826135de565b919050565b600067ffffffffffffffff821115613645576136446135af565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136868261365b565b9050919050565b6136968161367b565b81146136a157600080fd5b50565b6000813590506136b38161368d565b92915050565b60006136cc6136c78461362a565b61360f565b905080838252602082019050602084028301858111156136ef576136ee613656565b5b835b81811015613718578061370488826136a4565b8452602084019350506020810190506136f1565b5050509392505050565b600082601f83011261373757613736613599565b5b81356137478482602086016136b9565b91505092915050565b6000602082840312156137665761376561358f565b5b600082013567ffffffffffffffff81111561378457613783613594565b5b61379084828501613722565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137d35780820151818401526020810190506137b8565b838111156137e2576000848401525b50505050565b60006137f382613799565b6137fd81856137a4565b935061380d8185602086016137b5565b6138168161359e565b840191505092915050565b6000602082019050818103600083015261383b81846137e8565b905092915050565b6000819050919050565b61385681613843565b811461386157600080fd5b50565b6000813590506138738161384d565b92915050565b600080604083850312156138905761388f61358f565b5b600061389e858286016136a4565b92505060206138af85828601613864565b9150509250929050565b60008115159050919050565b6138ce816138b9565b82525050565b60006020820190506138e960008301846138c5565b92915050565b6138f88161367b565b82525050565b600060208201905061391360008301846138ef565b92915050565b6000819050919050565b600061393e6139396139348461365b565b613919565b61365b565b9050919050565b600061395082613923565b9050919050565b600061396282613945565b9050919050565b61397281613957565b82525050565b600060208201905061398d6000830184613969565b92915050565b61399c81613843565b82525050565b60006020820190506139b76000830184613993565b92915050565b6000806000606084860312156139d6576139d561358f565b5b60006139e4868287016136a4565b93505060206139f5868287016136a4565b9250506040613a0686828701613864565b9150509250925092565b600060ff82169050919050565b613a2681613a10565b82525050565b6000602082019050613a416000830184613a1d565b92915050565b600080fd5b60008083601f840112613a6257613a61613599565b5b8235905067ffffffffffffffff811115613a7f57613a7e613a47565b5b602083019150836020820283011115613a9b57613a9a613656565b5b9250929050565b613aab816138b9565b8114613ab657600080fd5b50565b600081359050613ac881613aa2565b92915050565b600080600060408486031215613ae757613ae661358f565b5b600084013567ffffffffffffffff811115613b0557613b04613594565b5b613b1186828701613a4c565b93509350506020613b2486828701613ab9565b9150509250925092565b6000606082019050613b436000830186613993565b613b506020830185613993565b613b5d6040830184613993565b949350505050565b600060208284031215613b7b57613b7a61358f565b5b6000613b89848285016136a4565b91505092915050565b600060208284031215613ba857613ba761358f565b5b6000613bb684828501613ab9565b91505092915050565b600080600060608486031215613bd857613bd761358f565b5b6000613be686828701613864565b9350506020613bf786828701613864565b9250506040613c0886828701613864565b9150509250925092565b600060208284031215613c2857613c2761358f565b5b6000613c3684828501613864565b91505092915050565b60008060008060808587031215613c5957613c5861358f565b5b6000613c6787828801613864565b9450506020613c7887828801613864565b9350506040613c8987828801613864565b9250506060613c9a87828801613864565b91505092959194509250565b60008060408385031215613cbd57613cbc61358f565b5b6000613ccb858286016136a4565b9250506020613cdc858286016136a4565b9150509250929050565b600080600060608486031215613cff57613cfe61358f565b5b6000613d0d868287016136a4565b9350506020613d1e868287016136a4565b9250506040613d2f868287016136a4565b9150509250925092565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613d6f6020836137a4565b9150613d7a82613d39565b602082019050919050565b60006020820190508181036000830152613d9e81613d62565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e0e82613843565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613e4157613e40613dd4565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115613ea357808604811115613e7f57613e7e613dd4565b5b6001851615613e8e5780820291505b8081029050613e9c85613e4c565b9450613e63565b94509492505050565b600082613ebc5760019050613f78565b81613eca5760009050613f78565b8160018114613ee05760028114613eea57613f19565b6001915050613f78565b60ff841115613efc57613efb613dd4565b5b8360020a915084821115613f1357613f12613dd4565b5b50613f78565b5060208310610133831016604e8410600b8410161715613f4e5782820a905083811115613f4957613f48613dd4565b5b613f78565b613f5b8484846001613e59565b92509050818404811115613f7257613f71613dd4565b5b81810290505b9392505050565b6000613f8a82613843565b9150613f9583613a10565b9250613fc27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613eac565b905092915050565b6000613fd582613843565b9150613fe083613843565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561401957614018613dd4565b5b828202905092915050565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b600061405a6017836137a4565b915061406582614024565b602082019050919050565b600060208201905081810360008301526140898161404d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006140ec6026836137a4565b91506140f782614090565b604082019050919050565b6000602082019050818103600083015261411b816140df565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061417e6024836137a4565b915061418982614122565b604082019050919050565b600060208201905081810360008301526141ad81614171565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006142106022836137a4565b915061421b826141b4565b604082019050919050565b6000602082019050818103600083015261423f81614203565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006142a26025836137a4565b91506142ad82614246565b604082019050919050565b600060208201905081810360008301526142d181614295565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006143346023836137a4565b915061433f826142d8565b604082019050919050565b6000602082019050818103600083015261436381614327565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006143c66029836137a4565b91506143d18261436a565b604082019050919050565b600060208201905081810360008301526143f5816143b9565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000614458603f836137a4565b9150614463826143fc565b604082019050919050565b600060208201905081810360008301526144878161444b565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006144c4601c836137a4565b91506144cf8261448e565b602082019050919050565b600060208201905081810360008301526144f3816144b7565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006145566023836137a4565b9150614561826144fa565b604082019050919050565b6000602082019050818103600083015261458581614549565b9050919050565b600061459782613843565b91506145a283613843565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156145d7576145d6613dd4565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061463e6023836137a4565b9150614649826145e2565b604082019050919050565b6000602082019050818103600083015261466d81614631565b9050919050565b600061467f82613843565b915061468a83613843565b92508282101561469d5761469c613dd4565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614704602a836137a4565b915061470f826146a8565b604082019050919050565b60006020820190508181036000830152614733816146f7565b9050919050565b6000815190506147498161368d565b92915050565b6000602082840312156147655761476461358f565b5b60006147738482850161473a565b91505092915050565b6000819050919050565b60006147a161479c6147978461477c565b613919565b613843565b9050919050565b6147b181614786565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6147ec8161367b565b82525050565b60006147fe83836147e3565b60208301905092915050565b6000602082019050919050565b6000614822826147b7565b61482c81856147c2565b9350614837836147d3565b8060005b8381101561486857815161484f88826147f2565b975061485a8361480a565b92505060018101905061483b565b5085935050505092915050565b600060a08201905061488a6000830188613993565b61489760208301876147a8565b81810360408301526148a98186614817565b90506148b860608301856138ef565b6148c56080830184613993565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061490982613843565b915061491483613843565b925082614924576149236148cf565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061498b6021836137a4565b91506149968261492f565b604082019050919050565b600060208201905081810360008301526149ba8161497e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006149f7601b836137a4565b9150614a02826149c1565b602082019050919050565b60006020820190508181036000830152614a26816149ea565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ee58914e60a772555f7d44a13f4854103bca599b8b187bb0ee93b7274c283e7f64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106102285760003560e01c806374010ece11610123578063a5ece941116100ab578063c492f0461161006f578063c492f046146107f1578063dd62ed3e1461081a578063ea1644d514610857578063f2fde38b14610880578063fb6287d2146108a95761022f565b8063a5ece941146106f8578063a9059cbb14610723578063bdd795ef14610760578063bfd792841461079d578063c3c8cd80146107da5761022f565b80638f70ccf7116100f25780638f70ccf7146106275780638f9a55c01461065057806395d89b411461067b57806398a5c315146106a6578063a2a957bb146106cf5761022f565b806374010ece1461056b5780637d1db4a5146105945780637f2feddc146105bf5780638da5cb5b146105fc5761022f565b80633ad10ef6116101b15780636d8aa8f8116101755780636d8aa8f8146104ae5780636f343052146104d75780636fc3eaec1461050057806370a0823114610517578063715018a6146105545761022f565b80633ad10ef6146103d957806349bd5a5e1461040457806353a082a21461042f5780635ee58efc146104585780636b999053146104855761022f565b80631694505e116101f85780631694505e146102f057806318160ddd1461031b57806323b872dd146103465780632fd689e314610383578063313ce567146103ae5761022f565b8062b8cf2a1461023457806306fdde031461025d578063095ea7b314610288578063129b9775146102c55761022f565b3661022f57005b600080fd5b34801561024057600080fd5b5061025b60048036038101906102569190613750565b6108d2565b005b34801561026957600080fd5b506102726109fc565b60405161027f9190613821565b60405180910390f35b34801561029457600080fd5b506102af60048036038101906102aa9190613879565b610a39565b6040516102bc91906138d4565b60405180910390f35b3480156102d157600080fd5b506102da610a57565b6040516102e791906138fe565b60405180910390f35b3480156102fc57600080fd5b50610305610a7d565b6040516103129190613978565b60405180910390f35b34801561032757600080fd5b50610330610aa3565b60405161033d91906139a2565b60405180910390f35b34801561035257600080fd5b5061036d600480360381019061036891906139bd565b610ac7565b60405161037a91906138d4565b60405180910390f35b34801561038f57600080fd5b50610398610ba0565b6040516103a591906139a2565b60405180910390f35b3480156103ba57600080fd5b506103c3610ba6565b6040516103d09190613a2c565b60405180910390f35b3480156103e557600080fd5b506103ee610baf565b6040516103fb91906138fe565b60405180910390f35b34801561041057600080fd5b50610419610bd5565b60405161042691906138fe565b60405180910390f35b34801561043b57600080fd5b5061045660048036038101906104519190613ace565b610bfb565b005b34801561046457600080fd5b5061046d610def565b60405161047c93929190613b2e565b60405180910390f35b34801561049157600080fd5b506104ac60048036038101906104a79190613b65565b610e07565b005b3480156104ba57600080fd5b506104d560048036038101906104d09190613b92565b610ef7565b005b3480156104e357600080fd5b506104fe60048036038101906104f99190613bbf565b610fa9565b005b34801561050c57600080fd5b50610515611061565b005b34801561052357600080fd5b5061053e60048036038101906105399190613b65565b611191565b60405161054b91906139a2565b60405180910390f35b34801561056057600080fd5b506105696111e2565b005b34801561057757600080fd5b50610592600480360381019061058d9190613c12565b611335565b005b3480156105a057600080fd5b506105a96113d4565b6040516105b691906139a2565b60405180910390f35b3480156105cb57600080fd5b506105e660048036038101906105e19190613b65565b6113da565b6040516105f391906139a2565b60405180910390f35b34801561060857600080fd5b506106116113f2565b60405161061e91906138fe565b60405180910390f35b34801561063357600080fd5b5061064e60048036038101906106499190613b92565b61141b565b005b34801561065c57600080fd5b506106656114cd565b60405161067291906139a2565b60405180910390f35b34801561068757600080fd5b506106906114d3565b60405161069d9190613821565b60405180910390f35b3480156106b257600080fd5b506106cd60048036038101906106c89190613c12565b611510565b005b3480156106db57600080fd5b506106f660048036038101906106f19190613c3f565b6115af565b005b34801561070457600080fd5b5061070d611666565b60405161071a91906138fe565b60405180910390f35b34801561072f57600080fd5b5061074a60048036038101906107459190613879565b61168c565b60405161075791906138d4565b60405180910390f35b34801561076c57600080fd5b5061078760048036038101906107829190613b65565b6116aa565b60405161079491906138d4565b60405180910390f35b3480156107a957600080fd5b506107c460048036038101906107bf9190613b65565b6116ca565b6040516107d191906138d4565b60405180910390f35b3480156107e657600080fd5b506107ef6116ea565b005b3480156107fd57600080fd5b5061081860048036038101906108139190613ace565b611822565b005b34801561082657600080fd5b50610841600480360381019061083c9190613ca6565b61195c565b60405161084e91906139a2565b60405180910390f35b34801561086357600080fd5b5061087e60048036038101906108799190613c12565b6119e3565b005b34801561088c57600080fd5b506108a760048036038101906108a29190613b65565b611a82565b005b3480156108b557600080fd5b506108d060048036038101906108cb9190613ce6565b611c44565b005b6108da611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e90613d85565b60405180910390fd5b60005b81518110156109f85760016010600084848151811061098c5761098b613da5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109f090613e03565b91505061096a565b5050565b60606040518060400160405280601781526020017f426c756520436f6c6c61722043727970746f2c204c4c43000000000000000000815250905090565b6000610a4d610a46611da1565b8484611da9565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a610ab39190613f7f565b6305f5e100610ac29190613fca565b905090565b6000610ad4848484611f74565b610b9584610ae0611da1565b610b9085604051806060016040528060288152602001614a2e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b46611da1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128be9092919063ffffffff16565b611da9565b600190509392505050565b601a5481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c03611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790613d85565b60405180910390fd5b60005b83839050811015610de95781151560126000868685818110610cb857610cb7613da5565b5b9050602002016020810190610ccd9190613b65565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f90614070565b60405180910390fd5b8160126000868685818110610d7057610d6f613da5565b5b9050602002016020810190610d859190613b65565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610de190613e03565b915050610c93565b50505050565b601b8060000154908060010154908060020154905083565b610e0f611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9390613d85565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610eff611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8390613d85565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b610fb1611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103590613d85565b60405180910390fd5b82601b6000018190555081601b6001018190555080601b60020181905550505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110a2611da1565b73ffffffffffffffffffffffffffffffffffffffff1614806111185750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611100611da1565b73ffffffffffffffffffffffffffffffffffffffff16145b806111775750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661115f611da1565b73ffffffffffffffffffffffffffffffffffffffff16145b61118057600080fd5b600047905061118e81612922565b50565b60006111db600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2c565b9050919050565b6111ea611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126e90613d85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61133d611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c190613d85565b60405180910390fd5b8060188190555050565b60185481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611423611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a790613d85565b60405180910390fd5b80601760146101000a81548160ff02191690831515021790555050565b60195481565b60606040518060400160405280600481526020017f424c554500000000000000000000000000000000000000000000000000000000815250905090565b611518611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c90613d85565b60405180910390fd5b80601a8190555050565b6115b7611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b90613d85565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116a0611699611da1565b8484611f74565b6001905092915050565b60126020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661172b611da1565b73ffffffffffffffffffffffffffffffffffffffff1614806117a15750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611789611da1565b73ffffffffffffffffffffffffffffffffffffffff16145b806118005750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117e8611da1565b73ffffffffffffffffffffffffffffffffffffffff16145b61180957600080fd5b600061181430611191565b905061181f81612b9a565b50565b61182a611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ae90613d85565b60405180910390fd5b60005b838390508110156119565781600560008686858181106118dd576118dc613da5565b5b90506020020160208101906118f29190613b65565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061194e90613e03565b9150506118ba565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119eb611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6f90613d85565b60405180910390fd5b8060198190555050565b611a8a611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0e90613d85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7e90614102565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c4c611da1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd090613d85565b60405180910390fd5b82601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1090614194565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8090614226565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f6791906139a2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdb906142b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204b9061434a565b60405180910390fd5b60008111612097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208e906143dc565b60405180910390fd5b61209f6113f2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561210d57506120dd6113f2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121635750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121b95750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156125bd57601760149054906101000a900460ff1661225f57601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661225e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122559061446e565b60405180910390fd5b5b6018548111156122a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229b906144da565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123485750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237e9061456c565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461243457601954816123e984611191565b6123f3919061458c565b10612433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242a90614654565b60405180910390fd5b5b600061243f30611191565b90506000601a548210159050601854821061245a5760185491505b8080156124745750601760159054906101000a900460ff16155b80156124ce5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156124e65750601760169054906101000a900460ff165b801561253c5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125925750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156125ba576125a082612b9a565b600047905060008111156125b8576125b747612922565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126645750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806127175750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156127165750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561272557600090506128ac565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156127d05750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156127e857600854600c81905550600954600d819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156128935750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156128ab57600a54600c81905550600b54600d819055505b5b6128b884848484612e22565b50505050565b6000838311158290612906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fd9190613821565b60405180910390fd5b50600083856129159190614674565b9050809150509392505050565b6001601760156101000a81548160ff0219169083151502179055506000819050600061296f6064612961601b6001015485612e4f90919063ffffffff16565b612eca90919063ffffffff16565b9050600061299e6064612990601b6002015486612e4f90919063ffffffff16565b612eca90919063ffffffff16565b905060006129cd60646129bf601b6000015487612e4f90919063ffffffff16565b612eca90919063ffffffff16565b9050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015612a37573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612aa0573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612b09573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b6000600654821115612b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6a9061471a565b60405180910390fd5b6000612b7d612f14565b9050612b928184612eca90919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612bd257612bd16135af565b5b604051908082528060200260200182016040528015612c005781602001602082028036833780820191505090505b5090503081600081518110612c1857612c17613da5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612cba57600080fd5b505afa158015612cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cf2919061474f565b81600181518110612d0657612d05613da5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d6d30601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611da9565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612dd1959493929190614875565b600060405180830381600087803b158015612deb57600080fd5b505af1158015612dff573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b80612e3057612e2f612f3f565b5b612e3b848484612f82565b80612e4957612e4861314d565b5b50505050565b600080831415612e625760009050612ec4565b60008284612e709190613fca565b9050828482612e7f91906148fe565b14612ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb6906149a1565b60405180910390fd5b809150505b92915050565b6000612f0c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613161565b905092915050565b6000806000612f216131c4565b91509150612f388183612eca90919063ffffffff16565b9250505090565b6000600c54148015612f5357506000600d54145b15612f5d57612f80565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612f948761325f565b955095509550955095509550612ff286600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132c790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061308785600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461331190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130d38161336f565b6130dd848361342c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161313a91906139a2565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080831182906131a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161319f9190613821565b60405180910390fd5b50600083856131b791906148fe565b9050809150509392505050565b6000806000600654905060006009600a6131de9190613f7f565b6305f5e1006131ed9190613fca565b90506132206009600a6132009190613f7f565b6305f5e10061320f9190613fca565b600654612eca90919063ffffffff16565b821015613252576006546009600a6132389190613f7f565b6305f5e1006132479190613fca565b93509350505061325b565b81819350935050505b9091565b600080600080600080600080600061327c8a600c54600d54613466565b925092509250600061328c612f14565b9050600080600061329f8e8787876134fc565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061330983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128be565b905092915050565b6000808284613320919061458c565b905083811015613365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161335c90614a0d565b60405180910390fd5b8091505092915050565b6000613379612f14565b905060006133908284612e4f90919063ffffffff16565b90506133e481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461331190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b613441826006546132c790919063ffffffff16565b60068190555061345c8160075461331190919063ffffffff16565b6007819055505050565b6000806000806134926064613484888a612e4f90919063ffffffff16565b612eca90919063ffffffff16565b905060006134bc60646134ae888b612e4f90919063ffffffff16565b612eca90919063ffffffff16565b905060006134e5826134d7858c6132c790919063ffffffff16565b6132c790919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806135158589612e4f90919063ffffffff16565b9050600061352c8689612e4f90919063ffffffff16565b905060006135438789612e4f90919063ffffffff16565b9050600061356c8261355e85876132c790919063ffffffff16565b6132c790919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6135e78261359e565b810181811067ffffffffffffffff82111715613606576136056135af565b5b80604052505050565b6000613619613585565b905061362582826135de565b919050565b600067ffffffffffffffff821115613645576136446135af565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136868261365b565b9050919050565b6136968161367b565b81146136a157600080fd5b50565b6000813590506136b38161368d565b92915050565b60006136cc6136c78461362a565b61360f565b905080838252602082019050602084028301858111156136ef576136ee613656565b5b835b81811015613718578061370488826136a4565b8452602084019350506020810190506136f1565b5050509392505050565b600082601f83011261373757613736613599565b5b81356137478482602086016136b9565b91505092915050565b6000602082840312156137665761376561358f565b5b600082013567ffffffffffffffff81111561378457613783613594565b5b61379084828501613722565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137d35780820151818401526020810190506137b8565b838111156137e2576000848401525b50505050565b60006137f382613799565b6137fd81856137a4565b935061380d8185602086016137b5565b6138168161359e565b840191505092915050565b6000602082019050818103600083015261383b81846137e8565b905092915050565b6000819050919050565b61385681613843565b811461386157600080fd5b50565b6000813590506138738161384d565b92915050565b600080604083850312156138905761388f61358f565b5b600061389e858286016136a4565b92505060206138af85828601613864565b9150509250929050565b60008115159050919050565b6138ce816138b9565b82525050565b60006020820190506138e960008301846138c5565b92915050565b6138f88161367b565b82525050565b600060208201905061391360008301846138ef565b92915050565b6000819050919050565b600061393e6139396139348461365b565b613919565b61365b565b9050919050565b600061395082613923565b9050919050565b600061396282613945565b9050919050565b61397281613957565b82525050565b600060208201905061398d6000830184613969565b92915050565b61399c81613843565b82525050565b60006020820190506139b76000830184613993565b92915050565b6000806000606084860312156139d6576139d561358f565b5b60006139e4868287016136a4565b93505060206139f5868287016136a4565b9250506040613a0686828701613864565b9150509250925092565b600060ff82169050919050565b613a2681613a10565b82525050565b6000602082019050613a416000830184613a1d565b92915050565b600080fd5b60008083601f840112613a6257613a61613599565b5b8235905067ffffffffffffffff811115613a7f57613a7e613a47565b5b602083019150836020820283011115613a9b57613a9a613656565b5b9250929050565b613aab816138b9565b8114613ab657600080fd5b50565b600081359050613ac881613aa2565b92915050565b600080600060408486031215613ae757613ae661358f565b5b600084013567ffffffffffffffff811115613b0557613b04613594565b5b613b1186828701613a4c565b93509350506020613b2486828701613ab9565b9150509250925092565b6000606082019050613b436000830186613993565b613b506020830185613993565b613b5d6040830184613993565b949350505050565b600060208284031215613b7b57613b7a61358f565b5b6000613b89848285016136a4565b91505092915050565b600060208284031215613ba857613ba761358f565b5b6000613bb684828501613ab9565b91505092915050565b600080600060608486031215613bd857613bd761358f565b5b6000613be686828701613864565b9350506020613bf786828701613864565b9250506040613c0886828701613864565b9150509250925092565b600060208284031215613c2857613c2761358f565b5b6000613c3684828501613864565b91505092915050565b60008060008060808587031215613c5957613c5861358f565b5b6000613c6787828801613864565b9450506020613c7887828801613864565b9350506040613c8987828801613864565b9250506060613c9a87828801613864565b91505092959194509250565b60008060408385031215613cbd57613cbc61358f565b5b6000613ccb858286016136a4565b9250506020613cdc858286016136a4565b9150509250929050565b600080600060608486031215613cff57613cfe61358f565b5b6000613d0d868287016136a4565b9350506020613d1e868287016136a4565b9250506040613d2f868287016136a4565b9150509250925092565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613d6f6020836137a4565b9150613d7a82613d39565b602082019050919050565b60006020820190508181036000830152613d9e81613d62565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e0e82613843565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613e4157613e40613dd4565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115613ea357808604811115613e7f57613e7e613dd4565b5b6001851615613e8e5780820291505b8081029050613e9c85613e4c565b9450613e63565b94509492505050565b600082613ebc5760019050613f78565b81613eca5760009050613f78565b8160018114613ee05760028114613eea57613f19565b6001915050613f78565b60ff841115613efc57613efb613dd4565b5b8360020a915084821115613f1357613f12613dd4565b5b50613f78565b5060208310610133831016604e8410600b8410161715613f4e5782820a905083811115613f4957613f48613dd4565b5b613f78565b613f5b8484846001613e59565b92509050818404811115613f7257613f71613dd4565b5b81810290505b9392505050565b6000613f8a82613843565b9150613f9583613a10565b9250613fc27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613eac565b905092915050565b6000613fd582613843565b9150613fe083613843565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561401957614018613dd4565b5b828202905092915050565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b600061405a6017836137a4565b915061406582614024565b602082019050919050565b600060208201905081810360008301526140898161404d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006140ec6026836137a4565b91506140f782614090565b604082019050919050565b6000602082019050818103600083015261411b816140df565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061417e6024836137a4565b915061418982614122565b604082019050919050565b600060208201905081810360008301526141ad81614171565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006142106022836137a4565b915061421b826141b4565b604082019050919050565b6000602082019050818103600083015261423f81614203565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006142a26025836137a4565b91506142ad82614246565b604082019050919050565b600060208201905081810360008301526142d181614295565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006143346023836137a4565b915061433f826142d8565b604082019050919050565b6000602082019050818103600083015261436381614327565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006143c66029836137a4565b91506143d18261436a565b604082019050919050565b600060208201905081810360008301526143f5816143b9565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000614458603f836137a4565b9150614463826143fc565b604082019050919050565b600060208201905081810360008301526144878161444b565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006144c4601c836137a4565b91506144cf8261448e565b602082019050919050565b600060208201905081810360008301526144f3816144b7565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006145566023836137a4565b9150614561826144fa565b604082019050919050565b6000602082019050818103600083015261458581614549565b9050919050565b600061459782613843565b91506145a283613843565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156145d7576145d6613dd4565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061463e6023836137a4565b9150614649826145e2565b604082019050919050565b6000602082019050818103600083015261466d81614631565b9050919050565b600061467f82613843565b915061468a83613843565b92508282101561469d5761469c613dd4565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614704602a836137a4565b915061470f826146a8565b604082019050919050565b60006020820190508181036000830152614733816146f7565b9050919050565b6000815190506147498161368d565b92915050565b6000602082840312156147655761476461358f565b5b60006147738482850161473a565b91505092915050565b6000819050919050565b60006147a161479c6147978461477c565b613919565b613843565b9050919050565b6147b181614786565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6147ec8161367b565b82525050565b60006147fe83836147e3565b60208301905092915050565b6000602082019050919050565b6000614822826147b7565b61482c81856147c2565b9350614837836147d3565b8060005b8381101561486857815161484f88826147f2565b975061485a8361480a565b92505060018101905061483b565b5085935050505092915050565b600060a08201905061488a6000830188613993565b61489760208301876147a8565b81810360408301526148a98186614817565b90506148b860608301856138ef565b6148c56080830184613993565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061490982613843565b915061491483613843565b925082614924576149236148cf565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061498b6021836137a4565b91506149968261492f565b604082019050919050565b600060208201905081810360008301526149ba8161497e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006149f7601b836137a4565b9150614a02826149c1565b602082019050919050565b60006020820190508181036000830152614a26816149ea565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ee58914e60a772555f7d44a13f4854103bca599b8b187bb0ee93b7274c283e7f64736f6c63430008090033

Deployed Bytecode Sourcemap

5745:15196:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8633:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9558:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6968:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7211:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8910:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9759:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7523:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8819:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7132:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7259:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20649:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7705:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;15505:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20028:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16513:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15061:259;;;;;;;;;;;;;:::i;:::-;;9013:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3232:148;;;;;;;;;;;;;:::i;:::-;;20168:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7401:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6869:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3018:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14684:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7461:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8724:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19837:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19494:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7049:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9159:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6919:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6825:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14793:260;;;;;;;;;;;;;:::i;:::-;;20407:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9366:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20284:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3388:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16761:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15328:169;3155:12;:10;:12::i;:::-;3145:22;;:6;;;;;;;;;;:22;;;3137:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15404:9:::1;15399:91;15423:5;:12;15419:1;:16;15399:91;;;15474:4;15457;:14;15462:5;15468:1;15462:8;;;;;;;;:::i;:::-;;;;;;;;15457:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15437:3;;;;;:::i;:::-;;;;15399:91;;;;15328:169:::0;:::o;8633:83::-;8670:13;8703:5;;;;;;;;;;;;;;;;;8696:12;;8633:83;:::o;9558:193::-;9660:4;9682:39;9691:12;:10;:12::i;:::-;9705:7;9714:6;9682:8;:39::i;:::-;9739:4;9732:11;;9558:193;;;;:::o;6968:74::-;;;;;;;;;;;;;:::o;7211:41::-;;;;;;;;;;;;;:::o;8910:95::-;8963:7;5992:1;6330:2;:13;;;;:::i;:::-;6318:9;:25;;;;:::i;:::-;8983:14;;8910:95;:::o;9759:446::-;9891:4;9908:36;9918:6;9926:9;9937:6;9908:9;:36::i;:::-;9955:220;9978:6;9999:12;:10;:12::i;:::-;10026:138;10082:6;10026:138;;;;;;;;;;;;;;;;;:11;:19;10038:6;10026:19;;;;;;;;;;;;;;;:33;10046:12;:10;:12::i;:::-;10026:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;9955:8;:220::i;:::-;10193:4;10186:11;;9759:446;;;;;:::o;7523:57::-;;;;:::o;8819:83::-;8860:5;5992:1;8878:16;;8819:83;:::o;7132:70::-;;;;;;;;;;;;;:::o;7259:28::-;;;;;;;;;;;;;:::o;20649:289::-;3155:12;:10;:12::i;:::-;3145:22;;:6;;;;;;;;;;:22;;;3137:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20748:9:::1;20744:187;20767:8;;:15;;20763:1;:19;20744:187;;;20837:7;20811:33;;:9;:22;20821:8;;20830:1;20821:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20811:22;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;20803:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;20912:7;20887:9;:22;20897:8;;20906:1;20897:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20887:22;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;20784:3;;;;;:::i;:::-;;;;20744:187;;;;20649:289:::0;;;:::o;7705:32::-;;;;;;;;;;;;;;;;;;;:::o;15505:92::-;3155:12;:10;:12::i;:::-;3145:22;;:6;;;;;;;;;;:22;;;3137:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15584:5:::1;15569:4;:12;15574:6;15569:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;15505:92:::0;:::o;20028:101::-;3155:12;:10;:12::i;:::-;3145:22;;:6;;;;;;;;;;:22;;;3137:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20109:12:::1;20095:11;;:26;;;;;;;;;;;;;;;;;;20028:101:::0;:::o;16513:240::-;3155:12;:10;:12::i;:::-;3145:22;;:6;;;;;;;;;;:22;;;3137:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16652:7:::1;16629:12;:20;;:30;;;;16695:9;16670:12;:22;;:34;;;;16738:7;16715:12;:20;;:30;;;;16513:240:::0;;;:::o;15061:259::-;15127:10;;;;;;;;;;;15111:26;;:12;:10;:12::i;:::-;:26;;;:62;;;;15157:16;;;;;;;;;;;15141:32;;:12;:10;:12::i;:::-;:32;;;15111:62;:96;;;;15193:14;;;;;;;;;;;15177:30;;:12;:10;:12::i;:::-;:30;;;15111:96;15103:105;;;;;;15219:26;15248:21;15219:50;;15280:32;15293:18;15280:12;:32::i;:::-;15092:228;15061:259::o;9013:138::-;9079:7;9106:37;9126:7;:16;9134:7;9126:16;;;;;;;;;;;;;;;;9106:19;:37::i;:::-;9099:44;;9013:138;;;:::o;3232:148::-;3155:12;:10;:12::i;:::-;3145:22;;:6;;;;;;;;;;:22;;;3137:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3339:1:::1;3302:40;;3323:6;::::0;::::1;;;;;;;;3302:40;;;;;;;;;;;;3370:1;3353:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3232:148::o:0;20168:108::-;3155:12;:10;:12::i;:::-;3145:22;;:6;;;;;;;;;;:22;;;3137:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20257:11:::1;20242:12;:26;;;;20168:108:::0;:::o;7401:53::-;;;;:::o;6869:43::-;;;;;;;;;;;;;;;;;:::o;3018:79::-;3056:7;3083:6;;;;;;;;;;;3076:13;;3018:79;:::o;14684:101::-;3155:12;:10;:12::i;:::-;3145:22;;:6;;;;;;;;;;:22;;;3137:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14765:12:::1;14751:11;;:26;;;;;;;;;;;;;;;;;;14684:101:::0;:::o;7461:55::-;;;;:::o;8724:87::-;8763:13;8796:7;;;;;;;;;;;;;;;;;8789:14;;8724:87;:::o;19837:139::-;3155:12;:10;:12::i;:::-;3145:22;;:6;;;;;;;;;;:22;;;3137:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19950:18:::1;19928:19;:40;;;;19837:139:::0;:::o;19494:291::-;3155:12;:10;:12::i;:::-;3145:22;;:6;;;;;;;;;;:22;;;3137:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19645:13:::1;19628:14;:30;;;;19687:14;19669:15;:32;;;;19727:11;19712:12;:26;;;;19765:12;19749:13;:28;;;;19494:291:::0;;;;:::o;7049:76::-;;;;;;;;;;;;;:::o;9159:199::-;9264:4;9286:42;9296:12;:10;:12::i;:::-;9310:9;9321:6;9286:9;:42::i;:::-;9346:4;9339:11;;9159:199;;;;:::o;6919:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;6825:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;14793:260::-;14859:10;;;;;;;;;;;14843:26;;:12;:10;:12::i;:::-;:26;;;:62;;;;14889:16;;;;;;;;;;;14873:32;;:12;:10;:12::i;:::-;:32;;;14843:62;:96;;;;14925:14;;;;;;;;;;;14909:30;;:12;:10;:12::i;:::-;:30;;;14843:96;14835:105;;;;;;14951:23;14977:24;14995:4;14977:9;:24::i;:::-;14951:50;;15012:33;15029:15;15012:16;:33::i;:::-;14824:229;14793:260::o;20407:234::-;3155:12;:10;:12::i;:::-;3145:22;;:6;;;;;;;;;;:22;;;3137:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20524:9:::1;20520:114;20543:8;;:15;;20539:1;:19;20520:114;;;20614:8;20580:18;:31;20599:8;;20608:1;20599:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20580:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;20560:3;;;;;:::i;:::-;;;;20520:114;;;;20407:234:::0;;;:::o;9366:184::-;9483:7;9515:11;:18;9527:5;9515:18;;;;;;;;;;;;;;;:27;9534:7;9515:27;;;;;;;;;;;;;;;;9508:34;;9366:184;;;;:::o;20284:115::-;3155:12;:10;:12::i;:::-;3145:22;;:6;;;;;;;;;;:22;;;3137:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20378:13:::1;20361:14;:30;;;;20284:115:::0;:::o;3388:244::-;3155:12;:10;:12::i;:::-;3145:22;;:6;;;;;;;;;;:22;;;3137:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3497:1:::1;3477:22;;:8;:22;;;;3469:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3587:8;3558:38;;3579:6;::::0;::::1;;;;;;;;3558:38;;;;;;;;;;;;3616:8;3607:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3388:244:::0;:::o;16761:229::-;3155:12;:10;:12::i;:::-;3145:22;;:6;;;;;;;;;;:22;;;3137:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16893:7:::1;16880:10;;:20;;;;;;;;;;;;;;;;;;16930:13;16911:16;;:32;;;;;;;;;;;;;;;;;;16971:11;16954:14;;:28;;;;;;;;;;;;;;;;;;16761:229:::0;;;:::o;1777:98::-;1830:7;1857:10;1850:17;;1777:98;:::o;10896:369::-;11040:1;11023:19;;:5;:19;;;;11015:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11121:1;11102:21;;:7;:21;;;;11094:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11203:6;11173:11;:18;11185:5;11173:18;;;;;;;;;;;;;;;:27;11192:7;11173:27;;;;;;;;;;;;;;;:36;;;;11241:7;11225:32;;11234:5;11225:32;;;11250:6;11225:32;;;;;;:::i;:::-;;;;;;;;10896:369;;;:::o;11273:2368::-;11411:1;11395:18;;:4;:18;;;;11387:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11488:1;11474:16;;:2;:16;;;;11466:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11558:1;11549:6;:10;11541:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11630:7;:5;:7::i;:::-;11622:15;;:4;:15;;;;:32;;;;;11647:7;:5;:7::i;:::-;11641:13;;:2;:13;;;;11622:32;:52;;;;;11659:9;:15;11669:4;11659:15;;;;;;;;;;;;;;;;;;;;;;;;;11658:16;11622:52;:70;;;;;11679:9;:13;11689:2;11679:13;;;;;;;;;;;;;;;;;;;;;;;;;11678:14;11622:70;11618:1297;;;11749:11;;;;;;;;;;;11744:144;;11789:9;:15;11799:4;11789:15;;;;;;;;;;;;;;;;;;;;;;;;;11781:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;11744:144;11922:12;;11912:6;:22;;11904:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11991:4;:10;11996:4;11991:10;;;;;;;;;;;;;;;;;;;;;;;;;11990:11;:24;;;;;12006:4;:8;12011:2;12006:8;;;;;;;;;;;;;;;;;;;;;;;;;12005:9;11990:24;11982:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12080:13;;;;;;;;;;;12074:19;;:2;:19;;;12071:146;;12147:14;;12138:6;12122:13;12132:2;12122:9;:13::i;:::-;:22;;;;:::i;:::-;:39;12114:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;12071:146;12233:28;12264:24;12282:4;12264:9;:24::i;:::-;12233:55;;12303:12;12342:19;;12318:20;:43;;12303:58;;12405:12;;12381:20;:36;12378:124;;12474:12;;12451:35;;12378:124;12522:7;:18;;;;;12534:6;;;;;;;;;;;12533:7;12522:18;:43;;;;;12552:13;;;;;;;;;;;12544:21;;:4;:21;;;;12522:43;:58;;;;;12569:11;;;;;;;;;;;12522:58;:87;;;;;12585:18;:24;12604:4;12585:24;;;;;;;;;;;;;;;;;;;;;;;;;12584:25;12522:87;:114;;;;;12614:18;:22;12633:2;12614:22;;;;;;;;;;;;;;;;;;;;;;;;;12613:23;12522:114;12518:386;;;12657:38;12674:20;12657:16;:38::i;:::-;12714:26;12743:21;12714:50;;12808:1;12787:18;:22;12783:106;;;12834:35;12847:21;12834:12;:35::i;:::-;12783:106;12638:266;12518:386;11694:1221;;11618:1297;12927:12;12942:4;12927:19;;12991:18;:24;13010:4;12991:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;13019:18;:22;13038:2;13019:22;;;;;;;;;;;;;;;;;;;;;;;;;12991:50;12990:102;;;;13055:13;;;;;;;;;;;13047:21;;:4;:21;;;;:44;;;;;13078:13;;;;;;;;;;;13072:19;;:2;:19;;;;13047:44;12990:102;12986:594;;;13119:5;13109:15;;12986:594;;;13202:13;;;;;;;;;;;13194:21;;:4;:21;;;:55;;;;;13233:15;;;;;;;;;;;13219:30;;:2;:30;;;;13194:55;13191:162;;;13282:14;;13270:9;:26;;;;13325:12;;13315:7;:22;;;;13191:162;13412:13;;;;;;;;;;;13406:19;;:2;:19;;;:55;;;;;13445:15;;;;;;;;;;;13429:32;;:4;:32;;;;13406:55;13402:165;;;13494:15;;13482:9;:27;;;;13538:13;;13528:7;:23;;;;13402:165;12986:594;13592:41;13607:4;13613:2;13617:6;13625:7;13592:14;:41::i;:::-;11376:2265;11273:2368;;;:::o;3996:224::-;4116:7;4149:1;4144;:6;;4152:12;4136:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4176:9;4192:1;4188;:5;;;;:::i;:::-;4176:17;;4211:1;4204:8;;;3996:224;;;;;:::o;14140:536::-;7840:4;7831:6;;:13;;;;;;;;;;;;;;;;;;14209:23:::1;14235:6;14209:32;;14252:22;14277:52;14325:3;14277:43;14297:12;:22;;;14277:15;:19;;:43;;;;:::i;:::-;:47;;:52;;;;:::i;:::-;14252:77;;14340:20;14363:50;14409:3;14363:41;14383:12;:20;;;14363:15;:19;;:41;;;;:::i;:::-;:45;;:50;;;;:::i;:::-;14340:73;;14424:20;14447:50;14493:3;14447:41;14467:12;:20;;;14447:15;:19;;:41;;;;:::i;:::-;:45;;:50;;;;:::i;:::-;14424:73;;14516:16;;;;;;;;;;;14508:34;;:50;14543:14;14508:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14577:10;;;;;;;;;;;14569:28;;:42;14598:12;14569:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14630:14;;;;;;;;;;;14622:32;;:46;14655:12;14622:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14198:478;;;;7876:5:::0;7867:6;;:14;;;;;;;;;;;;;;;;;;14140:536;:::o;10213:323::-;10308:7;10366;;10355;:18;;10333:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10454:19;10476:10;:8;:10::i;:::-;10454:32;;10504:24;10516:11;10504:7;:11;;:24;;;;:::i;:::-;10497:31;;;10213:323;;;:::o;13649:483::-;7840:4;7831:6;;:13;;;;;;;;;;;;;;;;;;13727:21:::1;13765:1;13751:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13727:40;;13796:4;13778;13783:1;13778:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13822:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13812:4;13817:1;13812:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13855:62;13872:4;13887:15;;;;;;;;;;;13905:11;13855:8;:62::i;:::-;13928:15;;;;;;;;;;;:66;;;14009:11;14035:1;14051:4;14078;14098:15;13928:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13716:416;7876:5:::0;7867:6;;:14;;;;;;;;;;;;;;;;;;13649:483;:::o;15605:282::-;15761:7;15756:28;;15770:14;:12;:14::i;:::-;15756:28;15795:44;15813:6;15821:9;15832:6;15795:17;:44::i;:::-;15855:7;15850:29;;15864:15;:13;:15::i;:::-;15850:29;15605:282;;;;:::o;4228:246::-;4286:7;4315:1;4310;:6;4306:47;;;4340:1;4333:8;;;;4306:47;4363:9;4379:1;4375;:5;;;;:::i;:::-;4363:17;;4408:1;4403;4399;:5;;;;:::i;:::-;:10;4391:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4465:1;4458:8;;;4228:246;;;;;:::o;4482:132::-;4540:7;4567:39;4571:1;4574;4567:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4560:46;;4482:132;;;;:::o;19057:164::-;19099:7;19120:15;19137;19156:19;:17;:19::i;:::-;19119:56;;;;19193:20;19205:7;19193;:11;;:20;;;;:::i;:::-;19186:27;;;;19057:164;:::o;10544:219::-;10604:1;10591:9;;:14;:30;;;;;10620:1;10609:7;;:12;10591:30;10587:43;;;10623:7;;10587:43;10662:9;;10642:17;:29;;;;10700:7;;10682:15;:25;;;;10732:1;10720:9;:13;;;;10754:1;10744:7;:11;;;;10544:219;:::o;15895:610::-;16042:15;16072:23;16110:12;16137:23;16175:12;16202:13;16229:19;16240:7;16229:10;:19::i;:::-;16027:221;;;;;;;;;;;;16277:28;16297:7;16277;:15;16285:6;16277:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;16259:7;:15;16267:6;16259:15;;;;;;;;;;;;;;;:46;;;;16337:39;16360:15;16337:7;:18;16345:9;16337:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;16316:7;:18;16324:9;16316:18;;;;;;;;;;;;;;;:60;;;;16387:16;16397:5;16387:9;:16::i;:::-;16414:23;16426:4;16432;16414:11;:23::i;:::-;16470:9;16453:44;;16462:6;16453:44;;;16481:15;16453:44;;;;;;:::i;:::-;;;;;;;;16016:489;;;;;;15895:610;;;:::o;10771:117::-;10827:17;;10815:9;:29;;;;10865:15;;10855:7;:25;;;;10771:117::o;4622:223::-;4742:7;4774:1;4770;:5;4777:12;4762:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4801:9;4817:1;4813;:5;;;;:::i;:::-;4801:17;;4836:1;4829:8;;;4622:223;;;;;:::o;19229:257::-;19280:7;19289;19309:15;19327:7;;19309:25;;19345:15;5992:1;6330:2;:13;;;;:::i;:::-;6318:9;:25;;;;:::i;:::-;19345;;19395:20;5992:1;6330:2;:13;;;;:::i;:::-;6318:9;:25;;;;:::i;:::-;19395:7;;:11;;:20;;;;:::i;:::-;19385:7;:30;19381:61;;;19425:7;;5992:1;6330:2;:13;;;;:::i;:::-;6318:9;:25;;;;:::i;:::-;19417;;;;;;;;19381:61;19461:7;19470;19453:25;;;;;;19229:257;;;:::o;17415:615::-;17515:7;17537;17559;17581;17603;17625;17661:23;17686:12;17700:13;17730:40;17742:7;17751:9;;17762:7;;17730:11;:40::i;:::-;17660:110;;;;;;17781:19;17803:10;:8;:10::i;:::-;17781:32;;17825:15;17842:23;17867:12;17896:46;17908:7;17917:4;17923:5;17930:11;17896;:46::i;:::-;17824:118;;;;;;17961:7;17970:15;17987:4;17993:15;18010:4;18016:5;17953:69;;;;;;;;;;;;;;;;;;;17415:615;;;;;;;:::o;3852:136::-;3910:7;3937:43;3941:1;3944;3937:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3930:50;;3852:136;;;;:::o;3665:179::-;3723:7;3743:9;3759:1;3755;:5;;;;:::i;:::-;3743:17;;3784:1;3779;:6;;3771:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3835:1;3828:8;;;3665:179;;;;:::o;16998:211::-;17051:19;17073:10;:8;:10::i;:::-;17051:32;;17094:13;17110:22;17120:11;17110:5;:9;;:22;;;;:::i;:::-;17094:38;;17168:33;17195:5;17168:7;:22;17184:4;17168:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;17143:7;:22;17159:4;17143:22;;;;;;;;;;;;;;;:58;;;;17040:169;;16998:211;:::o;17217:147::-;17295:17;17307:4;17295:7;;:11;;:17;;;;:::i;:::-;17285:7;:27;;;;17336:20;17351:4;17336:10;;:14;;:20;;;;:::i;:::-;17323:10;:33;;;;17217:147;;:::o;18038:469::-;18207:7;18229;18251;18286:12;18301:30;18327:3;18301:21;18313:8;18301:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;18286:45;;18342:13;18358:28;18382:3;18358:19;18370:6;18358:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;18342:44;;18397:23;18423:28;18445:5;18423:17;18435:4;18423:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18397:54;;18470:15;18487:4;18493:5;18462:37;;;;;;;;;18038:469;;;;;;;:::o;18515:534::-;18709:7;18731;18753;18788:15;18806:24;18818:11;18806:7;:11;;:24;;;;:::i;:::-;18788:42;;18841:12;18856:21;18865:11;18856:4;:8;;:21;;;;:::i;:::-;18841:36;;18888:13;18904:22;18914:11;18904:5;:9;;:22;;;;:::i;:::-;18888:38;;18937:23;18963:28;18985:5;18963:17;18975:4;18963:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18937:54;;19010:7;19019:15;19036:4;19002:39;;;;;;;;;;18515:534;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:118::-;6423:24;6441:5;6423:24;:::i;:::-;6418:3;6411:37;6336:118;;:::o;6460:222::-;6553:4;6591:2;6580:9;6576:18;6568:26;;6604:71;6672:1;6661:9;6657:17;6648:6;6604:71;:::i;:::-;6460:222;;;;:::o;6688:60::-;6716:3;6737:5;6730:12;;6688:60;;;:::o;6754:142::-;6804:9;6837:53;6855:34;6864:24;6882:5;6864:24;:::i;:::-;6855:34;:::i;:::-;6837:53;:::i;:::-;6824:66;;6754:142;;;:::o;6902:126::-;6952:9;6985:37;7016:5;6985:37;:::i;:::-;6972:50;;6902:126;;;:::o;7034:152::-;7110:9;7143:37;7174:5;7143:37;:::i;:::-;7130:50;;7034:152;;;:::o;7192:183::-;7305:63;7362:5;7305:63;:::i;:::-;7300:3;7293:76;7192:183;;:::o;7381:274::-;7500:4;7538:2;7527:9;7523:18;7515:26;;7551:97;7645:1;7634:9;7630:17;7621:6;7551:97;:::i;:::-;7381:274;;;;:::o;7661:118::-;7748:24;7766:5;7748:24;:::i;:::-;7743:3;7736:37;7661:118;;:::o;7785:222::-;7878:4;7916:2;7905:9;7901:18;7893:26;;7929:71;7997:1;7986:9;7982:17;7973:6;7929:71;:::i;:::-;7785:222;;;;:::o;8013:619::-;8090:6;8098;8106;8155:2;8143:9;8134:7;8130:23;8126:32;8123:119;;;8161:79;;:::i;:::-;8123:119;8281:1;8306:53;8351:7;8342:6;8331:9;8327:22;8306:53;:::i;:::-;8296:63;;8252:117;8408:2;8434:53;8479:7;8470:6;8459:9;8455:22;8434:53;:::i;:::-;8424:63;;8379:118;8536:2;8562:53;8607:7;8598:6;8587:9;8583:22;8562:53;:::i;:::-;8552:63;;8507:118;8013:619;;;;;:::o;8638:86::-;8673:7;8713:4;8706:5;8702:16;8691:27;;8638:86;;;:::o;8730:112::-;8813:22;8829:5;8813:22;:::i;:::-;8808:3;8801:35;8730:112;;:::o;8848:214::-;8937:4;8975:2;8964:9;8960:18;8952:26;;8988:67;9052:1;9041:9;9037:17;9028:6;8988:67;:::i;:::-;8848:214;;;;:::o;9068:117::-;9177:1;9174;9167:12;9208:568;9281:8;9291:6;9341:3;9334:4;9326:6;9322:17;9318:27;9308:122;;9349:79;;:::i;:::-;9308:122;9462:6;9449:20;9439:30;;9492:18;9484:6;9481:30;9478:117;;;9514:79;;:::i;:::-;9478:117;9628:4;9620:6;9616:17;9604:29;;9682:3;9674:4;9666:6;9662:17;9652:8;9648:32;9645:41;9642:128;;;9689:79;;:::i;:::-;9642:128;9208:568;;;;;:::o;9782:116::-;9852:21;9867:5;9852:21;:::i;:::-;9845:5;9842:32;9832:60;;9888:1;9885;9878:12;9832:60;9782:116;:::o;9904:133::-;9947:5;9985:6;9972:20;9963:29;;10001:30;10025:5;10001:30;:::i;:::-;9904:133;;;;:::o;10043:698::-;10135:6;10143;10151;10200:2;10188:9;10179:7;10175:23;10171:32;10168:119;;;10206:79;;:::i;:::-;10168:119;10354:1;10343:9;10339:17;10326:31;10384:18;10376:6;10373:30;10370:117;;;10406:79;;:::i;:::-;10370:117;10519:80;10591:7;10582:6;10571:9;10567:22;10519:80;:::i;:::-;10501:98;;;;10297:312;10648:2;10674:50;10716:7;10707:6;10696:9;10692:22;10674:50;:::i;:::-;10664:60;;10619:115;10043:698;;;;;:::o;10747:442::-;10896:4;10934:2;10923:9;10919:18;10911:26;;10947:71;11015:1;11004:9;11000:17;10991:6;10947:71;:::i;:::-;11028:72;11096:2;11085:9;11081:18;11072:6;11028:72;:::i;:::-;11110;11178:2;11167:9;11163:18;11154:6;11110:72;:::i;:::-;10747:442;;;;;;:::o;11195:329::-;11254:6;11303:2;11291:9;11282:7;11278:23;11274:32;11271:119;;;11309:79;;:::i;:::-;11271:119;11429:1;11454:53;11499:7;11490:6;11479:9;11475:22;11454:53;:::i;:::-;11444:63;;11400:117;11195:329;;;;:::o;11530:323::-;11586:6;11635:2;11623:9;11614:7;11610:23;11606:32;11603:119;;;11641:79;;:::i;:::-;11603:119;11761:1;11786:50;11828:7;11819:6;11808:9;11804:22;11786:50;:::i;:::-;11776:60;;11732:114;11530:323;;;;:::o;11859:619::-;11936:6;11944;11952;12001:2;11989:9;11980:7;11976:23;11972:32;11969:119;;;12007:79;;:::i;:::-;11969:119;12127:1;12152:53;12197:7;12188:6;12177:9;12173:22;12152:53;:::i;:::-;12142:63;;12098:117;12254:2;12280:53;12325:7;12316:6;12305:9;12301:22;12280:53;:::i;:::-;12270:63;;12225:118;12382:2;12408:53;12453:7;12444:6;12433:9;12429:22;12408:53;:::i;:::-;12398:63;;12353:118;11859:619;;;;;:::o;12484:329::-;12543:6;12592:2;12580:9;12571:7;12567:23;12563:32;12560:119;;;12598:79;;:::i;:::-;12560:119;12718:1;12743:53;12788:7;12779:6;12768:9;12764:22;12743:53;:::i;:::-;12733:63;;12689:117;12484:329;;;;:::o;12819:765::-;12905:6;12913;12921;12929;12978:3;12966:9;12957:7;12953:23;12949:33;12946:120;;;12985:79;;:::i;:::-;12946:120;13105:1;13130:53;13175:7;13166:6;13155:9;13151:22;13130:53;:::i;:::-;13120:63;;13076:117;13232:2;13258:53;13303:7;13294:6;13283:9;13279:22;13258:53;:::i;:::-;13248:63;;13203:118;13360:2;13386:53;13431:7;13422:6;13411:9;13407:22;13386:53;:::i;:::-;13376:63;;13331:118;13488:2;13514:53;13559:7;13550:6;13539:9;13535:22;13514:53;:::i;:::-;13504:63;;13459:118;12819:765;;;;;;;:::o;13590:474::-;13658:6;13666;13715:2;13703:9;13694:7;13690:23;13686:32;13683:119;;;13721:79;;:::i;:::-;13683:119;13841:1;13866:53;13911:7;13902:6;13891:9;13887:22;13866:53;:::i;:::-;13856:63;;13812:117;13968:2;13994:53;14039:7;14030:6;14019:9;14015:22;13994:53;:::i;:::-;13984:63;;13939:118;13590:474;;;;;:::o;14070:619::-;14147:6;14155;14163;14212:2;14200:9;14191:7;14187:23;14183:32;14180:119;;;14218:79;;:::i;:::-;14180:119;14338:1;14363:53;14408:7;14399:6;14388:9;14384:22;14363:53;:::i;:::-;14353:63;;14309:117;14465:2;14491:53;14536:7;14527:6;14516:9;14512:22;14491:53;:::i;:::-;14481:63;;14436:118;14593:2;14619:53;14664:7;14655:6;14644:9;14640:22;14619:53;:::i;:::-;14609:63;;14564:118;14070:619;;;;;:::o;14695:182::-;14835:34;14831:1;14823:6;14819:14;14812:58;14695:182;:::o;14883:366::-;15025:3;15046:67;15110:2;15105:3;15046:67;:::i;:::-;15039:74;;15122:93;15211:3;15122:93;:::i;:::-;15240:2;15235:3;15231:12;15224:19;;14883:366;;;:::o;15255:419::-;15421:4;15459:2;15448:9;15444:18;15436:26;;15508:9;15502:4;15498:20;15494:1;15483:9;15479:17;15472:47;15536:131;15662:4;15536:131;:::i;:::-;15528:139;;15255:419;;;:::o;15680:180::-;15728:77;15725:1;15718:88;15825:4;15822:1;15815:15;15849:4;15846:1;15839:15;15866:180;15914:77;15911:1;15904:88;16011:4;16008:1;16001:15;16035:4;16032:1;16025:15;16052:233;16091:3;16114:24;16132:5;16114:24;:::i;:::-;16105:33;;16160:66;16153:5;16150:77;16147:103;;;16230:18;;:::i;:::-;16147:103;16277:1;16270:5;16266:13;16259:20;;16052:233;;;:::o;16291:102::-;16333:8;16380:5;16377:1;16373:13;16352:34;;16291:102;;;:::o;16399:848::-;16460:5;16467:4;16491:6;16482:15;;16515:5;16506:14;;16529:712;16550:1;16540:8;16537:15;16529:712;;;16645:4;16640:3;16636:14;16630:4;16627:24;16624:50;;;16654:18;;:::i;:::-;16624:50;16704:1;16694:8;16690:16;16687:451;;;17119:4;17112:5;17108:16;17099:25;;16687:451;17169:4;17163;17159:15;17151:23;;17199:32;17222:8;17199:32;:::i;:::-;17187:44;;16529:712;;;16399:848;;;;;;;:::o;17253:1073::-;17307:5;17498:8;17488:40;;17519:1;17510:10;;17521:5;;17488:40;17547:4;17537:36;;17564:1;17555:10;;17566:5;;17537:36;17633:4;17681:1;17676:27;;;;17717:1;17712:191;;;;17626:277;;17676:27;17694:1;17685:10;;17696:5;;;17712:191;17757:3;17747:8;17744:17;17741:43;;;17764:18;;:::i;:::-;17741:43;17813:8;17810:1;17806:16;17797:25;;17848:3;17841:5;17838:14;17835:40;;;17855:18;;:::i;:::-;17835:40;17888:5;;;17626:277;;18012:2;18002:8;17999:16;17993:3;17987:4;17984:13;17980:36;17962:2;17952:8;17949:16;17944:2;17938:4;17935:12;17931:35;17915:111;17912:246;;;18068:8;18062:4;18058:19;18049:28;;18103:3;18096:5;18093:14;18090:40;;;18110:18;;:::i;:::-;18090:40;18143:5;;17912:246;18183:42;18221:3;18211:8;18205:4;18202:1;18183:42;:::i;:::-;18168:57;;;;18257:4;18252:3;18248:14;18241:5;18238:25;18235:51;;;18266:18;;:::i;:::-;18235:51;18315:4;18308:5;18304:16;18295:25;;17253:1073;;;;;;:::o;18332:281::-;18390:5;18414:23;18432:4;18414:23;:::i;:::-;18406:31;;18458:25;18474:8;18458:25;:::i;:::-;18446:37;;18502:104;18539:66;18529:8;18523:4;18502:104;:::i;:::-;18493:113;;18332:281;;;;:::o;18619:348::-;18659:7;18682:20;18700:1;18682:20;:::i;:::-;18677:25;;18716:20;18734:1;18716:20;:::i;:::-;18711:25;;18904:1;18836:66;18832:74;18829:1;18826:81;18821:1;18814:9;18807:17;18803:105;18800:131;;;18911:18;;:::i;:::-;18800:131;18959:1;18956;18952:9;18941:20;;18619:348;;;;:::o;18973:173::-;19113:25;19109:1;19101:6;19097:14;19090:49;18973:173;:::o;19152:366::-;19294:3;19315:67;19379:2;19374:3;19315:67;:::i;:::-;19308:74;;19391:93;19480:3;19391:93;:::i;:::-;19509:2;19504:3;19500:12;19493:19;;19152:366;;;:::o;19524:419::-;19690:4;19728:2;19717:9;19713:18;19705:26;;19777:9;19771:4;19767:20;19763:1;19752:9;19748:17;19741:47;19805:131;19931:4;19805:131;:::i;:::-;19797:139;;19524:419;;;:::o;19949:225::-;20089:34;20085:1;20077:6;20073:14;20066:58;20158:8;20153:2;20145:6;20141:15;20134:33;19949:225;:::o;20180:366::-;20322:3;20343:67;20407:2;20402:3;20343:67;:::i;:::-;20336:74;;20419:93;20508:3;20419:93;:::i;:::-;20537:2;20532:3;20528:12;20521:19;;20180:366;;;:::o;20552:419::-;20718:4;20756:2;20745:9;20741:18;20733:26;;20805:9;20799:4;20795:20;20791:1;20780:9;20776:17;20769:47;20833:131;20959:4;20833:131;:::i;:::-;20825:139;;20552:419;;;:::o;20977:223::-;21117:34;21113:1;21105:6;21101:14;21094:58;21186:6;21181:2;21173:6;21169:15;21162:31;20977:223;:::o;21206:366::-;21348:3;21369:67;21433:2;21428:3;21369:67;:::i;:::-;21362:74;;21445:93;21534:3;21445:93;:::i;:::-;21563:2;21558:3;21554:12;21547:19;;21206:366;;;:::o;21578:419::-;21744:4;21782:2;21771:9;21767:18;21759:26;;21831:9;21825:4;21821:20;21817:1;21806:9;21802:17;21795:47;21859:131;21985:4;21859:131;:::i;:::-;21851:139;;21578:419;;;:::o;22003:221::-;22143:34;22139:1;22131:6;22127:14;22120:58;22212:4;22207:2;22199:6;22195:15;22188:29;22003:221;:::o;22230:366::-;22372:3;22393:67;22457:2;22452:3;22393:67;:::i;:::-;22386:74;;22469:93;22558:3;22469:93;:::i;:::-;22587:2;22582:3;22578:12;22571:19;;22230:366;;;:::o;22602:419::-;22768:4;22806:2;22795:9;22791:18;22783:26;;22855:9;22849:4;22845:20;22841:1;22830:9;22826:17;22819:47;22883:131;23009:4;22883:131;:::i;:::-;22875:139;;22602:419;;;:::o;23027:224::-;23167:34;23163:1;23155:6;23151:14;23144:58;23236:7;23231:2;23223:6;23219:15;23212:32;23027:224;:::o;23257:366::-;23399:3;23420:67;23484:2;23479:3;23420:67;:::i;:::-;23413:74;;23496:93;23585:3;23496:93;:::i;:::-;23614:2;23609:3;23605:12;23598:19;;23257:366;;;:::o;23629:419::-;23795:4;23833:2;23822:9;23818:18;23810:26;;23882:9;23876:4;23872:20;23868:1;23857:9;23853:17;23846:47;23910:131;24036:4;23910:131;:::i;:::-;23902:139;;23629:419;;;:::o;24054:222::-;24194:34;24190:1;24182:6;24178:14;24171:58;24263:5;24258:2;24250:6;24246:15;24239:30;24054:222;:::o;24282:366::-;24424:3;24445:67;24509:2;24504:3;24445:67;:::i;:::-;24438:74;;24521:93;24610:3;24521:93;:::i;:::-;24639:2;24634:3;24630:12;24623:19;;24282:366;;;:::o;24654:419::-;24820:4;24858:2;24847:9;24843:18;24835:26;;24907:9;24901:4;24897:20;24893:1;24882:9;24878:17;24871:47;24935:131;25061:4;24935:131;:::i;:::-;24927:139;;24654:419;;;:::o;25079:228::-;25219:34;25215:1;25207:6;25203:14;25196:58;25288:11;25283:2;25275:6;25271:15;25264:36;25079:228;:::o;25313:366::-;25455:3;25476:67;25540:2;25535:3;25476:67;:::i;:::-;25469:74;;25552:93;25641:3;25552:93;:::i;:::-;25670:2;25665:3;25661:12;25654:19;;25313:366;;;:::o;25685:419::-;25851:4;25889:2;25878:9;25874:18;25866:26;;25938:9;25932:4;25928:20;25924:1;25913:9;25909:17;25902:47;25966:131;26092:4;25966:131;:::i;:::-;25958:139;;25685:419;;;:::o;26110:250::-;26250:34;26246:1;26238:6;26234:14;26227:58;26319:33;26314:2;26306:6;26302:15;26295:58;26110:250;:::o;26366:366::-;26508:3;26529:67;26593:2;26588:3;26529:67;:::i;:::-;26522:74;;26605:93;26694:3;26605:93;:::i;:::-;26723:2;26718:3;26714:12;26707:19;;26366:366;;;:::o;26738:419::-;26904:4;26942:2;26931:9;26927:18;26919:26;;26991:9;26985:4;26981:20;26977:1;26966:9;26962:17;26955:47;27019:131;27145:4;27019:131;:::i;:::-;27011:139;;26738:419;;;:::o;27163:178::-;27303:30;27299:1;27291:6;27287:14;27280:54;27163:178;:::o;27347:366::-;27489:3;27510:67;27574:2;27569:3;27510:67;:::i;:::-;27503:74;;27586:93;27675:3;27586:93;:::i;:::-;27704:2;27699:3;27695:12;27688:19;;27347:366;;;:::o;27719:419::-;27885:4;27923:2;27912:9;27908:18;27900:26;;27972:9;27966:4;27962:20;27958:1;27947:9;27943:17;27936:47;28000:131;28126:4;28000:131;:::i;:::-;27992:139;;27719:419;;;:::o;28144:222::-;28284:34;28280:1;28272:6;28268:14;28261:58;28353:5;28348:2;28340:6;28336:15;28329:30;28144:222;:::o;28372:366::-;28514:3;28535:67;28599:2;28594:3;28535:67;:::i;:::-;28528:74;;28611:93;28700:3;28611:93;:::i;:::-;28729:2;28724:3;28720:12;28713:19;;28372:366;;;:::o;28744:419::-;28910:4;28948:2;28937:9;28933:18;28925:26;;28997:9;28991:4;28987:20;28983:1;28972:9;28968:17;28961:47;29025:131;29151:4;29025:131;:::i;:::-;29017:139;;28744:419;;;:::o;29169:305::-;29209:3;29228:20;29246:1;29228:20;:::i;:::-;29223:25;;29262:20;29280:1;29262:20;:::i;:::-;29257:25;;29416:1;29348:66;29344:74;29341:1;29338:81;29335:107;;;29422:18;;:::i;:::-;29335:107;29466:1;29463;29459:9;29452:16;;29169:305;;;;:::o;29480:222::-;29620:34;29616:1;29608:6;29604:14;29597:58;29689:5;29684:2;29676:6;29672:15;29665:30;29480:222;:::o;29708:366::-;29850:3;29871:67;29935:2;29930:3;29871:67;:::i;:::-;29864:74;;29947:93;30036:3;29947:93;:::i;:::-;30065:2;30060:3;30056:12;30049:19;;29708:366;;;:::o;30080:419::-;30246:4;30284:2;30273:9;30269:18;30261:26;;30333:9;30327:4;30323:20;30319:1;30308:9;30304:17;30297:47;30361:131;30487:4;30361:131;:::i;:::-;30353:139;;30080:419;;;:::o;30505:191::-;30545:4;30565:20;30583:1;30565:20;:::i;:::-;30560:25;;30599:20;30617:1;30599:20;:::i;:::-;30594:25;;30638:1;30635;30632:8;30629:34;;;30643:18;;:::i;:::-;30629:34;30688:1;30685;30681:9;30673:17;;30505:191;;;;:::o;30702:229::-;30842:34;30838:1;30830:6;30826:14;30819:58;30911:12;30906:2;30898:6;30894:15;30887:37;30702:229;:::o;30937:366::-;31079:3;31100:67;31164:2;31159:3;31100:67;:::i;:::-;31093:74;;31176:93;31265:3;31176:93;:::i;:::-;31294:2;31289:3;31285:12;31278:19;;30937:366;;;:::o;31309:419::-;31475:4;31513:2;31502:9;31498:18;31490:26;;31562:9;31556:4;31552:20;31548:1;31537:9;31533:17;31526:47;31590:131;31716:4;31590:131;:::i;:::-;31582:139;;31309:419;;;:::o;31734:143::-;31791:5;31822:6;31816:13;31807:22;;31838:33;31865:5;31838:33;:::i;:::-;31734:143;;;;:::o;31883:351::-;31953:6;32002:2;31990:9;31981:7;31977:23;31973:32;31970:119;;;32008:79;;:::i;:::-;31970:119;32128:1;32153:64;32209:7;32200:6;32189:9;32185:22;32153:64;:::i;:::-;32143:74;;32099:128;31883:351;;;;:::o;32240:85::-;32285:7;32314:5;32303:16;;32240:85;;;:::o;32331:158::-;32389:9;32422:61;32440:42;32449:32;32475:5;32449:32;:::i;:::-;32440:42;:::i;:::-;32422:61;:::i;:::-;32409:74;;32331:158;;;:::o;32495:147::-;32590:45;32629:5;32590:45;:::i;:::-;32585:3;32578:58;32495:147;;:::o;32648:114::-;32715:6;32749:5;32743:12;32733:22;;32648:114;;;:::o;32768:184::-;32867:11;32901:6;32896:3;32889:19;32941:4;32936:3;32932:14;32917:29;;32768:184;;;;:::o;32958:132::-;33025:4;33048:3;33040:11;;33078:4;33073:3;33069:14;33061:22;;32958:132;;;:::o;33096:108::-;33173:24;33191:5;33173:24;:::i;:::-;33168:3;33161:37;33096:108;;:::o;33210:179::-;33279:10;33300:46;33342:3;33334:6;33300:46;:::i;:::-;33378:4;33373:3;33369:14;33355:28;;33210:179;;;;:::o;33395:113::-;33465:4;33497;33492:3;33488:14;33480:22;;33395:113;;;:::o;33544:732::-;33663:3;33692:54;33740:5;33692:54;:::i;:::-;33762:86;33841:6;33836:3;33762:86;:::i;:::-;33755:93;;33872:56;33922:5;33872:56;:::i;:::-;33951:7;33982:1;33967:284;33992:6;33989:1;33986:13;33967:284;;;34068:6;34062:13;34095:63;34154:3;34139:13;34095:63;:::i;:::-;34088:70;;34181:60;34234:6;34181:60;:::i;:::-;34171:70;;34027:224;34014:1;34011;34007:9;34002:14;;33967:284;;;33971:14;34267:3;34260:10;;33668:608;;;33544:732;;;;:::o;34282:831::-;34545:4;34583:3;34572:9;34568:19;34560:27;;34597:71;34665:1;34654:9;34650:17;34641:6;34597:71;:::i;:::-;34678:80;34754:2;34743:9;34739:18;34730:6;34678:80;:::i;:::-;34805:9;34799:4;34795:20;34790:2;34779:9;34775:18;34768:48;34833:108;34936:4;34927:6;34833:108;:::i;:::-;34825:116;;34951:72;35019:2;35008:9;35004:18;34995:6;34951:72;:::i;:::-;35033:73;35101:3;35090:9;35086:19;35077:6;35033:73;:::i;:::-;34282:831;;;;;;;;:::o;35119:180::-;35167:77;35164:1;35157:88;35264:4;35261:1;35254:15;35288:4;35285:1;35278:15;35305:185;35345:1;35362:20;35380:1;35362:20;:::i;:::-;35357:25;;35396:20;35414:1;35396:20;:::i;:::-;35391:25;;35435:1;35425:35;;35440:18;;:::i;:::-;35425:35;35482:1;35479;35475:9;35470:14;;35305:185;;;;:::o;35496:220::-;35636:34;35632:1;35624:6;35620:14;35613:58;35705:3;35700:2;35692:6;35688:15;35681:28;35496:220;:::o;35722:366::-;35864:3;35885:67;35949:2;35944:3;35885:67;:::i;:::-;35878:74;;35961:93;36050:3;35961:93;:::i;:::-;36079:2;36074:3;36070:12;36063:19;;35722:366;;;:::o;36094:419::-;36260:4;36298:2;36287:9;36283:18;36275:26;;36347:9;36341:4;36337:20;36333:1;36322:9;36318:17;36311:47;36375:131;36501:4;36375:131;:::i;:::-;36367:139;;36094:419;;;:::o;36519:177::-;36659:29;36655:1;36647:6;36643:14;36636:53;36519:177;:::o;36702:366::-;36844:3;36865:67;36929:2;36924:3;36865:67;:::i;:::-;36858:74;;36941:93;37030:3;36941:93;:::i;:::-;37059:2;37054:3;37050:12;37043:19;;36702:366;;;:::o;37074:419::-;37240:4;37278:2;37267:9;37263:18;37255:26;;37327:9;37321:4;37317:20;37313:1;37302:9;37298:17;37291:47;37355:131;37481:4;37355:131;:::i;:::-;37347:139;;37074:419;;;:::o

Swarm Source

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