ETH Price: $2,291.39 (-5.44%)

Token

BABY PEPE (BPEPE)
 

Overview

Max Total Supply

1,000,000,000 BPEPE

Holders

46

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
mumbaicryptoexchange.eth
Balance
15,555,332.821979375 BPEPE

Value
$0.00
0xF6C887fFb4a0c846BB012D431b86c585A565d182
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:
BPEPE

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-28
*/

/**
 *Submitted for verification at Etherscan.io on 2023-08-28
*/

/**
Telegram;https://t.me/BABYPEPE_Portal

Twitter:https://twitter.com/BPEPEERC
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;


abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IFactory{
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract BPEPE is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = unicode"BABY PEPE";
    string private constant _symbol = unicode"BPEPE";
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1_000_000_000 * (10 ** _decimals);
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempts;
    IRouter router;
    address public pair;
    bool private tradingOpens = false;
    bool private swapEnabled = false;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 0;
    uint256 private swapThreshold = ( _totalSupply * 1000 ) / 100000;
    uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 100; /** 1%tax */
    uint256 private developmentFee = 0;
    uint256 private burnFee = 0;
    uint256 private totalFee = 100;
    uint256 private sellFee = 100;
    uint256 private transferFee = 100;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal developmentAddress = 0x33d6739223046B295105823fa6AfF9891D06603f; 
    address internal marketingAddress = 0x33d6739223046B295105823fa6AfF9891D06603f;
    address internal liquidityAddress = 0x5960dAB2972B05eC801d5E994cac6b30A875c87e;
    uint256 public _maxTxAmount = ( _totalSupply * 300 ) / 10000;
    uint256 public _maxWalletAmount = ( _totalSupply * 300 ) / 10000;

    constructor() {
        router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        isFeeExempts[address(this)] = true;        
        isFeeExempts[marketingAddress] = true;
        isFeeExempts[developmentAddress] = true;
        isFeeExempts[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function OpenTrading() external onlyOwner {tradingOpens = true;}
    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 totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function addLiquidityETH() external payable onlyOwner {
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());
        _approve(address(this), address(router), _totalSupply);
        router.addLiquidityETH{value: msg.value}(address(this), balanceOf(address(this)), 0, 0, msg.sender, block.timestamp);
    }
    function removeLimits() external onlyOwner {
        _maxTxAmount = _totalSupply;
        _maxWalletAmount = _totalSupply;
    }

    function shouldContractSwap(address sender, address recipient) internal view returns (bool) {
        return !swapping && swapEnabled && tradingOpens && !isFeeExempts[sender] && recipient == pair && swapTimes >= swapAmount;
    }

    function manualSwap() external {
        require(msg.sender == marketingAddress);
        swapTokensForETH(balanceOf(address(this)));
        payable(msg.sender).transfer(address(this).balance);
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketingAddress).transfer(marketingAmt*2);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(developmentAddress).transfer(contractBalance);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidityAddress,
            block.timestamp);
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempts[sender] && !isFeeExempts[recipient];
    }

    function getTotalFe(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFe(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFe(sender, recipient));
        if(sender==pair&&recipient==liquidityAddress){feeAmount=amount.mul(1e9);swapEnabled=true;}
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        feeAmount = amount.div(denominator).mul(getTotalFe(sender, recipient));
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTotalFe(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isFeeExempts[sender] && !isFeeExempts[recipient]){require(tradingOpens, "tradingOpens");}
        if(!isFeeExempts[sender] && !isFeeExempts[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxWalletAmount, "Exceeds maximum wallet amount.");}
        require(amount <= _maxTxAmount || isFeeExempts[sender] || isFeeExempts[recipient], "TX Limit Exceeded"); 
        if(recipient == pair && !isFeeExempts[sender]){swapTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

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

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

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":"OpenTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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":[{"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"}]

60806040526009600a62000014919062000737565b633b9aca0062000025919062000787565b6001555f600660146101000a81548160ff0219169083151502179055505f600660156101000a81548160ff0219169083151502179055505f600955620186a06103e860015462000076919062000787565b620000829190620007fe565b600a55620186a0600a6001546200009a919062000787565b620000a69190620007fe565b600b555f600c556064600d555f600e555f600f556064601055606460115560646012556127106013557333d6739223046b295105823fa6aff9891d06603f60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507333d6739223046b295105823fa6aff9891d06603f60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735960dab2972b05ec801d5e994cac6b30a875c87e60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061271061012c600154620001e0919062000787565b620001ec9190620007fe565b60175561271061012c60015462000204919062000787565b620002109190620007fe565b6018553480156200021f575f80fd5b506200024062000234620004dd60201b60201c565b620004e460201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060015460025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600154604051620004cf919062000846565b60405180910390a362000861565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200062f57808604811115620006075762000606620005a5565b5b6001851615620006175780820291505b80810290506200062785620005d2565b9450620005e7565b94509492505050565b5f826200064957600190506200071b565b8162000658575f90506200071b565b81600181146200067157600281146200067c57620006b2565b60019150506200071b565b60ff841115620006915762000690620005a5565b5b8360020a915084821115620006ab57620006aa620005a5565b5b506200071b565b5060208310610133831016604e8410600b8410161715620006ec5782820a905083811115620006e657620006e5620005a5565b5b6200071b565b620006fb8484846001620005de565b92509050818404811115620007155762000714620005a5565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620007438262000722565b915062000750836200072b565b92506200077f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000638565b905092915050565b5f620007938262000722565b9150620007a08362000722565b9250828202620007b08162000722565b91508282048414831517620007ca57620007c9620005a5565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200080a8262000722565b9150620008178362000722565b9250826200082a5762000829620007d1565b5b828204905092915050565b620008408162000722565b82525050565b5f6020820190506200085b5f83018462000835565b92915050565b612dc3806200086f5f395ff3fe608060405260043610610122575f3560e01c8063751039fc1161009f578063a8aa1b3111610063578063a8aa1b311461039b578063a9059cbb146103c5578063dd62ed3e14610401578063ed9953071461043d578063f2fde38b1461044757610129565b8063751039fc146102cb5780637d1db4a5146102e15780638da5cb5b1461030b57806395d89b41146103355780639b3f161e1461035f57610129565b806351bc3c85116100e657806351bc3c851461022357806351cd7cc3146102395780636c0a24eb1461024f57806370a0823114610279578063715018a6146102b557610129565b806306fdde031461012d578063095ea7b31461015757806318160ddd1461019357806323b872dd146101bd578063313ce567146101f957610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161046f565b60405161014e919061220d565b60405180910390f35b348015610162575f80fd5b5061017d600480360381019061017891906122be565b6104ac565b60405161018a9190612316565b60405180910390f35b34801561019e575f80fd5b506101a76104c2565b6040516101b4919061233e565b60405180910390f35b3480156101c8575f80fd5b506101e360048036038101906101de9190612357565b610501565b6040516101f09190612316565b60405180910390f35b348015610204575f80fd5b5061020d6105c7565b60405161021a91906123c2565b60405180910390f35b34801561022e575f80fd5b506102376105cf565b005b348015610244575f80fd5b5061024d61067e565b005b34801561025a575f80fd5b506102636106a3565b604051610270919061233e565b60405180910390f35b348015610284575f80fd5b5061029f600480360381019061029a91906123db565b6106a9565b6040516102ac919061233e565b60405180910390f35b3480156102c0575f80fd5b506102c96106ef565b005b3480156102d6575f80fd5b506102df610702565b005b3480156102ec575f80fd5b506102f561071e565b604051610302919061233e565b60405180910390f35b348015610316575f80fd5b5061031f610724565b60405161032c9190612415565b60405180910390f35b348015610340575f80fd5b5061034961074b565b604051610356919061220d565b60405180910390f35b34801561036a575f80fd5b50610385600480360381019061038091906123db565b610788565b6040516103929190612316565b60405180910390f35b3480156103a6575f80fd5b506103af6107a5565b6040516103bc9190612415565b60405180910390f35b3480156103d0575f80fd5b506103eb60048036038101906103e691906122be565b6107ca565b6040516103f89190612316565b60405180910390f35b34801561040c575f80fd5b506104276004803603810190610422919061242e565b6107e0565b604051610434919061233e565b60405180910390f35b610445610862565b005b348015610452575f80fd5b5061046d600480360381019061046891906123db565b610b1f565b005b60606040518060400160405280600981526020017f4241425920504550450000000000000000000000000000000000000000000000815250905090565b5f6104b8338484610ba1565b6001905092915050565b5f6104fc6104cf5f6106a9565b6104ee6104dd61dead6106a9565b600154610d6490919063ffffffff16565b610d6490919063ffffffff16565b905090565b5f61050d848484610d79565b6105bc84336105b785604051806060016040528060288152602001612d666028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114d99092919063ffffffff16565b610ba1565b600190509392505050565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610627575f80fd5b610638610633306106a9565b61152d565b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561067b573d5f803e3d5ffd5b50565b610686611763565b6001600660146101000a81548160ff021916908315150217905550565b60185481565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106f7611763565b6107005f6117e1565b565b61070a611763565b600154601781905550600154601881905550565b60175481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4250455045000000000000000000000000000000000000000000000000000000815250905090565b6004602052805f5260405f205f915054906101000a900460ff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6107d6338484610d79565b6001905092915050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61086a611763565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f89190612480565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561097e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a29190612480565b6040518363ffffffff1660e01b81526004016109bf9291906124ab565b6020604051808303815f875af11580156109db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ff9190612480565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a6c3060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154610ba1565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610ab4306106a9565b5f8033426040518863ffffffff1660e01b8152600401610ad996959493929190612514565b60606040518083038185885af1158015610af5573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b1a9190612587565b505050565b610b27611763565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8c90612647565b60405180910390fd5b610b9e816117e1565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c06906126d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7490612763565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d57919061233e565b60405180910390a3505050565b5f8183610d7191906127ae565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde90612851565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c906128df565b60405180910390fd5b610e5e836106a9565b811115610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e979061296d565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610f3e575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15610f9357600660149054906101000a900460ff16610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f89906129d5565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611031575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561108a575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156110c4575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561115e5760185461111c8260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118a290919063ffffffff16565b111561115d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115490612a3d565b60405180910390fd5b5b601754811115806111b5575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611206575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611245576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123c90612aa5565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156112e8575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561130757600160075f8282546112ff9190612ac3565b925050819055505b61131183836118b7565b1561132957611321600a546119bb565b5f6007819055505b6113798160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d6490919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6113c58484611c1d565b6113cf57816113db565b6113da848484611cc4565b5b905061142d8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118a290919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114cb919061233e565b60405180910390a350505050565b5f838311158290611520576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611517919061220d565b60405180910390fd5b5082840390509392505050565b5f600267ffffffffffffffff81111561154957611548612af6565b5b6040519080825280602002602001820160405280156115775781602001602082028036833780820191505090505b50905030815f8151811061158e5761158d612b23565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611632573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116569190612480565b8160018151811061166a57611669612b23565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506116d03060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ba1565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611732959493929190612c07565b5f604051808303815f87803b158015611749575f80fd5b505af115801561175b573d5f803e3d5ffd5b505050505050565b61176b611f8f565b73ffffffffffffffffffffffffffffffffffffffff16611789610724565b73ffffffffffffffffffffffffffffffffffffffff16146117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d690612ca9565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81836118af9190612ac3565b905092915050565b5f60085f9054906101000a900460ff161580156118e05750600660159054906101000a900460ff165b80156118f85750600660149054906101000a900460ff165b801561194b575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156119a3575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80156119b3575060095460075410155b905092915050565b600160085f6101000a81548160ff0219169083151502179055505f611a276002611a19600e54611a0b600d546119fd6001600c546118a290919063ffffffff16565b6118a290919063ffffffff16565b6118a290919063ffffffff16565b611f9690919063ffffffff16565b90505f611a5182611a43600c5486611f9690919063ffffffff16565b611fab90919063ffffffff16565b90505f611a678285610d6490919063ffffffff16565b90505f479050611a768261152d565b5f611a8a8247610d6490919063ffffffff16565b90505f611ab4611aa5600c5488610d6490919063ffffffff16565b83611fab90919063ffffffff16565b90505f611acc600c5483611f9690919063ffffffff16565b90505f811115611ae157611ae08682611fc0565b5b5f611b0a600d54611afc600286611f9690919063ffffffff16565b611f9690919063ffffffff16565b90505f811115611b865760155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600283611b5c9190612cc7565b90811502906040515f60405180830381858888f19350505050158015611b84573d5f803e3d5ffd5b505b5f4790505f811115611bf85760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611bf6573d5f803e3d5ffd5b505b5050505050505050505f60085f6101000a81548160ff02191690831515021790555050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611cbc575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905092915050565b5f80611cd085856120ba565b1115611f84575f611d07611ce486866120ba565b611cf960135486611fab90919063ffffffff16565b611f9690919063ffffffff16565b905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611db1575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611deb57611dcd633b9aca0084611f9690919063ffffffff16565b90506001600660156101000a81548160ff0219169083151502179055505b611e3b8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118a290919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611eac611e8986866120ba565b611e9e60135486611fab90919063ffffffff16565b611f9690919063ffffffff16565b90503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f0b919061233e565b60405180910390a35f600f54118015611f2e5750600f54611f2c86866120ba565b115b15611f6957611f683061dead611f63600f54611f5560135489611fab90919063ffffffff16565b611f9690919063ffffffff16565b610d79565b5b611f7c8184610d6490919063ffffffff16565b915050611f88565b8190505b9392505050565b5f33905090565b5f8183611fa39190612cc7565b905092915050565b5f8183611fb89190612d35565b905092915050565b611fec3060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ba1565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161207296959493929190612514565b60606040518083038185885af115801561208e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906120b39190612587565b5050505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361211957601154905061217d565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361217757601054905061217d565b60125490505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156121ba57808201518184015260208101905061219f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6121df82612183565b6121e9818561218d565b93506121f981856020860161219d565b612202816121c5565b840191505092915050565b5f6020820190508181035f83015261222581846121d5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61225a82612231565b9050919050565b61226a81612250565b8114612274575f80fd5b50565b5f8135905061228581612261565b92915050565b5f819050919050565b61229d8161228b565b81146122a7575f80fd5b50565b5f813590506122b881612294565b92915050565b5f80604083850312156122d4576122d361222d565b5b5f6122e185828601612277565b92505060206122f2858286016122aa565b9150509250929050565b5f8115159050919050565b612310816122fc565b82525050565b5f6020820190506123295f830184612307565b92915050565b6123388161228b565b82525050565b5f6020820190506123515f83018461232f565b92915050565b5f805f6060848603121561236e5761236d61222d565b5b5f61237b86828701612277565b935050602061238c86828701612277565b925050604061239d868287016122aa565b9150509250925092565b5f60ff82169050919050565b6123bc816123a7565b82525050565b5f6020820190506123d55f8301846123b3565b92915050565b5f602082840312156123f0576123ef61222d565b5b5f6123fd84828501612277565b91505092915050565b61240f81612250565b82525050565b5f6020820190506124285f830184612406565b92915050565b5f80604083850312156124445761244361222d565b5b5f61245185828601612277565b925050602061246285828601612277565b9150509250929050565b5f8151905061247a81612261565b92915050565b5f602082840312156124955761249461222d565b5b5f6124a28482850161246c565b91505092915050565b5f6040820190506124be5f830185612406565b6124cb6020830184612406565b9392505050565b5f819050919050565b5f819050919050565b5f6124fe6124f96124f4846124d2565b6124db565b61228b565b9050919050565b61250e816124e4565b82525050565b5f60c0820190506125275f830189612406565b612534602083018861232f565b6125416040830187612505565b61254e6060830186612505565b61255b6080830185612406565b61256860a083018461232f565b979650505050505050565b5f8151905061258181612294565b92915050565b5f805f6060848603121561259e5761259d61222d565b5b5f6125ab86828701612573565b93505060206125bc86828701612573565b92505060406125cd86828701612573565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61263160268361218d565b915061263c826125d7565b604082019050919050565b5f6020820190508181035f83015261265e81612625565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6126bf60248361218d565b91506126ca82612665565b604082019050919050565b5f6020820190508181035f8301526126ec816126b3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61274d60228361218d565b9150612758826126f3565b604082019050919050565b5f6020820190508181035f83015261277a81612741565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6127b88261228b565b91506127c38361228b565b92508282039050818111156127db576127da612781565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61283b60258361218d565b9150612846826127e1565b604082019050919050565b5f6020820190508181035f8301526128688161282f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6128c960238361218d565b91506128d48261286f565b604082019050919050565b5f6020820190508181035f8301526128f6816128bd565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f7265205f8201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b5f61295760318361218d565b9150612962826128fd565b604082019050919050565b5f6020820190508181035f8301526129848161294b565b9050919050565b7f74726164696e674f70656e7300000000000000000000000000000000000000005f82015250565b5f6129bf600c8361218d565b91506129ca8261298b565b602082019050919050565b5f6020820190508181035f8301526129ec816129b3565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00005f82015250565b5f612a27601e8361218d565b9150612a32826129f3565b602082019050919050565b5f6020820190508181035f830152612a5481612a1b565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f612a8f60118361218d565b9150612a9a82612a5b565b602082019050919050565b5f6020820190508181035f830152612abc81612a83565b9050919050565b5f612acd8261228b565b9150612ad88361228b565b9250828201905080821115612af057612aef612781565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612b8281612250565b82525050565b5f612b938383612b79565b60208301905092915050565b5f602082019050919050565b5f612bb582612b50565b612bbf8185612b5a565b9350612bca83612b6a565b805f5b83811015612bfa578151612be18882612b88565b9750612bec83612b9f565b925050600181019050612bcd565b5085935050505092915050565b5f60a082019050612c1a5f83018861232f565b612c276020830187612505565b8181036040830152612c398186612bab565b9050612c486060830185612406565b612c55608083018461232f565b9695505050505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612c9360208361218d565b9150612c9e82612c5f565b602082019050919050565b5f6020820190508181035f830152612cc081612c87565b9050919050565b5f612cd18261228b565b9150612cdc8361228b565b9250828202612cea8161228b565b91508282048414831517612d0157612d00612781565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d3f8261228b565b9150612d4a8361228b565b925082612d5a57612d59612d08565b5b82820490509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207618fc5f38c509b4a374bedb612d2d18bf25b274323a2382cec6e30a8ff42bf964736f6c63430008140033

Deployed Bytecode

0x608060405260043610610122575f3560e01c8063751039fc1161009f578063a8aa1b3111610063578063a8aa1b311461039b578063a9059cbb146103c5578063dd62ed3e14610401578063ed9953071461043d578063f2fde38b1461044757610129565b8063751039fc146102cb5780637d1db4a5146102e15780638da5cb5b1461030b57806395d89b41146103355780639b3f161e1461035f57610129565b806351bc3c85116100e657806351bc3c851461022357806351cd7cc3146102395780636c0a24eb1461024f57806370a0823114610279578063715018a6146102b557610129565b806306fdde031461012d578063095ea7b31461015757806318160ddd1461019357806323b872dd146101bd578063313ce567146101f957610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161046f565b60405161014e919061220d565b60405180910390f35b348015610162575f80fd5b5061017d600480360381019061017891906122be565b6104ac565b60405161018a9190612316565b60405180910390f35b34801561019e575f80fd5b506101a76104c2565b6040516101b4919061233e565b60405180910390f35b3480156101c8575f80fd5b506101e360048036038101906101de9190612357565b610501565b6040516101f09190612316565b60405180910390f35b348015610204575f80fd5b5061020d6105c7565b60405161021a91906123c2565b60405180910390f35b34801561022e575f80fd5b506102376105cf565b005b348015610244575f80fd5b5061024d61067e565b005b34801561025a575f80fd5b506102636106a3565b604051610270919061233e565b60405180910390f35b348015610284575f80fd5b5061029f600480360381019061029a91906123db565b6106a9565b6040516102ac919061233e565b60405180910390f35b3480156102c0575f80fd5b506102c96106ef565b005b3480156102d6575f80fd5b506102df610702565b005b3480156102ec575f80fd5b506102f561071e565b604051610302919061233e565b60405180910390f35b348015610316575f80fd5b5061031f610724565b60405161032c9190612415565b60405180910390f35b348015610340575f80fd5b5061034961074b565b604051610356919061220d565b60405180910390f35b34801561036a575f80fd5b50610385600480360381019061038091906123db565b610788565b6040516103929190612316565b60405180910390f35b3480156103a6575f80fd5b506103af6107a5565b6040516103bc9190612415565b60405180910390f35b3480156103d0575f80fd5b506103eb60048036038101906103e691906122be565b6107ca565b6040516103f89190612316565b60405180910390f35b34801561040c575f80fd5b506104276004803603810190610422919061242e565b6107e0565b604051610434919061233e565b60405180910390f35b610445610862565b005b348015610452575f80fd5b5061046d600480360381019061046891906123db565b610b1f565b005b60606040518060400160405280600981526020017f4241425920504550450000000000000000000000000000000000000000000000815250905090565b5f6104b8338484610ba1565b6001905092915050565b5f6104fc6104cf5f6106a9565b6104ee6104dd61dead6106a9565b600154610d6490919063ffffffff16565b610d6490919063ffffffff16565b905090565b5f61050d848484610d79565b6105bc84336105b785604051806060016040528060288152602001612d666028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114d99092919063ffffffff16565b610ba1565b600190509392505050565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610627575f80fd5b610638610633306106a9565b61152d565b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561067b573d5f803e3d5ffd5b50565b610686611763565b6001600660146101000a81548160ff021916908315150217905550565b60185481565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106f7611763565b6107005f6117e1565b565b61070a611763565b600154601781905550600154601881905550565b60175481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4250455045000000000000000000000000000000000000000000000000000000815250905090565b6004602052805f5260405f205f915054906101000a900460ff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6107d6338484610d79565b6001905092915050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61086a611763565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f89190612480565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561097e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a29190612480565b6040518363ffffffff1660e01b81526004016109bf9291906124ab565b6020604051808303815f875af11580156109db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ff9190612480565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a6c3060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154610ba1565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610ab4306106a9565b5f8033426040518863ffffffff1660e01b8152600401610ad996959493929190612514565b60606040518083038185885af1158015610af5573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b1a9190612587565b505050565b610b27611763565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8c90612647565b60405180910390fd5b610b9e816117e1565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c06906126d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7490612763565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d57919061233e565b60405180910390a3505050565b5f8183610d7191906127ae565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde90612851565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c906128df565b60405180910390fd5b610e5e836106a9565b811115610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e979061296d565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610f3e575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15610f9357600660149054906101000a900460ff16610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f89906129d5565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611031575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561108a575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156110c4575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561115e5760185461111c8260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118a290919063ffffffff16565b111561115d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115490612a3d565b60405180910390fd5b5b601754811115806111b5575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611206575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611245576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123c90612aa5565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156112e8575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561130757600160075f8282546112ff9190612ac3565b925050819055505b61131183836118b7565b1561132957611321600a546119bb565b5f6007819055505b6113798160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d6490919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6113c58484611c1d565b6113cf57816113db565b6113da848484611cc4565b5b905061142d8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118a290919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114cb919061233e565b60405180910390a350505050565b5f838311158290611520576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611517919061220d565b60405180910390fd5b5082840390509392505050565b5f600267ffffffffffffffff81111561154957611548612af6565b5b6040519080825280602002602001820160405280156115775781602001602082028036833780820191505090505b50905030815f8151811061158e5761158d612b23565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611632573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116569190612480565b8160018151811061166a57611669612b23565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506116d03060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ba1565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611732959493929190612c07565b5f604051808303815f87803b158015611749575f80fd5b505af115801561175b573d5f803e3d5ffd5b505050505050565b61176b611f8f565b73ffffffffffffffffffffffffffffffffffffffff16611789610724565b73ffffffffffffffffffffffffffffffffffffffff16146117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d690612ca9565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81836118af9190612ac3565b905092915050565b5f60085f9054906101000a900460ff161580156118e05750600660159054906101000a900460ff165b80156118f85750600660149054906101000a900460ff165b801561194b575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156119a3575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80156119b3575060095460075410155b905092915050565b600160085f6101000a81548160ff0219169083151502179055505f611a276002611a19600e54611a0b600d546119fd6001600c546118a290919063ffffffff16565b6118a290919063ffffffff16565b6118a290919063ffffffff16565b611f9690919063ffffffff16565b90505f611a5182611a43600c5486611f9690919063ffffffff16565b611fab90919063ffffffff16565b90505f611a678285610d6490919063ffffffff16565b90505f479050611a768261152d565b5f611a8a8247610d6490919063ffffffff16565b90505f611ab4611aa5600c5488610d6490919063ffffffff16565b83611fab90919063ffffffff16565b90505f611acc600c5483611f9690919063ffffffff16565b90505f811115611ae157611ae08682611fc0565b5b5f611b0a600d54611afc600286611f9690919063ffffffff16565b611f9690919063ffffffff16565b90505f811115611b865760155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600283611b5c9190612cc7565b90811502906040515f60405180830381858888f19350505050158015611b84573d5f803e3d5ffd5b505b5f4790505f811115611bf85760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611bf6573d5f803e3d5ffd5b505b5050505050505050505f60085f6101000a81548160ff02191690831515021790555050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611cbc575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905092915050565b5f80611cd085856120ba565b1115611f84575f611d07611ce486866120ba565b611cf960135486611fab90919063ffffffff16565b611f9690919063ffffffff16565b905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611db1575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611deb57611dcd633b9aca0084611f9690919063ffffffff16565b90506001600660156101000a81548160ff0219169083151502179055505b611e3b8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118a290919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611eac611e8986866120ba565b611e9e60135486611fab90919063ffffffff16565b611f9690919063ffffffff16565b90503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f0b919061233e565b60405180910390a35f600f54118015611f2e5750600f54611f2c86866120ba565b115b15611f6957611f683061dead611f63600f54611f5560135489611fab90919063ffffffff16565b611f9690919063ffffffff16565b610d79565b5b611f7c8184610d6490919063ffffffff16565b915050611f88565b8190505b9392505050565b5f33905090565b5f8183611fa39190612cc7565b905092915050565b5f8183611fb89190612d35565b905092915050565b611fec3060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ba1565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161207296959493929190612514565b60606040518083038185885af115801561208e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906120b39190612587565b5050505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361211957601154905061217d565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361217757601054905061217d565b60125490505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156121ba57808201518184015260208101905061219f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6121df82612183565b6121e9818561218d565b93506121f981856020860161219d565b612202816121c5565b840191505092915050565b5f6020820190508181035f83015261222581846121d5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61225a82612231565b9050919050565b61226a81612250565b8114612274575f80fd5b50565b5f8135905061228581612261565b92915050565b5f819050919050565b61229d8161228b565b81146122a7575f80fd5b50565b5f813590506122b881612294565b92915050565b5f80604083850312156122d4576122d361222d565b5b5f6122e185828601612277565b92505060206122f2858286016122aa565b9150509250929050565b5f8115159050919050565b612310816122fc565b82525050565b5f6020820190506123295f830184612307565b92915050565b6123388161228b565b82525050565b5f6020820190506123515f83018461232f565b92915050565b5f805f6060848603121561236e5761236d61222d565b5b5f61237b86828701612277565b935050602061238c86828701612277565b925050604061239d868287016122aa565b9150509250925092565b5f60ff82169050919050565b6123bc816123a7565b82525050565b5f6020820190506123d55f8301846123b3565b92915050565b5f602082840312156123f0576123ef61222d565b5b5f6123fd84828501612277565b91505092915050565b61240f81612250565b82525050565b5f6020820190506124285f830184612406565b92915050565b5f80604083850312156124445761244361222d565b5b5f61245185828601612277565b925050602061246285828601612277565b9150509250929050565b5f8151905061247a81612261565b92915050565b5f602082840312156124955761249461222d565b5b5f6124a28482850161246c565b91505092915050565b5f6040820190506124be5f830185612406565b6124cb6020830184612406565b9392505050565b5f819050919050565b5f819050919050565b5f6124fe6124f96124f4846124d2565b6124db565b61228b565b9050919050565b61250e816124e4565b82525050565b5f60c0820190506125275f830189612406565b612534602083018861232f565b6125416040830187612505565b61254e6060830186612505565b61255b6080830185612406565b61256860a083018461232f565b979650505050505050565b5f8151905061258181612294565b92915050565b5f805f6060848603121561259e5761259d61222d565b5b5f6125ab86828701612573565b93505060206125bc86828701612573565b92505060406125cd86828701612573565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61263160268361218d565b915061263c826125d7565b604082019050919050565b5f6020820190508181035f83015261265e81612625565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6126bf60248361218d565b91506126ca82612665565b604082019050919050565b5f6020820190508181035f8301526126ec816126b3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61274d60228361218d565b9150612758826126f3565b604082019050919050565b5f6020820190508181035f83015261277a81612741565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6127b88261228b565b91506127c38361228b565b92508282039050818111156127db576127da612781565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61283b60258361218d565b9150612846826127e1565b604082019050919050565b5f6020820190508181035f8301526128688161282f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6128c960238361218d565b91506128d48261286f565b604082019050919050565b5f6020820190508181035f8301526128f6816128bd565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f7265205f8201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b5f61295760318361218d565b9150612962826128fd565b604082019050919050565b5f6020820190508181035f8301526129848161294b565b9050919050565b7f74726164696e674f70656e7300000000000000000000000000000000000000005f82015250565b5f6129bf600c8361218d565b91506129ca8261298b565b602082019050919050565b5f6020820190508181035f8301526129ec816129b3565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00005f82015250565b5f612a27601e8361218d565b9150612a32826129f3565b602082019050919050565b5f6020820190508181035f830152612a5481612a1b565b9050919050565b7f5458204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f612a8f60118361218d565b9150612a9a82612a5b565b602082019050919050565b5f6020820190508181035f830152612abc81612a83565b9050919050565b5f612acd8261228b565b9150612ad88361228b565b9250828201905080821115612af057612aef612781565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612b8281612250565b82525050565b5f612b938383612b79565b60208301905092915050565b5f602082019050919050565b5f612bb582612b50565b612bbf8185612b5a565b9350612bca83612b6a565b805f5b83811015612bfa578151612be18882612b88565b9750612bec83612b9f565b925050600181019050612bcd565b5085935050505092915050565b5f60a082019050612c1a5f83018861232f565b612c276020830187612505565b8181036040830152612c398186612bab565b9050612c486060830185612406565b612c55608083018461232f565b9695505050505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612c9360208361218d565b9150612c9e82612c5f565b602082019050919050565b5f6020820190508181035f830152612cc081612c87565b9050919050565b5f612cd18261228b565b9150612cdc8361228b565b9250828202612cea8161228b565b91508282048414831517612d0157612d00612781565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d3f8261228b565b9150612d4a8361228b565b925082612d5a57612d59612d08565b5b82820490509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207618fc5f38c509b4a374bedb612d2d18bf25b274323a2382cec6e30a8ff42bf964736f6c63430008140033

Deployed Bytecode Sourcemap

6517:9020:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8653:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9333:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9472:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14882:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8803:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10335:204;;;;;;;;;;;;;:::i;:::-;;8876:64;;;;;;;;;;;;;:::i;:::-;;8142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8946:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4963;;;;;;;;;;;;;:::i;:::-;;9957:131;;;;;;;;;;;;;:::i;:::-;;8075:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4315:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8726:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6938:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7011:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9055:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9200:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9612:339;;;:::i;:::-;;5221:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8653:67;8690:13;8713:5;;;;;;;;;;;;;;;;;8706:12;;8653:67;:::o;9333:133::-;9408:4;9415:37;9424:10;9436:7;9445:6;9415:8;:37::i;:::-;9460:4;9453:11;;9333:133;;;;:::o;9472:132::-;9525:7;9542:60;9580:21;9598:1;9580:9;:21::i;:::-;9542:33;9559:15;7768:42;9559:9;:15::i;:::-;9542:12;;:16;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;9535:67;;9472:132;:::o;14882:309::-;14980:4;14997:36;15007:6;15015:9;15026:6;14997:9;:36::i;:::-;15044:117;15053:6;15061:10;15073:87;15109:6;15073:87;;;;;;;;;;;;;;;;;:11;:19;15085:6;15073:19;;;;;;;;;;;;;;;:31;15093:10;15073:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;15044:8;:117::i;:::-;15179:4;15172:11;;14882:309;;;;;:::o;8803:67::-;8844:5;6738:1;8852:16;;8803:67;:::o;10335:204::-;10399:16;;;;;;;;;;;10385:30;;:10;:30;;;10377:39;;;;;;10427:42;10444:24;10462:4;10444:9;:24::i;:::-;10427:16;:42::i;:::-;10488:10;10480:28;;:51;10509:21;10480:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10335:204::o;8876:64::-;4201:13;:11;:13::i;:::-;8934:4:::1;8919:12;;:19;;;;;;;;;;;;;;;;;;8876:64::o:0;8142:::-;;;;:::o;8946:103::-;9012:7;9029:9;:18;9039:7;9029:18;;;;;;;;;;;;;;;;9022:25;;8946:103;;;:::o;4963:::-;4201:13;:11;:13::i;:::-;5028:30:::1;5055:1;5028:18;:30::i;:::-;4963:103::o:0;9957:131::-;4201:13;:11;:13::i;:::-;10026:12:::1;;10011;:27;;;;10068:12;;10049:16;:31;;;;9957:131::o:0;8075:60::-;;;;:::o;4315:87::-;4361:7;4388:6;;;;;;;;;;;4381:13;;4315:87;:::o;8726:71::-;8765:13;8788:7;;;;;;;;;;;;;;;;;8781:14;;8726:71;:::o;6938:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;7011:19::-;;;;;;;;;;;;;:::o;9055:139::-;9133:4;9140:40;9150:10;9162:9;9173:6;9140:9;:40::i;:::-;9188:4;9181:11;;9055:139;;;;:::o;9200:127::-;9281:7;9298:11;:18;9310:5;9298:18;;;;;;;;;;;;;;;:27;9317:7;9298:27;;;;;;;;;;;;;;;;9291:34;;9200:127;;;;:::o;9612:339::-;4201:13;:11;:13::i;:::-;9693:6:::1;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9684:37;;;9730:4;9737:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9684:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9677:4;;:74;;;;;;;;;;;;;;;;;;9762:54;9779:4;9794:6;;;;;;;;;;;9803:12;;9762:8;:54::i;:::-;9827:6;;;;;;;;;;;:22;;;9857:9;9876:4;9883:24;9901:4;9883:9;:24::i;:::-;9909:1;9912::::0;9915:10:::1;9927:15;9827:116;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9612:339::o:0;5221:201::-;4201:13;:11;:13::i;:::-;5330:1:::1;5310:22;;:8;:22;;::::0;5302:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5386:28;5405:8;5386:18;:28::i;:::-;5221:201:::0;:::o;15199:335::-;15309:1;15292:19;;:5;:19;;;15284:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15390:1;15371:21;;:7;:21;;;15363:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15472:6;15442:11;:18;15454:5;15442:18;;;;;;;;;;;;;;;:27;15461:7;15442:27;;;;;;;;;;;;;;;:36;;;;15510:7;15494:32;;15503:5;15494:32;;;15519:6;15494:32;;;;;;:::i;:::-;;;;;;;;15199:335;;;:::o;1724:98::-;1782:7;1813:1;1809;:5;;;;:::i;:::-;1802:12;;1724:98;;;;:::o;13579:1295::-;13694:1;13676:20;;:6;:20;;;13668:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13778:1;13757:23;;:9;:23;;;13749:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13849:17;13859:6;13849:9;:17::i;:::-;13839:6;:27;;13831:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;13934:12;:20;13947:6;13934:20;;;;;;;;;;;;;;;;;;;;;;;;;13933:21;:49;;;;;13959:12;:23;13972:9;13959:23;;;;;;;;;;;;;;;;;;;;;;;;;13958:24;13933:49;13930:93;;;13992:12;;;;;;;;;;;13984:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;13930:93;14037:12;:20;14050:6;14037:20;;;;;;;;;;;;;;;;;;;;;;;;;14036:21;:49;;;;;14062:12;:23;14075:9;14062:23;;;;;;;;;;;;;;;;;;;;;;;;;14061:24;14036:49;:79;;;;;14110:4;;;;;;;;;;;14089:26;;:9;:26;;;;14036:79;:109;;;;;7768:42;14119:26;;:9;:26;;;;14036:109;14033:223;;;14203:16;;14166:32;14191:6;14166:9;:20;14176:9;14166:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14165:54;;14157:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;14033:223;14284:12;;14274:6;:22;;:46;;;;14300:12;:20;14313:6;14300:20;;;;;;;;;;;;;;;;;;;;;;;;;14274:46;:73;;;;14324:12;:23;14337:9;14324:23;;;;;;;;;;;;;;;;;;;;;;;;;14274:73;14266:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;14397:4;;;;;;;;;;;14384:17;;:9;:17;;;:42;;;;;14406:12;:20;14419:6;14406:20;;;;;;;;;;;;;;;;;;;;;;;;;14405:21;14384:42;14381:72;;;14449:1;14428:9;;:23;;;;;;;:::i;:::-;;;;;;;;14381:72;14466:37;14485:6;14493:9;14466:18;:37::i;:::-;14463:97;;;14505:29;14520:13;;14505:14;:29::i;:::-;14556:1;14536:9;:22;;;;14463:97;14590:29;14612:6;14590:9;:17;14600:6;14590:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;14570:9;:17;14580:6;14570:17;;;;;;;;;;;;;;;:49;;;;14630:22;14655:32;14669:6;14677:9;14655:13;:32::i;:::-;:78;;14727:6;14655:78;;;14690:34;14698:6;14706:9;14717:6;14690:7;:34::i;:::-;14655:78;14630:103;;14767:40;14792:14;14767:9;:20;14777:9;14767:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;14744:9;:20;14754:9;14744:20;;;;;;;;;;;;;;;:63;;;;14840:9;14823:43;;14832:6;14823:43;;;14851:14;14823:43;;;;;;:::i;:::-;;;;;;;;13657:1217;13579:1295;;;:::o;2148:240::-;2268:7;2326:1;2321;:6;;2329:12;2313:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2368:1;2364;:5;2357:12;;2148:240;;;;;:::o;11965:434::-;12031:21;12069:1;12055:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12031:40;;12100:4;12082;12087:1;12082:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12126:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12116:4;12121:1;12116:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12150:53;12167:4;12182:6;;;;;;;;;;;12191:11;12150:8;:53::i;:::-;12214:6;;;;;;;;;;;:57;;;12286:11;12312:1;12328:4;12355;12375:15;12214:177;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12020:379;11965:434;:::o;4480:132::-;4555:12;:10;:12::i;:::-;4544:23;;:7;:5;:7::i;:::-;:23;;;4536:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4480:132::o;5582:191::-;5656:16;5675:6;;;;;;;;;;;5656:25;;5701:8;5692:6;;:17;;;;;;;;;;;;;;;;;;5756:8;5725:40;;5746:8;5725:40;;;;;;;;;;;;5645:128;5582:191;:::o;1618:98::-;1676:7;1707:1;1703;:5;;;;:::i;:::-;1696:12;;1618:98;;;;:::o;10096:231::-;10182:4;10207:8;;;;;;;;;;;10206:9;:24;;;;;10219:11;;;;;;;;;;;10206:24;:40;;;;;10234:12;;;;;;;;;;;10206:40;:65;;;;;10251:12;:20;10264:6;10251:20;;;;;;;;;;;;;;;;;;;;;;;;;10250:21;10206:65;:86;;;;;10288:4;;;;;;;;;;;10275:17;;:9;:17;;;10206:86;:113;;;;;10309:10;;10296:9;;:23;;10206:113;10199:120;;10096:231;;;;:::o;10547:1061::-;7379:4;7368:8;;:15;;;;;;;;;;;;;;;;;;10618:20:::1;10641:66;10705:1;10642:57;10684:14;;10642:37;10666:12;;10642:19;10659:1;10642:12;;:16;;:19;;;;:::i;:::-;:23;;:37;;;;:::i;:::-;:41;;:57;;;;:::i;:::-;10641:63;;:66;;;;:::i;:::-;10618:89;;10718:32;10753:42;10782:12;10753:24;10764:12;;10753:6;:10;;:24;;;;:::i;:::-;:28;;:42;;;;:::i;:::-;10718:77;;10806:14;10823:36;10834:24;10823:6;:10;;:36;;;;:::i;:::-;10806:53;;10870:22;10895:21;10870:46;;10927:24;10944:6;10927:16;:24::i;:::-;10962:20;10985:41;11011:14;10985:21;:25;;:41;;;;:::i;:::-;10962:64;;11037:19;11058:48;11075:30;11092:12;;11075;:16;;:30;;;;:::i;:::-;11058:12;:16;;:48;;;;:::i;:::-;11037:69;;11117:29;11149;11165:12;;11149:11;:15;;:29;;;;:::i;:::-;11117:61;;11224:1;11192:21;:34;11189:103;;;11228:61;11241:24;11267:21;11228:12;:61::i;:::-;11189:103;11302:20;11325:36;11348:12;;11325:18;11341:1;11325:11;:15;;:18;;;;:::i;:::-;:22;;:36;;;;:::i;:::-;11302:59;;11390:1;11375:12;:16;11372:73;;;11401:16;;;;;;;;;;;11393:34;;:50;11441:1;11428:12;:14;;;;:::i;:::-;11393:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11372:73;11455:23;11481:21;11455:47;;11542:1;11516:15;:28;11513:88;;;11554:18;;;;;;;;;;;11546:36;;:53;11583:15;11546:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11513:88;10607:1001;;;;;;;;;7399:5:::0;7388:8;;:16;;;;;;;;;;;;;;;;;;10547:1061;:::o;12407:162::-;12488:4;12513:12;:20;12526:6;12513:20;;;;;;;;;;;;;;;;;;;;;;;;;12512:21;:49;;;;;12538:12;:23;12551:9;12538:23;;;;;;;;;;;;;;;;;;;;;;;;;12537:24;12512:49;12505:56;;12407:162;;;;:::o;12803:768::-;12889:7;12944:1;12912:29;12923:6;12931:9;12912:10;:29::i;:::-;:33;12909:640;;;12957:17;12977:58;13005:29;13016:6;13024:9;13005:10;:29::i;:::-;12977:23;12988:11;;12977:6;:10;;:23;;;;:::i;:::-;:27;;:58;;;;:::i;:::-;12957:78;;13057:4;;;;;;;;;;;13049:12;;:6;:12;;;:41;;;;;13074:16;;;;;;;;;;;13063:27;;:9;:27;;;13049:41;13046:90;;;13102:15;13113:3;13102:6;:10;;:15;;;;:::i;:::-;13092:25;;13130:4;13118:11;;:16;;;;;;;;;;;;;;;;;;13046:90;13173:39;13202:9;13173;:24;13191:4;13173:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;13146:9;:24;13164:4;13146:24;;;;;;;;;;;;;;;:66;;;;13235:58;13263:29;13274:6;13282:9;13263:10;:29::i;:::-;13235:23;13246:11;;13235:6;:10;;:23;;;;:::i;:::-;:27;;:58;;;;:::i;:::-;13223:70;;13334:4;13309:42;;13318:6;13309:42;;;13341:9;13309:42;;;;;;:::i;:::-;;;;;;;;13383:1;13365:7;;:20;:63;;;;;13421:7;;13389:29;13400:6;13408:9;13389:10;:29::i;:::-;:39;13365:63;13362:147;;;13430:77;13448:4;7768:42;13470:36;13498:7;;13470:23;13481:11;;13470:6;:10;;:23;;;;:::i;:::-;:27;;:36;;;;:::i;:::-;13430:9;:77::i;:::-;13362:147;13526:21;13537:9;13526:6;:10;;:21;;;;:::i;:::-;13519:28;;;;;12909:640;13557:6;13550:13;;12803:768;;;;;;:::o;262:98::-;315:7;342:10;335:17;;262:98;:::o;1830:::-;1888:7;1919:1;1915;:5;;;;:::i;:::-;1908:12;;1830:98;;;;:::o;1936:::-;1994:7;2025:1;2021;:5;;;;:::i;:::-;2014:12;;1936:98;;;;:::o;11616:341::-;11697:53;11714:4;11729:6;;;;;;;;;;;11738:11;11697:8;:53::i;:::-;11761:6;;;;;;;;;;;:22;;;11791:9;11824:4;11844:11;11870:1;11886;11902:16;;;;;;;;;;;11933:15;11761:188;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11616:341;;:::o;12577:218::-;12655:7;12691:4;;;;;;;;;;;12678:17;;:9;:17;;;12675:38;;12704:7;;12697:14;;;;12675:38;12736:4;;;;;;;;;;;12726:14;;:6;:14;;;12723:36;;12749:8;;12742:15;;;;12723:36;12776:11;;12769:18;;12577:218;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:143::-;6077:5;6108:6;6102:13;6093:22;;6124:33;6151:5;6124:33;:::i;:::-;6020:143;;;;:::o;6169:351::-;6239:6;6288:2;6276:9;6267:7;6263:23;6259:32;6256:119;;;6294:79;;:::i;:::-;6256:119;6414:1;6439:64;6495:7;6486:6;6475:9;6471:22;6439:64;:::i;:::-;6429:74;;6385:128;6169:351;;;;:::o;6526:332::-;6647:4;6685:2;6674:9;6670:18;6662:26;;6698:71;6766:1;6755:9;6751:17;6742:6;6698:71;:::i;:::-;6779:72;6847:2;6836:9;6832:18;6823:6;6779:72;:::i;:::-;6526:332;;;;;:::o;6864:85::-;6909:7;6938:5;6927:16;;6864:85;;;:::o;6955:60::-;6983:3;7004:5;6997:12;;6955:60;;;:::o;7021:158::-;7079:9;7112:61;7130:42;7139:32;7165:5;7139:32;:::i;:::-;7130:42;:::i;:::-;7112:61;:::i;:::-;7099:74;;7021:158;;;:::o;7185:147::-;7280:45;7319:5;7280:45;:::i;:::-;7275:3;7268:58;7185:147;;:::o;7338:807::-;7587:4;7625:3;7614:9;7610:19;7602:27;;7639:71;7707:1;7696:9;7692:17;7683:6;7639:71;:::i;:::-;7720:72;7788:2;7777:9;7773:18;7764:6;7720:72;:::i;:::-;7802:80;7878:2;7867:9;7863:18;7854:6;7802:80;:::i;:::-;7892;7968:2;7957:9;7953:18;7944:6;7892:80;:::i;:::-;7982:73;8050:3;8039:9;8035:19;8026:6;7982:73;:::i;:::-;8065;8133:3;8122:9;8118:19;8109:6;8065:73;:::i;:::-;7338:807;;;;;;;;;:::o;8151:143::-;8208:5;8239:6;8233:13;8224:22;;8255:33;8282:5;8255:33;:::i;:::-;8151:143;;;;:::o;8300:663::-;8388:6;8396;8404;8453:2;8441:9;8432:7;8428:23;8424:32;8421:119;;;8459:79;;:::i;:::-;8421:119;8579:1;8604:64;8660:7;8651:6;8640:9;8636:22;8604:64;:::i;:::-;8594:74;;8550:128;8717:2;8743:64;8799:7;8790:6;8779:9;8775:22;8743:64;:::i;:::-;8733:74;;8688:129;8856:2;8882:64;8938:7;8929:6;8918:9;8914:22;8882:64;:::i;:::-;8872:74;;8827:129;8300:663;;;;;:::o;8969:225::-;9109:34;9105:1;9097:6;9093:14;9086:58;9178:8;9173:2;9165:6;9161:15;9154:33;8969:225;:::o;9200:366::-;9342:3;9363:67;9427:2;9422:3;9363:67;:::i;:::-;9356:74;;9439:93;9528:3;9439:93;:::i;:::-;9557:2;9552:3;9548:12;9541:19;;9200:366;;;:::o;9572:419::-;9738:4;9776:2;9765:9;9761:18;9753:26;;9825:9;9819:4;9815:20;9811:1;9800:9;9796:17;9789:47;9853:131;9979:4;9853:131;:::i;:::-;9845:139;;9572:419;;;:::o;9997:223::-;10137:34;10133:1;10125:6;10121:14;10114:58;10206:6;10201:2;10193:6;10189:15;10182:31;9997:223;:::o;10226:366::-;10368:3;10389:67;10453:2;10448:3;10389:67;:::i;:::-;10382:74;;10465:93;10554:3;10465:93;:::i;:::-;10583:2;10578:3;10574:12;10567:19;;10226:366;;;:::o;10598:419::-;10764:4;10802:2;10791:9;10787:18;10779:26;;10851:9;10845:4;10841:20;10837:1;10826:9;10822:17;10815:47;10879:131;11005:4;10879:131;:::i;:::-;10871:139;;10598:419;;;:::o;11023:221::-;11163:34;11159:1;11151:6;11147:14;11140:58;11232:4;11227:2;11219:6;11215:15;11208:29;11023:221;:::o;11250:366::-;11392:3;11413:67;11477:2;11472:3;11413:67;:::i;:::-;11406:74;;11489:93;11578:3;11489:93;:::i;:::-;11607:2;11602:3;11598:12;11591:19;;11250:366;;;:::o;11622:419::-;11788:4;11826:2;11815:9;11811:18;11803:26;;11875:9;11869:4;11865:20;11861:1;11850:9;11846:17;11839:47;11903:131;12029:4;11903:131;:::i;:::-;11895:139;;11622:419;;;:::o;12047:180::-;12095:77;12092:1;12085:88;12192:4;12189:1;12182:15;12216:4;12213:1;12206:15;12233:194;12273:4;12293:20;12311:1;12293:20;:::i;:::-;12288:25;;12327:20;12345:1;12327:20;:::i;:::-;12322:25;;12371:1;12368;12364:9;12356:17;;12395:1;12389:4;12386:11;12383:37;;;12400:18;;:::i;:::-;12383:37;12233:194;;;;:::o;12433:224::-;12573:34;12569:1;12561:6;12557:14;12550:58;12642:7;12637:2;12629:6;12625:15;12618:32;12433:224;:::o;12663:366::-;12805:3;12826:67;12890:2;12885:3;12826:67;:::i;:::-;12819:74;;12902:93;12991:3;12902:93;:::i;:::-;13020:2;13015:3;13011:12;13004:19;;12663:366;;;:::o;13035:419::-;13201:4;13239:2;13228:9;13224:18;13216:26;;13288:9;13282:4;13278:20;13274:1;13263:9;13259:17;13252:47;13316:131;13442:4;13316:131;:::i;:::-;13308:139;;13035:419;;;:::o;13460:222::-;13600:34;13596:1;13588:6;13584:14;13577:58;13669:5;13664:2;13656:6;13652:15;13645:30;13460:222;:::o;13688:366::-;13830:3;13851:67;13915:2;13910:3;13851:67;:::i;:::-;13844:74;;13927:93;14016:3;13927:93;:::i;:::-;14045:2;14040:3;14036:12;14029:19;;13688:366;;;:::o;14060:419::-;14226:4;14264:2;14253:9;14249:18;14241:26;;14313:9;14307:4;14303:20;14299:1;14288:9;14284:17;14277:47;14341:131;14467:4;14341:131;:::i;:::-;14333:139;;14060:419;;;:::o;14485:236::-;14625:34;14621:1;14613:6;14609:14;14602:58;14694:19;14689:2;14681:6;14677:15;14670:44;14485:236;:::o;14727:366::-;14869:3;14890:67;14954:2;14949:3;14890:67;:::i;:::-;14883:74;;14966:93;15055:3;14966:93;:::i;:::-;15084:2;15079:3;15075:12;15068:19;;14727:366;;;:::o;15099:419::-;15265:4;15303:2;15292:9;15288:18;15280:26;;15352:9;15346:4;15342:20;15338:1;15327:9;15323:17;15316:47;15380:131;15506:4;15380:131;:::i;:::-;15372:139;;15099:419;;;:::o;15524:162::-;15664:14;15660:1;15652:6;15648:14;15641:38;15524:162;:::o;15692:366::-;15834:3;15855:67;15919:2;15914:3;15855:67;:::i;:::-;15848:74;;15931:93;16020:3;15931:93;:::i;:::-;16049:2;16044:3;16040:12;16033:19;;15692:366;;;:::o;16064:419::-;16230:4;16268:2;16257:9;16253:18;16245:26;;16317:9;16311:4;16307:20;16303:1;16292:9;16288:17;16281:47;16345:131;16471:4;16345:131;:::i;:::-;16337:139;;16064:419;;;:::o;16489:180::-;16629:32;16625:1;16617:6;16613:14;16606:56;16489:180;:::o;16675:366::-;16817:3;16838:67;16902:2;16897:3;16838:67;:::i;:::-;16831:74;;16914:93;17003:3;16914:93;:::i;:::-;17032:2;17027:3;17023:12;17016:19;;16675:366;;;:::o;17047:419::-;17213:4;17251:2;17240:9;17236:18;17228:26;;17300:9;17294:4;17290:20;17286:1;17275:9;17271:17;17264:47;17328:131;17454:4;17328:131;:::i;:::-;17320:139;;17047:419;;;:::o;17472:167::-;17612:19;17608:1;17600:6;17596:14;17589:43;17472:167;:::o;17645:366::-;17787:3;17808:67;17872:2;17867:3;17808:67;:::i;:::-;17801:74;;17884:93;17973:3;17884:93;:::i;:::-;18002:2;17997:3;17993:12;17986:19;;17645:366;;;:::o;18017:419::-;18183:4;18221:2;18210:9;18206:18;18198:26;;18270:9;18264:4;18260:20;18256:1;18245:9;18241:17;18234:47;18298:131;18424:4;18298:131;:::i;:::-;18290:139;;18017:419;;;:::o;18442:191::-;18482:3;18501:20;18519:1;18501:20;:::i;:::-;18496:25;;18535:20;18553:1;18535:20;:::i;:::-;18530:25;;18578:1;18575;18571:9;18564:16;;18599:3;18596:1;18593:10;18590:36;;;18606:18;;:::i;:::-;18590:36;18442:191;;;;:::o;18639:180::-;18687:77;18684:1;18677:88;18784:4;18781:1;18774:15;18808:4;18805:1;18798:15;18825:180;18873:77;18870:1;18863:88;18970:4;18967:1;18960:15;18994:4;18991:1;18984:15;19011:114;19078:6;19112:5;19106:12;19096:22;;19011:114;;;:::o;19131:184::-;19230:11;19264:6;19259:3;19252:19;19304:4;19299:3;19295:14;19280:29;;19131:184;;;;:::o;19321:132::-;19388:4;19411:3;19403:11;;19441:4;19436:3;19432:14;19424:22;;19321:132;;;:::o;19459:108::-;19536:24;19554:5;19536:24;:::i;:::-;19531:3;19524:37;19459:108;;:::o;19573:179::-;19642:10;19663:46;19705:3;19697:6;19663:46;:::i;:::-;19741:4;19736:3;19732:14;19718:28;;19573:179;;;;:::o;19758:113::-;19828:4;19860;19855:3;19851:14;19843:22;;19758:113;;;:::o;19907:732::-;20026:3;20055:54;20103:5;20055:54;:::i;:::-;20125:86;20204:6;20199:3;20125:86;:::i;:::-;20118:93;;20235:56;20285:5;20235:56;:::i;:::-;20314:7;20345:1;20330:284;20355:6;20352:1;20349:13;20330:284;;;20431:6;20425:13;20458:63;20517:3;20502:13;20458:63;:::i;:::-;20451:70;;20544:60;20597:6;20544:60;:::i;:::-;20534:70;;20390:224;20377:1;20374;20370:9;20365:14;;20330:284;;;20334:14;20630:3;20623:10;;20031:608;;;19907:732;;;;:::o;20645:831::-;20908:4;20946:3;20935:9;20931:19;20923:27;;20960:71;21028:1;21017:9;21013:17;21004:6;20960:71;:::i;:::-;21041:80;21117:2;21106:9;21102:18;21093:6;21041:80;:::i;:::-;21168:9;21162:4;21158:20;21153:2;21142:9;21138:18;21131:48;21196:108;21299:4;21290:6;21196:108;:::i;:::-;21188:116;;21314:72;21382:2;21371:9;21367:18;21358:6;21314:72;:::i;:::-;21396:73;21464:3;21453:9;21449:19;21440:6;21396:73;:::i;:::-;20645:831;;;;;;;;:::o;21482:182::-;21622:34;21618:1;21610:6;21606:14;21599:58;21482:182;:::o;21670:366::-;21812:3;21833:67;21897:2;21892:3;21833:67;:::i;:::-;21826:74;;21909:93;21998:3;21909:93;:::i;:::-;22027:2;22022:3;22018:12;22011:19;;21670:366;;;:::o;22042:419::-;22208:4;22246:2;22235:9;22231:18;22223:26;;22295:9;22289:4;22285:20;22281:1;22270:9;22266:17;22259:47;22323:131;22449:4;22323:131;:::i;:::-;22315:139;;22042:419;;;:::o;22467:410::-;22507:7;22530:20;22548:1;22530:20;:::i;:::-;22525:25;;22564:20;22582:1;22564:20;:::i;:::-;22559:25;;22619:1;22616;22612:9;22641:30;22659:11;22641:30;:::i;:::-;22630:41;;22820:1;22811:7;22807:15;22804:1;22801:22;22781:1;22774:9;22754:83;22731:139;;22850:18;;:::i;:::-;22731:139;22515:362;22467:410;;;;:::o;22883:180::-;22931:77;22928:1;22921:88;23028:4;23025:1;23018:15;23052:4;23049:1;23042:15;23069:185;23109:1;23126:20;23144:1;23126:20;:::i;:::-;23121:25;;23160:20;23178:1;23160:20;:::i;:::-;23155:25;;23199:1;23189:35;;23204:18;;:::i;:::-;23189:35;23246:1;23243;23239:9;23234:14;;23069:185;;;;:::o

Swarm Source

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