ETH Price: $3,480.97 (+4.41%)

Token

PVP (PVP)
 

Overview

Max Total Supply

1,000,000,000 PVP

Holders

793

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,791,471.952837225599757767 PVP

Value
$0.00
0xe744544F50FC6BDe59CD8eD3e656487d4791357F
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:
PVP

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed
/* 

https://t.me/pvpgameportal

*/
pragma solidity 0.8.13;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

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

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

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

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    /**
     * Function modifier to require caller to be contract deployer
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!Owner");
        _;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

contract PVP is IERC20, Auth {
    using SafeMath for uint256;

    address private WETH;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;
    address private ZERO = 0x0000000000000000000000000000000000000000;
    address public gameContractAddress;

    string private constant _name = "PVP";
    string private constant _symbol = "PVP";
    uint8 private constant _decimals = 18;

    uint256 private _totalSupply = 1000000000 * (10**_decimals);

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    mapping(address => bool) private isFeeExempt;
    mapping(address => bool) private isBot;

    event WalletConnected(address indexed user, uint32 secret);

    struct User {
        address userAddress;
    }

    mapping(address => bool) public isApproved;
    mapping(uint32 => User) public users;

    uint256 private totalFee = 4;
    uint256 private feeDenominator = 100;

    address payable public marketingWallet;

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool private tradingOpen;
    bool private buyLimit = true;
    bool private walletLimit = true;
    uint256 private maxBuy = 5000000 * (10**_decimals);
    uint256 private maxWallet = 10000000 * (10**_decimals);
    uint256 public swapThreshold = 2500000 * (10**_decimals);

    bool public blacklistEnabled = false;
    bool private inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(
        address _owner,
        address payable _marketingWallet,
        address _gameContractAddress
    ) Auth(_owner) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        marketingWallet = _marketingWallet;
        gameContractAddress = _gameContractAddress;
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));

        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[_owner] = true;
        isFeeExempt[marketingWallet] = true;
        isFeeExempt[gameContractAddress] = true;

        _balances[_owner] = _totalSupply;

        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable {}

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

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

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

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

    function getOwner() external view override returns (address) {
        return owner;
    }

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

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

    function connectAndApprove(uint32 secret) external returns (bool) {
        address user = msg.sender;

        require(secret != 0, "Secret cannot be zero");
        users[secret].userAddress = user;

        approve(gameContractAddress, type(uint256).max);

        emit WalletConnected(user, secret);

        return true;
    }

    function setGameContractAddress(address _address) external onlyOwner {
        gameContractAddress = _address;
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (sender != owner && recipient != owner)
            require(tradingOpen, "Trading not yet enabled.");
        if (blacklistEnabled) {
            require(!isBot[sender] && !isBot[recipient], "Bot!");
        }

        // Check if sender is not the owner, recipient is not the owner, and sender is not the contract itself
        if (
            sender != owner &&
            recipient != owner &&
            sender != address(this) &&
            recipient != address(this)
        ) {
            if (walletLimit)
                require(
                    _balances[recipient].add(amount) <= maxWallet,
                    "Too much in wallet sir"
                );

            if (buyLimit) {
                require(amount <= maxBuy, "Too much sir");
            }
        }

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= swapThreshold;

        bool shouldSwapBack = (overMinTokenBalance &&
            recipient == pair &&
            balanceOf(address(this)) > 0);
        if (shouldSwapBack) {
            swapBack();
        }

        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );

        uint256 amountReceived = shouldTakeFee(sender, recipient)
            ? takeFee(sender, amount)
            : amount;

        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender, address recipient)
        internal
        view
        returns (bool)
    {
        return ((sender != gameContractAddress &&
            recipient != gameContractAddress) &&
            !(isFeeExempt[sender] || isFeeExempt[recipient]) &&
            (sender == pair || recipient == pair));
    }

    function takeFee(address sender, uint256 amount)
        internal
        returns (uint256)
    {
        uint256 feeAmount;
        feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function swapBack() internal swapping {
        uint256 amountToSwap = balanceOf(address(this));

        swapTokensForEth(amountToSwap);

        payable(marketingWallet).transfer(address(this).balance);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function openTrading() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
    }

    function setBot(address _address, bool toggle) external onlyOwner {
        isBot[_address] = toggle;
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setFee(uint256 _fee) external onlyOwner {
        require(_fee <= 10, "Fee can't exceed 10%");
        totalFee = _fee;
    }

    function manualSend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingWallet).transfer(contractETHBalance);
    }

    function manualBurn(uint256 amount) external onlyOwner returns (bool) {
        return _basicTransfer(address(this), DEAD, amount);
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function setMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = payable(_marketingWallet);
    }

    function removeLimits() external onlyOwner {
        buyLimit = false;
        walletLimit = false;
    }

    function checkBot(address account) public view returns (bool) {
        return isBot[account];
    }

    function setBlacklistEnabled() external onlyOwner {
        require(blacklistEnabled == false, "can only be called once");
        blacklistEnabled = true;
    }

    function setSwapThresholdAmount(uint256 amount) external onlyOwner {
        require(amount <= _totalSupply.div(100), "can't exceed 1%");
        swapThreshold = amount * 10**18;
    }

    function getStoredAddress(uint32 secret) external view returns (address) {
        return users[secret].userAddress;
    }

    function emergencyWithdrawERC20(address tokenAddress) external onlyOwner {
        IERC20 token = IERC20(tokenAddress);
        uint256 tokenBalance = token.balanceOf(address(this));
        require(tokenBalance > 0, "No tokens to withdraw");

        token.transfer(owner, tokenBalance);
    }

    function emergencyWithdrawEther() external onlyOwner {
        uint256 contractBalance = address(this).balance;
        require(contractBalance > 0, "No Ether to withdraw");

        (bool success, ) = owner.call{value: contractBalance}("");
        require(success, "Withdraw failed");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address payable","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_gameContractAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint32","name":"secret","type":"uint32"}],"name":"WalletConnected","type":"event"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"blacklistEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"checkBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"secret","type":"uint32"}],"name":"connectAndApprove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"emergencyWithdrawERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergencyWithdrawEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gameContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"secret","type":"uint32"}],"name":"getStoredAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isApproved","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setGameContractAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"}],"name":"users","outputs":[{"internalType":"address","name":"userAddress","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200009991906200096b565b633b9aca00620000aa9190620009bc565b6005556004600c556064600d556001601260016101000a81548160ff0219169083151502179055506001601260026101000a81548160ff0219169083151502179055506012600a620000fd91906200096b565b624c4b406200010d9190620009bc565b6013556012600a6200012091906200096b565b62989680620001309190620009bc565b6014556012600a6200014391906200096b565b622625a0620001539190620009bc565b6015556000601660006101000a81548160ff0219169083151502179055503480156200017e57600080fd5b506040516200489c3803806200489c8339818101604052810190620001a4919062000acc565b82806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000351919062000b28565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000425919062000b28565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200048392919062000b6b565b6020604051808303816000875af1158015620004a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c9919062000b28565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600554600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620007c0919062000ba9565b60405180910390a350505062000bc6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200085f57808604811115620008375762000836620007d1565b5b6001851615620008475780820291505b8081029050620008578562000800565b945062000817565b94509492505050565b6000826200087a57600190506200094d565b816200088a57600090506200094d565b8160018114620008a35760028114620008ae57620008e4565b60019150506200094d565b60ff841115620008c357620008c2620007d1565b5b8360020a915084821115620008dd57620008dc620007d1565b5b506200094d565b5060208310610133831016604e8410600b84101617156200091e5782820a905083811115620009185762000917620007d1565b5b6200094d565b6200092d84848460016200080d565b92509050818404811115620009475762000946620007d1565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009788262000954565b915062000985836200095e565b9250620009b47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000868565b905092915050565b6000620009c98262000954565b9150620009d68362000954565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a125762000a11620007d1565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a4f8262000a22565b9050919050565b62000a618162000a42565b811462000a6d57600080fd5b50565b60008151905062000a818162000a56565b92915050565b600062000a948262000a22565b9050919050565b62000aa68162000a87565b811462000ab257600080fd5b50565b60008151905062000ac68162000a9b565b92915050565b60008060006060848603121562000ae85762000ae762000a1d565b5b600062000af88682870162000a70565b935050602062000b0b8682870162000ab5565b925050604062000b1e8682870162000a70565b9150509250925092565b60006020828403121562000b415762000b4062000a1d565b5b600062000b518482850162000a70565b91505092915050565b62000b658162000a42565b82525050565b600060408201905062000b82600083018562000b5a565b62000b91602083018462000b5a565b9392505050565b62000ba38162000954565b82525050565b600060208201905062000bc0600083018462000b98565b92915050565b613cc68062000bd66000396000f3fe6080604052600436106102345760003560e01c8063751039fc1161012e578063bf56b371116100ab578063e2226a561161006f578063e2226a561461085e578063eec1c69f1461089b578063f2fde38b146108d8578063f429389014610901578063f887ea40146109185761023b565b8063bf56b3711461079d578063bffb691d146107c8578063c9567bf9146107f3578063dc92f8f01461080a578063dd62ed3e146108215761023b565b806395d89b41116100f257806395d89b4114610690578063a8aa1b31146106bb578063a9059cbb146106e6578063a94fae9414610723578063b1a4e0dc146107605761023b565b8063751039fc146105e357806375f0a874146105fa578063764ca5121461062557806377f08cd61461063c578063893d20e8146106655761023b565b8063313ce567116101bc57806363df0ef71161018057806363df0ef7146104ec578063658d4b7f14610517578063673448dd1461054057806369fe0e2d1461057d57806370a08231146105a65761023b565b8063313ce56714610409578063342aa8b51461043457806340c442de1461045d578063571ac8b0146104865780635d098b38146104c35761023b565b806323b635851161020357806323b63585146102fe57806323b872dd1461033b57806329e04b4a146103785780632b112e49146103a15780632f54bf6e146103cc5761023b565b80630445b6671461024057806306fdde031461026b578063095ea7b31461029657806318160ddd146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610943565b6040516102629190612cf8565b60405180910390f35b34801561027757600080fd5b50610280610949565b60405161028d9190612dac565b60405180910390f35b3480156102a257600080fd5b506102bd60048036038101906102b89190612e5d565b610986565b6040516102ca9190612eb8565b60405180910390f35b3480156102df57600080fd5b506102e8610a78565b6040516102f59190612cf8565b60405180910390f35b34801561030a57600080fd5b5061032560048036038101906103209190612ed3565b610a82565b6040516103329190612eb8565b60405180910390f35b34801561034757600080fd5b50610362600480360381019061035d9190612f00565b610b00565b60405161036f9190612eb8565b60405180910390f35b34801561038457600080fd5b5061039f600480360381019061039a9190612ed3565b610d00565b005b3480156103ad57600080fd5b506103b6610dbd565b6040516103c39190612cf8565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee9190612f53565b610e3f565b6040516104009190612eb8565b60405180910390f35b34801561041557600080fd5b5061041e610e98565b60405161042b9190612f9c565b60405180910390f35b34801561044057600080fd5b5061045b60048036038101906104569190612fe3565b610ea1565b005b34801561046957600080fd5b50610484600480360381019061047f9190612f53565b610f44565b005b34801561049257600080fd5b506104ad60048036038101906104a89190612f53565b6110f6565b6040516104ba9190612eb8565b60405180910390f35b3480156104cf57600080fd5b506104ea60048036038101906104e59190612f53565b611129565b005b3480156104f857600080fd5b506105016111b5565b60405161050e9190613032565b60405180910390f35b34801561052357600080fd5b5061053e60048036038101906105399190612fe3565b6111db565b005b34801561054c57600080fd5b5061056760048036038101906105629190612f53565b61127e565b6040516105749190612eb8565b60405180910390f35b34801561058957600080fd5b506105a4600480360381019061059f9190612ed3565b61129e565b005b3480156105b257600080fd5b506105cd60048036038101906105c89190612f53565b611334565b6040516105da9190612cf8565b60405180910390f35b3480156105ef57600080fd5b506105f861137d565b005b34801561060657600080fd5b5061060f6113fd565b60405161061c919061306e565b60405180910390f35b34801561063157600080fd5b5061063a611423565b005b34801561064857600080fd5b50610663600480360381019061065e9190612f53565b6114de565b005b34801561067157600080fd5b5061067a61156a565b6040516106879190613032565b60405180910390f35b34801561069c57600080fd5b506106a5611593565b6040516106b29190612dac565b60405180910390f35b3480156106c757600080fd5b506106d06115d0565b6040516106dd9190613032565b60405180910390f35b3480156106f257600080fd5b5061070d60048036038101906107089190612e5d565b6115f6565b60405161071a9190612eb8565b60405180910390f35b34801561072f57600080fd5b5061074a600480360381019061074591906130c5565b61160b565b6040516107579190613032565b60405180910390f35b34801561076c57600080fd5b5061078760048036038101906107829190612f53565b611657565b6040516107949190612eb8565b60405180910390f35b3480156107a957600080fd5b506107b26116ad565b6040516107bf9190612cf8565b60405180910390f35b3480156107d457600080fd5b506107dd6116b3565b6040516107ea9190612eb8565b60405180910390f35b3480156107ff57600080fd5b506108086116c6565b005b34801561081657600080fd5b5061081f611732565b005b34801561082d57600080fd5b50610848600480360381019061084391906130f2565b611893565b6040516108559190612cf8565b60405180910390f35b34801561086a57600080fd5b50610885600480360381019061088091906130c5565b61191a565b6040516108929190613032565b60405180910390f35b3480156108a757600080fd5b506108c260048036038101906108bd91906130c5565b611958565b6040516108cf9190612eb8565b60405180910390f35b3480156108e457600080fd5b506108ff60048036038101906108fa919061315e565b611aad565b005b34801561090d57600080fd5b50610916611b6f565b005b34801561092457600080fd5b5061092d611c28565b60405161093a91906131ea565b60405180910390f35b60155481565b60606040518060400160405280600381526020017f5056500000000000000000000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a669190612cf8565b60405180910390a36001905092915050565b6000600554905090565b6000610a8d33610e3f565b610acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac390613251565b60405180910390fd5b610af930600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c4e565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610cec57610c6b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e219092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610cf7848484611e85565b90509392505050565b610d0933610e3f565b610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f90613251565b60405180910390fd5b610d5e606460055461255b90919063ffffffff16565b811115610da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d97906132bd565b60405180910390fd5b670de0b6b3a764000081610db4919061330c565b60158190555050565b6000610e3a610ded600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611334565b610e2c610e1b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611334565b6005546125a590919063ffffffff16565b6125a590919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b610eaa33610e3f565b610ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee090613251565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610f4d33610e3f565b610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8390613251565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fcc9190613032565b602060405180830381865afa158015610fe9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100d919061337b565b905060008111611052576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611049906133f4565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016110ad929190613414565b6020604051808303816000875af11580156110cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f09190613452565b50505050565b6000611122827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610986565b9050919050565b61113233610e3f565b611171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116890613251565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111e433610e3f565b611223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121a90613251565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6112a733610e3f565b6112e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dd90613251565b60405180910390fd5b600a81111561132a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611321906134cb565b60405180910390fd5b80600c8190555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61138633610e3f565b6113c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bc90613251565b60405180910390fd5b6000601260016101000a81548160ff0219169083151502179055506000601260026101000a81548160ff021916908315150217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61142c33610e3f565b61146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146290613251565b60405180910390fd5b60001515601660009054906101000a900460ff161515146114c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b890613537565b60405180910390fd5b6001601660006101000a81548160ff021916908315150217905550565b6114e733610e3f565b611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d90613251565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5056500000000000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611603338484611e85565b905092915050565b6000600b60008363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b601660009054906101000a900460ff1681565b6116cf33610e3f565b61170e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170590613251565b60405180910390fd5b436011819055506001601260006101000a81548160ff021916908315150217905550565b61173b33610e3f565b61177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613251565b60405180910390fd5b6000479050600081116117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b9906135a3565b60405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611809906135f4565b60006040518083038185875af1925050503d8060008114611846576040519150601f19603f3d011682016040523d82523d6000602084013e61184b565b606091505b505090508061188f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188690613655565b60405180910390fd5b5050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081565b60008033905060008363ffffffff16036119a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199e906136c1565b60405180910390fd5b80600b60008563ffffffff1663ffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a54600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610986565b508073ffffffffffffffffffffffffffffffffffffffff167fe146b5682c27e8ecaaf5d0a35504c4b2e0f0d9f6ea5d5d4dfd9c32c7df2174eb84604051611a9b91906136f0565b60405180910390a26001915050919050565b611ab633610e3f565b611af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aec90613251565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611b64919061372c565b60405180910390a150565b611b7833610e3f565b611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae90613251565b60405180910390fd5b6000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c24573d6000803e3d6000fd5b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611cd9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e219092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d6e82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e0e9190612cf8565b60405180910390a3600190509392505050565b6000838311158290611e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e609190612dac565b60405180910390fd5b5060008385611e789190613747565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f30575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f8557601260009054906101000a900460ff16611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b906137c7565b60405180910390fd5b5b601660009054906101000a900460ff161561207e57600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561203e5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61207d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207490613833565b60405180910390fd5b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612126575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561215e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561219657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122a357601260029054906101000a900460ff16156122475760145461220583600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b1115612246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223d9061389f565b60405180910390fd5b5b601260019054906101000a900460ff16156122a2576013548211156122a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122989061390b565b60405180910390fd5b5b5b601660019054906101000a900460ff16156122ca576122c3848484611c4e565b9050612554565b60006122d530611334565b905060006015548210159050600081801561233d5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b80156123515750600061234f30611334565b115b905080156123625761236161264d565b5b6123eb856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e219092919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061243a8888612705565b612444578561244f565b61244e8887612916565b5b90506124a381600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125439190612cf8565b60405180910390a360019450505050505b9392505050565b600061259d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a5a565b905092915050565b60006125e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e21565b905092915050565b60008082846125fe919061392b565b905083811015612643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263a906139cd565b60405180910390fd5b8091505092915050565b6001601660016101000a81548160ff021916908315150217905550600061267330611334565b905061267e81612abd565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156126e6573d6000803e3d6000fd5b50506000601660016101000a81548160ff021916908315150217905550565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156127b35750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561285d5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061285b5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b155b801561290e5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061290d5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080612942600d54612934600c5486612c6590919063ffffffff16565b61255b90919063ffffffff16565b905061299681600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a369190612cf8565b60405180910390a3612a5181846125a590919063ffffffff16565b91505092915050565b60008083118290612aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a989190612dac565b60405180910390fd5b5060008385612ab09190613a1c565b9050809150509392505050565b6000600267ffffffffffffffff811115612ada57612ad9613a4d565b5b604051908082528060200260200182016040528015612b085781602001602082028036833780820191505090505b5090503081600081518110612b2057612b1f613a7c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612b9157612b90613a7c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612c2f959493929190613ba4565b600060405180830381600087803b158015612c4957600080fd5b505af1158015612c5d573d6000803e3d6000fd5b505050505050565b6000808303612c775760009050612cd9565b60008284612c85919061330c565b9050828482612c949190613a1c565b14612cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ccb90613c70565b60405180910390fd5b809150505b92915050565b6000819050919050565b612cf281612cdf565b82525050565b6000602082019050612d0d6000830184612ce9565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d4d578082015181840152602081019050612d32565b83811115612d5c576000848401525b50505050565b6000601f19601f8301169050919050565b6000612d7e82612d13565b612d888185612d1e565b9350612d98818560208601612d2f565b612da181612d62565b840191505092915050565b60006020820190508181036000830152612dc68184612d73565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dfe82612dd3565b9050919050565b612e0e81612df3565b8114612e1957600080fd5b50565b600081359050612e2b81612e05565b92915050565b612e3a81612cdf565b8114612e4557600080fd5b50565b600081359050612e5781612e31565b92915050565b60008060408385031215612e7457612e73612dce565b5b6000612e8285828601612e1c565b9250506020612e9385828601612e48565b9150509250929050565b60008115159050919050565b612eb281612e9d565b82525050565b6000602082019050612ecd6000830184612ea9565b92915050565b600060208284031215612ee957612ee8612dce565b5b6000612ef784828501612e48565b91505092915050565b600080600060608486031215612f1957612f18612dce565b5b6000612f2786828701612e1c565b9350506020612f3886828701612e1c565b9250506040612f4986828701612e48565b9150509250925092565b600060208284031215612f6957612f68612dce565b5b6000612f7784828501612e1c565b91505092915050565b600060ff82169050919050565b612f9681612f80565b82525050565b6000602082019050612fb16000830184612f8d565b92915050565b612fc081612e9d565b8114612fcb57600080fd5b50565b600081359050612fdd81612fb7565b92915050565b60008060408385031215612ffa57612ff9612dce565b5b600061300885828601612e1c565b925050602061301985828601612fce565b9150509250929050565b61302c81612df3565b82525050565b60006020820190506130476000830184613023565b92915050565b600061305882612dd3565b9050919050565b6130688161304d565b82525050565b6000602082019050613083600083018461305f565b92915050565b600063ffffffff82169050919050565b6130a281613089565b81146130ad57600080fd5b50565b6000813590506130bf81613099565b92915050565b6000602082840312156130db576130da612dce565b5b60006130e9848285016130b0565b91505092915050565b6000806040838503121561310957613108612dce565b5b600061311785828601612e1c565b925050602061312885828601612e1c565b9150509250929050565b61313b8161304d565b811461314657600080fd5b50565b60008135905061315881613132565b92915050565b60006020828403121561317457613173612dce565b5b600061318284828501613149565b91505092915050565b6000819050919050565b60006131b06131ab6131a684612dd3565b61318b565b612dd3565b9050919050565b60006131c282613195565b9050919050565b60006131d4826131b7565b9050919050565b6131e4816131c9565b82525050565b60006020820190506131ff60008301846131db565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b600061323b600683612d1e565b915061324682613205565b602082019050919050565b6000602082019050818103600083015261326a8161322e565b9050919050565b7f63616e2774206578636565642031250000000000000000000000000000000000600082015250565b60006132a7600f83612d1e565b91506132b282613271565b602082019050919050565b600060208201905081810360008301526132d68161329a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061331782612cdf565b915061332283612cdf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561335b5761335a6132dd565b5b828202905092915050565b60008151905061337581612e31565b92915050565b60006020828403121561339157613390612dce565b5b600061339f84828501613366565b91505092915050565b7f4e6f20746f6b656e7320746f2077697468647261770000000000000000000000600082015250565b60006133de601583612d1e565b91506133e9826133a8565b602082019050919050565b6000602082019050818103600083015261340d816133d1565b9050919050565b60006040820190506134296000830185613023565b6134366020830184612ce9565b9392505050565b60008151905061344c81612fb7565b92915050565b60006020828403121561346857613467612dce565b5b60006134768482850161343d565b91505092915050565b7f4665652063616e27742065786365656420313025000000000000000000000000600082015250565b60006134b5601483612d1e565b91506134c08261347f565b602082019050919050565b600060208201905081810360008301526134e4816134a8565b9050919050565b7f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000600082015250565b6000613521601783612d1e565b915061352c826134eb565b602082019050919050565b6000602082019050818103600083015261355081613514565b9050919050565b7f4e6f20457468657220746f207769746864726177000000000000000000000000600082015250565b600061358d601483612d1e565b915061359882613557565b602082019050919050565b600060208201905081810360008301526135bc81613580565b9050919050565b600081905092915050565b50565b60006135de6000836135c3565b91506135e9826135ce565b600082019050919050565b60006135ff826135d1565b9150819050919050565b7f5769746864726177206661696c65640000000000000000000000000000000000600082015250565b600061363f600f83612d1e565b915061364a82613609565b602082019050919050565b6000602082019050818103600083015261366e81613632565b9050919050565b7f5365637265742063616e6e6f74206265207a65726f0000000000000000000000600082015250565b60006136ab601583612d1e565b91506136b682613675565b602082019050919050565b600060208201905081810360008301526136da8161369e565b9050919050565b6136ea81613089565b82525050565b600060208201905061370560008301846136e1565b92915050565b6000613716826131b7565b9050919050565b6137268161370b565b82525050565b6000602082019050613741600083018461371d565b92915050565b600061375282612cdf565b915061375d83612cdf565b9250828210156137705761376f6132dd565b5b828203905092915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b60006137b1601883612d1e565b91506137bc8261377b565b602082019050919050565b600060208201905081810360008301526137e0816137a4565b9050919050565b7f426f742100000000000000000000000000000000000000000000000000000000600082015250565b600061381d600483612d1e565b9150613828826137e7565b602082019050919050565b6000602082019050818103600083015261384c81613810565b9050919050565b7f546f6f206d75636820696e2077616c6c65742073697200000000000000000000600082015250565b6000613889601683612d1e565b915061389482613853565b602082019050919050565b600060208201905081810360008301526138b88161387c565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b60006138f5600c83612d1e565b9150613900826138bf565b602082019050919050565b60006020820190508181036000830152613924816138e8565b9050919050565b600061393682612cdf565b915061394183612cdf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613976576139756132dd565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006139b7601b83612d1e565b91506139c282613981565b602082019050919050565b600060208201905081810360008301526139e6816139aa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a2782612cdf565b9150613a3283612cdf565b925082613a4257613a416139ed565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613ad0613acb613ac684613aab565b61318b565b612cdf565b9050919050565b613ae081613ab5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b1b81612df3565b82525050565b6000613b2d8383613b12565b60208301905092915050565b6000602082019050919050565b6000613b5182613ae6565b613b5b8185613af1565b9350613b6683613b02565b8060005b83811015613b97578151613b7e8882613b21565b9750613b8983613b39565b925050600181019050613b6a565b5085935050505092915050565b600060a082019050613bb96000830188612ce9565b613bc66020830187613ad7565b8181036040830152613bd88186613b46565b9050613be76060830185613023565b613bf46080830184612ce9565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c5a602183612d1e565b9150613c6582613bfe565b604082019050919050565b60006020820190508181036000830152613c8981613c4d565b905091905056fea2646970667358221220949041050756edbf8fe47970ec7a076f1dd122144b163e342f92ff0a5e56a19464736f6c634300080d0033000000000000000000000000d4bc4e4490c4a42336552db87fcf7b3bc4e06d11000000000000000000000000d4bc4e4490c4a42336552db87fcf7b3bc4e06d11000000000000000000000000ed3247ff095383fedaa07017c03ba78e0cf03edc

Deployed Bytecode

0x6080604052600436106102345760003560e01c8063751039fc1161012e578063bf56b371116100ab578063e2226a561161006f578063e2226a561461085e578063eec1c69f1461089b578063f2fde38b146108d8578063f429389014610901578063f887ea40146109185761023b565b8063bf56b3711461079d578063bffb691d146107c8578063c9567bf9146107f3578063dc92f8f01461080a578063dd62ed3e146108215761023b565b806395d89b41116100f257806395d89b4114610690578063a8aa1b31146106bb578063a9059cbb146106e6578063a94fae9414610723578063b1a4e0dc146107605761023b565b8063751039fc146105e357806375f0a874146105fa578063764ca5121461062557806377f08cd61461063c578063893d20e8146106655761023b565b8063313ce567116101bc57806363df0ef71161018057806363df0ef7146104ec578063658d4b7f14610517578063673448dd1461054057806369fe0e2d1461057d57806370a08231146105a65761023b565b8063313ce56714610409578063342aa8b51461043457806340c442de1461045d578063571ac8b0146104865780635d098b38146104c35761023b565b806323b635851161020357806323b63585146102fe57806323b872dd1461033b57806329e04b4a146103785780632b112e49146103a15780632f54bf6e146103cc5761023b565b80630445b6671461024057806306fdde031461026b578063095ea7b31461029657806318160ddd146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610943565b6040516102629190612cf8565b60405180910390f35b34801561027757600080fd5b50610280610949565b60405161028d9190612dac565b60405180910390f35b3480156102a257600080fd5b506102bd60048036038101906102b89190612e5d565b610986565b6040516102ca9190612eb8565b60405180910390f35b3480156102df57600080fd5b506102e8610a78565b6040516102f59190612cf8565b60405180910390f35b34801561030a57600080fd5b5061032560048036038101906103209190612ed3565b610a82565b6040516103329190612eb8565b60405180910390f35b34801561034757600080fd5b50610362600480360381019061035d9190612f00565b610b00565b60405161036f9190612eb8565b60405180910390f35b34801561038457600080fd5b5061039f600480360381019061039a9190612ed3565b610d00565b005b3480156103ad57600080fd5b506103b6610dbd565b6040516103c39190612cf8565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee9190612f53565b610e3f565b6040516104009190612eb8565b60405180910390f35b34801561041557600080fd5b5061041e610e98565b60405161042b9190612f9c565b60405180910390f35b34801561044057600080fd5b5061045b60048036038101906104569190612fe3565b610ea1565b005b34801561046957600080fd5b50610484600480360381019061047f9190612f53565b610f44565b005b34801561049257600080fd5b506104ad60048036038101906104a89190612f53565b6110f6565b6040516104ba9190612eb8565b60405180910390f35b3480156104cf57600080fd5b506104ea60048036038101906104e59190612f53565b611129565b005b3480156104f857600080fd5b506105016111b5565b60405161050e9190613032565b60405180910390f35b34801561052357600080fd5b5061053e60048036038101906105399190612fe3565b6111db565b005b34801561054c57600080fd5b5061056760048036038101906105629190612f53565b61127e565b6040516105749190612eb8565b60405180910390f35b34801561058957600080fd5b506105a4600480360381019061059f9190612ed3565b61129e565b005b3480156105b257600080fd5b506105cd60048036038101906105c89190612f53565b611334565b6040516105da9190612cf8565b60405180910390f35b3480156105ef57600080fd5b506105f861137d565b005b34801561060657600080fd5b5061060f6113fd565b60405161061c919061306e565b60405180910390f35b34801561063157600080fd5b5061063a611423565b005b34801561064857600080fd5b50610663600480360381019061065e9190612f53565b6114de565b005b34801561067157600080fd5b5061067a61156a565b6040516106879190613032565b60405180910390f35b34801561069c57600080fd5b506106a5611593565b6040516106b29190612dac565b60405180910390f35b3480156106c757600080fd5b506106d06115d0565b6040516106dd9190613032565b60405180910390f35b3480156106f257600080fd5b5061070d60048036038101906107089190612e5d565b6115f6565b60405161071a9190612eb8565b60405180910390f35b34801561072f57600080fd5b5061074a600480360381019061074591906130c5565b61160b565b6040516107579190613032565b60405180910390f35b34801561076c57600080fd5b5061078760048036038101906107829190612f53565b611657565b6040516107949190612eb8565b60405180910390f35b3480156107a957600080fd5b506107b26116ad565b6040516107bf9190612cf8565b60405180910390f35b3480156107d457600080fd5b506107dd6116b3565b6040516107ea9190612eb8565b60405180910390f35b3480156107ff57600080fd5b506108086116c6565b005b34801561081657600080fd5b5061081f611732565b005b34801561082d57600080fd5b50610848600480360381019061084391906130f2565b611893565b6040516108559190612cf8565b60405180910390f35b34801561086a57600080fd5b50610885600480360381019061088091906130c5565b61191a565b6040516108929190613032565b60405180910390f35b3480156108a757600080fd5b506108c260048036038101906108bd91906130c5565b611958565b6040516108cf9190612eb8565b60405180910390f35b3480156108e457600080fd5b506108ff60048036038101906108fa919061315e565b611aad565b005b34801561090d57600080fd5b50610916611b6f565b005b34801561092457600080fd5b5061092d611c28565b60405161093a91906131ea565b60405180910390f35b60155481565b60606040518060400160405280600381526020017f5056500000000000000000000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a669190612cf8565b60405180910390a36001905092915050565b6000600554905090565b6000610a8d33610e3f565b610acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac390613251565b60405180910390fd5b610af930600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c4e565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610cec57610c6b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e219092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610cf7848484611e85565b90509392505050565b610d0933610e3f565b610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f90613251565b60405180910390fd5b610d5e606460055461255b90919063ffffffff16565b811115610da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d97906132bd565b60405180910390fd5b670de0b6b3a764000081610db4919061330c565b60158190555050565b6000610e3a610ded600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611334565b610e2c610e1b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611334565b6005546125a590919063ffffffff16565b6125a590919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b610eaa33610e3f565b610ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee090613251565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610f4d33610e3f565b610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8390613251565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fcc9190613032565b602060405180830381865afa158015610fe9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100d919061337b565b905060008111611052576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611049906133f4565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016110ad929190613414565b6020604051808303816000875af11580156110cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f09190613452565b50505050565b6000611122827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610986565b9050919050565b61113233610e3f565b611171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116890613251565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111e433610e3f565b611223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121a90613251565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6112a733610e3f565b6112e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dd90613251565b60405180910390fd5b600a81111561132a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611321906134cb565b60405180910390fd5b80600c8190555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61138633610e3f565b6113c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bc90613251565b60405180910390fd5b6000601260016101000a81548160ff0219169083151502179055506000601260026101000a81548160ff021916908315150217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61142c33610e3f565b61146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146290613251565b60405180910390fd5b60001515601660009054906101000a900460ff161515146114c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b890613537565b60405180910390fd5b6001601660006101000a81548160ff021916908315150217905550565b6114e733610e3f565b611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d90613251565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5056500000000000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611603338484611e85565b905092915050565b6000600b60008363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b601660009054906101000a900460ff1681565b6116cf33610e3f565b61170e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170590613251565b60405180910390fd5b436011819055506001601260006101000a81548160ff021916908315150217905550565b61173b33610e3f565b61177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613251565b60405180910390fd5b6000479050600081116117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b9906135a3565b60405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611809906135f4565b60006040518083038185875af1925050503d8060008114611846576040519150601f19603f3d011682016040523d82523d6000602084013e61184b565b606091505b505090508061188f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188690613655565b60405180910390fd5b5050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081565b60008033905060008363ffffffff16036119a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199e906136c1565b60405180910390fd5b80600b60008563ffffffff1663ffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a54600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610986565b508073ffffffffffffffffffffffffffffffffffffffff167fe146b5682c27e8ecaaf5d0a35504c4b2e0f0d9f6ea5d5d4dfd9c32c7df2174eb84604051611a9b91906136f0565b60405180910390a26001915050919050565b611ab633610e3f565b611af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aec90613251565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611b64919061372c565b60405180910390a150565b611b7833610e3f565b611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae90613251565b60405180910390fd5b6000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c24573d6000803e3d6000fd5b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611cd9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e219092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d6e82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e0e9190612cf8565b60405180910390a3600190509392505050565b6000838311158290611e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e609190612dac565b60405180910390fd5b5060008385611e789190613747565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f30575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f8557601260009054906101000a900460ff16611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b906137c7565b60405180910390fd5b5b601660009054906101000a900460ff161561207e57600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561203e5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61207d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207490613833565b60405180910390fd5b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612126575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561215e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561219657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122a357601260029054906101000a900460ff16156122475760145461220583600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b1115612246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223d9061389f565b60405180910390fd5b5b601260019054906101000a900460ff16156122a2576013548211156122a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122989061390b565b60405180910390fd5b5b5b601660019054906101000a900460ff16156122ca576122c3848484611c4e565b9050612554565b60006122d530611334565b905060006015548210159050600081801561233d5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b80156123515750600061234f30611334565b115b905080156123625761236161264d565b5b6123eb856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e219092919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061243a8888612705565b612444578561244f565b61244e8887612916565b5b90506124a381600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125439190612cf8565b60405180910390a360019450505050505b9392505050565b600061259d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a5a565b905092915050565b60006125e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e21565b905092915050565b60008082846125fe919061392b565b905083811015612643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263a906139cd565b60405180910390fd5b8091505092915050565b6001601660016101000a81548160ff021916908315150217905550600061267330611334565b905061267e81612abd565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156126e6573d6000803e3d6000fd5b50506000601660016101000a81548160ff021916908315150217905550565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156127b35750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561285d5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061285b5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b155b801561290e5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061290d5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080612942600d54612934600c5486612c6590919063ffffffff16565b61255b90919063ffffffff16565b905061299681600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a369190612cf8565b60405180910390a3612a5181846125a590919063ffffffff16565b91505092915050565b60008083118290612aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a989190612dac565b60405180910390fd5b5060008385612ab09190613a1c565b9050809150509392505050565b6000600267ffffffffffffffff811115612ada57612ad9613a4d565b5b604051908082528060200260200182016040528015612b085781602001602082028036833780820191505090505b5090503081600081518110612b2057612b1f613a7c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612b9157612b90613a7c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612c2f959493929190613ba4565b600060405180830381600087803b158015612c4957600080fd5b505af1158015612c5d573d6000803e3d6000fd5b505050505050565b6000808303612c775760009050612cd9565b60008284612c85919061330c565b9050828482612c949190613a1c565b14612cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ccb90613c70565b60405180910390fd5b809150505b92915050565b6000819050919050565b612cf281612cdf565b82525050565b6000602082019050612d0d6000830184612ce9565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d4d578082015181840152602081019050612d32565b83811115612d5c576000848401525b50505050565b6000601f19601f8301169050919050565b6000612d7e82612d13565b612d888185612d1e565b9350612d98818560208601612d2f565b612da181612d62565b840191505092915050565b60006020820190508181036000830152612dc68184612d73565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dfe82612dd3565b9050919050565b612e0e81612df3565b8114612e1957600080fd5b50565b600081359050612e2b81612e05565b92915050565b612e3a81612cdf565b8114612e4557600080fd5b50565b600081359050612e5781612e31565b92915050565b60008060408385031215612e7457612e73612dce565b5b6000612e8285828601612e1c565b9250506020612e9385828601612e48565b9150509250929050565b60008115159050919050565b612eb281612e9d565b82525050565b6000602082019050612ecd6000830184612ea9565b92915050565b600060208284031215612ee957612ee8612dce565b5b6000612ef784828501612e48565b91505092915050565b600080600060608486031215612f1957612f18612dce565b5b6000612f2786828701612e1c565b9350506020612f3886828701612e1c565b9250506040612f4986828701612e48565b9150509250925092565b600060208284031215612f6957612f68612dce565b5b6000612f7784828501612e1c565b91505092915050565b600060ff82169050919050565b612f9681612f80565b82525050565b6000602082019050612fb16000830184612f8d565b92915050565b612fc081612e9d565b8114612fcb57600080fd5b50565b600081359050612fdd81612fb7565b92915050565b60008060408385031215612ffa57612ff9612dce565b5b600061300885828601612e1c565b925050602061301985828601612fce565b9150509250929050565b61302c81612df3565b82525050565b60006020820190506130476000830184613023565b92915050565b600061305882612dd3565b9050919050565b6130688161304d565b82525050565b6000602082019050613083600083018461305f565b92915050565b600063ffffffff82169050919050565b6130a281613089565b81146130ad57600080fd5b50565b6000813590506130bf81613099565b92915050565b6000602082840312156130db576130da612dce565b5b60006130e9848285016130b0565b91505092915050565b6000806040838503121561310957613108612dce565b5b600061311785828601612e1c565b925050602061312885828601612e1c565b9150509250929050565b61313b8161304d565b811461314657600080fd5b50565b60008135905061315881613132565b92915050565b60006020828403121561317457613173612dce565b5b600061318284828501613149565b91505092915050565b6000819050919050565b60006131b06131ab6131a684612dd3565b61318b565b612dd3565b9050919050565b60006131c282613195565b9050919050565b60006131d4826131b7565b9050919050565b6131e4816131c9565b82525050565b60006020820190506131ff60008301846131db565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b600061323b600683612d1e565b915061324682613205565b602082019050919050565b6000602082019050818103600083015261326a8161322e565b9050919050565b7f63616e2774206578636565642031250000000000000000000000000000000000600082015250565b60006132a7600f83612d1e565b91506132b282613271565b602082019050919050565b600060208201905081810360008301526132d68161329a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061331782612cdf565b915061332283612cdf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561335b5761335a6132dd565b5b828202905092915050565b60008151905061337581612e31565b92915050565b60006020828403121561339157613390612dce565b5b600061339f84828501613366565b91505092915050565b7f4e6f20746f6b656e7320746f2077697468647261770000000000000000000000600082015250565b60006133de601583612d1e565b91506133e9826133a8565b602082019050919050565b6000602082019050818103600083015261340d816133d1565b9050919050565b60006040820190506134296000830185613023565b6134366020830184612ce9565b9392505050565b60008151905061344c81612fb7565b92915050565b60006020828403121561346857613467612dce565b5b60006134768482850161343d565b91505092915050565b7f4665652063616e27742065786365656420313025000000000000000000000000600082015250565b60006134b5601483612d1e565b91506134c08261347f565b602082019050919050565b600060208201905081810360008301526134e4816134a8565b9050919050565b7f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000600082015250565b6000613521601783612d1e565b915061352c826134eb565b602082019050919050565b6000602082019050818103600083015261355081613514565b9050919050565b7f4e6f20457468657220746f207769746864726177000000000000000000000000600082015250565b600061358d601483612d1e565b915061359882613557565b602082019050919050565b600060208201905081810360008301526135bc81613580565b9050919050565b600081905092915050565b50565b60006135de6000836135c3565b91506135e9826135ce565b600082019050919050565b60006135ff826135d1565b9150819050919050565b7f5769746864726177206661696c65640000000000000000000000000000000000600082015250565b600061363f600f83612d1e565b915061364a82613609565b602082019050919050565b6000602082019050818103600083015261366e81613632565b9050919050565b7f5365637265742063616e6e6f74206265207a65726f0000000000000000000000600082015250565b60006136ab601583612d1e565b91506136b682613675565b602082019050919050565b600060208201905081810360008301526136da8161369e565b9050919050565b6136ea81613089565b82525050565b600060208201905061370560008301846136e1565b92915050565b6000613716826131b7565b9050919050565b6137268161370b565b82525050565b6000602082019050613741600083018461371d565b92915050565b600061375282612cdf565b915061375d83612cdf565b9250828210156137705761376f6132dd565b5b828203905092915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b60006137b1601883612d1e565b91506137bc8261377b565b602082019050919050565b600060208201905081810360008301526137e0816137a4565b9050919050565b7f426f742100000000000000000000000000000000000000000000000000000000600082015250565b600061381d600483612d1e565b9150613828826137e7565b602082019050919050565b6000602082019050818103600083015261384c81613810565b9050919050565b7f546f6f206d75636820696e2077616c6c65742073697200000000000000000000600082015250565b6000613889601683612d1e565b915061389482613853565b602082019050919050565b600060208201905081810360008301526138b88161387c565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b60006138f5600c83612d1e565b9150613900826138bf565b602082019050919050565b60006020820190508181036000830152613924816138e8565b9050919050565b600061393682612cdf565b915061394183612cdf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613976576139756132dd565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006139b7601b83612d1e565b91506139c282613981565b602082019050919050565b600060208201905081810360008301526139e6816139aa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a2782612cdf565b9150613a3283612cdf565b925082613a4257613a416139ed565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613ad0613acb613ac684613aab565b61318b565b612cdf565b9050919050565b613ae081613ab5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b1b81612df3565b82525050565b6000613b2d8383613b12565b60208301905092915050565b6000602082019050919050565b6000613b5182613ae6565b613b5b8185613af1565b9350613b6683613b02565b8060005b83811015613b97578151613b7e8882613b21565b9750613b8983613b39565b925050600181019050613b6a565b5085935050505092915050565b600060a082019050613bb96000830188612ce9565b613bc66020830187613ad7565b8181036040830152613bd88186613b46565b9050613be76060830185613023565b613bf46080830184612ce9565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c5a602183612d1e565b9150613c6582613bfe565b604082019050919050565b60006020820190508181036000830152613c8981613c4d565b905091905056fea2646970667358221220949041050756edbf8fe47970ec7a076f1dd122144b163e342f92ff0a5e56a19464736f6c634300080d0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000d4bc4e4490c4a42336552db87fcf7b3bc4e06d11000000000000000000000000d4bc4e4490c4a42336552db87fcf7b3bc4e06d11000000000000000000000000ed3247ff095383fedaa07017c03ba78e0cf03edc

-----Decoded View---------------
Arg [0] : _owner (address): 0xD4BC4E4490C4a42336552dB87FCF7B3Bc4E06d11
Arg [1] : _marketingWallet (address): 0xD4BC4E4490C4a42336552dB87FCF7B3Bc4E06d11
Arg [2] : _gameContractAddress (address): 0xEd3247ff095383Fedaa07017C03bA78e0CF03edC

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000d4bc4e4490c4a42336552db87fcf7b3bc4e06d11
Arg [1] : 000000000000000000000000d4bc4e4490c4a42336552db87fcf7b3bc4e06d11
Arg [2] : 000000000000000000000000ed3247ff095383fedaa07017c03ba78e0cf03edc


Deployed Bytecode Sourcemap

5220:10892:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6594:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7937:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8938:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7619:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14338:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9520:424;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15176:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14485:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3090:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7729:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13767:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15503:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9194:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14635:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5462:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13884:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6060:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14011:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8139:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14778:108;;;;;;;;;;;;;:::i;:::-;;6234:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15004:164;;;;;;;;;;;;;:::i;:::-;;8812:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8039:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7831:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6312:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9324:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15371:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14894:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6340:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6659:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13644:115;;;;;;;;;;;;;:::i;:::-;;15811:298;;;;;;;;;;;;;:::i;:::-;;8266:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6109:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8462:342;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3318:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14156:174;;;;;;;;;;;;;:::i;:::-;;6281:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6594:56;;;;:::o;7937:94::-;7985:13;8018:5;;;;;;;;;;;;;;;;;8011:12;;7937:94;:::o;8938:248::-;9040:4;9097:6;9062:11;:23;9074:10;9062:23;;;;;;;;;;;;;;;:32;9086:7;9062:32;;;;;;;;;;;;;;;:41;;;;9140:7;9119:37;;9128:10;9119:37;;;9149:6;9119:37;;;;;;:::i;:::-;;;;;;;;9174:4;9167:11;;8938:248;;;;:::o;7619:102::-;7674:7;7701:12;;7694:19;;7619:102;:::o;14338:139::-;14402:4;2980:19;2988:10;2980:7;:19::i;:::-;2972:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14426:43:::1;14449:4;14456;;;;;;;;;;;14462:6;14426:14;:43::i;:::-;14419:50;;14338:139:::0;;;:::o;9520:424::-;9654:4;9710:17;9675:11;:19;9687:6;9675:19;;;;;;;;;;;;;;;:31;9695:10;9675:31;;;;;;;;;;;;;;;;:52;9671:206;;9778:87;9832:6;9778:87;;;;;;;;;;;;;;;;;:11;:19;9790:6;9778:19;;;;;;;;;;;;;;;:31;9798:10;9778:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;9744:11;:19;9756:6;9744:19;;;;;;;;;;;;;;;:31;9764:10;9744:31;;;;;;;;;;;;;;;:121;;;;9671:206;9896:40;9910:6;9918:9;9929:6;9896:13;:40::i;:::-;9889:47;;9520:424;;;;;:::o;15176:187::-;2980:19;2988:10;2980:7;:19::i;:::-;2972:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15272:21:::1;15289:3;15272:12;;:16;;:21;;;;:::i;:::-;15262:6;:31;;15254:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;15349:6;15340;:15;;;;:::i;:::-;15324:13;:31;;;;15176:187:::0;:::o;14485:142::-;14538:7;14565:54;14603:15;14613:4;;;;;;;;;;;14603:9;:15::i;:::-;14565:33;14582:15;14592:4;;;;;;;;;;;14582:9;:15::i;:::-;14565:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;14558:61;;14485:142;:::o;3090:103::-;3145:4;3180:5;;;;;;;;;;;3169:16;;:7;:16;;;3162:23;;3090:103;;;:::o;7729:94::-;7781:5;5630:2;7799:16;;7729:94;:::o;13767:109::-;2980:19;2988:10;2980:7;:19::i;:::-;2972:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13862:6:::1;13844:5;:15;13850:8;13844:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;13767:109:::0;;:::o;15503:300::-;2980:19;2988:10;2980:7;:19::i;:::-;2972:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15587:12:::1;15609;15587:35;;15633:20;15656:5;:15;;;15680:4;15656:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15633:53;;15720:1;15705:12;:16;15697:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;15760:5;:14;;;15775:5;::::0;::::1;;;;;;;;15782:12;15760:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15576:227;;15503:300:::0;:::o;9194:122::-;9249:4;9273:35;9281:7;9290:17;9273:7;:35::i;:::-;9266:42;;9194:122;;;:::o;14635:135::-;2980:19;2988:10;2980:7;:19::i;:::-;2972:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14745:16:::1;14719:15;;:43;;;;;;;;;;;;;;;;;;14635:135:::0;:::o;5462:34::-;;;;;;;;;;;;;:::o;13884:119::-;2980:19;2988:10;2980:7;:19::i;:::-;2972:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13989:6:::1;13967:11;:19;13979:6;13967:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13884:119:::0;;:::o;6060:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;14011:137::-;2980:19;2988:10;2980:7;:19::i;:::-;2972:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14087:2:::1;14079:4;:10;;14071:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;14136:4;14125:8;:15;;;;14011:137:::0;:::o;8139:119::-;8205:7;8232:9;:18;8242:7;8232:18;;;;;;;;;;;;;;;;8225:25;;8139:119;;;:::o;14778:108::-;2980:19;2988:10;2980:7;:19::i;:::-;2972:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14843:5:::1;14832:8;;:16;;;;;;;;;;;;;;;;;;14873:5;14859:11;;:19;;;;;;;;;;;;;;;;;;14778:108::o:0;6234:38::-;;;;;;;;;;;;;:::o;15004:164::-;2980:19;2988:10;2980:7;:19::i;:::-;2972:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15093:5:::1;15073:25;;:16;;;;;;;;;;;:25;;;15065:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;15156:4;15137:16;;:23;;;;;;;;;;;;;;;;;;15004:164::o:0;8812:118::-;2980:19;2988:10;2980:7;:19::i;:::-;2972:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8914:8:::1;8892:19;;:30;;;;;;;;;;;;;;;;;;8812:118:::0;:::o;8039:92::-;8091:7;8118:5;;;;;;;;;;;8111:12;;8039:92;:::o;7831:98::-;7881:13;7914:7;;;;;;;;;;;;;;;;;7907:14;;7831:98;:::o;6312:19::-;;;;;;;;;;;;;:::o;9324:188::-;9431:4;9460:44;9474:10;9486:9;9497:6;9460:13;:44::i;:::-;9453:51;;9324:188;;;;:::o;15371:124::-;15435:7;15462:5;:13;15468:6;15462:13;;;;;;;;;;;;;;;:25;;;;;;;;;;;;15455:32;;15371:124;;;:::o;14894:102::-;14950:4;14974:5;:14;14980:7;14974:14;;;;;;;;;;;;;;;;;;;;;;;;;14967:21;;14894:102;;;:::o;6340:25::-;;;;:::o;6659:36::-;;;;;;;;;;;;;:::o;13644:115::-;2980:19;2988:10;2980:7;:19::i;:::-;2972:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13710:12:::1;13697:10;:25;;;;13747:4;13733:11;;:18;;;;;;;;;;;;;;;;;;13644:115::o:0;15811:298::-;2980:19;2988:10;2980:7;:19::i;:::-;2972:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15875:23:::1;15901:21;15875:47;;15959:1;15941:15;:19;15933:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;15999:12;16017:5:::0;::::1;;;;;;;;;;:10;;16035:15;16017:38;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15998:57;;;16074:7;16066:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;15864:245;;15811:298::o:0;8266:188::-;8386:7;8418:11;:19;8430:6;8418:19;;;;;;;;;;;;;;;:28;8438:7;8418:28;;;;;;;;;;;;;;;;8411:35;;8266:188;;;;:::o;6109:36::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8462:342::-;8522:4;8539:12;8554:10;8539:25;;8595:1;8585:6;:11;;;8577:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;8661:4;8633:5;:13;8639:6;8633:13;;;;;;;;;;;;;;;:25;;;:32;;;;;;;;;;;;;;;;;;8678:47;8686:19;;;;;;;;;;;8707:17;8678:7;:47::i;:::-;;8759:4;8743:29;;;8765:6;8743:29;;;;;;:::i;:::-;;;;;;;;8792:4;8785:11;;;8462:342;;;:::o;3318:136::-;2980:19;2988:10;2980:7;:19::i;:::-;2972:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3402:3:::1;3394:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3421:25;3442:3;3421:25;;;;;;:::i;:::-;;;;;;;;3318:136:::0;:::o;14156:174::-;2980:19;2988:10;2980:7;:19::i;:::-;2972:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14208:26:::1;14237:21;14208:50;;14277:15;;;;;;;;;;;14269:33;;:53;14303:18;14269:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14197:133;14156:174::o:0;6281:24::-;;;;;;;;;;;;;:::o;11780:401::-;11907:4;11944:90;11980:6;11944:90;;;;;;;;;;;;;;;;;:9;:17;11954:6;11944:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;11924:9;:17;11934:6;11924:17;;;;;;;;;;;;;;;:110;;;;12068:32;12093:6;12068:9;:20;12078:9;12068:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12045:9;:20;12055:9;12045:20;;;;;;;;;;;;;;;:55;;;;12133:9;12116:35;;12125:6;12116:35;;;12144:6;12116:35;;;;;;:::i;:::-;;;;;;;;12169:4;12162:11;;11780:401;;;;;:::o;536:226::-;656:7;689:1;684;:6;;692:12;676:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;716:9;732:1;728;:5;;;;:::i;:::-;716:17;;753:1;746:8;;;536:226;;;;;:::o;9952:1820::-;10078:4;10109:5;;;;;;;;;;;10099:15;;:6;:15;;;;:37;;;;;10131:5;;;;;;;;;;10118:18;;:9;:18;;;;10099:37;10095:104;;;10159:11;;;;;;;;;;;10151:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10095:104;10214:16;;;;;;;;;;;10210:101;;;10256:5;:13;10262:6;10256:13;;;;;;;;;;;;;;;;;;;;;;;;;10255:14;:35;;;;;10274:5;:16;10280:9;10274:16;;;;;;;;;;;;;;;;;;;;;;;;;10273:17;10255:35;10247:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;10210:101;10463:5;;;;;;;;;;10453:15;;:6;:15;;;;:50;;;;;10498:5;;;;;;;;;;10485:18;;:9;:18;;;;10453:50;:90;;;;;10538:4;10520:23;;:6;:23;;;;10453:90;:133;;;;;10581:4;10560:26;;:9;:26;;;;10453:133;10435:471;;;10617:11;;;;;;;;;;;10613:175;;;10713:9;;10677:32;10702:6;10677:9;:20;10687:9;10677:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:45;;10647:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;10613:175;10809:8;;;;;;;;;;;10805:90;;;10856:6;;10846;:16;;10838:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;10805:90;10435:471;10922:6;;;;;;;;;;;10918:87;;;10952:41;10967:6;10975:9;10986:6;10952:14;:41::i;:::-;10945:48;;;;10918:87;11017:28;11048:24;11066:4;11048:9;:24::i;:::-;11017:55;;11085:24;11136:13;;11112:20;:37;;11085:64;;11162:19;11185;:53;;;;;11234:4;;;;;;;;;;;11221:17;;:9;:17;;;11185:53;:98;;;;;11282:1;11255:24;11273:4;11255:9;:24::i;:::-;:28;11185:98;11162:122;;11299:14;11295:57;;;11330:10;:8;:10::i;:::-;11295:57;11384:90;11420:6;11384:90;;;;;;;;;;;;;;;;;:9;:17;11394:6;11384:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;11364:9;:17;11374:6;11364:17;;;;;;;;;;;;;;;:110;;;;11487:22;11512:32;11526:6;11534:9;11512:13;:32::i;:::-;:93;;11599:6;11512:93;;;11560:23;11568:6;11576;11560:7;:23::i;:::-;11512:93;11487:118;;11641:40;11666:14;11641:9;:20;11651:9;11641:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11618:9;:20;11628:9;11618:20;;;;;;;;;;;;;;;:63;;;;11716:9;11699:43;;11708:6;11699:43;;;11727:14;11699:43;;;;;;:::i;:::-;;;;;;;;11760:4;11753:11;;;;;;9952:1820;;;;;;:::o;1028:132::-;1086:7;1113:39;1117:1;1120;1113:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1106:46;;1028:132;;;;:::o;392:136::-;450:7;477:43;481:1;484;477:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;470:50;;392:136;;;;:::o;203:181::-;261:7;281:9;297:1;293;:5;;;;:::i;:::-;281:17;;322:1;317;:6;;309:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;375:1;368:8;;;203:181;;;;:::o;12925:216::-;6768:4;6759:6;;:13;;;;;;;;;;;;;;;;;;12974:20:::1;12997:24;13015:4;12997:9;:24::i;:::-;12974:47;;13034:30;13051:12;13034:16;:30::i;:::-;13085:15;;;;;;;;;;;13077:33;;:56;13111:21;13077:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12963:178;6804:5:::0;6795:6;;:14;;;;;;;;;;;;;;;;;;12925:216::o;12189:346::-;12297:4;12338:19;;;;;;;;;;;12328:29;;:6;:29;;;;:78;;;;;12387:19;;;;;;;;;;;12374:32;;:9;:32;;;;12328:78;12327:145;;;;;12426:11;:19;12438:6;12426:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;12449:11;:22;12461:9;12449:22;;;;;;;;;;;;;;;;;;;;;;;;;12426:45;12424:48;12327:145;:199;;;;;12500:4;;;;;;;;;;;12490:14;;:6;:14;;;:35;;;;12521:4;;;;;;;;;;;12508:17;;:9;:17;;;12490:35;12327:199;12319:208;;12189:346;;;;:::o;12543:374::-;12628:7;12653:17;12693:40;12718:14;;12693:20;12704:8;;12693:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;12681:52;;12771:39;12800:9;12771;:24;12789:4;12771:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12744:9;:24;12762:4;12744:24;;;;;;;;;;;;;;;:66;;;;12851:4;12826:42;;12835:6;12826:42;;;12858:9;12826:42;;;;;;:::i;:::-;;;;;;;;12888:21;12899:9;12888:6;:10;;:21;;;;:::i;:::-;12881:28;;;12543:374;;;;:::o;1168:379::-;1288:7;1387:1;1383;:5;1390:12;1375:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1414:9;1430:1;1426;:5;;;;:::i;:::-;1414:17;;1538:1;1531:8;;;1168:379;;;;;:::o;13149:487::-;13275:21;13313:1;13299:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13275:40;;13344:4;13326;13331:1;13326:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13370:4;;;;;;;;;;;13360;13365:1;13360:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;13413:6;;;;;;;;;;;:57;;;13485:11;13511:1;13555:4;13582;13602:15;13413:215;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13204:432;13149:487;:::o;770:250::-;828:7;857:1;852;:6;848:47;;882:1;875:8;;;;848:47;907:9;923:1;919;:5;;;;:::i;:::-;907:17;;952:1;947;943;:5;;;;:::i;:::-;:10;935:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1011:1;1004:8;;;770:250;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:329::-;4865:6;4914:2;4902:9;4893:7;4889:23;4885:32;4882:119;;;4920:79;;:::i;:::-;4882:119;5040:1;5065:53;5110:7;5101:6;5090:9;5086:22;5065:53;:::i;:::-;5055:63;;5011:117;4806:329;;;;:::o;5141:86::-;5176:7;5216:4;5209:5;5205:16;5194:27;;5141:86;;;:::o;5233:112::-;5316:22;5332:5;5316:22;:::i;:::-;5311:3;5304:35;5233:112;;:::o;5351:214::-;5440:4;5478:2;5467:9;5463:18;5455:26;;5491:67;5555:1;5544:9;5540:17;5531:6;5491:67;:::i;:::-;5351:214;;;;:::o;5571:116::-;5641:21;5656:5;5641:21;:::i;:::-;5634:5;5631:32;5621:60;;5677:1;5674;5667:12;5621:60;5571:116;:::o;5693:133::-;5736:5;5774:6;5761:20;5752:29;;5790:30;5814:5;5790:30;:::i;:::-;5693:133;;;;:::o;5832:468::-;5897:6;5905;5954:2;5942:9;5933:7;5929:23;5925:32;5922:119;;;5960:79;;:::i;:::-;5922:119;6080:1;6105:53;6150:7;6141:6;6130:9;6126:22;6105:53;:::i;:::-;6095:63;;6051:117;6207:2;6233:50;6275:7;6266:6;6255:9;6251:22;6233:50;:::i;:::-;6223:60;;6178:115;5832:468;;;;;:::o;6306:118::-;6393:24;6411:5;6393:24;:::i;:::-;6388:3;6381:37;6306:118;;:::o;6430:222::-;6523:4;6561:2;6550:9;6546:18;6538:26;;6574:71;6642:1;6631:9;6627:17;6618:6;6574:71;:::i;:::-;6430:222;;;;:::o;6658:104::-;6703:7;6732:24;6750:5;6732:24;:::i;:::-;6721:35;;6658:104;;;:::o;6768:142::-;6871:32;6897:5;6871:32;:::i;:::-;6866:3;6859:45;6768:142;;:::o;6916:254::-;7025:4;7063:2;7052:9;7048:18;7040:26;;7076:87;7160:1;7149:9;7145:17;7136:6;7076:87;:::i;:::-;6916:254;;;;:::o;7176:93::-;7212:7;7252:10;7245:5;7241:22;7230:33;;7176:93;;;:::o;7275:120::-;7347:23;7364:5;7347:23;:::i;:::-;7340:5;7337:34;7327:62;;7385:1;7382;7375:12;7327:62;7275:120;:::o;7401:137::-;7446:5;7484:6;7471:20;7462:29;;7500:32;7526:5;7500:32;:::i;:::-;7401:137;;;;:::o;7544:327::-;7602:6;7651:2;7639:9;7630:7;7626:23;7622:32;7619:119;;;7657:79;;:::i;:::-;7619:119;7777:1;7802:52;7846:7;7837:6;7826:9;7822:22;7802:52;:::i;:::-;7792:62;;7748:116;7544:327;;;;:::o;7877:474::-;7945:6;7953;8002:2;7990:9;7981:7;7977:23;7973:32;7970:119;;;8008:79;;:::i;:::-;7970:119;8128:1;8153:53;8198:7;8189:6;8178:9;8174:22;8153:53;:::i;:::-;8143:63;;8099:117;8255:2;8281:53;8326:7;8317:6;8306:9;8302:22;8281:53;:::i;:::-;8271:63;;8226:118;7877:474;;;;;:::o;8357:138::-;8438:32;8464:5;8438:32;:::i;:::-;8431:5;8428:43;8418:71;;8485:1;8482;8475:12;8418:71;8357:138;:::o;8501:155::-;8555:5;8593:6;8580:20;8571:29;;8609:41;8644:5;8609:41;:::i;:::-;8501:155;;;;:::o;8662:345::-;8729:6;8778:2;8766:9;8757:7;8753:23;8749:32;8746:119;;;8784:79;;:::i;:::-;8746:119;8904:1;8929:61;8982:7;8973:6;8962:9;8958:22;8929:61;:::i;:::-;8919:71;;8875:125;8662:345;;;;:::o;9013:60::-;9041:3;9062:5;9055:12;;9013:60;;;:::o;9079:142::-;9129:9;9162:53;9180:34;9189:24;9207:5;9189:24;:::i;:::-;9180:34;:::i;:::-;9162:53;:::i;:::-;9149:66;;9079:142;;;:::o;9227:126::-;9277:9;9310:37;9341:5;9310:37;:::i;:::-;9297:50;;9227:126;;;:::o;9359:144::-;9427:9;9460:37;9491:5;9460:37;:::i;:::-;9447:50;;9359:144;;;:::o;9509:167::-;9614:55;9663:5;9614:55;:::i;:::-;9609:3;9602:68;9509:167;;:::o;9682:258::-;9793:4;9831:2;9820:9;9816:18;9808:26;;9844:89;9930:1;9919:9;9915:17;9906:6;9844:89;:::i;:::-;9682:258;;;;:::o;9946:156::-;10086:8;10082:1;10074:6;10070:14;10063:32;9946:156;:::o;10108:365::-;10250:3;10271:66;10335:1;10330:3;10271:66;:::i;:::-;10264:73;;10346:93;10435:3;10346:93;:::i;:::-;10464:2;10459:3;10455:12;10448:19;;10108:365;;;:::o;10479:419::-;10645:4;10683:2;10672:9;10668:18;10660:26;;10732:9;10726:4;10722:20;10718:1;10707:9;10703:17;10696:47;10760:131;10886:4;10760:131;:::i;:::-;10752:139;;10479:419;;;:::o;10904:165::-;11044:17;11040:1;11032:6;11028:14;11021:41;10904:165;:::o;11075:366::-;11217:3;11238:67;11302:2;11297:3;11238:67;:::i;:::-;11231:74;;11314:93;11403:3;11314:93;:::i;:::-;11432:2;11427:3;11423:12;11416:19;;11075:366;;;:::o;11447:419::-;11613:4;11651:2;11640:9;11636:18;11628:26;;11700:9;11694:4;11690:20;11686:1;11675:9;11671:17;11664:47;11728:131;11854:4;11728:131;:::i;:::-;11720:139;;11447:419;;;:::o;11872:180::-;11920:77;11917:1;11910:88;12017:4;12014:1;12007:15;12041:4;12038:1;12031:15;12058:348;12098:7;12121:20;12139:1;12121:20;:::i;:::-;12116:25;;12155:20;12173:1;12155:20;:::i;:::-;12150:25;;12343:1;12275:66;12271:74;12268:1;12265:81;12260:1;12253:9;12246:17;12242:105;12239:131;;;12350:18;;:::i;:::-;12239:131;12398:1;12395;12391:9;12380:20;;12058:348;;;;:::o;12412:143::-;12469:5;12500:6;12494:13;12485:22;;12516:33;12543:5;12516:33;:::i;:::-;12412:143;;;;:::o;12561:351::-;12631:6;12680:2;12668:9;12659:7;12655:23;12651:32;12648:119;;;12686:79;;:::i;:::-;12648:119;12806:1;12831:64;12887:7;12878:6;12867:9;12863:22;12831:64;:::i;:::-;12821:74;;12777:128;12561:351;;;;:::o;12918:171::-;13058:23;13054:1;13046:6;13042:14;13035:47;12918:171;:::o;13095:366::-;13237:3;13258:67;13322:2;13317:3;13258:67;:::i;:::-;13251:74;;13334:93;13423:3;13334:93;:::i;:::-;13452:2;13447:3;13443:12;13436:19;;13095:366;;;:::o;13467:419::-;13633:4;13671:2;13660:9;13656:18;13648:26;;13720:9;13714:4;13710:20;13706:1;13695:9;13691:17;13684:47;13748:131;13874:4;13748:131;:::i;:::-;13740:139;;13467:419;;;:::o;13892:332::-;14013:4;14051:2;14040:9;14036:18;14028:26;;14064:71;14132:1;14121:9;14117:17;14108:6;14064:71;:::i;:::-;14145:72;14213:2;14202:9;14198:18;14189:6;14145:72;:::i;:::-;13892:332;;;;;:::o;14230:137::-;14284:5;14315:6;14309:13;14300:22;;14331:30;14355:5;14331:30;:::i;:::-;14230:137;;;;:::o;14373:345::-;14440:6;14489:2;14477:9;14468:7;14464:23;14460:32;14457:119;;;14495:79;;:::i;:::-;14457:119;14615:1;14640:61;14693:7;14684:6;14673:9;14669:22;14640:61;:::i;:::-;14630:71;;14586:125;14373:345;;;;:::o;14724:170::-;14864:22;14860:1;14852:6;14848:14;14841:46;14724:170;:::o;14900:366::-;15042:3;15063:67;15127:2;15122:3;15063:67;:::i;:::-;15056:74;;15139:93;15228:3;15139:93;:::i;:::-;15257:2;15252:3;15248:12;15241:19;;14900:366;;;:::o;15272:419::-;15438:4;15476:2;15465:9;15461:18;15453:26;;15525:9;15519:4;15515:20;15511:1;15500:9;15496:17;15489:47;15553:131;15679:4;15553:131;:::i;:::-;15545:139;;15272:419;;;:::o;15697:173::-;15837:25;15833:1;15825:6;15821:14;15814:49;15697:173;:::o;15876:366::-;16018:3;16039:67;16103:2;16098:3;16039:67;:::i;:::-;16032:74;;16115:93;16204:3;16115:93;:::i;:::-;16233:2;16228:3;16224:12;16217:19;;15876:366;;;:::o;16248:419::-;16414:4;16452:2;16441:9;16437:18;16429:26;;16501:9;16495:4;16491:20;16487:1;16476:9;16472:17;16465:47;16529:131;16655:4;16529:131;:::i;:::-;16521:139;;16248:419;;;:::o;16673:170::-;16813:22;16809:1;16801:6;16797:14;16790:46;16673:170;:::o;16849:366::-;16991:3;17012:67;17076:2;17071:3;17012:67;:::i;:::-;17005:74;;17088:93;17177:3;17088:93;:::i;:::-;17206:2;17201:3;17197:12;17190:19;;16849:366;;;:::o;17221:419::-;17387:4;17425:2;17414:9;17410:18;17402:26;;17474:9;17468:4;17464:20;17460:1;17449:9;17445:17;17438:47;17502:131;17628:4;17502:131;:::i;:::-;17494:139;;17221:419;;;:::o;17646:147::-;17747:11;17784:3;17769:18;;17646:147;;;;:::o;17799:114::-;;:::o;17919:398::-;18078:3;18099:83;18180:1;18175:3;18099:83;:::i;:::-;18092:90;;18191:93;18280:3;18191:93;:::i;:::-;18309:1;18304:3;18300:11;18293:18;;17919:398;;;:::o;18323:379::-;18507:3;18529:147;18672:3;18529:147;:::i;:::-;18522:154;;18693:3;18686:10;;18323:379;;;:::o;18708:165::-;18848:17;18844:1;18836:6;18832:14;18825:41;18708:165;:::o;18879:366::-;19021:3;19042:67;19106:2;19101:3;19042:67;:::i;:::-;19035:74;;19118:93;19207:3;19118:93;:::i;:::-;19236:2;19231:3;19227:12;19220:19;;18879:366;;;:::o;19251:419::-;19417:4;19455:2;19444:9;19440:18;19432:26;;19504:9;19498:4;19494:20;19490:1;19479:9;19475:17;19468:47;19532:131;19658:4;19532:131;:::i;:::-;19524:139;;19251:419;;;:::o;19676:171::-;19816:23;19812:1;19804:6;19800:14;19793:47;19676:171;:::o;19853:366::-;19995:3;20016:67;20080:2;20075:3;20016:67;:::i;:::-;20009:74;;20092:93;20181:3;20092:93;:::i;:::-;20210:2;20205:3;20201:12;20194:19;;19853:366;;;:::o;20225:419::-;20391:4;20429:2;20418:9;20414:18;20406:26;;20478:9;20472:4;20468:20;20464:1;20453:9;20449:17;20442:47;20506:131;20632:4;20506:131;:::i;:::-;20498:139;;20225:419;;;:::o;20650:115::-;20735:23;20752:5;20735:23;:::i;:::-;20730:3;20723:36;20650:115;;:::o;20771:218::-;20862:4;20900:2;20889:9;20885:18;20877:26;;20913:69;20979:1;20968:9;20964:17;20955:6;20913:69;:::i;:::-;20771:218;;;;:::o;20995:134::-;21053:9;21086:37;21117:5;21086:37;:::i;:::-;21073:50;;20995:134;;;:::o;21135:147::-;21230:45;21269:5;21230:45;:::i;:::-;21225:3;21218:58;21135:147;;:::o;21288:238::-;21389:4;21427:2;21416:9;21412:18;21404:26;;21440:79;21516:1;21505:9;21501:17;21492:6;21440:79;:::i;:::-;21288:238;;;;:::o;21532:191::-;21572:4;21592:20;21610:1;21592:20;:::i;:::-;21587:25;;21626:20;21644:1;21626:20;:::i;:::-;21621:25;;21665:1;21662;21659:8;21656:34;;;21670:18;;:::i;:::-;21656:34;21715:1;21712;21708:9;21700:17;;21532:191;;;;:::o;21729:174::-;21869:26;21865:1;21857:6;21853:14;21846:50;21729:174;:::o;21909:366::-;22051:3;22072:67;22136:2;22131:3;22072:67;:::i;:::-;22065:74;;22148:93;22237:3;22148:93;:::i;:::-;22266:2;22261:3;22257:12;22250:19;;21909:366;;;:::o;22281:419::-;22447:4;22485:2;22474:9;22470:18;22462:26;;22534:9;22528:4;22524:20;22520:1;22509:9;22505:17;22498:47;22562:131;22688:4;22562:131;:::i;:::-;22554:139;;22281:419;;;:::o;22706:154::-;22846:6;22842:1;22834:6;22830:14;22823:30;22706:154;:::o;22866:365::-;23008:3;23029:66;23093:1;23088:3;23029:66;:::i;:::-;23022:73;;23104:93;23193:3;23104:93;:::i;:::-;23222:2;23217:3;23213:12;23206:19;;22866:365;;;:::o;23237:419::-;23403:4;23441:2;23430:9;23426:18;23418:26;;23490:9;23484:4;23480:20;23476:1;23465:9;23461:17;23454:47;23518:131;23644:4;23518:131;:::i;:::-;23510:139;;23237:419;;;:::o;23662:172::-;23802:24;23798:1;23790:6;23786:14;23779:48;23662:172;:::o;23840:366::-;23982:3;24003:67;24067:2;24062:3;24003:67;:::i;:::-;23996:74;;24079:93;24168:3;24079:93;:::i;:::-;24197:2;24192:3;24188:12;24181:19;;23840:366;;;:::o;24212:419::-;24378:4;24416:2;24405:9;24401:18;24393:26;;24465:9;24459:4;24455:20;24451:1;24440:9;24436:17;24429:47;24493:131;24619:4;24493:131;:::i;:::-;24485:139;;24212:419;;;:::o;24637:162::-;24777:14;24773:1;24765:6;24761:14;24754:38;24637:162;:::o;24805:366::-;24947:3;24968:67;25032:2;25027:3;24968:67;:::i;:::-;24961:74;;25044:93;25133:3;25044:93;:::i;:::-;25162:2;25157:3;25153:12;25146:19;;24805:366;;;:::o;25177:419::-;25343:4;25381:2;25370:9;25366:18;25358:26;;25430:9;25424:4;25420:20;25416:1;25405:9;25401:17;25394:47;25458:131;25584:4;25458:131;:::i;:::-;25450:139;;25177:419;;;:::o;25602:305::-;25642:3;25661:20;25679:1;25661:20;:::i;:::-;25656:25;;25695:20;25713:1;25695:20;:::i;:::-;25690:25;;25849:1;25781:66;25777:74;25774:1;25771:81;25768:107;;;25855:18;;:::i;:::-;25768:107;25899:1;25896;25892:9;25885:16;;25602:305;;;;:::o;25913:177::-;26053:29;26049:1;26041:6;26037:14;26030:53;25913:177;:::o;26096:366::-;26238:3;26259:67;26323:2;26318:3;26259:67;:::i;:::-;26252:74;;26335:93;26424:3;26335:93;:::i;:::-;26453:2;26448:3;26444:12;26437:19;;26096:366;;;:::o;26468:419::-;26634:4;26672:2;26661:9;26657:18;26649:26;;26721:9;26715:4;26711:20;26707:1;26696:9;26692:17;26685:47;26749:131;26875:4;26749:131;:::i;:::-;26741:139;;26468:419;;;:::o;26893:180::-;26941:77;26938:1;26931:88;27038:4;27035:1;27028:15;27062:4;27059:1;27052:15;27079:185;27119:1;27136:20;27154:1;27136:20;:::i;:::-;27131:25;;27170:20;27188:1;27170:20;:::i;:::-;27165:25;;27209:1;27199:35;;27214:18;;:::i;:::-;27199:35;27256:1;27253;27249:9;27244:14;;27079:185;;;;:::o;27270:180::-;27318:77;27315:1;27308:88;27415:4;27412:1;27405:15;27439:4;27436:1;27429:15;27456:180;27504:77;27501:1;27494:88;27601:4;27598:1;27591:15;27625:4;27622:1;27615:15;27642:85;27687:7;27716:5;27705:16;;27642:85;;;:::o;27733:158::-;27791:9;27824:61;27842:42;27851:32;27877:5;27851:32;:::i;:::-;27842:42;:::i;:::-;27824:61;:::i;:::-;27811:74;;27733:158;;;:::o;27897:147::-;27992:45;28031:5;27992:45;:::i;:::-;27987:3;27980:58;27897:147;;:::o;28050:114::-;28117:6;28151:5;28145:12;28135:22;;28050:114;;;:::o;28170:184::-;28269:11;28303:6;28298:3;28291:19;28343:4;28338:3;28334:14;28319:29;;28170:184;;;;:::o;28360:132::-;28427:4;28450:3;28442:11;;28480:4;28475:3;28471:14;28463:22;;28360:132;;;:::o;28498:108::-;28575:24;28593:5;28575:24;:::i;:::-;28570:3;28563:37;28498:108;;:::o;28612:179::-;28681:10;28702:46;28744:3;28736:6;28702:46;:::i;:::-;28780:4;28775:3;28771:14;28757:28;;28612:179;;;;:::o;28797:113::-;28867:4;28899;28894:3;28890:14;28882:22;;28797:113;;;:::o;28946:732::-;29065:3;29094:54;29142:5;29094:54;:::i;:::-;29164:86;29243:6;29238:3;29164:86;:::i;:::-;29157:93;;29274:56;29324:5;29274:56;:::i;:::-;29353:7;29384:1;29369:284;29394:6;29391:1;29388:13;29369:284;;;29470:6;29464:13;29497:63;29556:3;29541:13;29497:63;:::i;:::-;29490:70;;29583:60;29636:6;29583:60;:::i;:::-;29573:70;;29429:224;29416:1;29413;29409:9;29404:14;;29369:284;;;29373:14;29669:3;29662:10;;29070:608;;;28946:732;;;;:::o;29684:831::-;29947:4;29985:3;29974:9;29970:19;29962:27;;29999:71;30067:1;30056:9;30052:17;30043:6;29999:71;:::i;:::-;30080:80;30156:2;30145:9;30141:18;30132:6;30080:80;:::i;:::-;30207:9;30201:4;30197:20;30192:2;30181:9;30177:18;30170:48;30235:108;30338:4;30329:6;30235:108;:::i;:::-;30227:116;;30353:72;30421:2;30410:9;30406:18;30397:6;30353:72;:::i;:::-;30435:73;30503:3;30492:9;30488:19;30479:6;30435:73;:::i;:::-;29684:831;;;;;;;;:::o;30521:220::-;30661:34;30657:1;30649:6;30645:14;30638:58;30730:3;30725:2;30717:6;30713:15;30706:28;30521:220;:::o;30747:366::-;30889:3;30910:67;30974:2;30969:3;30910:67;:::i;:::-;30903:74;;30986:93;31075:3;30986:93;:::i;:::-;31104:2;31099:3;31095:12;31088:19;;30747:366;;;:::o;31119:419::-;31285:4;31323:2;31312:9;31308:18;31300:26;;31372:9;31366:4;31362:20;31358:1;31347:9;31343:17;31336:47;31400:131;31526:4;31400:131;:::i;:::-;31392:139;;31119:419;;;:::o

Swarm Source

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