ETH Price: $2,962.93 (-0.91%)
Gas: 8 Gwei

Token

ChristmasLonely (ALONE)
 

Overview

Max Total Supply

1,000,000,000 ALONE

Holders

10

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
18,892,228.495850634 ALONE

Value
$0.00
0x29B88eE1B8592E26B3876aA0546dfA6e7754DA30
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:
LONELY

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-12-17
*/

/*
im so lonely bro

another christmas alone lfg

TG: t.me/ChristmasLonelyERC

TWITTER: twitter.com/LonelyChristma

WEBSITE: under construction, be patient :D

*/
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;

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 LONELY is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "ChristmasLonely";
    string private constant _symbol = "ALONE";
    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 = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 3;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 3;

    //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;
    address payable private _developmentAddress = payable(0xd270A417EB14b75e3B449b3B4EbCC402214353B2);
    address payable private _marketingAddress = payable(0xd270A417EB14b75e3B449b3B4EbCC402214353B2);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount = 1000000000 * 10**9;
    uint256 public _maxWalletSize = 20000000 * 10**9;
    uint256 public _swapTokensAtAmount = 1000000 * 10**9;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

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

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

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

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

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

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

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

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

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

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

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

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

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "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 {
        _marketingAddress.transfer(amount);
    }

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

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

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        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 _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

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

    receive() external payable {}

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

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

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

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

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

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

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

}

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":"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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"}]

6080604052670de0b6b3a76400006000196200001c91906200075b565b6000196200002b9190620007c2565b600655600060085560036009556000600a556003600b55600a54600c55600b54600d55600c54600e55600d54600f5573d270a417eb14b75e3b449b3b4ebcc402214353b2601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d270a417eb14b75e3b449b3b4ebcc402214353b2601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060016015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550670de0b6b3a764000060165566470de4df82000060175566038d7ea4c680006018553480156200018357600080fd5b50600062000196620006f160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024b620006f160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032a57600080fd5b505afa1580156200033f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000365919062000867565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c857600080fd5b505afa158015620003dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000403919062000867565b6040518363ffffffff1660e01b815260040162000422929190620008aa565b602060405180830381600087803b1580156200043d57600080fd5b505af115801562000452573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000478919062000867565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004ce620006f960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200067b620006f160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006e29190620008e8565b60405180910390a35062000905565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007688262000722565b9150620007758362000722565b9250826200078857620007876200072c565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007cf8262000722565b9150620007dc8362000722565b925082821015620007f257620007f162000793565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200082f8262000802565b9050919050565b620008418162000822565b81146200084d57600080fd5b50565b600081519050620008618162000836565b92915050565b60006020828403121562000880576200087f620007fd565b5b6000620008908482850162000850565b91505092915050565b620008a48162000822565b82525050565b6000604082019050620008c1600083018562000899565b620008d0602083018462000899565b9392505050565b620008e28162000722565b82525050565b6000602082019050620008ff6000830184620008d7565b92915050565b613bbb80620009156000396000f3fe6080604052600436106101ba5760003560e01c80637d1db4a5116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105f4578063dd62ed3e1461061d578063ea1644d51461065a578063f2fde38b14610683576101c1565b8063a9059cbb14610563578063bfd79284146105a0578063c3c8cd80146105dd576101c1565b80638f70ccf7116100c65780638f70ccf7146104bb5780638f9a55c0146104e457806395d89b411461050f57806398a5c3151461053a576101c1565b80637d1db4a5146104285780637f2feddc146104535780638da5cb5b14610490576101c1565b8063313ce567116101595780636d8aa8f8116101335780636d8aa8f8146103945780636fc3eaec146103bd57806370a08231146103d4578063715018a614610411576101c1565b8063313ce5671461031557806349bd5a5e146103405780636b9990531461036b576101c1565b80631694505e116101955780631694505e1461025757806318160ddd1461028257806323b872dd146102ad5780632fd689e3146102ea576101c1565b8062b8cf2a146101c657806306fdde03146101ef578063095ea7b31461021a576101c1565b366101c157005b600080fd5b3480156101d257600080fd5b506101ed60048036038101906101e89190612bae565b6106ac565b005b3480156101fb57600080fd5b506102046107d6565b6040516102119190612c7f565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c9190612cd7565b610813565b60405161024e9190612d32565b60405180910390f35b34801561026357600080fd5b5061026c610831565b6040516102799190612dac565b60405180910390f35b34801561028e57600080fd5b50610297610857565b6040516102a49190612dd6565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190612df1565b610867565b6040516102e19190612d32565b60405180910390f35b3480156102f657600080fd5b506102ff610940565b60405161030c9190612dd6565b60405180910390f35b34801561032157600080fd5b5061032a610946565b6040516103379190612e60565b60405180910390f35b34801561034c57600080fd5b5061035561094f565b6040516103629190612e8a565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d9190612ea5565b610975565b005b3480156103a057600080fd5b506103bb60048036038101906103b69190612efe565b610a65565b005b3480156103c957600080fd5b506103d2610b17565b005b3480156103e057600080fd5b506103fb60048036038101906103f69190612ea5565b610be8565b6040516104089190612dd6565b60405180910390f35b34801561041d57600080fd5b50610426610c39565b005b34801561043457600080fd5b5061043d610d8c565b60405161044a9190612dd6565b60405180910390f35b34801561045f57600080fd5b5061047a60048036038101906104759190612ea5565b610d92565b6040516104879190612dd6565b60405180910390f35b34801561049c57600080fd5b506104a5610daa565b6040516104b29190612e8a565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd9190612efe565b610dd3565b005b3480156104f057600080fd5b506104f9610e85565b6040516105069190612dd6565b60405180910390f35b34801561051b57600080fd5b50610524610e8b565b6040516105319190612c7f565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c9190612f2b565b610ec8565b005b34801561056f57600080fd5b5061058a60048036038101906105859190612cd7565b610f67565b6040516105979190612d32565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190612ea5565b610f85565b6040516105d49190612d32565b60405180910390f35b3480156105e957600080fd5b506105f2610fa5565b005b34801561060057600080fd5b5061061b60048036038101906106169190612fb3565b61107e565b005b34801561062957600080fd5b50610644600480360381019061063f9190613013565b6111b8565b6040516106519190612dd6565b60405180910390f35b34801561066657600080fd5b50610681600480360381019061067c9190612f2b565b61123f565b005b34801561068f57600080fd5b506106aa60048036038101906106a59190612ea5565b6112de565b005b6106b46114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610741576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107389061309f565b60405180910390fd5b60005b81518110156107d257600160106000848481518110610766576107656130bf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107ca9061311d565b915050610744565b5050565b60606040518060400160405280600f81526020017f4368726973746d61734c6f6e656c790000000000000000000000000000000000815250905090565b60006108276108206114a0565b84846114a8565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610874848484611673565b610935846108806114a0565b61093085604051806060016040528060288152602001613b5e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e66114a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef89092919063ffffffff16565b6114a8565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61097d6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a019061309f565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a6d6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af19061309f565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b586114a0565b73ffffffffffffffffffffffffffffffffffffffff161480610bce5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bb66114a0565b73ffffffffffffffffffffffffffffffffffffffff16145b610bd757600080fd5b6000479050610be581611f5c565b50565b6000610c32600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fc8565b9050919050565b610c416114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc59061309f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ddb6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f9061309f565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600581526020017f414c4f4e45000000000000000000000000000000000000000000000000000000815250905090565b610ed06114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f549061309f565b60405180910390fd5b8060188190555050565b6000610f7b610f746114a0565b8484611673565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe66114a0565b73ffffffffffffffffffffffffffffffffffffffff16148061105c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110446114a0565b73ffffffffffffffffffffffffffffffffffffffff16145b61106557600080fd5b600061107030610be8565b905061107b81612036565b50565b6110866114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110a9061309f565b60405180910390fd5b60005b838390508110156111b2578160056000868685818110611139576111386130bf565b5b905060200201602081019061114e9190612ea5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111aa9061311d565b915050611116565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112476114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb9061309f565b60405180910390fd5b8060178190555050565b6112e66114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136a9061309f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da906131d8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150f9061326a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f906132fc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116669190612dd6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da9061338e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174a90613420565b60405180910390fd5b60008111611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d906134b2565b60405180910390fd5b61179e610daa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561180c57506117dc610daa565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bf757601560149054906101000a900460ff1661189b5761182d610daa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190613544565b60405180910390fd5b5b6016548111156118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d7906135b0565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119845750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ba90613642565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a705760175481611a2584610be8565b611a2f9190613662565b10611a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a669061372a565b60405180910390fd5b5b6000611a7b30610be8565b9050600060185482101590506016548210611a965760165491505b808015611aae575060158054906101000a900460ff16155b8015611b085750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b205750601560169054906101000a900460ff165b8015611b765750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bcc5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bf457611bda82612036565b60004790506000811115611bf257611bf147611f5c565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c9e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d515750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d505750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d5f5760009050611ee6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e0a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e2257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ecd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ee557600a54600c81905550600b54600d819055505b5b611ef2848484846122bc565b50505050565b6000838311158290611f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f379190612c7f565b60405180910390fd5b5060008385611f4f919061374a565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fc4573d6000803e3d6000fd5b5050565b600060065482111561200f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612006906137f0565b60405180910390fd5b60006120196122e9565b905061202e818461231490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561206d5761206c612a0d565b5b60405190808252806020026020018201604052801561209b5781602001602082028036833780820191505090505b50905030816000815181106120b3576120b26130bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561215557600080fd5b505afa158015612169573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218d9190613825565b816001815181106121a1576121a06130bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061220830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114a8565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161226c95949392919061394b565b600060405180830381600087803b15801561228657600080fd5b505af115801561229a573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806122ca576122c961235e565b5b6122d58484846123a1565b806122e3576122e261256c565b5b50505050565b60008060006122f6612580565b9150915061230d818361231490919063ffffffff16565b9250505090565b600061235683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125df565b905092915050565b6000600c5414801561237257506000600d54145b1561237c5761239f565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806123b387612642565b95509550955095509550955061241186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126aa90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124a685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124f281612752565b6124fc848361280f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125599190612dd6565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a764000090506125b4670de0b6b3a764000060065461231490919063ffffffff16565b8210156125d257600654670de0b6b3a76400009350935050506125db565b81819350935050505b9091565b60008083118290612626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261d9190612c7f565b60405180910390fd5b506000838561263591906139d4565b9050809150509392505050565b600080600080600080600080600061265f8a600c54600d54612849565b925092509250600061266f6122e9565b905060008060006126828e8787876128df565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006126ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ef8565b905092915050565b60008082846127039190613662565b905083811015612748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273f90613a51565b60405180910390fd5b8091505092915050565b600061275c6122e9565b90506000612773828461296890919063ffffffff16565b90506127c781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612824826006546126aa90919063ffffffff16565b60068190555061283f816007546126f490919063ffffffff16565b6007819055505050565b6000806000806128756064612867888a61296890919063ffffffff16565b61231490919063ffffffff16565b9050600061289f6064612891888b61296890919063ffffffff16565b61231490919063ffffffff16565b905060006128c8826128ba858c6126aa90919063ffffffff16565b6126aa90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806128f8858961296890919063ffffffff16565b9050600061290f868961296890919063ffffffff16565b90506000612926878961296890919063ffffffff16565b9050600061294f8261294185876126aa90919063ffffffff16565b6126aa90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561297b57600090506129dd565b600082846129899190613a71565b905082848261299891906139d4565b146129d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cf90613b3d565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a45826129fc565b810181811067ffffffffffffffff82111715612a6457612a63612a0d565b5b80604052505050565b6000612a776129e3565b9050612a838282612a3c565b919050565b600067ffffffffffffffff821115612aa357612aa2612a0d565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ae482612ab9565b9050919050565b612af481612ad9565b8114612aff57600080fd5b50565b600081359050612b1181612aeb565b92915050565b6000612b2a612b2584612a88565b612a6d565b90508083825260208201905060208402830185811115612b4d57612b4c612ab4565b5b835b81811015612b765780612b628882612b02565b845260208401935050602081019050612b4f565b5050509392505050565b600082601f830112612b9557612b946129f7565b5b8135612ba5848260208601612b17565b91505092915050565b600060208284031215612bc457612bc36129ed565b5b600082013567ffffffffffffffff811115612be257612be16129f2565b5b612bee84828501612b80565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c31578082015181840152602081019050612c16565b83811115612c40576000848401525b50505050565b6000612c5182612bf7565b612c5b8185612c02565b9350612c6b818560208601612c13565b612c74816129fc565b840191505092915050565b60006020820190508181036000830152612c998184612c46565b905092915050565b6000819050919050565b612cb481612ca1565b8114612cbf57600080fd5b50565b600081359050612cd181612cab565b92915050565b60008060408385031215612cee57612ced6129ed565b5b6000612cfc85828601612b02565b9250506020612d0d85828601612cc2565b9150509250929050565b60008115159050919050565b612d2c81612d17565b82525050565b6000602082019050612d476000830184612d23565b92915050565b6000819050919050565b6000612d72612d6d612d6884612ab9565b612d4d565b612ab9565b9050919050565b6000612d8482612d57565b9050919050565b6000612d9682612d79565b9050919050565b612da681612d8b565b82525050565b6000602082019050612dc16000830184612d9d565b92915050565b612dd081612ca1565b82525050565b6000602082019050612deb6000830184612dc7565b92915050565b600080600060608486031215612e0a57612e096129ed565b5b6000612e1886828701612b02565b9350506020612e2986828701612b02565b9250506040612e3a86828701612cc2565b9150509250925092565b600060ff82169050919050565b612e5a81612e44565b82525050565b6000602082019050612e756000830184612e51565b92915050565b612e8481612ad9565b82525050565b6000602082019050612e9f6000830184612e7b565b92915050565b600060208284031215612ebb57612eba6129ed565b5b6000612ec984828501612b02565b91505092915050565b612edb81612d17565b8114612ee657600080fd5b50565b600081359050612ef881612ed2565b92915050565b600060208284031215612f1457612f136129ed565b5b6000612f2284828501612ee9565b91505092915050565b600060208284031215612f4157612f406129ed565b5b6000612f4f84828501612cc2565b91505092915050565b600080fd5b60008083601f840112612f7357612f726129f7565b5b8235905067ffffffffffffffff811115612f9057612f8f612f58565b5b602083019150836020820283011115612fac57612fab612ab4565b5b9250929050565b600080600060408486031215612fcc57612fcb6129ed565b5b600084013567ffffffffffffffff811115612fea57612fe96129f2565b5b612ff686828701612f5d565b9350935050602061300986828701612ee9565b9150509250925092565b6000806040838503121561302a576130296129ed565b5b600061303885828601612b02565b925050602061304985828601612b02565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613089602083612c02565b915061309482613053565b602082019050919050565b600060208201905081810360008301526130b88161307c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061312882612ca1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561315b5761315a6130ee565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131c2602683612c02565b91506131cd82613166565b604082019050919050565b600060208201905081810360008301526131f1816131b5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613254602483612c02565b915061325f826131f8565b604082019050919050565b6000602082019050818103600083015261328381613247565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132e6602283612c02565b91506132f18261328a565b604082019050919050565b60006020820190508181036000830152613315816132d9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613378602583612c02565b91506133838261331c565b604082019050919050565b600060208201905081810360008301526133a78161336b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061340a602383612c02565b9150613415826133ae565b604082019050919050565b60006020820190508181036000830152613439816133fd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061349c602983612c02565b91506134a782613440565b604082019050919050565b600060208201905081810360008301526134cb8161348f565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061352e603f83612c02565b9150613539826134d2565b604082019050919050565b6000602082019050818103600083015261355d81613521565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061359a601c83612c02565b91506135a582613564565b602082019050919050565b600060208201905081810360008301526135c98161358d565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061362c602383612c02565b9150613637826135d0565b604082019050919050565b6000602082019050818103600083015261365b8161361f565b9050919050565b600061366d82612ca1565b915061367883612ca1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136ad576136ac6130ee565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613714602383612c02565b915061371f826136b8565b604082019050919050565b6000602082019050818103600083015261374381613707565b9050919050565b600061375582612ca1565b915061376083612ca1565b925082821015613773576137726130ee565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006137da602a83612c02565b91506137e58261377e565b604082019050919050565b60006020820190508181036000830152613809816137cd565b9050919050565b60008151905061381f81612aeb565b92915050565b60006020828403121561383b5761383a6129ed565b5b600061384984828501613810565b91505092915050565b6000819050919050565b600061387761387261386d84613852565b612d4d565b612ca1565b9050919050565b6138878161385c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138c281612ad9565b82525050565b60006138d483836138b9565b60208301905092915050565b6000602082019050919050565b60006138f88261388d565b6139028185613898565b935061390d836138a9565b8060005b8381101561393e57815161392588826138c8565b9750613930836138e0565b925050600181019050613911565b5085935050505092915050565b600060a0820190506139606000830188612dc7565b61396d602083018761387e565b818103604083015261397f81866138ed565b905061398e6060830185612e7b565b61399b6080830184612dc7565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139df82612ca1565b91506139ea83612ca1565b9250826139fa576139f96139a5565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613a3b601b83612c02565b9150613a4682613a05565b602082019050919050565b60006020820190508181036000830152613a6a81613a2e565b9050919050565b6000613a7c82612ca1565b9150613a8783612ca1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ac057613abf6130ee565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b27602183612c02565b9150613b3282613acb565b604082019050919050565b60006020820190508181036000830152613b5681613b1a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220130cc3644fb86fffb4c18d4cd40be672e59610d4b8c11fc094d17d41743f890364736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101ba5760003560e01c80637d1db4a5116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105f4578063dd62ed3e1461061d578063ea1644d51461065a578063f2fde38b14610683576101c1565b8063a9059cbb14610563578063bfd79284146105a0578063c3c8cd80146105dd576101c1565b80638f70ccf7116100c65780638f70ccf7146104bb5780638f9a55c0146104e457806395d89b411461050f57806398a5c3151461053a576101c1565b80637d1db4a5146104285780637f2feddc146104535780638da5cb5b14610490576101c1565b8063313ce567116101595780636d8aa8f8116101335780636d8aa8f8146103945780636fc3eaec146103bd57806370a08231146103d4578063715018a614610411576101c1565b8063313ce5671461031557806349bd5a5e146103405780636b9990531461036b576101c1565b80631694505e116101955780631694505e1461025757806318160ddd1461028257806323b872dd146102ad5780632fd689e3146102ea576101c1565b8062b8cf2a146101c657806306fdde03146101ef578063095ea7b31461021a576101c1565b366101c157005b600080fd5b3480156101d257600080fd5b506101ed60048036038101906101e89190612bae565b6106ac565b005b3480156101fb57600080fd5b506102046107d6565b6040516102119190612c7f565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c9190612cd7565b610813565b60405161024e9190612d32565b60405180910390f35b34801561026357600080fd5b5061026c610831565b6040516102799190612dac565b60405180910390f35b34801561028e57600080fd5b50610297610857565b6040516102a49190612dd6565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190612df1565b610867565b6040516102e19190612d32565b60405180910390f35b3480156102f657600080fd5b506102ff610940565b60405161030c9190612dd6565b60405180910390f35b34801561032157600080fd5b5061032a610946565b6040516103379190612e60565b60405180910390f35b34801561034c57600080fd5b5061035561094f565b6040516103629190612e8a565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d9190612ea5565b610975565b005b3480156103a057600080fd5b506103bb60048036038101906103b69190612efe565b610a65565b005b3480156103c957600080fd5b506103d2610b17565b005b3480156103e057600080fd5b506103fb60048036038101906103f69190612ea5565b610be8565b6040516104089190612dd6565b60405180910390f35b34801561041d57600080fd5b50610426610c39565b005b34801561043457600080fd5b5061043d610d8c565b60405161044a9190612dd6565b60405180910390f35b34801561045f57600080fd5b5061047a60048036038101906104759190612ea5565b610d92565b6040516104879190612dd6565b60405180910390f35b34801561049c57600080fd5b506104a5610daa565b6040516104b29190612e8a565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd9190612efe565b610dd3565b005b3480156104f057600080fd5b506104f9610e85565b6040516105069190612dd6565b60405180910390f35b34801561051b57600080fd5b50610524610e8b565b6040516105319190612c7f565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c9190612f2b565b610ec8565b005b34801561056f57600080fd5b5061058a60048036038101906105859190612cd7565b610f67565b6040516105979190612d32565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190612ea5565b610f85565b6040516105d49190612d32565b60405180910390f35b3480156105e957600080fd5b506105f2610fa5565b005b34801561060057600080fd5b5061061b60048036038101906106169190612fb3565b61107e565b005b34801561062957600080fd5b50610644600480360381019061063f9190613013565b6111b8565b6040516106519190612dd6565b60405180910390f35b34801561066657600080fd5b50610681600480360381019061067c9190612f2b565b61123f565b005b34801561068f57600080fd5b506106aa60048036038101906106a59190612ea5565b6112de565b005b6106b46114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610741576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107389061309f565b60405180910390fd5b60005b81518110156107d257600160106000848481518110610766576107656130bf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107ca9061311d565b915050610744565b5050565b60606040518060400160405280600f81526020017f4368726973746d61734c6f6e656c790000000000000000000000000000000000815250905090565b60006108276108206114a0565b84846114a8565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610874848484611673565b610935846108806114a0565b61093085604051806060016040528060288152602001613b5e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e66114a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef89092919063ffffffff16565b6114a8565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61097d6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a019061309f565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a6d6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af19061309f565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b586114a0565b73ffffffffffffffffffffffffffffffffffffffff161480610bce5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bb66114a0565b73ffffffffffffffffffffffffffffffffffffffff16145b610bd757600080fd5b6000479050610be581611f5c565b50565b6000610c32600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fc8565b9050919050565b610c416114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc59061309f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ddb6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f9061309f565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600581526020017f414c4f4e45000000000000000000000000000000000000000000000000000000815250905090565b610ed06114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f549061309f565b60405180910390fd5b8060188190555050565b6000610f7b610f746114a0565b8484611673565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe66114a0565b73ffffffffffffffffffffffffffffffffffffffff16148061105c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110446114a0565b73ffffffffffffffffffffffffffffffffffffffff16145b61106557600080fd5b600061107030610be8565b905061107b81612036565b50565b6110866114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110a9061309f565b60405180910390fd5b60005b838390508110156111b2578160056000868685818110611139576111386130bf565b5b905060200201602081019061114e9190612ea5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111aa9061311d565b915050611116565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112476114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb9061309f565b60405180910390fd5b8060178190555050565b6112e66114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136a9061309f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da906131d8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150f9061326a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f906132fc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116669190612dd6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da9061338e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174a90613420565b60405180910390fd5b60008111611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d906134b2565b60405180910390fd5b61179e610daa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561180c57506117dc610daa565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bf757601560149054906101000a900460ff1661189b5761182d610daa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190613544565b60405180910390fd5b5b6016548111156118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d7906135b0565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119845750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ba90613642565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a705760175481611a2584610be8565b611a2f9190613662565b10611a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a669061372a565b60405180910390fd5b5b6000611a7b30610be8565b9050600060185482101590506016548210611a965760165491505b808015611aae575060158054906101000a900460ff16155b8015611b085750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b205750601560169054906101000a900460ff165b8015611b765750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bcc5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bf457611bda82612036565b60004790506000811115611bf257611bf147611f5c565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c9e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d515750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d505750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d5f5760009050611ee6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e0a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e2257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ecd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ee557600a54600c81905550600b54600d819055505b5b611ef2848484846122bc565b50505050565b6000838311158290611f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f379190612c7f565b60405180910390fd5b5060008385611f4f919061374a565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fc4573d6000803e3d6000fd5b5050565b600060065482111561200f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612006906137f0565b60405180910390fd5b60006120196122e9565b905061202e818461231490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561206d5761206c612a0d565b5b60405190808252806020026020018201604052801561209b5781602001602082028036833780820191505090505b50905030816000815181106120b3576120b26130bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561215557600080fd5b505afa158015612169573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218d9190613825565b816001815181106121a1576121a06130bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061220830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114a8565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161226c95949392919061394b565b600060405180830381600087803b15801561228657600080fd5b505af115801561229a573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806122ca576122c961235e565b5b6122d58484846123a1565b806122e3576122e261256c565b5b50505050565b60008060006122f6612580565b9150915061230d818361231490919063ffffffff16565b9250505090565b600061235683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125df565b905092915050565b6000600c5414801561237257506000600d54145b1561237c5761239f565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806123b387612642565b95509550955095509550955061241186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126aa90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124a685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124f281612752565b6124fc848361280f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125599190612dd6565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a764000090506125b4670de0b6b3a764000060065461231490919063ffffffff16565b8210156125d257600654670de0b6b3a76400009350935050506125db565b81819350935050505b9091565b60008083118290612626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261d9190612c7f565b60405180910390fd5b506000838561263591906139d4565b9050809150509392505050565b600080600080600080600080600061265f8a600c54600d54612849565b925092509250600061266f6122e9565b905060008060006126828e8787876128df565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006126ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ef8565b905092915050565b60008082846127039190613662565b905083811015612748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273f90613a51565b60405180910390fd5b8091505092915050565b600061275c6122e9565b90506000612773828461296890919063ffffffff16565b90506127c781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612824826006546126aa90919063ffffffff16565b60068190555061283f816007546126f490919063ffffffff16565b6007819055505050565b6000806000806128756064612867888a61296890919063ffffffff16565b61231490919063ffffffff16565b9050600061289f6064612891888b61296890919063ffffffff16565b61231490919063ffffffff16565b905060006128c8826128ba858c6126aa90919063ffffffff16565b6126aa90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806128f8858961296890919063ffffffff16565b9050600061290f868961296890919063ffffffff16565b90506000612926878961296890919063ffffffff16565b9050600061294f8261294185876126aa90919063ffffffff16565b6126aa90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561297b57600090506129dd565b600082846129899190613a71565b905082848261299891906139d4565b146129d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cf90613b3d565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a45826129fc565b810181811067ffffffffffffffff82111715612a6457612a63612a0d565b5b80604052505050565b6000612a776129e3565b9050612a838282612a3c565b919050565b600067ffffffffffffffff821115612aa357612aa2612a0d565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ae482612ab9565b9050919050565b612af481612ad9565b8114612aff57600080fd5b50565b600081359050612b1181612aeb565b92915050565b6000612b2a612b2584612a88565b612a6d565b90508083825260208201905060208402830185811115612b4d57612b4c612ab4565b5b835b81811015612b765780612b628882612b02565b845260208401935050602081019050612b4f565b5050509392505050565b600082601f830112612b9557612b946129f7565b5b8135612ba5848260208601612b17565b91505092915050565b600060208284031215612bc457612bc36129ed565b5b600082013567ffffffffffffffff811115612be257612be16129f2565b5b612bee84828501612b80565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c31578082015181840152602081019050612c16565b83811115612c40576000848401525b50505050565b6000612c5182612bf7565b612c5b8185612c02565b9350612c6b818560208601612c13565b612c74816129fc565b840191505092915050565b60006020820190508181036000830152612c998184612c46565b905092915050565b6000819050919050565b612cb481612ca1565b8114612cbf57600080fd5b50565b600081359050612cd181612cab565b92915050565b60008060408385031215612cee57612ced6129ed565b5b6000612cfc85828601612b02565b9250506020612d0d85828601612cc2565b9150509250929050565b60008115159050919050565b612d2c81612d17565b82525050565b6000602082019050612d476000830184612d23565b92915050565b6000819050919050565b6000612d72612d6d612d6884612ab9565b612d4d565b612ab9565b9050919050565b6000612d8482612d57565b9050919050565b6000612d9682612d79565b9050919050565b612da681612d8b565b82525050565b6000602082019050612dc16000830184612d9d565b92915050565b612dd081612ca1565b82525050565b6000602082019050612deb6000830184612dc7565b92915050565b600080600060608486031215612e0a57612e096129ed565b5b6000612e1886828701612b02565b9350506020612e2986828701612b02565b9250506040612e3a86828701612cc2565b9150509250925092565b600060ff82169050919050565b612e5a81612e44565b82525050565b6000602082019050612e756000830184612e51565b92915050565b612e8481612ad9565b82525050565b6000602082019050612e9f6000830184612e7b565b92915050565b600060208284031215612ebb57612eba6129ed565b5b6000612ec984828501612b02565b91505092915050565b612edb81612d17565b8114612ee657600080fd5b50565b600081359050612ef881612ed2565b92915050565b600060208284031215612f1457612f136129ed565b5b6000612f2284828501612ee9565b91505092915050565b600060208284031215612f4157612f406129ed565b5b6000612f4f84828501612cc2565b91505092915050565b600080fd5b60008083601f840112612f7357612f726129f7565b5b8235905067ffffffffffffffff811115612f9057612f8f612f58565b5b602083019150836020820283011115612fac57612fab612ab4565b5b9250929050565b600080600060408486031215612fcc57612fcb6129ed565b5b600084013567ffffffffffffffff811115612fea57612fe96129f2565b5b612ff686828701612f5d565b9350935050602061300986828701612ee9565b9150509250925092565b6000806040838503121561302a576130296129ed565b5b600061303885828601612b02565b925050602061304985828601612b02565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613089602083612c02565b915061309482613053565b602082019050919050565b600060208201905081810360008301526130b88161307c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061312882612ca1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561315b5761315a6130ee565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131c2602683612c02565b91506131cd82613166565b604082019050919050565b600060208201905081810360008301526131f1816131b5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613254602483612c02565b915061325f826131f8565b604082019050919050565b6000602082019050818103600083015261328381613247565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132e6602283612c02565b91506132f18261328a565b604082019050919050565b60006020820190508181036000830152613315816132d9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613378602583612c02565b91506133838261331c565b604082019050919050565b600060208201905081810360008301526133a78161336b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061340a602383612c02565b9150613415826133ae565b604082019050919050565b60006020820190508181036000830152613439816133fd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061349c602983612c02565b91506134a782613440565b604082019050919050565b600060208201905081810360008301526134cb8161348f565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061352e603f83612c02565b9150613539826134d2565b604082019050919050565b6000602082019050818103600083015261355d81613521565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061359a601c83612c02565b91506135a582613564565b602082019050919050565b600060208201905081810360008301526135c98161358d565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061362c602383612c02565b9150613637826135d0565b604082019050919050565b6000602082019050818103600083015261365b8161361f565b9050919050565b600061366d82612ca1565b915061367883612ca1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136ad576136ac6130ee565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613714602383612c02565b915061371f826136b8565b604082019050919050565b6000602082019050818103600083015261374381613707565b9050919050565b600061375582612ca1565b915061376083612ca1565b925082821015613773576137726130ee565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006137da602a83612c02565b91506137e58261377e565b604082019050919050565b60006020820190508181036000830152613809816137cd565b9050919050565b60008151905061381f81612aeb565b92915050565b60006020828403121561383b5761383a6129ed565b5b600061384984828501613810565b91505092915050565b6000819050919050565b600061387761387261386d84613852565b612d4d565b612ca1565b9050919050565b6138878161385c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138c281612ad9565b82525050565b60006138d483836138b9565b60208301905092915050565b6000602082019050919050565b60006138f88261388d565b6139028185613898565b935061390d836138a9565b8060005b8381101561393e57815161392588826138c8565b9750613930836138e0565b925050600181019050613911565b5085935050505092915050565b600060a0820190506139606000830188612dc7565b61396d602083018761387e565b818103604083015261397f81866138ed565b905061398e6060830185612e7b565b61399b6080830184612dc7565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139df82612ca1565b91506139ea83612ca1565b9250826139fa576139f96139a5565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613a3b601b83612c02565b9150613a4682613a05565b602082019050919050565b60006020820190508181036000830152613a6a81613a2e565b9050919050565b6000613a7c82612ca1565b9150613a8783612ca1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ac057613abf6130ee565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b27602183612c02565b9150613b3282613acb565b604082019050919050565b60006020820190508181036000830152613b5681613b1a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220130cc3644fb86fffb4c18d4cd40be672e59610d4b8c11fc094d17d41743f890364736f6c63430008090033

Deployed Bytecode Sourcemap

4243:13061:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12923:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6751:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7676:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5590:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7028:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7877:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5897:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6937:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5638:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13100:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16833:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12680:235;;;;;;;;;;;;;:::i;:::-;;7131:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1730:148;;;;;;;;;;;;;:::i;:::-;;5787:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5332:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1516:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12327:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5842:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6842:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16642:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7277:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5294:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12436:236;;;;;;;;;;;;;:::i;:::-;;17065:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7484:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16942:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1886:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12923:169;1653:12;:10;:12::i;:::-;1643:22;;:6;;;;;;;;;;:22;;;1635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12999:9:::1;12994:91;13018:5;:12;13014:1;:16;12994:91;;;13069:4;13052;:14;13057:5;13063:1;13057:8;;;;;;;;:::i;:::-;;;;;;;;13052:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13032:3;;;;;:::i;:::-;;;;12994:91;;;;12923:169:::0;:::o;6751:83::-;6788:13;6821:5;;;;;;;;;;;;;;;;;6814:12;;6751:83;:::o;7676:193::-;7778:4;7800:39;7809:12;:10;:12::i;:::-;7823:7;7832:6;7800:8;:39::i;:::-;7857:4;7850:11;;7676:193;;;;:::o;5590:41::-;;;;;;;;;;;;;:::o;7028:95::-;7081:7;4796:18;7101:14;;7028:95;:::o;7877:446::-;8009:4;8026:36;8036:6;8044:9;8055:6;8026:9;:36::i;:::-;8073:220;8096:6;8117:12;:10;:12::i;:::-;8144:138;8200:6;8144:138;;;;;;;;;;;;;;;;;:11;:19;8156:6;8144:19;;;;;;;;;;;;;;;:33;8164:12;:10;:12::i;:::-;8144:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8073:8;:220::i;:::-;8311:4;8304:11;;7877:446;;;;;:::o;5897:52::-;;;;:::o;6937:83::-;6978:5;4470:1;6996:16;;6937:83;:::o;5638:28::-;;;;;;;;;;;;;:::o;13100:92::-;1653:12;:10;:12::i;:::-;1643:22;;:6;;;;;;;;;;:22;;;1635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13179:5:::1;13164:4;:12;13169:6;13164:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13100:92:::0;:::o;16833:101::-;1653:12;:10;:12::i;:::-;1643:22;;:6;;;;;;;;;;:22;;;1635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16914:12:::1;16900:11;;:26;;;;;;;;;;;;;;;;;;16833:101:::0;:::o;12680:235::-;12746:19;;;;;;;;;;;12730:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12785:17;;;;;;;;;;;12769:33;;:12;:10;:12::i;:::-;:33;;;12730:72;12722:81;;;;;;12814:26;12843:21;12814:50;;12875:32;12888:18;12875:12;:32::i;:::-;12711:204;12680:235::o;7131:138::-;7197:7;7224:37;7244:7;:16;7252:7;7244:16;;;;;;;;;;;;;;;;7224:19;:37::i;:::-;7217:44;;7131:138;;;:::o;1730:148::-;1653:12;:10;:12::i;:::-;1643:22;;:6;;;;;;;;;;:22;;;1635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1837:1:::1;1800:40;;1821:6;::::0;::::1;;;;;;;;1800:40;;;;;;;;;;;;1868:1;1851:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1730:148::o:0;5787:48::-;;;;:::o;5332:43::-;;;;;;;;;;;;;;;;;:::o;1516:79::-;1554:7;1581:6;;;;;;;;;;;1574:13;;1516:79;:::o;12327:101::-;1653:12;:10;:12::i;:::-;1643:22;;:6;;;;;;;;;;:22;;;1635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12408:12:::1;12394:11;;:26;;;;;;;;;;;;;;;;;;12327:101:::0;:::o;5842:48::-;;;;:::o;6842:87::-;6881:13;6914:7;;;;;;;;;;;;;;;;;6907:14;;6842:87;:::o;16642:139::-;1653:12;:10;:12::i;:::-;1643:22;;:6;;;;;;;;;;:22;;;1635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16755:18:::1;16733:19;:40;;;;16642:139:::0;:::o;7277:199::-;7382:4;7404:42;7414:12;:10;:12::i;:::-;7428:9;7439:6;7404:9;:42::i;:::-;7464:4;7457:11;;7277:199;;;;:::o;5294:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12436:236::-;12502:19;;;;;;;;;;;12486:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12541:17;;;;;;;;;;;12525:33;;:12;:10;:12::i;:::-;:33;;;12486:72;12478:81;;;;;;12570:23;12596:24;12614:4;12596:9;:24::i;:::-;12570:50;;12631:33;12648:15;12631:16;:33::i;:::-;12467:205;12436:236::o;17065:234::-;1653:12;:10;:12::i;:::-;1643:22;;:6;;;;;;;;;;:22;;;1635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17182:9:::1;17178:114;17201:8;;:15;;17197:1;:19;17178:114;;;17272:8;17238:18;:31;17257:8;;17266:1;17257:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17238:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17218:3;;;;;:::i;:::-;;;;17178:114;;;;17065:234:::0;;;:::o;7484:184::-;7601:7;7633:11;:18;7645:5;7633:18;;;;;;;;;;;;;;;:27;7652:7;7633:27;;;;;;;;;;;;;;;;7626:34;;7484:184;;;;:::o;16942:115::-;1653:12;:10;:12::i;:::-;1643:22;;:6;;;;;;;;;;:22;;;1635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17036:13:::1;17019:14;:30;;;;16942:115:::0;:::o;1886:244::-;1653:12;:10;:12::i;:::-;1643:22;;:6;;;;;;;;;;:22;;;1635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1995:1:::1;1975:22;;:8;:22;;;;1967:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2085:8;2056:38;;2077:6;::::0;::::1;;;;;;;;2056:38;;;;;;;;;;;;2114:8;2105:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1886:244:::0;:::o;275:98::-;328:7;355:10;348:17;;275:98;:::o;9014:369::-;9158:1;9141:19;;:5;:19;;;;9133:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9239:1;9220:21;;:7;:21;;;;9212:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9321:6;9291:11;:18;9303:5;9291:18;;;;;;;;;;;;;;;:27;9310:7;9291:27;;;;;;;;;;;;;;;:36;;;;9359:7;9343:32;;9352:5;9343:32;;;9368:6;9343:32;;;;;;:::i;:::-;;;;;;;;9014:369;;;:::o;9391:2330::-;9529:1;9513:18;;:4;:18;;;;9505:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9606:1;9592:16;;:2;:16;;;;9584:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9676:1;9667:6;:10;9659:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9748:7;:5;:7::i;:::-;9740:15;;:4;:15;;;;:32;;;;;9765:7;:5;:7::i;:::-;9759:13;;:2;:13;;;;9740:32;9736:1259;;;9829:11;;;;;;;;;;;9824:144;;9877:7;:5;:7::i;:::-;9869:15;;:4;:15;;;9861:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9824:144;10002:12;;9992:6;:22;;9984:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10071:4;:10;10076:4;10071:10;;;;;;;;;;;;;;;;;;;;;;;;;10070:11;:24;;;;;10086:4;:8;10091:2;10086:8;;;;;;;;;;;;;;;;;;;;;;;;;10085:9;10070:24;10062:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10160:13;;;;;;;;;;;10154:19;;:2;:19;;;10151:146;;10227:14;;10218:6;10202:13;10212:2;10202:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10194:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10151:146;10313:28;10344:24;10362:4;10344:9;:24::i;:::-;10313:55;;10383:12;10422:19;;10398:20;:43;;10383:58;;10485:12;;10461:20;:36;10458:124;;10554:12;;10531:35;;10458:124;10602:7;:18;;;;;10614:6;;;;;;;;;;10613:7;10602:18;:43;;;;;10632:13;;;;;;;;;;;10624:21;;:4;:21;;;;10602:43;:58;;;;;10649:11;;;;;;;;;;;10602:58;:87;;;;;10665:18;:24;10684:4;10665:24;;;;;;;;;;;;;;;;;;;;;;;;;10664:25;10602:87;:114;;;;;10694:18;:22;10713:2;10694:22;;;;;;;;;;;;;;;;;;;;;;;;;10693:23;10602:114;10598:386;;;10737:38;10754:20;10737:16;:38::i;:::-;10794:26;10823:21;10794:50;;10888:1;10867:18;:22;10863:106;;;10914:35;10927:21;10914:12;:35::i;:::-;10863:106;10718:266;10598:386;9774:1221;;9736:1259;11007:12;11022:4;11007:19;;11071:18;:24;11090:4;11071:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11099:18;:22;11118:2;11099:22;;;;;;;;;;;;;;;;;;;;;;;;;11071:50;11070:102;;;;11135:13;;;;;;;;;;;11127:21;;:4;:21;;;;:44;;;;;11158:13;;;;;;;;;;;11152:19;;:2;:19;;;;11127:44;11070:102;11066:594;;;11199:5;11189:15;;11066:594;;;11282:13;;;;;;;;;;;11274:21;;:4;:21;;;:55;;;;;11313:15;;;;;;;;;;;11299:30;;:2;:30;;;;11274:55;11271:162;;;11362:14;;11350:9;:26;;;;11405:12;;11395:7;:22;;;;11271:162;11492:13;;;;;;;;;;;11486:19;;:2;:19;;;:55;;;;;11525:15;;;;;;;;;;;11509:32;;:4;:32;;;;11486:55;11482:165;;;11574:15;;11562:9;:27;;;;11618:13;;11608:7;:23;;;;11482:165;11066:594;11672:41;11687:4;11693:2;11697:6;11705:7;11672:14;:41::i;:::-;9494:2227;9391:2330;;;:::o;2494:224::-;2614:7;2647:1;2642;:6;;2650:12;2634:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2674:9;2690:1;2686;:5;;;;:::i;:::-;2674:17;;2709:1;2702:8;;;2494:224;;;;;:::o;12220:99::-;12277:17;;;;;;;;;;;:26;;:34;12304:6;12277:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12220:99;:::o;8331:323::-;8426:7;8484;;8473;:18;;8451:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8572:19;8594:10;:8;:10::i;:::-;8572:32;;8622:24;8634:11;8622:7;:11;;:24;;;;:::i;:::-;8615:31;;;8331:323;;;:::o;11729:483::-;6052:4;6043:6;;:13;;;;;;;;;;;;;;;;;;11807:21:::1;11845:1;11831:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11807:40;;11876:4;11858;11863:1;11858:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11902:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11892:4;11897:1;11892:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11935:62;11952:4;11967:15;;;;;;;;;;;11985:11;11935:8;:62::i;:::-;12008:15;;;;;;;;;;;:66;;;12089:11;12115:1;12131:4;12158;12178:15;12008:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11796:416;6088:5:::0;6079:6;;:14;;;;;;;;;;;;;;;;;;11729:483;:::o;13200:282::-;13356:7;13351:28;;13365:14;:12;:14::i;:::-;13351:28;13390:44;13408:6;13416:9;13427:6;13390:17;:44::i;:::-;13450:7;13445:29;;13459:15;:13;:15::i;:::-;13445:29;13200:282;;;;:::o;16161:164::-;16203:7;16224:15;16241;16260:19;:17;:19::i;:::-;16223:56;;;;16297:20;16309:7;16297;:11;;:20;;;;:::i;:::-;16290:27;;;;16161:164;:::o;2980:132::-;3038:7;3065:39;3069:1;3072;3065:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3058:46;;2980:132;;;;:::o;8662:219::-;8722:1;8709:9;;:14;:30;;;;;8738:1;8727:7;;:12;8709:30;8705:43;;;8741:7;;8705:43;8780:9;;8760:17;:29;;;;8818:7;;8800:15;:25;;;;8850:1;8838:9;:13;;;;8872:1;8862:7;:11;;;;8662:219;:::o;13490:610::-;13637:15;13667:23;13705:12;13732:23;13770:12;13797:13;13824:19;13835:7;13824:10;:19::i;:::-;13622:221;;;;;;;;;;;;13872:28;13892:7;13872;:15;13880:6;13872:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13854:7;:15;13862:6;13854:15;;;;;;;;;;;;;;;:46;;;;13932:39;13955:15;13932:7;:18;13940:9;13932:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13911:7;:18;13919:9;13911:18;;;;;;;;;;;;;;;:60;;;;13982:16;13992:5;13982:9;:16::i;:::-;14009:23;14021:4;14027;14009:11;:23::i;:::-;14065:9;14048:44;;14057:6;14048:44;;;14076:15;14048:44;;;;;;:::i;:::-;;;;;;;;13611:489;;;;;;13490:610;;;:::o;8889:117::-;8945:17;;8933:9;:29;;;;8983:15;;8973:7;:25;;;;8889:117::o;16333:257::-;16384:7;16393;16413:15;16431:7;;16413:25;;16449:15;4796:18;16449:25;;16499:20;4796:18;16499:7;;:11;;:20;;;;:::i;:::-;16489:7;:30;16485:61;;;16529:7;;4796:18;16521:25;;;;;;;;16485:61;16565:7;16574;16557:25;;;;;;16333:257;;;:::o;3120:223::-;3240:7;3272:1;3268;:5;3275:12;3260:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3299:9;3315:1;3311;:5;;;;:::i;:::-;3299:17;;3334:1;3327:8;;;3120:223;;;;;:::o;14519:615::-;14619:7;14641;14663;14685;14707;14729;14765:23;14790:12;14804:13;14834:40;14846:7;14855:9;;14866:7;;14834:11;:40::i;:::-;14764:110;;;;;;14885:19;14907:10;:8;:10::i;:::-;14885:32;;14929:15;14946:23;14971:12;15000:46;15012:7;15021:4;15027:5;15034:11;15000;:46::i;:::-;14928:118;;;;;;15065:7;15074:15;15091:4;15097:15;15114:4;15120:5;15057:69;;;;;;;;;;;;;;;;;;;14519:615;;;;;;;:::o;2350:136::-;2408:7;2435:43;2439:1;2442;2435:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2428:50;;2350:136;;;;:::o;2163:179::-;2221:7;2241:9;2257:1;2253;:5;;;;:::i;:::-;2241:17;;2282:1;2277;:6;;2269:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2333:1;2326:8;;;2163:179;;;;:::o;14108:211::-;14161:19;14183:10;:8;:10::i;:::-;14161:32;;14204:13;14220:22;14230:11;14220:5;:9;;:22;;;;:::i;:::-;14204:38;;14278:33;14305:5;14278:7;:22;14294:4;14278:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14253:7;:22;14269:4;14253:22;;;;;;;;;;;;;;;:58;;;;14150:169;;14108:211;:::o;14327:147::-;14405:17;14417:4;14405:7;;:11;;:17;;;;:::i;:::-;14395:7;:27;;;;14446:20;14461:4;14446:10;;:14;;:20;;;;:::i;:::-;14433:10;:33;;;;14327:147;;:::o;15142:469::-;15311:7;15333;15355;15390:12;15405:30;15431:3;15405:21;15417:8;15405:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15390:45;;15446:13;15462:28;15486:3;15462:19;15474:6;15462:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15446:44;;15501:23;15527:28;15549:5;15527:17;15539:4;15527:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15501:54;;15574:15;15591:4;15597:5;15566:37;;;;;;;;;15142:469;;;;;;;:::o;15619:534::-;15813:7;15835;15857;15892:15;15910:24;15922:11;15910:7;:11;;:24;;;;:::i;:::-;15892:42;;15945:12;15960:21;15969:11;15960:4;:8;;:21;;;;:::i;:::-;15945:36;;15992:13;16008:22;16018:11;16008:5;:9;;:22;;;;:::i;:::-;15992:38;;16041:23;16067:28;16089:5;16067:17;16079:4;16067:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16041:54;;16114:7;16123:15;16140:4;16106:39;;;;;;;;;;15619:534;;;;;;;;:::o;2726:246::-;2784:7;2813:1;2808;:6;2804:47;;;2838:1;2831:8;;;;2804:47;2861:9;2877:1;2873;:5;;;;:::i;:::-;2861:17;;2906:1;2901;2897;:5;;;;:::i;:::-;:10;2889:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2963:1;2956:8;;;2726:246;;;;;:::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:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:86::-;8321:7;8361:4;8354:5;8350:16;8339:27;;8286:86;;;:::o;8378:112::-;8461:22;8477:5;8461:22;:::i;:::-;8456:3;8449:35;8378:112;;:::o;8496:214::-;8585:4;8623:2;8612:9;8608:18;8600:26;;8636:67;8700:1;8689:9;8685:17;8676:6;8636:67;:::i;:::-;8496:214;;;;:::o;8716:118::-;8803:24;8821:5;8803:24;:::i;:::-;8798:3;8791:37;8716:118;;:::o;8840:222::-;8933:4;8971:2;8960:9;8956:18;8948:26;;8984:71;9052:1;9041:9;9037:17;9028:6;8984:71;:::i;:::-;8840:222;;;;:::o;9068:329::-;9127:6;9176:2;9164:9;9155:7;9151:23;9147:32;9144:119;;;9182:79;;:::i;:::-;9144:119;9302:1;9327:53;9372:7;9363:6;9352:9;9348:22;9327:53;:::i;:::-;9317:63;;9273:117;9068:329;;;;:::o;9403:116::-;9473:21;9488:5;9473:21;:::i;:::-;9466:5;9463:32;9453:60;;9509:1;9506;9499:12;9453:60;9403:116;:::o;9525:133::-;9568:5;9606:6;9593:20;9584:29;;9622:30;9646:5;9622:30;:::i;:::-;9525:133;;;;:::o;9664:323::-;9720:6;9769:2;9757:9;9748:7;9744:23;9740:32;9737:119;;;9775:79;;:::i;:::-;9737:119;9895:1;9920:50;9962:7;9953:6;9942:9;9938:22;9920:50;:::i;:::-;9910:60;;9866:114;9664:323;;;;:::o;9993:329::-;10052:6;10101:2;10089:9;10080:7;10076:23;10072:32;10069:119;;;10107:79;;:::i;:::-;10069:119;10227:1;10252:53;10297:7;10288:6;10277:9;10273:22;10252:53;:::i;:::-;10242:63;;10198:117;9993:329;;;;:::o;10328:117::-;10437:1;10434;10427:12;10468:568;10541:8;10551:6;10601:3;10594:4;10586:6;10582:17;10578:27;10568:122;;10609:79;;:::i;:::-;10568:122;10722:6;10709:20;10699:30;;10752:18;10744:6;10741:30;10738:117;;;10774:79;;:::i;:::-;10738:117;10888:4;10880:6;10876:17;10864:29;;10942:3;10934:4;10926:6;10922:17;10912:8;10908:32;10905:41;10902:128;;;10949:79;;:::i;:::-;10902:128;10468:568;;;;;:::o;11042:698::-;11134:6;11142;11150;11199:2;11187:9;11178:7;11174:23;11170:32;11167:119;;;11205:79;;:::i;:::-;11167:119;11353:1;11342:9;11338:17;11325:31;11383:18;11375:6;11372:30;11369:117;;;11405:79;;:::i;:::-;11369:117;11518:80;11590:7;11581:6;11570:9;11566:22;11518:80;:::i;:::-;11500:98;;;;11296:312;11647:2;11673:50;11715:7;11706:6;11695:9;11691:22;11673:50;:::i;:::-;11663:60;;11618:115;11042:698;;;;;:::o;11746:474::-;11814:6;11822;11871:2;11859:9;11850:7;11846:23;11842:32;11839:119;;;11877:79;;:::i;:::-;11839:119;11997:1;12022:53;12067:7;12058:6;12047:9;12043:22;12022:53;:::i;:::-;12012:63;;11968:117;12124:2;12150:53;12195:7;12186:6;12175:9;12171:22;12150:53;:::i;:::-;12140:63;;12095:118;11746:474;;;;;:::o;12226:182::-;12366:34;12362:1;12354:6;12350:14;12343:58;12226:182;:::o;12414:366::-;12556:3;12577:67;12641:2;12636:3;12577:67;:::i;:::-;12570:74;;12653:93;12742:3;12653:93;:::i;:::-;12771:2;12766:3;12762:12;12755:19;;12414:366;;;:::o;12786:419::-;12952:4;12990:2;12979:9;12975:18;12967:26;;13039:9;13033:4;13029:20;13025:1;13014:9;13010:17;13003:47;13067:131;13193:4;13067:131;:::i;:::-;13059:139;;12786:419;;;:::o;13211:180::-;13259:77;13256:1;13249:88;13356:4;13353:1;13346:15;13380:4;13377:1;13370:15;13397:180;13445:77;13442:1;13435:88;13542:4;13539:1;13532:15;13566:4;13563:1;13556:15;13583:233;13622:3;13645:24;13663:5;13645:24;:::i;:::-;13636:33;;13691:66;13684:5;13681:77;13678:103;;;13761:18;;:::i;:::-;13678:103;13808:1;13801:5;13797:13;13790:20;;13583:233;;;:::o;13822:225::-;13962:34;13958:1;13950:6;13946:14;13939:58;14031:8;14026:2;14018:6;14014:15;14007:33;13822:225;:::o;14053:366::-;14195:3;14216:67;14280:2;14275:3;14216:67;:::i;:::-;14209:74;;14292:93;14381:3;14292:93;:::i;:::-;14410:2;14405:3;14401:12;14394:19;;14053:366;;;:::o;14425:419::-;14591:4;14629:2;14618:9;14614:18;14606:26;;14678:9;14672:4;14668:20;14664:1;14653:9;14649:17;14642:47;14706:131;14832:4;14706:131;:::i;:::-;14698:139;;14425:419;;;:::o;14850:223::-;14990:34;14986:1;14978:6;14974:14;14967:58;15059:6;15054:2;15046:6;15042:15;15035:31;14850:223;:::o;15079:366::-;15221:3;15242:67;15306:2;15301:3;15242:67;:::i;:::-;15235:74;;15318:93;15407:3;15318:93;:::i;:::-;15436:2;15431:3;15427:12;15420:19;;15079:366;;;:::o;15451:419::-;15617:4;15655:2;15644:9;15640:18;15632:26;;15704:9;15698:4;15694:20;15690:1;15679:9;15675:17;15668:47;15732:131;15858:4;15732:131;:::i;:::-;15724:139;;15451:419;;;:::o;15876:221::-;16016:34;16012:1;16004:6;16000:14;15993:58;16085:4;16080:2;16072:6;16068:15;16061:29;15876:221;:::o;16103:366::-;16245:3;16266:67;16330:2;16325:3;16266:67;:::i;:::-;16259:74;;16342:93;16431:3;16342:93;:::i;:::-;16460:2;16455:3;16451:12;16444:19;;16103:366;;;:::o;16475:419::-;16641:4;16679:2;16668:9;16664:18;16656:26;;16728:9;16722:4;16718:20;16714:1;16703:9;16699:17;16692:47;16756:131;16882:4;16756:131;:::i;:::-;16748:139;;16475:419;;;:::o;16900:224::-;17040:34;17036:1;17028:6;17024:14;17017:58;17109:7;17104:2;17096:6;17092:15;17085:32;16900:224;:::o;17130:366::-;17272:3;17293:67;17357:2;17352:3;17293:67;:::i;:::-;17286:74;;17369:93;17458:3;17369:93;:::i;:::-;17487:2;17482:3;17478:12;17471:19;;17130:366;;;:::o;17502:419::-;17668:4;17706:2;17695:9;17691:18;17683:26;;17755:9;17749:4;17745:20;17741:1;17730:9;17726:17;17719:47;17783:131;17909:4;17783:131;:::i;:::-;17775:139;;17502:419;;;:::o;17927:222::-;18067:34;18063:1;18055:6;18051:14;18044:58;18136:5;18131:2;18123:6;18119:15;18112:30;17927:222;:::o;18155:366::-;18297:3;18318:67;18382:2;18377:3;18318:67;:::i;:::-;18311:74;;18394:93;18483:3;18394:93;:::i;:::-;18512:2;18507:3;18503:12;18496:19;;18155:366;;;:::o;18527:419::-;18693:4;18731:2;18720:9;18716:18;18708:26;;18780:9;18774:4;18770:20;18766:1;18755:9;18751:17;18744:47;18808:131;18934:4;18808:131;:::i;:::-;18800:139;;18527:419;;;:::o;18952:228::-;19092:34;19088:1;19080:6;19076:14;19069:58;19161:11;19156:2;19148:6;19144:15;19137:36;18952:228;:::o;19186:366::-;19328:3;19349:67;19413:2;19408:3;19349:67;:::i;:::-;19342:74;;19425:93;19514:3;19425:93;:::i;:::-;19543:2;19538:3;19534:12;19527:19;;19186:366;;;:::o;19558:419::-;19724:4;19762:2;19751:9;19747:18;19739:26;;19811:9;19805:4;19801:20;19797:1;19786:9;19782:17;19775:47;19839:131;19965:4;19839:131;:::i;:::-;19831:139;;19558:419;;;:::o;19983:250::-;20123:34;20119:1;20111:6;20107:14;20100:58;20192:33;20187:2;20179:6;20175:15;20168:58;19983:250;:::o;20239:366::-;20381:3;20402:67;20466:2;20461:3;20402:67;:::i;:::-;20395:74;;20478:93;20567:3;20478:93;:::i;:::-;20596:2;20591:3;20587:12;20580:19;;20239:366;;;:::o;20611:419::-;20777:4;20815:2;20804:9;20800:18;20792:26;;20864:9;20858:4;20854:20;20850:1;20839:9;20835:17;20828:47;20892:131;21018:4;20892:131;:::i;:::-;20884:139;;20611:419;;;:::o;21036:178::-;21176:30;21172:1;21164:6;21160:14;21153:54;21036:178;:::o;21220:366::-;21362:3;21383:67;21447:2;21442:3;21383:67;:::i;:::-;21376:74;;21459:93;21548:3;21459:93;:::i;:::-;21577:2;21572:3;21568:12;21561:19;;21220:366;;;:::o;21592:419::-;21758:4;21796:2;21785:9;21781:18;21773:26;;21845:9;21839:4;21835:20;21831:1;21820:9;21816:17;21809:47;21873:131;21999:4;21873:131;:::i;:::-;21865:139;;21592:419;;;:::o;22017:222::-;22157:34;22153:1;22145:6;22141:14;22134:58;22226:5;22221:2;22213:6;22209:15;22202:30;22017:222;:::o;22245:366::-;22387:3;22408:67;22472:2;22467:3;22408:67;:::i;:::-;22401:74;;22484:93;22573:3;22484:93;:::i;:::-;22602:2;22597:3;22593:12;22586:19;;22245:366;;;:::o;22617:419::-;22783:4;22821:2;22810:9;22806:18;22798:26;;22870:9;22864:4;22860:20;22856:1;22845:9;22841:17;22834:47;22898:131;23024:4;22898:131;:::i;:::-;22890:139;;22617:419;;;:::o;23042:305::-;23082:3;23101:20;23119:1;23101:20;:::i;:::-;23096:25;;23135:20;23153:1;23135:20;:::i;:::-;23130:25;;23289:1;23221:66;23217:74;23214:1;23211:81;23208:107;;;23295:18;;:::i;:::-;23208:107;23339:1;23336;23332:9;23325:16;;23042:305;;;;:::o;23353:222::-;23493:34;23489:1;23481:6;23477:14;23470:58;23562:5;23557:2;23549:6;23545:15;23538:30;23353:222;:::o;23581:366::-;23723:3;23744:67;23808:2;23803:3;23744:67;:::i;:::-;23737:74;;23820:93;23909:3;23820:93;:::i;:::-;23938:2;23933:3;23929:12;23922:19;;23581:366;;;:::o;23953:419::-;24119:4;24157:2;24146:9;24142:18;24134:26;;24206:9;24200:4;24196:20;24192:1;24181:9;24177:17;24170:47;24234:131;24360:4;24234:131;:::i;:::-;24226:139;;23953:419;;;:::o;24378:191::-;24418:4;24438:20;24456:1;24438:20;:::i;:::-;24433:25;;24472:20;24490:1;24472:20;:::i;:::-;24467:25;;24511:1;24508;24505:8;24502:34;;;24516:18;;:::i;:::-;24502:34;24561:1;24558;24554:9;24546:17;;24378:191;;;;:::o;24575:229::-;24715:34;24711:1;24703:6;24699:14;24692:58;24784:12;24779:2;24771:6;24767:15;24760:37;24575:229;:::o;24810:366::-;24952:3;24973:67;25037:2;25032:3;24973:67;:::i;:::-;24966:74;;25049:93;25138:3;25049:93;:::i;:::-;25167:2;25162:3;25158:12;25151:19;;24810:366;;;:::o;25182:419::-;25348:4;25386:2;25375:9;25371:18;25363:26;;25435:9;25429:4;25425:20;25421:1;25410:9;25406:17;25399:47;25463:131;25589:4;25463:131;:::i;:::-;25455:139;;25182:419;;;:::o;25607:143::-;25664:5;25695:6;25689:13;25680:22;;25711:33;25738:5;25711:33;:::i;:::-;25607:143;;;;:::o;25756:351::-;25826:6;25875:2;25863:9;25854:7;25850:23;25846:32;25843:119;;;25881:79;;:::i;:::-;25843:119;26001:1;26026:64;26082:7;26073:6;26062:9;26058:22;26026:64;:::i;:::-;26016:74;;25972:128;25756:351;;;;:::o;26113:85::-;26158:7;26187:5;26176:16;;26113:85;;;:::o;26204:158::-;26262:9;26295:61;26313:42;26322:32;26348:5;26322:32;:::i;:::-;26313:42;:::i;:::-;26295:61;:::i;:::-;26282:74;;26204:158;;;:::o;26368:147::-;26463:45;26502:5;26463:45;:::i;:::-;26458:3;26451:58;26368:147;;:::o;26521:114::-;26588:6;26622:5;26616:12;26606:22;;26521:114;;;:::o;26641:184::-;26740:11;26774:6;26769:3;26762:19;26814:4;26809:3;26805:14;26790:29;;26641:184;;;;:::o;26831:132::-;26898:4;26921:3;26913:11;;26951:4;26946:3;26942:14;26934:22;;26831:132;;;:::o;26969:108::-;27046:24;27064:5;27046:24;:::i;:::-;27041:3;27034:37;26969:108;;:::o;27083:179::-;27152:10;27173:46;27215:3;27207:6;27173:46;:::i;:::-;27251:4;27246:3;27242:14;27228:28;;27083:179;;;;:::o;27268:113::-;27338:4;27370;27365:3;27361:14;27353:22;;27268:113;;;:::o;27417:732::-;27536:3;27565:54;27613:5;27565:54;:::i;:::-;27635:86;27714:6;27709:3;27635:86;:::i;:::-;27628:93;;27745:56;27795:5;27745:56;:::i;:::-;27824:7;27855:1;27840:284;27865:6;27862:1;27859:13;27840:284;;;27941:6;27935:13;27968:63;28027:3;28012:13;27968:63;:::i;:::-;27961:70;;28054:60;28107:6;28054:60;:::i;:::-;28044:70;;27900:224;27887:1;27884;27880:9;27875:14;;27840:284;;;27844:14;28140:3;28133:10;;27541:608;;;27417:732;;;;:::o;28155:831::-;28418:4;28456:3;28445:9;28441:19;28433:27;;28470:71;28538:1;28527:9;28523:17;28514:6;28470:71;:::i;:::-;28551:80;28627:2;28616:9;28612:18;28603:6;28551:80;:::i;:::-;28678:9;28672:4;28668:20;28663:2;28652:9;28648:18;28641:48;28706:108;28809:4;28800:6;28706:108;:::i;:::-;28698:116;;28824:72;28892:2;28881:9;28877:18;28868:6;28824:72;:::i;:::-;28906:73;28974:3;28963:9;28959:19;28950:6;28906:73;:::i;:::-;28155:831;;;;;;;;:::o;28992:180::-;29040:77;29037:1;29030:88;29137:4;29134:1;29127:15;29161:4;29158:1;29151:15;29178:185;29218:1;29235:20;29253:1;29235:20;:::i;:::-;29230:25;;29269:20;29287:1;29269:20;:::i;:::-;29264:25;;29308:1;29298:35;;29313:18;;:::i;:::-;29298:35;29355:1;29352;29348:9;29343:14;;29178:185;;;;:::o;29369:177::-;29509:29;29505:1;29497:6;29493:14;29486:53;29369:177;:::o;29552:366::-;29694:3;29715:67;29779:2;29774:3;29715:67;:::i;:::-;29708:74;;29791:93;29880:3;29791:93;:::i;:::-;29909:2;29904:3;29900:12;29893:19;;29552:366;;;:::o;29924:419::-;30090:4;30128:2;30117:9;30113:18;30105:26;;30177:9;30171:4;30167:20;30163:1;30152:9;30148:17;30141:47;30205:131;30331:4;30205:131;:::i;:::-;30197:139;;29924:419;;;:::o;30349:348::-;30389:7;30412:20;30430:1;30412:20;:::i;:::-;30407:25;;30446:20;30464:1;30446:20;:::i;:::-;30441:25;;30634:1;30566:66;30562:74;30559:1;30556:81;30551:1;30544:9;30537:17;30533:105;30530:131;;;30641:18;;:::i;:::-;30530:131;30689:1;30686;30682:9;30671:20;;30349:348;;;;:::o;30703:220::-;30843:34;30839:1;30831:6;30827:14;30820:58;30912:3;30907:2;30899:6;30895:15;30888:28;30703:220;:::o;30929:366::-;31071:3;31092:67;31156:2;31151:3;31092:67;:::i;:::-;31085:74;;31168:93;31257:3;31168:93;:::i;:::-;31286:2;31281:3;31277:12;31270:19;;30929:366;;;:::o;31301:419::-;31467:4;31505:2;31494:9;31490:18;31482:26;;31554:9;31548:4;31544:20;31540:1;31529:9;31525:17;31518:47;31582:131;31708:4;31582:131;:::i;:::-;31574:139;;31301:419;;;:::o

Swarm Source

ipfs://130cc3644fb86fffb4c18d4cd40be672e59610d4b8c11fc094d17d41743f8903
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.