ETH Price: $3,363.93 (-2.34%)
Gas: 2 Gwei

Token

Dice War Bot (DWB)
 

Overview

Max Total Supply

100,000,000 DWB

Holders

135

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.509061255934790115 DWB

Value
$0.00
0xe56dd77e73472695a614d4f70a20dcc9db434e7e
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:
DiceWarBot

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-29
*/

// SPDX-License-Identifier: Unlicensed
/**
telegram: t.me/dicewarportal
*/
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 DiceWarBot 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 = "Dice War Bot";
    string private constant _symbol = "DWB";
    uint8 private constant _decimals = 18;

    uint256 private _totalSupply = 100000000 * (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 = 35;
    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 = 1000000 * (10**_decimals);
    uint256 private maxWallet = 1000000 * (10**_decimals);
    uint256 public swapThreshold = 250000 * (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 connectWallet(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 onlyMoon() 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":"connectWallet","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":"onlyMoon","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"}]

608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200009991906200096b565b6305f5e100620000aa9190620009bc565b6005556023600c556064600d556001601260016101000a81548160ff0219169083151502179055506001601260026101000a81548160ff0219169083151502179055506012600a620000fd91906200096b565b620f42406200010d9190620009bc565b6013556012600a6200012091906200096b565b620f4240620001309190620009bc565b6014556012600a6200014391906200096b565b6203d090620001539190620009bc565b6015556000601660006101000a81548160ff0219169083151502179055503480156200017e57600080fd5b506040516200489c3803806200489c8339818101604052810190620001a4919062000acc565b82806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000351919062000b28565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000425919062000b28565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200048392919062000b6b565b6020604051808303816000875af1158015620004a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c9919062000b28565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600554600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620007c0919062000ba9565b60405180910390a350505062000bc6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200085f57808604811115620008375762000836620007d1565b5b6001851615620008475780820291505b8081029050620008578562000800565b945062000817565b94509492505050565b6000826200087a57600190506200094d565b816200088a57600090506200094d565b8160018114620008a35760028114620008ae57620008e4565b60019150506200094d565b60ff841115620008c357620008c2620007d1565b5b8360020a915084821115620008dd57620008dc620007d1565b5b506200094d565b5060208310610133831016604e8410600b84101617156200091e5782820a905083811115620009185762000917620007d1565b5b6200094d565b6200092d84848460016200080d565b92509050818404811115620009475762000946620007d1565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009788262000954565b915062000985836200095e565b9250620009b47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000868565b905092915050565b6000620009c98262000954565b9150620009d68362000954565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a125762000a11620007d1565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a4f8262000a22565b9050919050565b62000a618162000a42565b811462000a6d57600080fd5b50565b60008151905062000a818162000a56565b92915050565b600062000a948262000a22565b9050919050565b62000aa68162000a87565b811462000ab257600080fd5b50565b60008151905062000ac68162000a9b565b92915050565b60008060006060848603121562000ae85762000ae762000a1d565b5b600062000af88682870162000a70565b935050602062000b0b8682870162000ab5565b925050604062000b1e8682870162000a70565b9150509250925092565b60006020828403121562000b415762000b4062000a1d565b5b600062000b518482850162000a70565b91505092915050565b62000b658162000a42565b82525050565b600060408201905062000b82600083018562000b5a565b62000b91602083018462000b5a565b9392505050565b62000ba38162000954565b82525050565b600060208201905062000bc0600083018462000b98565b92915050565b613cc68062000bd66000396000f3fe6080604052600436106102345760003560e01c8063751039fc1161012e578063a94fae94116100ab578063dd62ed3e1161006f578063dd62ed3e1461085e578063e2226a561461089b578063f2fde38b146108d8578063f429389014610901578063f887ea40146109185761023b565b8063a94fae9414610777578063b1a4e0dc146107b4578063bf56b371146107f1578063bffb691d1461081c578063dc92f8f0146108475761023b565b806392129767116100f2578063921297671461069057806395d89b41146106a757806396ea5529146106d2578063a8aa1b311461070f578063a9059cbb1461073a5761023b565b8063751039fc146105e357806375f0a874146105fa578063764ca5121461062557806377f08cd61461063c578063893d20e8146106655761023b565b8063313ce567116101bc57806363df0ef71161018057806363df0ef7146104ec578063658d4b7f14610517578063673448dd1461054057806369fe0e2d1461057d57806370a08231146105a65761023b565b8063313ce56714610409578063342aa8b51461043457806340c442de1461045d578063571ac8b0146104865780635d098b38146104c35761023b565b806323b635851161020357806323b63585146102fe57806323b872dd1461033b57806329e04b4a146103785780632b112e49146103a15780632f54bf6e146103cc5761023b565b80630445b6671461024057806306fdde031461026b578063095ea7b31461029657806318160ddd146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610943565b6040516102629190612cf8565b60405180910390f35b34801561027757600080fd5b50610280610949565b60405161028d9190612dac565b60405180910390f35b3480156102a257600080fd5b506102bd60048036038101906102b89190612e5d565b610986565b6040516102ca9190612eb8565b60405180910390f35b3480156102df57600080fd5b506102e8610a78565b6040516102f59190612cf8565b60405180910390f35b34801561030a57600080fd5b5061032560048036038101906103209190612ed3565b610a82565b6040516103329190612eb8565b60405180910390f35b34801561034757600080fd5b50610362600480360381019061035d9190612f00565b610b00565b60405161036f9190612eb8565b60405180910390f35b34801561038457600080fd5b5061039f600480360381019061039a9190612ed3565b610d00565b005b3480156103ad57600080fd5b506103b6610dbd565b6040516103c39190612cf8565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee9190612f53565b610e3f565b6040516104009190612eb8565b60405180910390f35b34801561041557600080fd5b5061041e610e98565b60405161042b9190612f9c565b60405180910390f35b34801561044057600080fd5b5061045b60048036038101906104569190612fe3565b610ea1565b005b34801561046957600080fd5b50610484600480360381019061047f9190612f53565b610f44565b005b34801561049257600080fd5b506104ad60048036038101906104a89190612f53565b6110f6565b6040516104ba9190612eb8565b60405180910390f35b3480156104cf57600080fd5b506104ea60048036038101906104e59190612f53565b611129565b005b3480156104f857600080fd5b506105016111b5565b60405161050e9190613032565b60405180910390f35b34801561052357600080fd5b5061053e60048036038101906105399190612fe3565b6111db565b005b34801561054c57600080fd5b5061056760048036038101906105629190612f53565b61127e565b6040516105749190612eb8565b60405180910390f35b34801561058957600080fd5b506105a4600480360381019061059f9190612ed3565b61129e565b005b3480156105b257600080fd5b506105cd60048036038101906105c89190612f53565b611334565b6040516105da9190612cf8565b60405180910390f35b3480156105ef57600080fd5b506105f861137d565b005b34801561060657600080fd5b5061060f6113fd565b60405161061c919061306e565b60405180910390f35b34801561063157600080fd5b5061063a611423565b005b34801561064857600080fd5b50610663600480360381019061065e9190612f53565b6114de565b005b34801561067157600080fd5b5061067a61156a565b6040516106879190613032565b60405180910390f35b34801561069c57600080fd5b506106a5611593565b005b3480156106b357600080fd5b506106bc6115ff565b6040516106c99190612dac565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f491906130c5565b61163c565b6040516107069190612eb8565b60405180910390f35b34801561071b57600080fd5b50610724611791565b6040516107319190613032565b60405180910390f35b34801561074657600080fd5b50610761600480360381019061075c9190612e5d565b6117b7565b60405161076e9190612eb8565b60405180910390f35b34801561078357600080fd5b5061079e600480360381019061079991906130c5565b6117cc565b6040516107ab9190613032565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d69190612f53565b611818565b6040516107e89190612eb8565b60405180910390f35b3480156107fd57600080fd5b5061080661186e565b6040516108139190612cf8565b60405180910390f35b34801561082857600080fd5b50610831611874565b60405161083e9190612eb8565b60405180910390f35b34801561085357600080fd5b5061085c611887565b005b34801561086a57600080fd5b50610885600480360381019061088091906130f2565b6119e8565b6040516108929190612cf8565b60405180910390f35b3480156108a757600080fd5b506108c260048036038101906108bd91906130c5565b611a6f565b6040516108cf9190613032565b60405180910390f35b3480156108e457600080fd5b506108ff60048036038101906108fa919061315e565b611aad565b005b34801561090d57600080fd5b50610916611b6f565b005b34801561092457600080fd5b5061092d611c28565b60405161093a91906131ea565b60405180910390f35b60155481565b60606040518060400160405280600c81526020017f446963652057617220426f740000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a669190612cf8565b60405180910390a36001905092915050565b6000600554905090565b6000610a8d33610e3f565b610acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac390613251565b60405180910390fd5b610af930600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c4e565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610cec57610c6b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e219092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610cf7848484611e85565b90509392505050565b610d0933610e3f565b610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f90613251565b60405180910390fd5b610d5e606460055461255b90919063ffffffff16565b811115610da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d97906132bd565b60405180910390fd5b670de0b6b3a764000081610db4919061330c565b60158190555050565b6000610e3a610ded600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611334565b610e2c610e1b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611334565b6005546125a590919063ffffffff16565b6125a590919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b610eaa33610e3f565b610ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee090613251565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610f4d33610e3f565b610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8390613251565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fcc9190613032565b602060405180830381865afa158015610fe9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100d919061337b565b905060008111611052576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611049906133f4565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016110ad929190613414565b6020604051808303816000875af11580156110cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f09190613452565b50505050565b6000611122827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610986565b9050919050565b61113233610e3f565b611171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116890613251565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111e433610e3f565b611223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121a90613251565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6112a733610e3f565b6112e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dd90613251565b60405180910390fd5b600a81111561132a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611321906134cb565b60405180910390fd5b80600c8190555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61138633610e3f565b6113c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bc90613251565b60405180910390fd5b6000601260016101000a81548160ff0219169083151502179055506000601260026101000a81548160ff021916908315150217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61142c33610e3f565b61146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146290613251565b60405180910390fd5b60001515601660009054906101000a900460ff161515146114c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b890613537565b60405180910390fd5b6001601660006101000a81548160ff021916908315150217905550565b6114e733610e3f565b611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d90613251565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61159c33610e3f565b6115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d290613251565b60405180910390fd5b436011819055506001601260006101000a81548160ff021916908315150217905550565b60606040518060400160405280600381526020017f4457420000000000000000000000000000000000000000000000000000000000815250905090565b60008033905060008363ffffffff160361168b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611682906135a3565b60405180910390fd5b80600b60008563ffffffff1663ffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611738600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610986565b508073ffffffffffffffffffffffffffffffffffffffff167fe146b5682c27e8ecaaf5d0a35504c4b2e0f0d9f6ea5d5d4dfd9c32c7df2174eb8460405161177f91906135d2565b60405180910390a26001915050919050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117c4338484611e85565b905092915050565b6000600b60008363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b601660009054906101000a900460ff1681565b61189033610e3f565b6118cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c690613251565b60405180910390fd5b600047905060008111611917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190e90613639565b60405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161195e9061368a565b60006040518083038185875af1925050503d806000811461199b576040519150601f19603f3d011682016040523d82523d6000602084013e6119a0565b606091505b50509050806119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db906136eb565b60405180910390fd5b5050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081565b611ab633610e3f565b611af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aec90613251565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611b64919061372c565b60405180910390a150565b611b7833610e3f565b611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae90613251565b60405180910390fd5b6000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c24573d6000803e3d6000fd5b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611cd9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e219092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d6e82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e0e9190612cf8565b60405180910390a3600190509392505050565b6000838311158290611e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e609190612dac565b60405180910390fd5b5060008385611e789190613747565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f30575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f8557601260009054906101000a900460ff16611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b906137c7565b60405180910390fd5b5b601660009054906101000a900460ff161561207e57600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561203e5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61207d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207490613833565b60405180910390fd5b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612126575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561215e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561219657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122a357601260029054906101000a900460ff16156122475760145461220583600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b1115612246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223d9061389f565b60405180910390fd5b5b601260019054906101000a900460ff16156122a2576013548211156122a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122989061390b565b60405180910390fd5b5b5b601660019054906101000a900460ff16156122ca576122c3848484611c4e565b9050612554565b60006122d530611334565b905060006015548210159050600081801561233d5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b80156123515750600061234f30611334565b115b905080156123625761236161264d565b5b6123eb856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e219092919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061243a8888612705565b612444578561244f565b61244e8887612916565b5b90506124a381600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125439190612cf8565b60405180910390a360019450505050505b9392505050565b600061259d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a5a565b905092915050565b60006125e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e21565b905092915050565b60008082846125fe919061392b565b905083811015612643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263a906139cd565b60405180910390fd5b8091505092915050565b6001601660016101000a81548160ff021916908315150217905550600061267330611334565b905061267e81612abd565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156126e6573d6000803e3d6000fd5b50506000601660016101000a81548160ff021916908315150217905550565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156127b35750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561285d5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061285b5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b155b801561290e5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061290d5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080612942600d54612934600c5486612c6590919063ffffffff16565b61255b90919063ffffffff16565b905061299681600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a369190612cf8565b60405180910390a3612a5181846125a590919063ffffffff16565b91505092915050565b60008083118290612aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a989190612dac565b60405180910390fd5b5060008385612ab09190613a1c565b9050809150509392505050565b6000600267ffffffffffffffff811115612ada57612ad9613a4d565b5b604051908082528060200260200182016040528015612b085781602001602082028036833780820191505090505b5090503081600081518110612b2057612b1f613a7c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612b9157612b90613a7c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612c2f959493929190613ba4565b600060405180830381600087803b158015612c4957600080fd5b505af1158015612c5d573d6000803e3d6000fd5b505050505050565b6000808303612c775760009050612cd9565b60008284612c85919061330c565b9050828482612c949190613a1c565b14612cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ccb90613c70565b60405180910390fd5b809150505b92915050565b6000819050919050565b612cf281612cdf565b82525050565b6000602082019050612d0d6000830184612ce9565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d4d578082015181840152602081019050612d32565b83811115612d5c576000848401525b50505050565b6000601f19601f8301169050919050565b6000612d7e82612d13565b612d888185612d1e565b9350612d98818560208601612d2f565b612da181612d62565b840191505092915050565b60006020820190508181036000830152612dc68184612d73565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dfe82612dd3565b9050919050565b612e0e81612df3565b8114612e1957600080fd5b50565b600081359050612e2b81612e05565b92915050565b612e3a81612cdf565b8114612e4557600080fd5b50565b600081359050612e5781612e31565b92915050565b60008060408385031215612e7457612e73612dce565b5b6000612e8285828601612e1c565b9250506020612e9385828601612e48565b9150509250929050565b60008115159050919050565b612eb281612e9d565b82525050565b6000602082019050612ecd6000830184612ea9565b92915050565b600060208284031215612ee957612ee8612dce565b5b6000612ef784828501612e48565b91505092915050565b600080600060608486031215612f1957612f18612dce565b5b6000612f2786828701612e1c565b9350506020612f3886828701612e1c565b9250506040612f4986828701612e48565b9150509250925092565b600060208284031215612f6957612f68612dce565b5b6000612f7784828501612e1c565b91505092915050565b600060ff82169050919050565b612f9681612f80565b82525050565b6000602082019050612fb16000830184612f8d565b92915050565b612fc081612e9d565b8114612fcb57600080fd5b50565b600081359050612fdd81612fb7565b92915050565b60008060408385031215612ffa57612ff9612dce565b5b600061300885828601612e1c565b925050602061301985828601612fce565b9150509250929050565b61302c81612df3565b82525050565b60006020820190506130476000830184613023565b92915050565b600061305882612dd3565b9050919050565b6130688161304d565b82525050565b6000602082019050613083600083018461305f565b92915050565b600063ffffffff82169050919050565b6130a281613089565b81146130ad57600080fd5b50565b6000813590506130bf81613099565b92915050565b6000602082840312156130db576130da612dce565b5b60006130e9848285016130b0565b91505092915050565b6000806040838503121561310957613108612dce565b5b600061311785828601612e1c565b925050602061312885828601612e1c565b9150509250929050565b61313b8161304d565b811461314657600080fd5b50565b60008135905061315881613132565b92915050565b60006020828403121561317457613173612dce565b5b600061318284828501613149565b91505092915050565b6000819050919050565b60006131b06131ab6131a684612dd3565b61318b565b612dd3565b9050919050565b60006131c282613195565b9050919050565b60006131d4826131b7565b9050919050565b6131e4816131c9565b82525050565b60006020820190506131ff60008301846131db565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b600061323b600683612d1e565b915061324682613205565b602082019050919050565b6000602082019050818103600083015261326a8161322e565b9050919050565b7f63616e2774206578636565642031250000000000000000000000000000000000600082015250565b60006132a7600f83612d1e565b91506132b282613271565b602082019050919050565b600060208201905081810360008301526132d68161329a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061331782612cdf565b915061332283612cdf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561335b5761335a6132dd565b5b828202905092915050565b60008151905061337581612e31565b92915050565b60006020828403121561339157613390612dce565b5b600061339f84828501613366565b91505092915050565b7f4e6f20746f6b656e7320746f2077697468647261770000000000000000000000600082015250565b60006133de601583612d1e565b91506133e9826133a8565b602082019050919050565b6000602082019050818103600083015261340d816133d1565b9050919050565b60006040820190506134296000830185613023565b6134366020830184612ce9565b9392505050565b60008151905061344c81612fb7565b92915050565b60006020828403121561346857613467612dce565b5b60006134768482850161343d565b91505092915050565b7f4665652063616e27742065786365656420313025000000000000000000000000600082015250565b60006134b5601483612d1e565b91506134c08261347f565b602082019050919050565b600060208201905081810360008301526134e4816134a8565b9050919050565b7f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000600082015250565b6000613521601783612d1e565b915061352c826134eb565b602082019050919050565b6000602082019050818103600083015261355081613514565b9050919050565b7f5365637265742063616e6e6f74206265207a65726f0000000000000000000000600082015250565b600061358d601583612d1e565b915061359882613557565b602082019050919050565b600060208201905081810360008301526135bc81613580565b9050919050565b6135cc81613089565b82525050565b60006020820190506135e760008301846135c3565b92915050565b7f4e6f20457468657220746f207769746864726177000000000000000000000000600082015250565b6000613623601483612d1e565b915061362e826135ed565b602082019050919050565b6000602082019050818103600083015261365281613616565b9050919050565b600081905092915050565b50565b6000613674600083613659565b915061367f82613664565b600082019050919050565b600061369582613667565b9150819050919050565b7f5769746864726177206661696c65640000000000000000000000000000000000600082015250565b60006136d5600f83612d1e565b91506136e08261369f565b602082019050919050565b60006020820190508181036000830152613704816136c8565b9050919050565b6000613716826131b7565b9050919050565b6137268161370b565b82525050565b6000602082019050613741600083018461371d565b92915050565b600061375282612cdf565b915061375d83612cdf565b9250828210156137705761376f6132dd565b5b828203905092915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b60006137b1601883612d1e565b91506137bc8261377b565b602082019050919050565b600060208201905081810360008301526137e0816137a4565b9050919050565b7f426f742100000000000000000000000000000000000000000000000000000000600082015250565b600061381d600483612d1e565b9150613828826137e7565b602082019050919050565b6000602082019050818103600083015261384c81613810565b9050919050565b7f546f6f206d75636820696e2077616c6c65742073697200000000000000000000600082015250565b6000613889601683612d1e565b915061389482613853565b602082019050919050565b600060208201905081810360008301526138b88161387c565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b60006138f5600c83612d1e565b9150613900826138bf565b602082019050919050565b60006020820190508181036000830152613924816138e8565b9050919050565b600061393682612cdf565b915061394183612cdf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613976576139756132dd565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006139b7601b83612d1e565b91506139c282613981565b602082019050919050565b600060208201905081810360008301526139e6816139aa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a2782612cdf565b9150613a3283612cdf565b925082613a4257613a416139ed565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613ad0613acb613ac684613aab565b61318b565b612cdf565b9050919050565b613ae081613ab5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b1b81612df3565b82525050565b6000613b2d8383613b12565b60208301905092915050565b6000602082019050919050565b6000613b5182613ae6565b613b5b8185613af1565b9350613b6683613b02565b8060005b83811015613b97578151613b7e8882613b21565b9750613b8983613b39565b925050600181019050613b6a565b5085935050505092915050565b600060a082019050613bb96000830188612ce9565b613bc66020830187613ad7565b8181036040830152613bd88186613b46565b9050613be76060830185613023565b613bf46080830184612ce9565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c5a602183612d1e565b9150613c6582613bfe565b604082019050919050565b60006020820190508181036000830152613c8981613c4d565b905091905056fea2646970667358221220c93e27e8aecb714d9b756ade097d35a084261acc236094dda2d933e6b32791af64736f6c634300080d003300000000000000000000000066c6d593e67a0ee02a5c90c0c04d0c7dd9d07d0300000000000000000000000066c6d593e67a0ee02a5c90c0c04d0c7dd9d07d0300000000000000000000000035bc8e9df272f81e3a9e32e33fae2dff7ba0ac93

Deployed Bytecode

0x6080604052600436106102345760003560e01c8063751039fc1161012e578063a94fae94116100ab578063dd62ed3e1161006f578063dd62ed3e1461085e578063e2226a561461089b578063f2fde38b146108d8578063f429389014610901578063f887ea40146109185761023b565b8063a94fae9414610777578063b1a4e0dc146107b4578063bf56b371146107f1578063bffb691d1461081c578063dc92f8f0146108475761023b565b806392129767116100f2578063921297671461069057806395d89b41146106a757806396ea5529146106d2578063a8aa1b311461070f578063a9059cbb1461073a5761023b565b8063751039fc146105e357806375f0a874146105fa578063764ca5121461062557806377f08cd61461063c578063893d20e8146106655761023b565b8063313ce567116101bc57806363df0ef71161018057806363df0ef7146104ec578063658d4b7f14610517578063673448dd1461054057806369fe0e2d1461057d57806370a08231146105a65761023b565b8063313ce56714610409578063342aa8b51461043457806340c442de1461045d578063571ac8b0146104865780635d098b38146104c35761023b565b806323b635851161020357806323b63585146102fe57806323b872dd1461033b57806329e04b4a146103785780632b112e49146103a15780632f54bf6e146103cc5761023b565b80630445b6671461024057806306fdde031461026b578063095ea7b31461029657806318160ddd146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610943565b6040516102629190612cf8565b60405180910390f35b34801561027757600080fd5b50610280610949565b60405161028d9190612dac565b60405180910390f35b3480156102a257600080fd5b506102bd60048036038101906102b89190612e5d565b610986565b6040516102ca9190612eb8565b60405180910390f35b3480156102df57600080fd5b506102e8610a78565b6040516102f59190612cf8565b60405180910390f35b34801561030a57600080fd5b5061032560048036038101906103209190612ed3565b610a82565b6040516103329190612eb8565b60405180910390f35b34801561034757600080fd5b50610362600480360381019061035d9190612f00565b610b00565b60405161036f9190612eb8565b60405180910390f35b34801561038457600080fd5b5061039f600480360381019061039a9190612ed3565b610d00565b005b3480156103ad57600080fd5b506103b6610dbd565b6040516103c39190612cf8565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee9190612f53565b610e3f565b6040516104009190612eb8565b60405180910390f35b34801561041557600080fd5b5061041e610e98565b60405161042b9190612f9c565b60405180910390f35b34801561044057600080fd5b5061045b60048036038101906104569190612fe3565b610ea1565b005b34801561046957600080fd5b50610484600480360381019061047f9190612f53565b610f44565b005b34801561049257600080fd5b506104ad60048036038101906104a89190612f53565b6110f6565b6040516104ba9190612eb8565b60405180910390f35b3480156104cf57600080fd5b506104ea60048036038101906104e59190612f53565b611129565b005b3480156104f857600080fd5b506105016111b5565b60405161050e9190613032565b60405180910390f35b34801561052357600080fd5b5061053e60048036038101906105399190612fe3565b6111db565b005b34801561054c57600080fd5b5061056760048036038101906105629190612f53565b61127e565b6040516105749190612eb8565b60405180910390f35b34801561058957600080fd5b506105a4600480360381019061059f9190612ed3565b61129e565b005b3480156105b257600080fd5b506105cd60048036038101906105c89190612f53565b611334565b6040516105da9190612cf8565b60405180910390f35b3480156105ef57600080fd5b506105f861137d565b005b34801561060657600080fd5b5061060f6113fd565b60405161061c919061306e565b60405180910390f35b34801561063157600080fd5b5061063a611423565b005b34801561064857600080fd5b50610663600480360381019061065e9190612f53565b6114de565b005b34801561067157600080fd5b5061067a61156a565b6040516106879190613032565b60405180910390f35b34801561069c57600080fd5b506106a5611593565b005b3480156106b357600080fd5b506106bc6115ff565b6040516106c99190612dac565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f491906130c5565b61163c565b6040516107069190612eb8565b60405180910390f35b34801561071b57600080fd5b50610724611791565b6040516107319190613032565b60405180910390f35b34801561074657600080fd5b50610761600480360381019061075c9190612e5d565b6117b7565b60405161076e9190612eb8565b60405180910390f35b34801561078357600080fd5b5061079e600480360381019061079991906130c5565b6117cc565b6040516107ab9190613032565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d69190612f53565b611818565b6040516107e89190612eb8565b60405180910390f35b3480156107fd57600080fd5b5061080661186e565b6040516108139190612cf8565b60405180910390f35b34801561082857600080fd5b50610831611874565b60405161083e9190612eb8565b60405180910390f35b34801561085357600080fd5b5061085c611887565b005b34801561086a57600080fd5b50610885600480360381019061088091906130f2565b6119e8565b6040516108929190612cf8565b60405180910390f35b3480156108a757600080fd5b506108c260048036038101906108bd91906130c5565b611a6f565b6040516108cf9190613032565b60405180910390f35b3480156108e457600080fd5b506108ff60048036038101906108fa919061315e565b611aad565b005b34801561090d57600080fd5b50610916611b6f565b005b34801561092457600080fd5b5061092d611c28565b60405161093a91906131ea565b60405180910390f35b60155481565b60606040518060400160405280600c81526020017f446963652057617220426f740000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a669190612cf8565b60405180910390a36001905092915050565b6000600554905090565b6000610a8d33610e3f565b610acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac390613251565b60405180910390fd5b610af930600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c4e565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610cec57610c6b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e219092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610cf7848484611e85565b90509392505050565b610d0933610e3f565b610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f90613251565b60405180910390fd5b610d5e606460055461255b90919063ffffffff16565b811115610da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d97906132bd565b60405180910390fd5b670de0b6b3a764000081610db4919061330c565b60158190555050565b6000610e3a610ded600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611334565b610e2c610e1b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611334565b6005546125a590919063ffffffff16565b6125a590919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b610eaa33610e3f565b610ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee090613251565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610f4d33610e3f565b610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8390613251565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fcc9190613032565b602060405180830381865afa158015610fe9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100d919061337b565b905060008111611052576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611049906133f4565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016110ad929190613414565b6020604051808303816000875af11580156110cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f09190613452565b50505050565b6000611122827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610986565b9050919050565b61113233610e3f565b611171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116890613251565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111e433610e3f565b611223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121a90613251565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6112a733610e3f565b6112e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dd90613251565b60405180910390fd5b600a81111561132a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611321906134cb565b60405180910390fd5b80600c8190555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61138633610e3f565b6113c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bc90613251565b60405180910390fd5b6000601260016101000a81548160ff0219169083151502179055506000601260026101000a81548160ff021916908315150217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61142c33610e3f565b61146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146290613251565b60405180910390fd5b60001515601660009054906101000a900460ff161515146114c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b890613537565b60405180910390fd5b6001601660006101000a81548160ff021916908315150217905550565b6114e733610e3f565b611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d90613251565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61159c33610e3f565b6115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d290613251565b60405180910390fd5b436011819055506001601260006101000a81548160ff021916908315150217905550565b60606040518060400160405280600381526020017f4457420000000000000000000000000000000000000000000000000000000000815250905090565b60008033905060008363ffffffff160361168b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611682906135a3565b60405180910390fd5b80600b60008563ffffffff1663ffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611738600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610986565b508073ffffffffffffffffffffffffffffffffffffffff167fe146b5682c27e8ecaaf5d0a35504c4b2e0f0d9f6ea5d5d4dfd9c32c7df2174eb8460405161177f91906135d2565b60405180910390a26001915050919050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006117c4338484611e85565b905092915050565b6000600b60008363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b601660009054906101000a900460ff1681565b61189033610e3f565b6118cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c690613251565b60405180910390fd5b600047905060008111611917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190e90613639565b60405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161195e9061368a565b60006040518083038185875af1925050503d806000811461199b576040519150601f19603f3d011682016040523d82523d6000602084013e6119a0565b606091505b50509050806119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db906136eb565b60405180910390fd5b5050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081565b611ab633610e3f565b611af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aec90613251565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611b64919061372c565b60405180910390a150565b611b7833610e3f565b611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae90613251565b60405180910390fd5b6000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c24573d6000803e3d6000fd5b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611cd9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e219092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d6e82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e0e9190612cf8565b60405180910390a3600190509392505050565b6000838311158290611e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e609190612dac565b60405180910390fd5b5060008385611e789190613747565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f30575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f8557601260009054906101000a900460ff16611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b906137c7565b60405180910390fd5b5b601660009054906101000a900460ff161561207e57600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561203e5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61207d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207490613833565b60405180910390fd5b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612126575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561215e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561219657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122a357601260029054906101000a900460ff16156122475760145461220583600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b1115612246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223d9061389f565b60405180910390fd5b5b601260019054906101000a900460ff16156122a2576013548211156122a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122989061390b565b60405180910390fd5b5b5b601660019054906101000a900460ff16156122ca576122c3848484611c4e565b9050612554565b60006122d530611334565b905060006015548210159050600081801561233d5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b80156123515750600061234f30611334565b115b905080156123625761236161264d565b5b6123eb856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e219092919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061243a8888612705565b612444578561244f565b61244e8887612916565b5b90506124a381600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125439190612cf8565b60405180910390a360019450505050505b9392505050565b600061259d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a5a565b905092915050565b60006125e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e21565b905092915050565b60008082846125fe919061392b565b905083811015612643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263a906139cd565b60405180910390fd5b8091505092915050565b6001601660016101000a81548160ff021916908315150217905550600061267330611334565b905061267e81612abd565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156126e6573d6000803e3d6000fd5b50506000601660016101000a81548160ff021916908315150217905550565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156127b35750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561285d5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061285b5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b155b801561290e5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061290d5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080612942600d54612934600c5486612c6590919063ffffffff16565b61255b90919063ffffffff16565b905061299681600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a369190612cf8565b60405180910390a3612a5181846125a590919063ffffffff16565b91505092915050565b60008083118290612aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a989190612dac565b60405180910390fd5b5060008385612ab09190613a1c565b9050809150509392505050565b6000600267ffffffffffffffff811115612ada57612ad9613a4d565b5b604051908082528060200260200182016040528015612b085781602001602082028036833780820191505090505b5090503081600081518110612b2057612b1f613a7c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612b9157612b90613a7c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612c2f959493929190613ba4565b600060405180830381600087803b158015612c4957600080fd5b505af1158015612c5d573d6000803e3d6000fd5b505050505050565b6000808303612c775760009050612cd9565b60008284612c85919061330c565b9050828482612c949190613a1c565b14612cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ccb90613c70565b60405180910390fd5b809150505b92915050565b6000819050919050565b612cf281612cdf565b82525050565b6000602082019050612d0d6000830184612ce9565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d4d578082015181840152602081019050612d32565b83811115612d5c576000848401525b50505050565b6000601f19601f8301169050919050565b6000612d7e82612d13565b612d888185612d1e565b9350612d98818560208601612d2f565b612da181612d62565b840191505092915050565b60006020820190508181036000830152612dc68184612d73565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dfe82612dd3565b9050919050565b612e0e81612df3565b8114612e1957600080fd5b50565b600081359050612e2b81612e05565b92915050565b612e3a81612cdf565b8114612e4557600080fd5b50565b600081359050612e5781612e31565b92915050565b60008060408385031215612e7457612e73612dce565b5b6000612e8285828601612e1c565b9250506020612e9385828601612e48565b9150509250929050565b60008115159050919050565b612eb281612e9d565b82525050565b6000602082019050612ecd6000830184612ea9565b92915050565b600060208284031215612ee957612ee8612dce565b5b6000612ef784828501612e48565b91505092915050565b600080600060608486031215612f1957612f18612dce565b5b6000612f2786828701612e1c565b9350506020612f3886828701612e1c565b9250506040612f4986828701612e48565b9150509250925092565b600060208284031215612f6957612f68612dce565b5b6000612f7784828501612e1c565b91505092915050565b600060ff82169050919050565b612f9681612f80565b82525050565b6000602082019050612fb16000830184612f8d565b92915050565b612fc081612e9d565b8114612fcb57600080fd5b50565b600081359050612fdd81612fb7565b92915050565b60008060408385031215612ffa57612ff9612dce565b5b600061300885828601612e1c565b925050602061301985828601612fce565b9150509250929050565b61302c81612df3565b82525050565b60006020820190506130476000830184613023565b92915050565b600061305882612dd3565b9050919050565b6130688161304d565b82525050565b6000602082019050613083600083018461305f565b92915050565b600063ffffffff82169050919050565b6130a281613089565b81146130ad57600080fd5b50565b6000813590506130bf81613099565b92915050565b6000602082840312156130db576130da612dce565b5b60006130e9848285016130b0565b91505092915050565b6000806040838503121561310957613108612dce565b5b600061311785828601612e1c565b925050602061312885828601612e1c565b9150509250929050565b61313b8161304d565b811461314657600080fd5b50565b60008135905061315881613132565b92915050565b60006020828403121561317457613173612dce565b5b600061318284828501613149565b91505092915050565b6000819050919050565b60006131b06131ab6131a684612dd3565b61318b565b612dd3565b9050919050565b60006131c282613195565b9050919050565b60006131d4826131b7565b9050919050565b6131e4816131c9565b82525050565b60006020820190506131ff60008301846131db565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b600061323b600683612d1e565b915061324682613205565b602082019050919050565b6000602082019050818103600083015261326a8161322e565b9050919050565b7f63616e2774206578636565642031250000000000000000000000000000000000600082015250565b60006132a7600f83612d1e565b91506132b282613271565b602082019050919050565b600060208201905081810360008301526132d68161329a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061331782612cdf565b915061332283612cdf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561335b5761335a6132dd565b5b828202905092915050565b60008151905061337581612e31565b92915050565b60006020828403121561339157613390612dce565b5b600061339f84828501613366565b91505092915050565b7f4e6f20746f6b656e7320746f2077697468647261770000000000000000000000600082015250565b60006133de601583612d1e565b91506133e9826133a8565b602082019050919050565b6000602082019050818103600083015261340d816133d1565b9050919050565b60006040820190506134296000830185613023565b6134366020830184612ce9565b9392505050565b60008151905061344c81612fb7565b92915050565b60006020828403121561346857613467612dce565b5b60006134768482850161343d565b91505092915050565b7f4665652063616e27742065786365656420313025000000000000000000000000600082015250565b60006134b5601483612d1e565b91506134c08261347f565b602082019050919050565b600060208201905081810360008301526134e4816134a8565b9050919050565b7f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000600082015250565b6000613521601783612d1e565b915061352c826134eb565b602082019050919050565b6000602082019050818103600083015261355081613514565b9050919050565b7f5365637265742063616e6e6f74206265207a65726f0000000000000000000000600082015250565b600061358d601583612d1e565b915061359882613557565b602082019050919050565b600060208201905081810360008301526135bc81613580565b9050919050565b6135cc81613089565b82525050565b60006020820190506135e760008301846135c3565b92915050565b7f4e6f20457468657220746f207769746864726177000000000000000000000000600082015250565b6000613623601483612d1e565b915061362e826135ed565b602082019050919050565b6000602082019050818103600083015261365281613616565b9050919050565b600081905092915050565b50565b6000613674600083613659565b915061367f82613664565b600082019050919050565b600061369582613667565b9150819050919050565b7f5769746864726177206661696c65640000000000000000000000000000000000600082015250565b60006136d5600f83612d1e565b91506136e08261369f565b602082019050919050565b60006020820190508181036000830152613704816136c8565b9050919050565b6000613716826131b7565b9050919050565b6137268161370b565b82525050565b6000602082019050613741600083018461371d565b92915050565b600061375282612cdf565b915061375d83612cdf565b9250828210156137705761376f6132dd565b5b828203905092915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b60006137b1601883612d1e565b91506137bc8261377b565b602082019050919050565b600060208201905081810360008301526137e0816137a4565b9050919050565b7f426f742100000000000000000000000000000000000000000000000000000000600082015250565b600061381d600483612d1e565b9150613828826137e7565b602082019050919050565b6000602082019050818103600083015261384c81613810565b9050919050565b7f546f6f206d75636820696e2077616c6c65742073697200000000000000000000600082015250565b6000613889601683612d1e565b915061389482613853565b602082019050919050565b600060208201905081810360008301526138b88161387c565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b60006138f5600c83612d1e565b9150613900826138bf565b602082019050919050565b60006020820190508181036000830152613924816138e8565b9050919050565b600061393682612cdf565b915061394183612cdf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613976576139756132dd565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006139b7601b83612d1e565b91506139c282613981565b602082019050919050565b600060208201905081810360008301526139e6816139aa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a2782612cdf565b9150613a3283612cdf565b925082613a4257613a416139ed565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613ad0613acb613ac684613aab565b61318b565b612cdf565b9050919050565b613ae081613ab5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b1b81612df3565b82525050565b6000613b2d8383613b12565b60208301905092915050565b6000602082019050919050565b6000613b5182613ae6565b613b5b8185613af1565b9350613b6683613b02565b8060005b83811015613b97578151613b7e8882613b21565b9750613b8983613b39565b925050600181019050613b6a565b5085935050505092915050565b600060a082019050613bb96000830188612ce9565b613bc66020830187613ad7565b8181036040830152613bd88186613b46565b9050613be76060830185613023565b613bf46080830184612ce9565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c5a602183612d1e565b9150613c6582613bfe565b604082019050919050565b60006020820190508181036000830152613c8981613c4d565b905091905056fea2646970667358221220c93e27e8aecb714d9b756ade097d35a084261acc236094dda2d933e6b32791af64736f6c634300080d0033

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

00000000000000000000000066c6d593e67a0ee02a5c90c0c04d0c7dd9d07d0300000000000000000000000066c6d593e67a0ee02a5c90c0c04d0c7dd9d07d0300000000000000000000000035bc8e9df272f81e3a9e32e33fae2dff7ba0ac93

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

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000066c6d593e67a0ee02a5c90c0c04d0c7dd9d07d03
Arg [1] : 00000000000000000000000066c6d593e67a0ee02a5c90c0c04d0c7dd9d07d03
Arg [2] : 00000000000000000000000035bc8e9df272f81e3a9e32e33fae2dff7ba0ac93


Deployed Bytecode Sourcemap

5219:10899:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6608:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7950:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8947:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7632:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14344:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9529:424;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15182:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14491:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3089:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7742:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13773:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15509:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9203:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14641:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5468:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13890:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6074:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14017:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8152:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14784:108;;;;;;;;;;;;;:::i;:::-;;6249:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15010:164;;;;;;;;;;;;;:::i;:::-;;8821:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8052:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13653:112;;;;;;;;;;;;;:::i;:::-;;7844:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8475:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6327:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9333:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15377:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14900:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6355:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6672:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15817:298;;;;;;;;;;;;;:::i;:::-;;8279:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6123:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3317:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14162:174;;;;;;;;;;;;;:::i;:::-;;6296:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6608:55;;;;:::o;7950:94::-;7998:13;8031:5;;;;;;;;;;;;;;;;;8024:12;;7950:94;:::o;8947:248::-;9049:4;9106:6;9071:11;:23;9083:10;9071:23;;;;;;;;;;;;;;;:32;9095:7;9071:32;;;;;;;;;;;;;;;:41;;;;9149:7;9128:37;;9137:10;9128:37;;;9158:6;9128:37;;;;;;:::i;:::-;;;;;;;;9183:4;9176:11;;8947:248;;;;:::o;7632:102::-;7687:7;7714:12;;7707:19;;7632:102;:::o;14344:139::-;14408:4;2979:19;2987:10;2979:7;:19::i;:::-;2971:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14432:43:::1;14455:4;14462;;;;;;;;;;;14468:6;14432:14;:43::i;:::-;14425:50;;14344:139:::0;;;:::o;9529:424::-;9663:4;9719:17;9684:11;:19;9696:6;9684:19;;;;;;;;;;;;;;;:31;9704:10;9684:31;;;;;;;;;;;;;;;;:52;9680:206;;9787:87;9841:6;9787:87;;;;;;;;;;;;;;;;;:11;:19;9799:6;9787:19;;;;;;;;;;;;;;;:31;9807:10;9787:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;9753:11;:19;9765:6;9753:19;;;;;;;;;;;;;;;:31;9773:10;9753:31;;;;;;;;;;;;;;;:121;;;;9680:206;9905:40;9919:6;9927:9;9938:6;9905:13;:40::i;:::-;9898:47;;9529:424;;;;;:::o;15182:187::-;2979:19;2987:10;2979:7;:19::i;:::-;2971:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15278:21:::1;15295:3;15278:12;;:16;;:21;;;;:::i;:::-;15268:6;:31;;15260:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;15355:6;15346;:15;;;;:::i;:::-;15330:13;:31;;;;15182:187:::0;:::o;14491:142::-;14544:7;14571:54;14609:15;14619:4;;;;;;;;;;;14609:9;:15::i;:::-;14571:33;14588:15;14598:4;;;;;;;;;;;14588:9;:15::i;:::-;14571:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;14564:61;;14491:142;:::o;3089:103::-;3144:4;3179:5;;;;;;;;;;;3168:16;;:7;:16;;;3161:23;;3089:103;;;:::o;7742:94::-;7794:5;5645:2;7812:16;;7742:94;:::o;13773:109::-;2979:19;2987:10;2979:7;:19::i;:::-;2971:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13868:6:::1;13850:5;:15;13856:8;13850:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;13773:109:::0;;:::o;15509:300::-;2979:19;2987:10;2979:7;:19::i;:::-;2971:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15593:12:::1;15615;15593:35;;15639:20;15662:5;:15;;;15686:4;15662:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15639:53;;15726:1;15711:12;:16;15703:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;15766:5;:14;;;15781:5;::::0;::::1;;;;;;;;15788:12;15766:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15582:227;;15509:300:::0;:::o;9203:122::-;9258:4;9282:35;9290:7;9299:17;9282:7;:35::i;:::-;9275:42;;9203:122;;;:::o;14641:135::-;2979:19;2987:10;2979:7;:19::i;:::-;2971:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14751:16:::1;14725:15;;:43;;;;;;;;;;;;;;;;;;14641:135:::0;:::o;5468:34::-;;;;;;;;;;;;;:::o;13890:119::-;2979:19;2987:10;2979:7;:19::i;:::-;2971:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13995:6:::1;13973:11;:19;13985:6;13973:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13890:119:::0;;:::o;6074:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;14017:137::-;2979:19;2987:10;2979:7;:19::i;:::-;2971:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14093:2:::1;14085:4;:10;;14077:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;14142:4;14131:8;:15;;;;14017:137:::0;:::o;8152:119::-;8218:7;8245:9;:18;8255:7;8245:18;;;;;;;;;;;;;;;;8238:25;;8152:119;;;:::o;14784:108::-;2979:19;2987:10;2979:7;:19::i;:::-;2971:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14849:5:::1;14838:8;;:16;;;;;;;;;;;;;;;;;;14879:5;14865:11;;:19;;;;;;;;;;;;;;;;;;14784:108::o:0;6249:38::-;;;;;;;;;;;;;:::o;15010:164::-;2979:19;2987:10;2979:7;:19::i;:::-;2971:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15099:5:::1;15079:25;;:16;;;;;;;;;;;:25;;;15071:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;15162:4;15143:16;;:23;;;;;;;;;;;;;;;;;;15010:164::o:0;8821:118::-;2979:19;2987:10;2979:7;:19::i;:::-;2971:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8923:8:::1;8901:19;;:30;;;;;;;;;;;;;;;;;;8821:118:::0;:::o;8052:92::-;8104:7;8131:5;;;;;;;;;;;8124:12;;8052:92;:::o;13653:112::-;2979:19;2987:10;2979:7;:19::i;:::-;2971:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13716:12:::1;13703:10;:25;;;;13753:4;13739:11;;:18;;;;;;;;;;;;;;;;;;13653:112::o:0;7844:98::-;7894:13;7927:7;;;;;;;;;;;;;;;;;7920:14;;7844:98;:::o;8475:338::-;8531:4;8548:12;8563:10;8548:25;;8604:1;8594:6;:11;;;8586:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;8670:4;8642:5;:13;8648:6;8642:13;;;;;;;;;;;;;;;:25;;;:32;;;;;;;;;;;;;;;;;;8687:47;8695:19;;;;;;;;;;;8716:17;8687:7;:47::i;:::-;;8768:4;8752:29;;;8774:6;8752:29;;;;;;:::i;:::-;;;;;;;;8801:4;8794:11;;;8475:338;;;:::o;6327:19::-;;;;;;;;;;;;;:::o;9333:188::-;9440:4;9469:44;9483:10;9495:9;9506:6;9469:13;:44::i;:::-;9462:51;;9333:188;;;;:::o;15377:124::-;15441:7;15468:5;:13;15474:6;15468:13;;;;;;;;;;;;;;;:25;;;;;;;;;;;;15461:32;;15377:124;;;:::o;14900:102::-;14956:4;14980:5;:14;14986:7;14980:14;;;;;;;;;;;;;;;;;;;;;;;;;14973:21;;14900:102;;;:::o;6355:25::-;;;;:::o;6672:36::-;;;;;;;;;;;;;:::o;15817:298::-;2979:19;2987:10;2979:7;:19::i;:::-;2971:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15881:23:::1;15907:21;15881:47;;15965:1;15947:15;:19;15939:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;16005:12;16023:5:::0;::::1;;;;;;;;;;:10;;16041:15;16023:38;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16004:57;;;16080:7;16072:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;15870:245;;15817:298::o:0;8279:188::-;8399:7;8431:11;:19;8443:6;8431:19;;;;;;;;;;;;;;;:28;8451:7;8431:28;;;;;;;;;;;;;;;;8424:35;;8279:188;;;;:::o;6123:36::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3317:136::-;2979:19;2987:10;2979:7;:19::i;:::-;2971:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3401:3:::1;3393:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3420:25;3441:3;3420:25;;;;;;:::i;:::-;;;;;;;;3317:136:::0;:::o;14162:174::-;2979:19;2987:10;2979:7;:19::i;:::-;2971:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14214:26:::1;14243:21;14214:50;;14283:15;;;;;;;;;;;14275:33;;:53;14309:18;14275:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14203:133;14162:174::o:0;6296:24::-;;;;;;;;;;;;;:::o;11789:401::-;11916:4;11953:90;11989:6;11953:90;;;;;;;;;;;;;;;;;:9;:17;11963:6;11953:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;11933:9;:17;11943:6;11933:17;;;;;;;;;;;;;;;:110;;;;12077:32;12102:6;12077:9;:20;12087:9;12077:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12054:9;:20;12064:9;12054:20;;;;;;;;;;;;;;;:55;;;;12142:9;12125:35;;12134:6;12125:35;;;12153:6;12125:35;;;;;;:::i;:::-;;;;;;;;12178:4;12171:11;;11789:401;;;;;:::o;535:226::-;655:7;688:1;683;:6;;691:12;675:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;715:9;731:1;727;:5;;;;:::i;:::-;715:17;;752:1;745:8;;;535:226;;;;;:::o;9961:1820::-;10087:4;10118:5;;;;;;;;;;;10108:15;;:6;:15;;;;:37;;;;;10140:5;;;;;;;;;;10127:18;;:9;:18;;;;10108:37;10104:104;;;10168:11;;;;;;;;;;;10160:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10104:104;10223:16;;;;;;;;;;;10219:101;;;10265:5;:13;10271:6;10265:13;;;;;;;;;;;;;;;;;;;;;;;;;10264:14;:35;;;;;10283:5;:16;10289:9;10283:16;;;;;;;;;;;;;;;;;;;;;;;;;10282:17;10264:35;10256:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;10219:101;10472:5;;;;;;;;;;10462:15;;:6;:15;;;;:50;;;;;10507:5;;;;;;;;;;10494:18;;:9;:18;;;;10462:50;:90;;;;;10547:4;10529:23;;:6;:23;;;;10462:90;:133;;;;;10590:4;10569:26;;:9;:26;;;;10462:133;10444:471;;;10626:11;;;;;;;;;;;10622:175;;;10722:9;;10686:32;10711:6;10686:9;:20;10696:9;10686:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:45;;10656:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;10622:175;10818:8;;;;;;;;;;;10814:90;;;10865:6;;10855;:16;;10847:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;10814:90;10444:471;10931:6;;;;;;;;;;;10927:87;;;10961:41;10976:6;10984:9;10995:6;10961:14;:41::i;:::-;10954:48;;;;10927:87;11026:28;11057:24;11075:4;11057:9;:24::i;:::-;11026:55;;11094:24;11145:13;;11121:20;:37;;11094:64;;11171:19;11194;:53;;;;;11243:4;;;;;;;;;;;11230:17;;:9;:17;;;11194:53;:98;;;;;11291:1;11264:24;11282:4;11264:9;:24::i;:::-;:28;11194:98;11171:122;;11308:14;11304:57;;;11339:10;:8;:10::i;:::-;11304:57;11393:90;11429:6;11393:90;;;;;;;;;;;;;;;;;:9;:17;11403:6;11393:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;11373:9;:17;11383:6;11373:17;;;;;;;;;;;;;;;:110;;;;11496:22;11521:32;11535:6;11543:9;11521:13;:32::i;:::-;:93;;11608:6;11521:93;;;11569:23;11577:6;11585;11569:7;:23::i;:::-;11521:93;11496:118;;11650:40;11675:14;11650:9;:20;11660:9;11650:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11627:9;:20;11637:9;11627:20;;;;;;;;;;;;;;;:63;;;;11725:9;11708:43;;11717:6;11708:43;;;11736:14;11708:43;;;;;;:::i;:::-;;;;;;;;11769:4;11762:11;;;;;;9961:1820;;;;;;:::o;1027:132::-;1085:7;1112:39;1116:1;1119;1112:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1105:46;;1027:132;;;;:::o;391:136::-;449:7;476:43;480:1;483;476:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;469:50;;391:136;;;;:::o;202:181::-;260:7;280:9;296:1;292;:5;;;;:::i;:::-;280:17;;321:1;316;:6;;308:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;374:1;367:8;;;202:181;;;;:::o;12934:216::-;6781:4;6772:6;;:13;;;;;;;;;;;;;;;;;;12983:20:::1;13006:24;13024:4;13006:9;:24::i;:::-;12983:47;;13043:30;13060:12;13043:16;:30::i;:::-;13094:15;;;;;;;;;;;13086:33;;:56;13120:21;13086:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12972:178;6817:5:::0;6808:6;;:14;;;;;;;;;;;;;;;;;;12934:216::o;12198:346::-;12306:4;12347:19;;;;;;;;;;;12337:29;;:6;:29;;;;:78;;;;;12396:19;;;;;;;;;;;12383:32;;:9;:32;;;;12337:78;12336:145;;;;;12435:11;:19;12447:6;12435:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;12458:11;:22;12470:9;12458:22;;;;;;;;;;;;;;;;;;;;;;;;;12435:45;12433:48;12336:145;:199;;;;;12509:4;;;;;;;;;;;12499:14;;:6;:14;;;:35;;;;12530:4;;;;;;;;;;;12517:17;;:9;:17;;;12499:35;12336:199;12328:208;;12198:346;;;;:::o;12552:374::-;12637:7;12662:17;12702:40;12727:14;;12702:20;12713:8;;12702:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;12690:52;;12780:39;12809:9;12780;:24;12798:4;12780:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12753:9;:24;12771:4;12753:24;;;;;;;;;;;;;;;:66;;;;12860:4;12835:42;;12844:6;12835:42;;;12867:9;12835:42;;;;;;:::i;:::-;;;;;;;;12897:21;12908:9;12897:6;:10;;:21;;;;:::i;:::-;12890:28;;;12552:374;;;;:::o;1167:379::-;1287:7;1386:1;1382;:5;1389:12;1374:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1413:9;1429:1;1425;:5;;;;:::i;:::-;1413:17;;1537:1;1530:8;;;1167:379;;;;;:::o;13158:487::-;13284:21;13322:1;13308:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13284:40;;13353:4;13335;13340:1;13335:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13379:4;;;;;;;;;;;13369;13374:1;13369:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;13422:6;;;;;;;;;;;:57;;;13494:11;13520:1;13564:4;13591;13611:15;13422:215;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13213:432;13158:487;:::o;769:250::-;827:7;856:1;851;:6;847:47;;881:1;874:8;;;;847:47;906:9;922:1;918;:5;;;;:::i;:::-;906:17;;951:1;946;942;:5;;;;:::i;:::-;:10;934:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1010:1;1003:8;;;769: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:171::-;16813:23;16809:1;16801:6;16797:14;16790:47;16673:171;:::o;16850:366::-;16992:3;17013:67;17077:2;17072:3;17013:67;:::i;:::-;17006:74;;17089:93;17178:3;17089:93;:::i;:::-;17207:2;17202:3;17198:12;17191:19;;16850:366;;;:::o;17222:419::-;17388:4;17426:2;17415:9;17411:18;17403:26;;17475:9;17469:4;17465:20;17461:1;17450:9;17446:17;17439:47;17503:131;17629:4;17503:131;:::i;:::-;17495:139;;17222:419;;;:::o;17647:115::-;17732:23;17749:5;17732:23;:::i;:::-;17727:3;17720:36;17647:115;;:::o;17768:218::-;17859:4;17897:2;17886:9;17882:18;17874:26;;17910:69;17976:1;17965:9;17961:17;17952:6;17910:69;:::i;:::-;17768:218;;;;:::o;17992:170::-;18132:22;18128:1;18120:6;18116:14;18109:46;17992:170;:::o;18168:366::-;18310:3;18331:67;18395:2;18390:3;18331:67;:::i;:::-;18324:74;;18407:93;18496:3;18407:93;:::i;:::-;18525:2;18520:3;18516:12;18509:19;;18168:366;;;:::o;18540:419::-;18706:4;18744:2;18733:9;18729:18;18721:26;;18793:9;18787:4;18783:20;18779:1;18768:9;18764:17;18757:47;18821:131;18947:4;18821:131;:::i;:::-;18813:139;;18540:419;;;:::o;18965:147::-;19066:11;19103:3;19088:18;;18965:147;;;;:::o;19118:114::-;;:::o;19238:398::-;19397:3;19418:83;19499:1;19494:3;19418:83;:::i;:::-;19411:90;;19510:93;19599:3;19510:93;:::i;:::-;19628:1;19623:3;19619:11;19612:18;;19238:398;;;:::o;19642:379::-;19826:3;19848:147;19991:3;19848:147;:::i;:::-;19841:154;;20012:3;20005:10;;19642:379;;;:::o;20027:165::-;20167:17;20163:1;20155:6;20151:14;20144:41;20027:165;:::o;20198:366::-;20340:3;20361:67;20425:2;20420:3;20361:67;:::i;:::-;20354:74;;20437:93;20526:3;20437:93;:::i;:::-;20555:2;20550:3;20546:12;20539:19;;20198:366;;;:::o;20570:419::-;20736:4;20774:2;20763:9;20759:18;20751:26;;20823:9;20817:4;20813:20;20809:1;20798:9;20794:17;20787:47;20851:131;20977:4;20851:131;:::i;:::-;20843:139;;20570:419;;;:::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://c93e27e8aecb714d9b756ade097d35a084261acc236094dda2d933e6b32791af
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.