ETH Price: $3,466.61 (+3.98%)
Gas: 5 Gwei

Token

JOYDOGE (JOY)
 

Overview

Max Total Supply

4,206,900,000,000,000 JOY

Holders

252

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
5,294,435,352.203877520626387382 JOY

Value
$0.00
0xf106D1CA01ccE4bCb373515670eFb8f157522796
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:
ERC20

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-05
*/

/**
 *Submitted for verification at Etherscan.io on 2024-02-05
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.7;

/*
 * Telegram : https://t.me/JOYDOGE
*/

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    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);
}

interface IUniswapRouter {

    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapFactory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

abstract contract Ownable {
    address internal _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "you are not 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), "new is 0");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract ERC20 is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    address private fundAddress;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    mapping(address => bool) public _isExcludeFromFee;
    
    uint256 private _totalSupply;

    IUniswapRouter public _uniswapRouter;

    mapping(address => bool) public isMarketPair;
    bool private inSwap;
    mapping(address => bool) public _isExcludedmaxAmount;
    uint256 public _max_wallet_size;

    uint256 private constant MAX = ~uint256(0);

    address public _uniswapPair;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (){
        _name = "JOYDOGE";
        _symbol = "JOY";
        _decimals = 18;
        uint256 Supply = 4206900000000000;

        _totalSupply = Supply * 10 ** _decimals;
        _max_wallet_size = _totalSupply * 5 / 1000;

        address receiveAddr = 0x8bca539846c821629E392dc5cfd0Ed2197D3580b;
        _balances[receiveAddr] = _totalSupply;
        emit Transfer(address(0), receiveAddr, _totalSupply);

        fundAddress = receiveAddr;

        _isExcludeFromFee[address(this)] = true;
        _isExcludeFromFee[receiveAddr] = true;
        _isExcludeFromFee[fundAddress] = true;

        _isExcludedmaxAmount[owner()] = true;
        _isExcludedmaxAmount[address(0xdead)] = true;
        _isExcludedmaxAmount[address(this)] = true;
        _isExcludedmaxAmount[fundAddress] = true;

        IUniswapRouter swapRouter = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _uniswapRouter = swapRouter;
        _allowances[address(this)][address(swapRouter)] = MAX;

        IUniswapFactory swapFactory = IUniswapFactory(swapRouter.factory());
        _uniswapPair = swapFactory.createPair(address(this), swapRouter.WETH());

        isMarketPair[_uniswapPair] = true;
        IERC20(_uniswapRouter.WETH()).approve(
            address(address(_uniswapRouter)),
            ~uint256(0)
        );
        _isExcludedmaxAmount[address(swapRouter)] = true;
        _isExcludedmaxAmount[_uniswapPair] = true;
        _isExcludeFromFee[address(swapRouter)] = true;

    }

    function setMaxWalletSize(uint256 newPercentage) public onlyOwner {
        _max_wallet_size = (totalSupply() * newPercentage) / 1000;
    }

    function setFundAddr(address newAddr) public onlyOwner{
        fundAddress = newAddr;
    }

    function symbol() external view override returns (string memory) {
        return _symbol;
    }

    function name() external view override returns (string memory) {
        return _name;
    }

    function decimals() external view override returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    bool public remainHolder = true;
    function changeRemain() public onlyOwner{
        remainHolder = !remainHolder;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    bool public transferDelayEnabled = true;
    function removeLimits() external onlyOwner{
        transferDelayEnabled = false;
        _max_wallet_size = totalSupply();
    }

    mapping(address => uint256) private _holderLastTransferTimestamp;

    uint256 public _buyCount=0;
    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=25;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=20;

    function recuseTax(
        uint256 newBuy,
        uint256 newSell,
        uint256 newReduceBuy,
        uint256 newReduceSell
    ) public onlyOwner {
        _finalBuyTax = newBuy;
        _finalSellTax = newSell;
        _reduceBuyTaxAt = newReduceBuy;
        _reduceSellTaxAt = newReduceSell;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        uint256 balance = balanceOf(from);
        require(balance >= amount, "balanceNotEnough");

        if (inSwap){
            _basicTransfer(from, to, amount);
            return;
        }

        bool takeFee;

        if (isMarketPair[to] && !inSwap && !_isExcludeFromFee[from] && !_isExcludeFromFee[to] && _buyCount > _preventSwapBefore) {
            uint256 _bal = balanceOf(address(this));
            uint256 _numSellToken = amount > _bal ? _bal : amount;
            if (_numSellToken > 0){
                swapTokenForETH(_numSellToken);
            }
        }

        if (!_isExcludeFromFee[from] && !_isExcludeFromFee[to] && !inSwap) {
            takeFee = true;
            
            // buyCount
            if (isMarketPair[from] && to != address(_uniswapRouter) && !_isExcludeFromFee[to]) {
                _buyCount++;
            }

            // remainHolder
            if (remainHolder && amount == balance) {
                amount = amount - (amount / 10000);
            }
            
            // transferDelay
            if (transferDelayEnabled) {
                require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                _holderLastTransferTimestamp[tx.origin] = block.number;
                if (!_isExcludedmaxAmount[to]) {
                    require(amount + balanceOf(to) <= _max_wallet_size, "Max wallet exceeded");
                }
            }
        }

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

    function _transferToken(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount;

        if (takeFee) {
            uint256 taxFee;
            if (isMarketPair[recipient]) {
                taxFee = _buyCount > _reduceBuyTaxAt ? _finalBuyTax : _initialBuyTax;
            } else if (isMarketPair[sender]) {
                taxFee = _buyCount > _reduceSellTaxAt ? _finalSellTax : _initialSellTax;
            }
            uint256 swapAmount = tAmount * taxFee / 100;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _balances[address(this)] = _balances[address(this)] + swapAmount;
                emit Transfer(sender, address(this), swapAmount);
            }
        }

        _balances[recipient] = _balances[recipient] + (tAmount - feeAmount);
        emit Transfer(sender, recipient, tAmount - feeAmount);

    }

    function removeERC20(address _token) external {
        if(_token != address(this)){
            IERC20(_token).transfer(fundAddress, IERC20(_token).balanceOf(address(this)));
            payable(fundAddress).transfer(address(this).balance);
        }
    }

    function swapTokenForETH(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapRouter.WETH();
        try _uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(fundAddress),
            block.timestamp
        ) {} catch {}
    }

    function setFeeExclude(address account, bool value) public onlyOwner{
        _isExcludeFromFee[account] = value;
    }

    receive() external payable {}
}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedmaxAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_max_wallet_size","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"changeRemain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuy","type":"uint256"},{"internalType":"uint256","name":"newSell","type":"uint256"},{"internalType":"uint256","name":"newReduceBuy","type":"uint256"},{"internalType":"uint256","name":"newReduceSell","type":"uint256"}],"name":"recuseTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"remainHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"removeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setFeeExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddr","type":"address"}],"name":"setFundAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPercentage","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60806040526001600e60146101000a81548160ff0219169083151502179055506001600e60156101000a81548160ff021916908315150217905550600060105560146011556019601255600160135560016014556019601555601960165560146017553480156200006f57600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600781526020017f4a4f59444f474500000000000000000000000000000000000000000000000000815250600490805190602001906200015e92919062000bdc565b506040518060400160405280600381526020017f4a4f59000000000000000000000000000000000000000000000000000000000081525060059080519060200190620001ac92919062000bdc565b506012600660006101000a81548160ff021916908360ff1602179055506000660ef2273c1b08009050600660009054906101000a900460ff16600a620001f3919062000e4a565b8162000200919062000f87565b6008819055506103e860056008546200021a919062000f87565b62000226919062000db7565b600d819055506000738bca539846c821629e392dc5cfd0ed2197d3580b9050600854600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600854604051620002ed919062000d9a565b60405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60006200047662000bb360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200071957600080fd5b505afa1580156200072e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000754919062000cba565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620007ba57600080fd5b505afa158015620007cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007f5919062000cba565b6040518363ffffffff1660e01b81526004016200081492919062000d40565b602060405180830381600087803b1580156200082f57600080fd5b505af115801562000844573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200086a919062000cba565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200098d57600080fd5b505afa158015620009a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009c8919062000cba565b73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196040518363ffffffff1660e01b815260040162000a2892919062000d6d565b602060405180830381600087803b15801562000a4357600080fd5b505af115801562000a58573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a7e919062000cec565b506001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050505062001148565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b82805462000bea906200103f565b90600052602060002090601f01602090048101928262000c0e576000855562000c5a565b82601f1062000c2957805160ff191683800117855562000c5a565b8280016001018555821562000c5a579182015b8281111562000c5957825182559160200191906001019062000c3c565b5b50905062000c69919062000c6d565b5090565b5b8082111562000c8857600081600090555060010162000c6e565b5090565b60008151905062000c9d8162001114565b92915050565b60008151905062000cb4816200112e565b92915050565b60006020828403121562000cd35762000cd262001102565b5b600062000ce38482850162000c8c565b91505092915050565b60006020828403121562000d055762000d0462001102565b5b600062000d158482850162000ca3565b91505092915050565b62000d298162000fe8565b82525050565b62000d3a8162001028565b82525050565b600060408201905062000d57600083018562000d1e565b62000d66602083018462000d1e565b9392505050565b600060408201905062000d84600083018562000d1e565b62000d93602083018462000d2f565b9392505050565b600060208201905062000db1600083018462000d2f565b92915050565b600062000dc48262001028565b915062000dd18362001028565b92508262000de45762000de3620010a4565b5b828204905092915050565b6000808291508390505b600185111562000e415780860481111562000e195762000e1862001075565b5b600185161562000e295780820291505b808102905062000e398562001107565b945062000df9565b94509492505050565b600062000e578262001028565b915062000e648362001032565b925062000e937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e9b565b905092915050565b60008262000ead576001905062000f80565b8162000ebd576000905062000f80565b816001811462000ed6576002811462000ee15762000f17565b600191505062000f80565b60ff84111562000ef65762000ef562001075565b5b8360020a91508482111562000f105762000f0f62001075565b5b5062000f80565b5060208310610133831016604e8410600b841016171562000f515782820a90508381111562000f4b5762000f4a62001075565b5b62000f80565b62000f60848484600162000def565b9250905081840481111562000f7a5762000f7962001075565b5b81810290505b9392505050565b600062000f948262001028565b915062000fa18362001028565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000fdd5762000fdc62001075565b5b828202905092915050565b600062000ff58262001008565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600060028204905060018216806200105857607f821691505b602082108114156200106f576200106e620010d3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b6200111f8162000fe8565b81146200112b57600080fd5b50565b620011398162000ffc565b81146200114557600080fd5b50565b612e7b80620011586000396000f3fe6080604052600436106101bb5760003560e01c8063751039fc116100ec578063c1eaa5d51161008a578063dd62ed3e11610064578063dd62ed3e146105f7578063ea1644d514610634578063eb3252211461065d578063f2fde38b1461069a576101c2565b8063c1eaa5d514610578578063c876d0b9146105a1578063cefab2af146105cc576101c2565b806395d89b41116100c657806395d89b41146104d0578063a67755c2146104fb578063a9059cbb14610524578063bc76c05214610561576101c2565b8063751039fc146104655780638da5cb5b1461047c578063936c044b146104a7576101c2565b80633ecad271116101595780636f39cfcd116101335780636f39cfcd146103bd57806370a08231146103e6578063715018a61461042357806372cbadb11461043a576101c2565b80633ecad2711461032a5780634bf28fd01461036757806365b61b7714610392576101c2565b806323b872dd1161019557806323b872dd1461025a57806327b1a8e914610297578063313ce567146102c257806336b2e027146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f257806318160ddd1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106c3565b6040516101e99190612805565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612496565b610755565b60405161022691906127cf565b60405180910390f35b34801561023b57600080fd5b5061024461076c565b60405161025191906128c7565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c9190612403565b610776565b60405161028e91906127cf565b60405180910390f35b3480156102a357600080fd5b506102ac61091c565b6040516102b991906128c7565b60405180910390f35b3480156102ce57600080fd5b506102d7610922565b6040516102e4919061293c565b60405180910390f35b3480156102f957600080fd5b50610314600480360381019061030f9190612369565b610939565b60405161032191906127cf565b60405180910390f35b34801561033657600080fd5b50610351600480360381019061034c9190612369565b610959565b60405161035e91906127cf565b60405180910390f35b34801561037357600080fd5b5061037c610979565b604051610389919061278b565b60405180910390f35b34801561039e57600080fd5b506103a761099f565b6040516103b491906127ea565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df9190612369565b6109c5565b005b3480156103f257600080fd5b5061040d60048036038101906104089190612369565b610a97565b60405161041a91906128c7565b60405180910390f35b34801561042f57600080fd5b50610438610ae0565b005b34801561044657600080fd5b5061044f610c2c565b60405161045c91906128c7565b60405180910390f35b34801561047157600080fd5b5061047a610c32565b005b34801561048857600080fd5b50610491610ceb565b60405161049e919061278b565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c99190612456565b610d14565b005b3480156104dc57600080fd5b506104e5610dfd565b6040516104f29190612805565b60405180910390f35b34801561050757600080fd5b50610522600480360381019061051d9190612369565b610e8f565b005b34801561053057600080fd5b5061054b60048036038101906105469190612496565b611067565b60405161055891906127cf565b60405180910390f35b34801561056d57600080fd5b5061057661107e565b005b34801561058457600080fd5b5061059f600480360381019061059a919061255d565b611138565b005b3480156105ad57600080fd5b506105b66111e8565b6040516105c391906127cf565b60405180910390f35b3480156105d857600080fd5b506105e16111fb565b6040516105ee91906127cf565b60405180910390f35b34801561060357600080fd5b5061061e600480360381019061061991906123c3565b61120e565b60405161062b91906128c7565b60405180910390f35b34801561064057600080fd5b5061065b60048036038101906106569190612503565b611295565b005b34801561066957600080fd5b50610684600480360381019061067f9190612369565b61134c565b60405161069191906127cf565b60405180910390f35b3480156106a657600080fd5b506106c160048036038101906106bc9190612369565b61136c565b005b6060600480546106d290612b91565b80601f01602080910402602001604051908101604052809291908181526020018280546106fe90612b91565b801561074b5780601f106107205761010080835404028352916020019161074b565b820191906000526020600020905b81548152906001019060200180831161072e57829003601f168201915b5050505050905090565b6000610762338484611527565b6001905092915050565b6000600854905090565b6000610783848484611612565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109115781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108909190612a8d565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b60105481565b6000600660009054906101000a900460ff16905090565b60076020528060005260406000206000915054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4a90612867565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6590612867565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600d5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb790612867565b60405180910390fd5b6000600e60156101000a81548160ff021916908315150217905550610ce361076c565b600d81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9990612867565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060058054610e0c90612b91565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3890612b91565b8015610e855780601f10610e5a57610100808354040283529160200191610e85565b820191906000526020600020905b815481529060010190602001808311610e6857829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611064578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f3a919061278b565b60206040518083038186803b158015610f5257600080fd5b505afa158015610f66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8a9190612530565b6040518363ffffffff1660e01b8152600401610fa79291906127a6565b602060405180830381600087803b158015610fc157600080fd5b505af1158015610fd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff991906124d6565b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611062573d6000803e3d6000fd5b505b50565b6000611074338484611612565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461110c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110390612867565b60405180910390fd5b600e60149054906101000a900460ff1615600e60146101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bd90612867565b60405180910390fd5b8360138190555082601481905550816015819055508060168190555050505050565b600e60159054906101000a900460ff1681565b600e60149054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131a90612867565b60405180910390fd5b6103e88161132f61076c565b6113399190612a33565b6113439190612a02565b600d8190555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f190612867565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561146a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146190612847565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161160591906128c7565b60405180910390a3505050565b600061161d84610a97565b905081811015611662576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165990612827565b60405180910390fd5b600b60009054906101000a900460ff161561168957611682848484611b9e565b5050611b99565b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156116f15750600b60009054906101000a900460ff16155b80156117475750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561179d5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117ac5750601754601054115b156117e75760006117bc30610a97565b905060008185116117cd57846117cf565b815b905060008111156117e4576117e381611cbc565b5b50505b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561188b5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118a45750600b60009054906101000a900460ff16155b15611b8a5760019050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156119545750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119aa5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119c857601060008154809291906119c290612bc3565b91905055505b600e60149054906101000a900460ff1680156119e357508183145b15611a0457612710836119f69190612a02565b83611a019190612a8d565b92505b600e60159054906101000a900460ff1615611b895743600f60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a91906128a7565b60405180910390fd5b43600f60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b8857600d54611b3b85610a97565b84611b4691906129ac565b1115611b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7e90612887565b60405180910390fd5b5b5b5b611b9685858584611f3c565b50505b505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bef9190612a8d565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c4591906129ac565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ca991906128c7565b60405180910390a3600190509392505050565b6001600b60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611cf457611cf3612cc8565b5b604051908082528060200260200182016040528015611d225781602001602082028036833780820191505090505b5090503081600081518110611d3a57611d39612c99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ddc57600080fd5b505afa158015611df0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e149190612396565b81600181518110611e2857611e27612c99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611ee89594939291906128e2565b600060405180830381600087803b158015611f0257600080fd5b505af1925050508015611f13575060015b611f1c57611f1d565b5b506000600b60006101000a81548160ff02191690831515021790555050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f879190612a8d565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600081156121db576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561204457601554601054116120395760115461203d565b6013545b90506120b1565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120b057601654601054116120a9576012546120ad565b6014545b90505b5b6000606482866120c19190612a33565b6120cb9190612a02565b905060008111156121d85780836120e291906129ac565b925080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212f91906129ac565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121cf91906128c7565b60405180910390a35b50505b80836121e79190612a8d565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223191906129ac565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866122cf9190612a8d565b6040516122dc91906128c7565b60405180910390a35050505050565b6000813590506122fa81612e00565b92915050565b60008151905061230f81612e00565b92915050565b60008135905061232481612e17565b92915050565b60008151905061233981612e17565b92915050565b60008135905061234e81612e2e565b92915050565b60008151905061236381612e2e565b92915050565b60006020828403121561237f5761237e612cf7565b5b600061238d848285016122eb565b91505092915050565b6000602082840312156123ac576123ab612cf7565b5b60006123ba84828501612300565b91505092915050565b600080604083850312156123da576123d9612cf7565b5b60006123e8858286016122eb565b92505060206123f9858286016122eb565b9150509250929050565b60008060006060848603121561241c5761241b612cf7565b5b600061242a868287016122eb565b935050602061243b868287016122eb565b925050604061244c8682870161233f565b9150509250925092565b6000806040838503121561246d5761246c612cf7565b5b600061247b858286016122eb565b925050602061248c85828601612315565b9150509250929050565b600080604083850312156124ad576124ac612cf7565b5b60006124bb858286016122eb565b92505060206124cc8582860161233f565b9150509250929050565b6000602082840312156124ec576124eb612cf7565b5b60006124fa8482850161232a565b91505092915050565b60006020828403121561251957612518612cf7565b5b60006125278482850161233f565b91505092915050565b60006020828403121561254657612545612cf7565b5b600061255484828501612354565b91505092915050565b6000806000806080858703121561257757612576612cf7565b5b60006125858782880161233f565b94505060206125968782880161233f565b93505060406125a78782880161233f565b92505060606125b88782880161233f565b91505092959194509250565b60006125d083836125dc565b60208301905092915050565b6125e581612ac1565b82525050565b6125f481612ac1565b82525050565b600061260582612967565b61260f818561298a565b935061261a83612957565b8060005b8381101561264b57815161263288826125c4565b975061263d8361297d565b92505060018101905061261e565b5085935050505092915050565b61266181612ad3565b82525050565b61267081612b16565b82525050565b61267f81612b28565b82525050565b600061269082612972565b61269a818561299b565b93506126aa818560208601612b5e565b6126b381612cfc565b840191505092915050565b60006126cb60108361299b565b91506126d682612d0d565b602082019050919050565b60006126ee60088361299b565b91506126f982612d36565b602082019050919050565b600061271160118361299b565b915061271c82612d5f565b602082019050919050565b600061273460138361299b565b915061273f82612d88565b602082019050919050565b600061275760248361299b565b915061276282612db1565b604082019050919050565b61277681612aff565b82525050565b61278581612b09565b82525050565b60006020820190506127a060008301846125eb565b92915050565b60006040820190506127bb60008301856125eb565b6127c8602083018461276d565b9392505050565b60006020820190506127e46000830184612658565b92915050565b60006020820190506127ff6000830184612667565b92915050565b6000602082019050818103600083015261281f8184612685565b905092915050565b60006020820190508181036000830152612840816126be565b9050919050565b60006020820190508181036000830152612860816126e1565b9050919050565b6000602082019050818103600083015261288081612704565b9050919050565b600060208201905081810360008301526128a081612727565b9050919050565b600060208201905081810360008301526128c08161274a565b9050919050565b60006020820190506128dc600083018461276d565b92915050565b600060a0820190506128f7600083018861276d565b6129046020830187612676565b818103604083015261291681866125fa565b905061292560608301856125eb565b612932608083018461276d565b9695505050505050565b6000602082019050612951600083018461277c565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006129b782612aff565b91506129c283612aff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156129f7576129f6612c0c565b5b828201905092915050565b6000612a0d82612aff565b9150612a1883612aff565b925082612a2857612a27612c3b565b5b828204905092915050565b6000612a3e82612aff565b9150612a4983612aff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a8257612a81612c0c565b5b828202905092915050565b6000612a9882612aff565b9150612aa383612aff565b925082821015612ab657612ab5612c0c565b5b828203905092915050565b6000612acc82612adf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b2182612b3a565b9050919050565b6000612b3382612aff565b9050919050565b6000612b4582612b4c565b9050919050565b6000612b5782612adf565b9050919050565b60005b83811015612b7c578082015181840152602081019050612b61565b83811115612b8b576000848401525b50505050565b60006002820490506001821680612ba957607f821691505b60208210811415612bbd57612bbc612c6a565b5b50919050565b6000612bce82612aff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c0157612c00612c0c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b612e0981612ac1565b8114612e1457600080fd5b50565b612e2081612ad3565b8114612e2b57600080fd5b50565b612e3781612aff565b8114612e4257600080fd5b5056fea2646970667358221220d377ba6d50ba2a3302dbf211a88289734d0c951dbb696ca10e448367b407fdc064736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c8063751039fc116100ec578063c1eaa5d51161008a578063dd62ed3e11610064578063dd62ed3e146105f7578063ea1644d514610634578063eb3252211461065d578063f2fde38b1461069a576101c2565b8063c1eaa5d514610578578063c876d0b9146105a1578063cefab2af146105cc576101c2565b806395d89b41116100c657806395d89b41146104d0578063a67755c2146104fb578063a9059cbb14610524578063bc76c05214610561576101c2565b8063751039fc146104655780638da5cb5b1461047c578063936c044b146104a7576101c2565b80633ecad271116101595780636f39cfcd116101335780636f39cfcd146103bd57806370a08231146103e6578063715018a61461042357806372cbadb11461043a576101c2565b80633ecad2711461032a5780634bf28fd01461036757806365b61b7714610392576101c2565b806323b872dd1161019557806323b872dd1461025a57806327b1a8e914610297578063313ce567146102c257806336b2e027146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f257806318160ddd1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106c3565b6040516101e99190612805565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612496565b610755565b60405161022691906127cf565b60405180910390f35b34801561023b57600080fd5b5061024461076c565b60405161025191906128c7565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c9190612403565b610776565b60405161028e91906127cf565b60405180910390f35b3480156102a357600080fd5b506102ac61091c565b6040516102b991906128c7565b60405180910390f35b3480156102ce57600080fd5b506102d7610922565b6040516102e4919061293c565b60405180910390f35b3480156102f957600080fd5b50610314600480360381019061030f9190612369565b610939565b60405161032191906127cf565b60405180910390f35b34801561033657600080fd5b50610351600480360381019061034c9190612369565b610959565b60405161035e91906127cf565b60405180910390f35b34801561037357600080fd5b5061037c610979565b604051610389919061278b565b60405180910390f35b34801561039e57600080fd5b506103a761099f565b6040516103b491906127ea565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df9190612369565b6109c5565b005b3480156103f257600080fd5b5061040d60048036038101906104089190612369565b610a97565b60405161041a91906128c7565b60405180910390f35b34801561042f57600080fd5b50610438610ae0565b005b34801561044657600080fd5b5061044f610c2c565b60405161045c91906128c7565b60405180910390f35b34801561047157600080fd5b5061047a610c32565b005b34801561048857600080fd5b50610491610ceb565b60405161049e919061278b565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c99190612456565b610d14565b005b3480156104dc57600080fd5b506104e5610dfd565b6040516104f29190612805565b60405180910390f35b34801561050757600080fd5b50610522600480360381019061051d9190612369565b610e8f565b005b34801561053057600080fd5b5061054b60048036038101906105469190612496565b611067565b60405161055891906127cf565b60405180910390f35b34801561056d57600080fd5b5061057661107e565b005b34801561058457600080fd5b5061059f600480360381019061059a919061255d565b611138565b005b3480156105ad57600080fd5b506105b66111e8565b6040516105c391906127cf565b60405180910390f35b3480156105d857600080fd5b506105e16111fb565b6040516105ee91906127cf565b60405180910390f35b34801561060357600080fd5b5061061e600480360381019061061991906123c3565b61120e565b60405161062b91906128c7565b60405180910390f35b34801561064057600080fd5b5061065b60048036038101906106569190612503565b611295565b005b34801561066957600080fd5b50610684600480360381019061067f9190612369565b61134c565b60405161069191906127cf565b60405180910390f35b3480156106a657600080fd5b506106c160048036038101906106bc9190612369565b61136c565b005b6060600480546106d290612b91565b80601f01602080910402602001604051908101604052809291908181526020018280546106fe90612b91565b801561074b5780601f106107205761010080835404028352916020019161074b565b820191906000526020600020905b81548152906001019060200180831161072e57829003601f168201915b5050505050905090565b6000610762338484611527565b6001905092915050565b6000600854905090565b6000610783848484611612565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109115781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108909190612a8d565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b60105481565b6000600660009054906101000a900460ff16905090565b60076020528060005260406000206000915054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4a90612867565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6590612867565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600d5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb790612867565b60405180910390fd5b6000600e60156101000a81548160ff021916908315150217905550610ce361076c565b600d81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9990612867565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060058054610e0c90612b91565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3890612b91565b8015610e855780601f10610e5a57610100808354040283529160200191610e85565b820191906000526020600020905b815481529060010190602001808311610e6857829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611064578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f3a919061278b565b60206040518083038186803b158015610f5257600080fd5b505afa158015610f66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8a9190612530565b6040518363ffffffff1660e01b8152600401610fa79291906127a6565b602060405180830381600087803b158015610fc157600080fd5b505af1158015610fd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff991906124d6565b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611062573d6000803e3d6000fd5b505b50565b6000611074338484611612565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461110c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110390612867565b60405180910390fd5b600e60149054906101000a900460ff1615600e60146101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bd90612867565b60405180910390fd5b8360138190555082601481905550816015819055508060168190555050505050565b600e60159054906101000a900460ff1681565b600e60149054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131a90612867565b60405180910390fd5b6103e88161132f61076c565b6113399190612a33565b6113439190612a02565b600d8190555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f190612867565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561146a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146190612847565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161160591906128c7565b60405180910390a3505050565b600061161d84610a97565b905081811015611662576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165990612827565b60405180910390fd5b600b60009054906101000a900460ff161561168957611682848484611b9e565b5050611b99565b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156116f15750600b60009054906101000a900460ff16155b80156117475750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561179d5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117ac5750601754601054115b156117e75760006117bc30610a97565b905060008185116117cd57846117cf565b815b905060008111156117e4576117e381611cbc565b5b50505b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561188b5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118a45750600b60009054906101000a900460ff16155b15611b8a5760019050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156119545750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119aa5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119c857601060008154809291906119c290612bc3565b91905055505b600e60149054906101000a900460ff1680156119e357508183145b15611a0457612710836119f69190612a02565b83611a019190612a8d565b92505b600e60159054906101000a900460ff1615611b895743600f60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a91906128a7565b60405180910390fd5b43600f60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b8857600d54611b3b85610a97565b84611b4691906129ac565b1115611b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7e90612887565b60405180910390fd5b5b5b5b611b9685858584611f3c565b50505b505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bef9190612a8d565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c4591906129ac565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ca991906128c7565b60405180910390a3600190509392505050565b6001600b60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611cf457611cf3612cc8565b5b604051908082528060200260200182016040528015611d225781602001602082028036833780820191505090505b5090503081600081518110611d3a57611d39612c99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ddc57600080fd5b505afa158015611df0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e149190612396565b81600181518110611e2857611e27612c99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611ee89594939291906128e2565b600060405180830381600087803b158015611f0257600080fd5b505af1925050508015611f13575060015b611f1c57611f1d565b5b506000600b60006101000a81548160ff02191690831515021790555050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f879190612a8d565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600081156121db576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561204457601554601054116120395760115461203d565b6013545b90506120b1565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120b057601654601054116120a9576012546120ad565b6014545b90505b5b6000606482866120c19190612a33565b6120cb9190612a02565b905060008111156121d85780836120e291906129ac565b925080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212f91906129ac565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121cf91906128c7565b60405180910390a35b50505b80836121e79190612a8d565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223191906129ac565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866122cf9190612a8d565b6040516122dc91906128c7565b60405180910390a35050505050565b6000813590506122fa81612e00565b92915050565b60008151905061230f81612e00565b92915050565b60008135905061232481612e17565b92915050565b60008151905061233981612e17565b92915050565b60008135905061234e81612e2e565b92915050565b60008151905061236381612e2e565b92915050565b60006020828403121561237f5761237e612cf7565b5b600061238d848285016122eb565b91505092915050565b6000602082840312156123ac576123ab612cf7565b5b60006123ba84828501612300565b91505092915050565b600080604083850312156123da576123d9612cf7565b5b60006123e8858286016122eb565b92505060206123f9858286016122eb565b9150509250929050565b60008060006060848603121561241c5761241b612cf7565b5b600061242a868287016122eb565b935050602061243b868287016122eb565b925050604061244c8682870161233f565b9150509250925092565b6000806040838503121561246d5761246c612cf7565b5b600061247b858286016122eb565b925050602061248c85828601612315565b9150509250929050565b600080604083850312156124ad576124ac612cf7565b5b60006124bb858286016122eb565b92505060206124cc8582860161233f565b9150509250929050565b6000602082840312156124ec576124eb612cf7565b5b60006124fa8482850161232a565b91505092915050565b60006020828403121561251957612518612cf7565b5b60006125278482850161233f565b91505092915050565b60006020828403121561254657612545612cf7565b5b600061255484828501612354565b91505092915050565b6000806000806080858703121561257757612576612cf7565b5b60006125858782880161233f565b94505060206125968782880161233f565b93505060406125a78782880161233f565b92505060606125b88782880161233f565b91505092959194509250565b60006125d083836125dc565b60208301905092915050565b6125e581612ac1565b82525050565b6125f481612ac1565b82525050565b600061260582612967565b61260f818561298a565b935061261a83612957565b8060005b8381101561264b57815161263288826125c4565b975061263d8361297d565b92505060018101905061261e565b5085935050505092915050565b61266181612ad3565b82525050565b61267081612b16565b82525050565b61267f81612b28565b82525050565b600061269082612972565b61269a818561299b565b93506126aa818560208601612b5e565b6126b381612cfc565b840191505092915050565b60006126cb60108361299b565b91506126d682612d0d565b602082019050919050565b60006126ee60088361299b565b91506126f982612d36565b602082019050919050565b600061271160118361299b565b915061271c82612d5f565b602082019050919050565b600061273460138361299b565b915061273f82612d88565b602082019050919050565b600061275760248361299b565b915061276282612db1565b604082019050919050565b61277681612aff565b82525050565b61278581612b09565b82525050565b60006020820190506127a060008301846125eb565b92915050565b60006040820190506127bb60008301856125eb565b6127c8602083018461276d565b9392505050565b60006020820190506127e46000830184612658565b92915050565b60006020820190506127ff6000830184612667565b92915050565b6000602082019050818103600083015261281f8184612685565b905092915050565b60006020820190508181036000830152612840816126be565b9050919050565b60006020820190508181036000830152612860816126e1565b9050919050565b6000602082019050818103600083015261288081612704565b9050919050565b600060208201905081810360008301526128a081612727565b9050919050565b600060208201905081810360008301526128c08161274a565b9050919050565b60006020820190506128dc600083018461276d565b92915050565b600060a0820190506128f7600083018861276d565b6129046020830187612676565b818103604083015261291681866125fa565b905061292560608301856125eb565b612932608083018461276d565b9695505050505050565b6000602082019050612951600083018461277c565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006129b782612aff565b91506129c283612aff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156129f7576129f6612c0c565b5b828201905092915050565b6000612a0d82612aff565b9150612a1883612aff565b925082612a2857612a27612c3b565b5b828204905092915050565b6000612a3e82612aff565b9150612a4983612aff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a8257612a81612c0c565b5b828202905092915050565b6000612a9882612aff565b9150612aa383612aff565b925082821015612ab657612ab5612c0c565b5b828203905092915050565b6000612acc82612adf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b2182612b3a565b9050919050565b6000612b3382612aff565b9050919050565b6000612b4582612b4c565b9050919050565b6000612b5782612adf565b9050919050565b60005b83811015612b7c578082015181840152602081019050612b61565b83811115612b8b576000848401525b50505050565b60006002820490506001821680612ba957607f821691505b60208210811415612bbd57612bbc612c6a565b5b50919050565b6000612bce82612aff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c0157612c00612c0c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b612e0981612ac1565b8114612e1457600080fd5b50565b612e2081612ad3565b8114612e2b57600080fd5b50565b612e3781612aff565b8114612e4257600080fd5b5056fea2646970667358221220d377ba6d50ba2a3302dbf211a88289734d0c951dbb696ca10e448367b407fdc064736f6c63430008070033

Deployed Bytecode Sourcemap

3114:9057:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5820:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6583:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6024:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6750:336;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7938:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5922:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3407:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3778:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3506:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5612:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6132:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2737:148;;;;;;;;;;;;;:::i;:::-;;3687:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7725:132;;;;;;;;;;;;;:::i;:::-;;2540:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12010:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5714:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11303:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6259:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7317:87;;;;;;;;;;;;;:::i;:::-;;8256:315;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7679:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7279:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6432:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5462:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3628:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2893:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5820:94;5868:13;5901:5;5894:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5820:94;:::o;6583:159::-;6658:4;6675:37;6684:10;6696:7;6705:6;6675:8;:37::i;:::-;6730:4;6723:11;;6583:159;;;;:::o;6024:100::-;6077:7;6104:12;;6097:19;;6024:100;:::o;6750:336::-;6848:4;6865:36;6875:6;6883:9;6894:6;6865:9;:36::i;:::-;3767:1;3758:11;6916;:19;6928:6;6916:19;;;;;;;;;;;;;;;:31;6936:10;6916:31;;;;;;;;;;;;;;;;:38;6912:145;;7039:6;7005:11;:19;7017:6;7005:19;;;;;;;;;;;;;;;:31;7025:10;7005:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;6971:11;:19;6983:6;6971:19;;;;;;;;;;;;;;;:31;6991:10;6971:31;;;;;;;;;;;;;;;:74;;;;6912:145;7074:4;7067:11;;6750:336;;;;;:::o;7938:26::-;;;;:::o;5922:94::-;5974:5;5999:9;;;;;;;;;;;5992:16;;5922:94;:::o;3407:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;3551:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;3778:27::-;;;;;;;;;;;;;:::o;3506:36::-;;;;;;;;;;;;;:::o;5612:94::-;2677:10;2667:20;;:6;;;;;;;;;;:20;;;2659:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;5691:7:::1;5677:11;;:21;;;;;;;;;;;;;;;;;;5612:94:::0;:::o;6132:119::-;6198:7;6225:9;:18;6235:7;6225:18;;;;;;;;;;;;;;;;6218:25;;6132:119;;;:::o;2737:148::-;2677:10;2667:20;;:6;;;;;;;;;;:20;;;2659:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;2844:1:::1;2807:40;;2828:6;::::0;::::1;;;;;;;;2807:40;;;;;;;;;;;;2875:1;2858:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2737:148::o:0;3687:31::-;;;;:::o;7725:132::-;2677:10;2667:20;;:6;;;;;;;;;;:20;;;2659:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;7801:5:::1;7778:20;;:28;;;;;;;;;;;;;;;;;;7836:13;:11;:13::i;:::-;7817:16;:32;;;;7725:132::o:0;2540:79::-;2578:7;2605:6;;;;;;;;;;;2598:13;;2540:79;:::o;12010:121::-;2677:10;2667:20;;:6;;;;;;;;;;:20;;;2659:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;12118:5:::1;12089:17;:26;12107:7;12089:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12010:121:::0;;:::o;5714:98::-;5764:13;5797:7;5790:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5714:98;:::o;11303:262::-;11381:4;11363:23;;:6;:23;;;11360:198;;11409:6;11402:23;;;11426:11;;;;;;;;;;;11446:6;11439:24;;;11472:4;11439:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11402:77;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11502:11;;;;;;;;;;;11494:29;;:52;11524:21;11494:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11360:198;11303:262;:::o;6259:165::-;6337:4;6354:40;6364:10;6376:9;6387:6;6354:9;:40::i;:::-;6412:4;6405:11;;6259:165;;;;:::o;7317:87::-;2677:10;2667:20;;:6;;;;;;;;;;:20;;;2659:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;7384:12:::1;;;;;;;;;;;7383:13;7368:12;;:28;;;;;;;;;;;;;;;;;;7317:87::o:0;8256:315::-;2677:10;2667:20;;:6;;;;;;;;;;:20;;;2659:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8439:6:::1;8424:12;:21;;;;8472:7;8456:13;:23;;;;8508:12;8490:15;:30;;;;8550:13;8531:16;:32;;;;8256:315:::0;;;;:::o;7679:39::-;;;;;;;;;;;;;:::o;7279:31::-;;;;;;;;;;;;;:::o;6432:143::-;6513:7;6540:11;:18;6552:5;6540:18;;;;;;;;;;;;;;;:27;6559:7;6540:27;;;;;;;;;;;;;;;;6533:34;;6432:143;;;;:::o;5462:142::-;2677:10;2667:20;;:6;;;;;;;;;;:20;;;2659:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;5592:4:::1;5575:13;5559;:11;:13::i;:::-;:29;;;;:::i;:::-;5558:38;;;;:::i;:::-;5539:16;:57;;;;5462:142:::0;:::o;3628:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;2893:214::-;2677:10;2667:20;;:6;;;;;;;;;;:20;;;2659:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;3002:1:::1;2982:22;;:8;:22;;;;2974:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;3062:8;3033:38;;3054:6;::::0;::::1;;;;;;;;3033:38;;;;;;;;;;;;3091:8;3082:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2893:214:::0;:::o;7094:177::-;7209:6;7179:11;:18;7191:5;7179:18;;;;;;;;;;;;;;;:27;7198:7;7179:27;;;;;;;;;;;;;;;:36;;;;7247:7;7231:32;;7240:5;7231:32;;;7256:6;7231:32;;;;;;:::i;:::-;;;;;;;;7094:177;;;:::o;8579:1677::-;8693:15;8711;8721:4;8711:9;:15::i;:::-;8693:33;;8756:6;8745:7;:17;;8737:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8800:6;;;;;;;;;;;8796:91;;;8822:32;8837:4;8843:2;8847:6;8822:14;:32::i;:::-;;8869:7;;;8796:91;8899:12;8928;:16;8941:2;8928:16;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;;;8949:6;;;;;;;;;;;8948:7;8928:27;:55;;;;;8960:17;:23;8978:4;8960:23;;;;;;;;;;;;;;;;;;;;;;;;;8959:24;8928:55;:81;;;;;8988:17;:21;9006:2;8988:21;;;;;;;;;;;;;;;;;;;;;;;;;8987:22;8928:81;:115;;;;;9025:18;;9013:9;;:30;8928:115;8924:356;;;9060:12;9075:24;9093:4;9075:9;:24::i;:::-;9060:39;;9114:21;9147:4;9138:6;:13;:29;;9161:6;9138:29;;;9154:4;9138:29;9114:53;;9202:1;9186:13;:17;9182:87;;;9223:30;9239:13;9223:15;:30::i;:::-;9182:87;9045:235;;8924:356;9297:17;:23;9315:4;9297:23;;;;;;;;;;;;;;;;;;;;;;;;;9296:24;:50;;;;;9325:17;:21;9343:2;9325:21;;;;;;;;;;;;;;;;;;;;;;;;;9324:22;9296:50;:61;;;;;9351:6;;;;;;;;;;;9350:7;9296:61;9292:903;;;9384:4;9374:14;;9446:12;:18;9459:4;9446:18;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;9482:14;;;;;;;;;;;9468:29;;:2;:29;;;;9446:51;:77;;;;;9502:17;:21;9520:2;9502:21;;;;;;;;;;;;;;;;;;;;;;;;;9501:22;9446:77;9442:129;;;9544:9;;:11;;;;;;;;;:::i;:::-;;;;;;9442:129;9620:12;;;;;;;;;;;:33;;;;;9646:7;9636:6;:17;9620:33;9616:108;;;9702:5;9693:6;:14;;;;:::i;:::-;9683:6;:25;;;;:::i;:::-;9674:34;;9616:108;9786:20;;;;;;;;;;;9782:402;;;9877:12;9835:28;:39;9864:9;9835:39;;;;;;;;;;;;;;;;:54;9827:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;9990:12;9948:28;:39;9977:9;9948:39;;;;;;;;;;;;;;;:54;;;;10026:20;:24;10047:2;10026:24;;;;;;;;;;;;;;;;;;;;;;;;;10021:148;;10109:16;;10092:13;10102:2;10092:9;:13::i;:::-;10083:6;:22;;;;:::i;:::-;:42;;10075:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10021:148;9782:402;9292:903;10207:41;10222:4;10228:2;10232:6;10240:7;10207:14;:41::i;:::-;8682:1574;;8579:1677;;;;:::o;7412:259::-;7505:4;7543:6;7522:9;:17;7532:6;7522:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;7584:6;7560:9;:20;7570:9;7560:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7623:9;7606:35;;7615:6;7606:35;;;7634:6;7606:35;;;;;;:::i;:::-;;;;;;;;7659:4;7652:11;;7412:259;;;;;:::o;11573:429::-;3855:4;3846:6;;:13;;;;;;;;;;;;;;;;;;11650:21:::1;11688:1;11674:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11650:40;;11719:4;11701;11706:1;11701:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11745:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11735:4;11740:1;11735:7;;;;;;;;:::i;:::-;;;;;;;:31;;;;;;;;;::::0;::::1;11781:14;;;;;;;;;;;:65;;;11861:11;11887:1;11903:4;11930:11;;;;;;;;;;;11957:15;11781:202;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;11777:218;;;;;;11639:363;3891:5:::0;3882:6;;:14;;;;;;;;;;;;;;;;;;11573:429;:::o;10264:1031::-;10456:7;10436:9;:17;10446:6;10436:17;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;10416:9;:17;10426:6;10416:17;;;;;;;;;;;;;;;:47;;;;10474:17;10508:7;10504:638;;;10532:14;10565:12;:23;10578:9;10565:23;;;;;;;;;;;;;;;;;;;;;;;;;10561:270;;;10630:15;;10618:9;;:27;:59;;10663:14;;10618:59;;;10648:12;;10618:59;10609:68;;10561:270;;;10703:12;:20;10716:6;10703:20;;;;;;;;;;;;;;;;;;;;;;;;;10699:132;;;10765:16;;10753:9;;:28;:62;;10800:15;;10753:62;;;10784:13;;10753:62;10744:71;;10699:132;10561:270;10845:18;10885:3;10876:6;10866:7;:16;;;;:::i;:::-;:22;;;;:::i;:::-;10845:43;;10920:1;10907:10;:14;10903:228;;;10955:10;10942:23;;;;;:::i;:::-;;;11038:10;11011:9;:24;11029:4;11011:24;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;10984:9;:24;11002:4;10984:24;;;;;;;;;;;;;;;:64;;;;11097:4;11072:43;;11081:6;11072:43;;;11104:10;11072:43;;;;;;:::i;:::-;;;;;;;;10903:228;10517:625;;10504:638;11211:9;11201:7;:19;;;;:::i;:::-;11177:9;:20;11187:9;11177:20;;;;;;;;;;;;;;;;:44;;;;:::i;:::-;11154:9;:20;11164:9;11154:20;;;;;;;;;;;;;;;:67;;;;11254:9;11237:48;;11246:6;11237:48;;;11275:9;11265:7;:19;;;;:::i;:::-;11237:48;;;;;;:::i;:::-;;;;;;;;10405:890;10264:1031;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;440:137;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;583:139;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;728:143;;;;:::o;877:329::-;936:6;985:2;973:9;964:7;960:23;956:32;953:119;;;991:79;;:::i;:::-;953:119;1111:1;1136:53;1181:7;1172:6;1161:9;1157:22;1136:53;:::i;:::-;1126:63;;1082:117;877:329;;;;:::o;1212:351::-;1282:6;1331:2;1319:9;1310:7;1306:23;1302:32;1299:119;;;1337:79;;:::i;:::-;1299:119;1457:1;1482:64;1538:7;1529:6;1518:9;1514:22;1482:64;:::i;:::-;1472:74;;1428:128;1212:351;;;;:::o;1569:474::-;1637:6;1645;1694:2;1682:9;1673:7;1669:23;1665:32;1662:119;;;1700:79;;:::i;:::-;1662:119;1820:1;1845:53;1890:7;1881:6;1870:9;1866:22;1845:53;:::i;:::-;1835:63;;1791:117;1947:2;1973:53;2018:7;2009:6;1998:9;1994:22;1973:53;:::i;:::-;1963:63;;1918:118;1569:474;;;;;:::o;2049:619::-;2126:6;2134;2142;2191:2;2179:9;2170:7;2166:23;2162:32;2159:119;;;2197:79;;:::i;:::-;2159:119;2317:1;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2288:117;2444:2;2470:53;2515:7;2506:6;2495:9;2491:22;2470:53;:::i;:::-;2460:63;;2415:118;2572:2;2598:53;2643:7;2634:6;2623:9;2619:22;2598:53;:::i;:::-;2588:63;;2543:118;2049:619;;;;;:::o;2674:468::-;2739:6;2747;2796:2;2784:9;2775:7;2771:23;2767:32;2764:119;;;2802:79;;:::i;:::-;2764:119;2922:1;2947:53;2992:7;2983:6;2972:9;2968:22;2947:53;:::i;:::-;2937:63;;2893:117;3049:2;3075:50;3117:7;3108:6;3097:9;3093:22;3075:50;:::i;:::-;3065:60;;3020:115;2674:468;;;;;:::o;3148:474::-;3216:6;3224;3273:2;3261:9;3252:7;3248:23;3244:32;3241:119;;;3279:79;;:::i;:::-;3241:119;3399:1;3424:53;3469:7;3460:6;3449:9;3445:22;3424:53;:::i;:::-;3414:63;;3370:117;3526:2;3552:53;3597:7;3588:6;3577:9;3573:22;3552:53;:::i;:::-;3542:63;;3497:118;3148:474;;;;;:::o;3628:345::-;3695:6;3744:2;3732:9;3723:7;3719:23;3715:32;3712:119;;;3750:79;;:::i;:::-;3712:119;3870:1;3895:61;3948:7;3939:6;3928:9;3924:22;3895:61;:::i;:::-;3885:71;;3841:125;3628:345;;;;:::o;3979:329::-;4038:6;4087:2;4075:9;4066:7;4062:23;4058:32;4055:119;;;4093:79;;:::i;:::-;4055:119;4213:1;4238:53;4283:7;4274:6;4263:9;4259:22;4238:53;:::i;:::-;4228:63;;4184:117;3979:329;;;;:::o;4314:351::-;4384:6;4433:2;4421:9;4412:7;4408:23;4404:32;4401:119;;;4439:79;;:::i;:::-;4401:119;4559:1;4584:64;4640:7;4631:6;4620:9;4616:22;4584:64;:::i;:::-;4574:74;;4530:128;4314:351;;;;:::o;4671:765::-;4757:6;4765;4773;4781;4830:3;4818:9;4809:7;4805:23;4801:33;4798:120;;;4837:79;;:::i;:::-;4798:120;4957:1;4982:53;5027:7;5018:6;5007:9;5003:22;4982:53;:::i;:::-;4972:63;;4928:117;5084:2;5110:53;5155:7;5146:6;5135:9;5131:22;5110:53;:::i;:::-;5100:63;;5055:118;5212:2;5238:53;5283:7;5274:6;5263:9;5259:22;5238:53;:::i;:::-;5228:63;;5183:118;5340:2;5366:53;5411:7;5402:6;5391:9;5387:22;5366:53;:::i;:::-;5356:63;;5311:118;4671:765;;;;;;;:::o;5442:179::-;5511:10;5532:46;5574:3;5566:6;5532:46;:::i;:::-;5610:4;5605:3;5601:14;5587:28;;5442:179;;;;:::o;5627:108::-;5704:24;5722:5;5704:24;:::i;:::-;5699:3;5692:37;5627:108;;:::o;5741:118::-;5828:24;5846:5;5828:24;:::i;:::-;5823:3;5816:37;5741:118;;:::o;5895:732::-;6014:3;6043:54;6091:5;6043:54;:::i;:::-;6113:86;6192:6;6187:3;6113:86;:::i;:::-;6106:93;;6223:56;6273:5;6223:56;:::i;:::-;6302:7;6333:1;6318:284;6343:6;6340:1;6337:13;6318:284;;;6419:6;6413:13;6446:63;6505:3;6490:13;6446:63;:::i;:::-;6439:70;;6532:60;6585:6;6532:60;:::i;:::-;6522:70;;6378:224;6365:1;6362;6358:9;6353:14;;6318:284;;;6322:14;6618:3;6611:10;;6019:608;;;5895:732;;;;:::o;6633:109::-;6714:21;6729:5;6714:21;:::i;:::-;6709:3;6702:34;6633:109;;:::o;6748:175::-;6857:59;6910:5;6857:59;:::i;:::-;6852:3;6845:72;6748:175;;:::o;6929:147::-;7024:45;7063:5;7024:45;:::i;:::-;7019:3;7012:58;6929:147;;:::o;7082:364::-;7170:3;7198:39;7231:5;7198:39;:::i;:::-;7253:71;7317:6;7312:3;7253:71;:::i;:::-;7246:78;;7333:52;7378:6;7373:3;7366:4;7359:5;7355:16;7333:52;:::i;:::-;7410:29;7432:6;7410:29;:::i;:::-;7405:3;7401:39;7394:46;;7174:272;7082:364;;;;:::o;7452:366::-;7594:3;7615:67;7679:2;7674:3;7615:67;:::i;:::-;7608:74;;7691:93;7780:3;7691:93;:::i;:::-;7809:2;7804:3;7800:12;7793:19;;7452:366;;;:::o;7824:365::-;7966:3;7987:66;8051:1;8046:3;7987:66;:::i;:::-;7980:73;;8062:93;8151:3;8062:93;:::i;:::-;8180:2;8175:3;8171:12;8164:19;;7824:365;;;:::o;8195:366::-;8337:3;8358:67;8422:2;8417:3;8358:67;:::i;:::-;8351:74;;8434:93;8523:3;8434:93;:::i;:::-;8552:2;8547:3;8543:12;8536:19;;8195:366;;;:::o;8567:::-;8709:3;8730:67;8794:2;8789:3;8730:67;:::i;:::-;8723:74;;8806:93;8895:3;8806:93;:::i;:::-;8924:2;8919:3;8915:12;8908:19;;8567:366;;;:::o;8939:::-;9081:3;9102:67;9166:2;9161:3;9102:67;:::i;:::-;9095:74;;9178:93;9267:3;9178:93;:::i;:::-;9296:2;9291:3;9287:12;9280:19;;8939:366;;;:::o;9311:118::-;9398:24;9416:5;9398:24;:::i;:::-;9393:3;9386:37;9311:118;;:::o;9435:112::-;9518:22;9534:5;9518:22;:::i;:::-;9513:3;9506:35;9435:112;;:::o;9553:222::-;9646:4;9684:2;9673:9;9669:18;9661:26;;9697:71;9765:1;9754:9;9750:17;9741:6;9697:71;:::i;:::-;9553:222;;;;:::o;9781:332::-;9902:4;9940:2;9929:9;9925:18;9917:26;;9953:71;10021:1;10010:9;10006:17;9997:6;9953:71;:::i;:::-;10034:72;10102:2;10091:9;10087:18;10078:6;10034:72;:::i;:::-;9781:332;;;;;:::o;10119:210::-;10206:4;10244:2;10233:9;10229:18;10221:26;;10257:65;10319:1;10308:9;10304:17;10295:6;10257:65;:::i;:::-;10119:210;;;;:::o;10335:266::-;10450:4;10488:2;10477:9;10473:18;10465:26;;10501:93;10591:1;10580:9;10576:17;10567:6;10501:93;:::i;:::-;10335:266;;;;:::o;10607:313::-;10720:4;10758:2;10747:9;10743:18;10735:26;;10807:9;10801:4;10797:20;10793:1;10782:9;10778:17;10771:47;10835:78;10908:4;10899:6;10835:78;:::i;:::-;10827:86;;10607:313;;;;:::o;10926:419::-;11092:4;11130:2;11119:9;11115:18;11107:26;;11179:9;11173:4;11169:20;11165:1;11154:9;11150:17;11143:47;11207:131;11333:4;11207:131;:::i;:::-;11199:139;;10926:419;;;:::o;11351:::-;11517:4;11555:2;11544:9;11540:18;11532:26;;11604:9;11598:4;11594:20;11590:1;11579:9;11575:17;11568:47;11632:131;11758:4;11632:131;:::i;:::-;11624:139;;11351:419;;;:::o;11776:::-;11942:4;11980:2;11969:9;11965:18;11957:26;;12029:9;12023:4;12019:20;12015:1;12004:9;12000:17;11993:47;12057:131;12183:4;12057:131;:::i;:::-;12049:139;;11776:419;;;:::o;12201:::-;12367:4;12405:2;12394:9;12390:18;12382:26;;12454:9;12448:4;12444:20;12440:1;12429:9;12425:17;12418:47;12482:131;12608:4;12482:131;:::i;:::-;12474:139;;12201:419;;;:::o;12626:::-;12792:4;12830:2;12819:9;12815:18;12807:26;;12879:9;12873:4;12869:20;12865:1;12854:9;12850:17;12843:47;12907:131;13033:4;12907:131;:::i;:::-;12899:139;;12626:419;;;:::o;13051:222::-;13144:4;13182:2;13171:9;13167:18;13159:26;;13195:71;13263:1;13252:9;13248:17;13239:6;13195:71;:::i;:::-;13051:222;;;;:::o;13279:831::-;13542:4;13580:3;13569:9;13565:19;13557:27;;13594:71;13662:1;13651:9;13647:17;13638:6;13594:71;:::i;:::-;13675:80;13751:2;13740:9;13736:18;13727:6;13675:80;:::i;:::-;13802:9;13796:4;13792:20;13787:2;13776:9;13772:18;13765:48;13830:108;13933:4;13924:6;13830:108;:::i;:::-;13822:116;;13948:72;14016:2;14005:9;14001:18;13992:6;13948:72;:::i;:::-;14030:73;14098:3;14087:9;14083:19;14074:6;14030:73;:::i;:::-;13279:831;;;;;;;;:::o;14116:214::-;14205:4;14243:2;14232:9;14228:18;14220:26;;14256:67;14320:1;14309:9;14305:17;14296:6;14256:67;:::i;:::-;14116:214;;;;:::o;14417:132::-;14484:4;14507:3;14499:11;;14537:4;14532:3;14528:14;14520:22;;14417:132;;;:::o;14555:114::-;14622:6;14656:5;14650:12;14640:22;;14555:114;;;:::o;14675:99::-;14727:6;14761:5;14755:12;14745:22;;14675:99;;;:::o;14780:113::-;14850:4;14882;14877:3;14873:14;14865:22;;14780:113;;;:::o;14899:184::-;14998:11;15032:6;15027:3;15020:19;15072:4;15067:3;15063:14;15048:29;;14899:184;;;;:::o;15089:169::-;15173:11;15207:6;15202:3;15195:19;15247:4;15242:3;15238:14;15223:29;;15089:169;;;;:::o;15264:305::-;15304:3;15323:20;15341:1;15323:20;:::i;:::-;15318:25;;15357:20;15375:1;15357:20;:::i;:::-;15352:25;;15511:1;15443:66;15439:74;15436:1;15433:81;15430:107;;;15517:18;;:::i;:::-;15430:107;15561:1;15558;15554:9;15547:16;;15264:305;;;;:::o;15575:185::-;15615:1;15632:20;15650:1;15632:20;:::i;:::-;15627:25;;15666:20;15684:1;15666:20;:::i;:::-;15661:25;;15705:1;15695:35;;15710:18;;:::i;:::-;15695:35;15752:1;15749;15745:9;15740:14;;15575:185;;;;:::o;15766:348::-;15806:7;15829:20;15847:1;15829:20;:::i;:::-;15824:25;;15863:20;15881:1;15863:20;:::i;:::-;15858:25;;16051:1;15983:66;15979:74;15976:1;15973:81;15968:1;15961:9;15954:17;15950:105;15947:131;;;16058:18;;:::i;:::-;15947:131;16106:1;16103;16099:9;16088:20;;15766:348;;;;:::o;16120:191::-;16160:4;16180:20;16198:1;16180:20;:::i;:::-;16175:25;;16214:20;16232:1;16214:20;:::i;:::-;16209:25;;16253:1;16250;16247:8;16244:34;;;16258:18;;:::i;:::-;16244:34;16303:1;16300;16296:9;16288:17;;16120:191;;;;:::o;16317:96::-;16354:7;16383:24;16401:5;16383:24;:::i;:::-;16372:35;;16317:96;;;:::o;16419:90::-;16453:7;16496:5;16489:13;16482:21;16471:32;;16419:90;;;:::o;16515:126::-;16552:7;16592:42;16585:5;16581:54;16570:65;;16515:126;;;:::o;16647:77::-;16684:7;16713:5;16702:16;;16647:77;;;:::o;16730:86::-;16765:7;16805:4;16798:5;16794:16;16783:27;;16730:86;;;:::o;16822:148::-;16894:9;16927:37;16958:5;16927:37;:::i;:::-;16914:50;;16822:148;;;:::o;16976:121::-;17034:9;17067:24;17085:5;17067:24;:::i;:::-;17054:37;;16976:121;;;:::o;17103:126::-;17153:9;17186:37;17217:5;17186:37;:::i;:::-;17173:50;;17103:126;;;:::o;17235:113::-;17285:9;17318:24;17336:5;17318:24;:::i;:::-;17305:37;;17235:113;;;:::o;17354:307::-;17422:1;17432:113;17446:6;17443:1;17440:13;17432:113;;;17531:1;17526:3;17522:11;17516:18;17512:1;17507:3;17503:11;17496:39;17468:2;17465:1;17461:10;17456:15;;17432:113;;;17563:6;17560:1;17557:13;17554:101;;;17643:1;17634:6;17629:3;17625:16;17618:27;17554:101;17403:258;17354:307;;;:::o;17667:320::-;17711:6;17748:1;17742:4;17738:12;17728:22;;17795:1;17789:4;17785:12;17816:18;17806:81;;17872:4;17864:6;17860:17;17850:27;;17806:81;17934:2;17926:6;17923:14;17903:18;17900:38;17897:84;;;17953:18;;:::i;:::-;17897:84;17718:269;17667:320;;;:::o;17993:233::-;18032:3;18055:24;18073:5;18055:24;:::i;:::-;18046:33;;18101:66;18094:5;18091:77;18088:103;;;18171:18;;:::i;:::-;18088:103;18218:1;18211:5;18207:13;18200:20;;17993:233;;;:::o;18232:180::-;18280:77;18277:1;18270:88;18377:4;18374:1;18367:15;18401:4;18398:1;18391:15;18418:180;18466:77;18463:1;18456:88;18563:4;18560:1;18553:15;18587:4;18584:1;18577:15;18604:180;18652:77;18649:1;18642:88;18749:4;18746:1;18739:15;18773:4;18770:1;18763:15;18790:180;18838:77;18835:1;18828:88;18935:4;18932:1;18925:15;18959:4;18956:1;18949:15;18976:180;19024:77;19021:1;19014:88;19121:4;19118:1;19111:15;19145:4;19142:1;19135:15;19285:117;19394:1;19391;19384:12;19408:102;19449:6;19500:2;19496:7;19491:2;19484:5;19480:14;19476:28;19466:38;;19408:102;;;:::o;19516:166::-;19656:18;19652:1;19644:6;19640:14;19633:42;19516:166;:::o;19688:158::-;19828:10;19824:1;19816:6;19812:14;19805:34;19688:158;:::o;19852:167::-;19992:19;19988:1;19980:6;19976:14;19969:43;19852:167;:::o;20025:169::-;20165:21;20161:1;20153:6;20149:14;20142:45;20025:169;:::o;20200:223::-;20340:34;20336:1;20328:6;20324:14;20317:58;20409:6;20404:2;20396:6;20392:15;20385:31;20200:223;:::o;20429:122::-;20502:24;20520:5;20502:24;:::i;:::-;20495:5;20492:35;20482:63;;20541:1;20538;20531:12;20482:63;20429:122;:::o;20557:116::-;20627:21;20642:5;20627:21;:::i;:::-;20620:5;20617:32;20607:60;;20663:1;20660;20653:12;20607:60;20557:116;:::o;20679:122::-;20752:24;20770:5;20752:24;:::i;:::-;20745:5;20742:35;20732:63;;20791:1;20788;20781:12;20732:63;20679:122;:::o

Swarm Source

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