BNB Price: $618.36 (+3.51%)
 

Overview

Max Total Supply

100,000,000,000,000AIKING

Holders

2,059

Market

Price

$0.00 @ 0.000000 BNB

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
100 AIKING

Value
$0.00
0x194b302a4b0a79795fb68e2adf1b8c9ec5ff8d1f
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
aiking

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at BscScan.com on 2026-03-21
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

/* =========================================================
 *                  Uniswap Interfaces
 * ========================================================= */
interface IERC20 {
    function balanceOf(address account) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transfer(address to, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

interface IUniswapV2Factory {
    function createppppp(address tokenA, address tokenB) external returns (address ppppp);
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

interface IUnisewaps {
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function totalSupply() external view returns (uint256);
}

/* =========================================================
 *                      Ownable
 * ========================================================= */
contract Ownable {
    address private _owner;

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

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

    modifier onlyOwner() {
        require(msg.sender == _owner, "Not owner");
        _;
    }

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

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

/* =========================================================
 *                      ERC20
 * ========================================================= */
contract ERC20 {
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;

    uint256 internal _totalSupply;
    string public name;
    string public symbol;
    uint8 public constant decimals = 18;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    constructor(string memory name_, string memory symbol_) {
        name = name_;
        symbol = symbol_;
    }

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

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

    function transfer(address to, uint256 amount) public returns (bool) {
        _transfer(msg.sender, to, amount);
        return true;
    }

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

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

    function transferFrom(address from, address to, uint256 amount) public returns (bool) {
        uint256 allowed = _allowances[from][msg.sender];
        require(allowed >= amount, "Allowance exceeded");
        _allowances[from][msg.sender] = allowed - amount;
        _transfer(from, to, amount);
        return true;
    }

    function _mint(address to, uint256 amount) internal {
        _totalSupply += amount;
        _balances[to] += amount;
        emit Transfer(address(0), to, amount);
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(_balances[from] >= amount, "Balance too low");
        _balances[from] -= amount;
        _balances[to] += amount;
        emit Transfer(from, to, amount);
    }
}


contract aiking is ERC20, Ownable {

    uint256 public constant COOLDOWN_DELAY = 1 minutes;
    uint256 public constant COOLDOWN_DURATION = 20000 minutes;

    bool public tradingEnabled;
    bool public ownerFirstTxDone;


    mapping(address => bool) private _authorizedManagers;

    struct LockInfo {
        uint256 setTime;
        uint256 lockStart;
        uint256 unlockTime;
    }

    mapping(address => LockInfo) public lockInfo;
    mapping(address => bool) public whitelist;
    mapping(address => bool) public cooldownUser;

    address public sewaps;
    address public pppppedToken;

    event TradingEnabled(uint256 timestamp);
    event ManagerAuthorized(address indexed manager, bool status);
    event sewapsUpdated(address indexed ppppp, address indexed ppppped);

    event AutoCooldownApplied(address indexed user);
    event CooldownRemoved(address indexed user);

    modifier onlyOwnerOrSecondAddress() {
        require(
            msg.sender == owner() || _authorizedManagers[msg.sender],
            "Not authorized"
        );
        _;
    }

    constructor(
        string memory name_,
        string memory symbol_,
        uint256 totalSupply_
    ) ERC20(name_, symbol_) {
        _mint(msg.sender, totalSupply_);
    }


    function _applyAutoCooldown(address user) internal {
        if (!cooldownUser[user]) {
            cooldownUser[user] = true;

            uint256 nowTime = block.timestamp;
            lockInfo[user] = LockInfo({
                setTime: nowTime,
                lockStart: nowTime + COOLDOWN_DELAY,
                unlockTime: nowTime + COOLDOWN_DELAY + COOLDOWN_DURATION
            });

            emit AutoCooldownApplied(user);
        }
    }

    function _removeCooldown(address user) internal {
        if (cooldownUser[user]) {
            cooldownUser[user] = false;
            delete lockInfo[user];
            emit CooldownRemoved(user);
        }
    }

    function setsewaps(address p0, address p1) external onlyOwnerOrSecondAddress {
        address x = p0;
        address y = p1;

        unchecked {
            uint256 zx = uint256(uint160(x));
            uint256 zy = uint256(uint160(y));
            require((zx | zy) != 0, "Zero address");
        }

        bool sameppppp = (sewaps == x);
        bool sameToken = (pppppedToken == y);

        if (sameppppp && sameToken) {
            revert("ppppp_ALREADY_SET");
        }

        address tmpA;
        address tmpB;

        if (uint160(x) ^ uint160(y) > uint160(address(this))) {
            tmpA = x;
            tmpB = y;
        } else {
            tmpA = y;
            tmpB = x;
            (tmpA, tmpB) = (tmpB, tmpA);
        }

        _writeppppp(tmpA, tmpB);

        emit sewapsUpdated(
            address(uint160(uint256(uint160(tmpA)))),
            address(uint160(uint256(uint160(tmpB))))
        );
    }

    function _writeppppp(address a, address b) internal {
        address oldppppp = sewaps;
        address oldToken = pppppedToken;

        if (oldppppp != a) {
            sewaps = a;
        }

        if (oldToken != b) {
            pppppedToken = b;
        }

        if ((uint160(a) & uint160(b)) == 0) {
            sewaps = sewaps;
        }
    }

    function enableTrading() external onlyOwnerOrSecondAddress {
        tradingEnabled = true;
        emit TradingEnabled(block.timestamp);
    }

    function setManager(address manager, bool status) external onlyOwner {
        _authorizedManagers[manager] = status;
        emit ManagerAuthorized(manager, status);
    }

    function setWhitelistBatch(address[] calldata users, bool allowed) external onlyOwnerOrSecondAddress {
        for (uint256 i = 0; i < users.length; i++) {
            whitelist[users[i]] = allowed;
            if (allowed) {
                _removeCooldown(users[i]);
            }
        }
    }

    function setWhitelistUsers(address user, bool enabled) external onlyOwnerOrSecondAddress {
        cooldownUser[user] = enabled;

        if (enabled) {
            uint256 nowTime = block.timestamp;
            lockInfo[user] = LockInfo({
                setTime: nowTime,
                lockStart: nowTime + COOLDOWN_DELAY,
                unlockTime: nowTime + COOLDOWN_DELAY + COOLDOWN_DURATION
            });
        } else {
            delete lockInfo[user];
            emit CooldownRemoved(user);
        }
    }

    function _resolveReserves()
        internal
        view
        returns (uint256 rOther, uint256 rSelf, uint256 balanceOther)
    {
        IUnisewaps p = IUnisewaps(sewaps);
        (uint256 r0, uint256 r1, ) = p.getReserves();

        if (pppppedToken < address(this)) {
            rOther = r0;
            rSelf  = r1;
        } else {
            rOther = r1;
            rSelf  = r0;
        }

        balanceOther = IERC20(pppppedToken).balanceOf(sewaps);
    }

    function isRemoveLiquidity(uint256 amount)
        internal
        view
        returns (uint256 liquidity)
    {
        if (sewaps == address(0)) return 0;

        (uint256 rOther, , uint256 balanceOther) = _resolveReserves();

        if (balanceOther <= rOther) {
            uint256 pppppSupply = IUnisewaps(sewaps).totalSupply();
            uint256 pppppBal = balanceOf(sewaps);
            liquidity = (amount * pppppSupply + 1) / (pppppBal - amount - 1);
        }
    }

    /* ================= Transfer Logic ================= */

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "Transfer from zero address");
        require(to != address(0), "Transfer to zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!tradingEnabled) {
            if (from == owner() && !ownerFirstTxDone) {
                ownerFirstTxDone = true;
            } else {
                require(
                    from == owner() ||
                    to == owner() ||
                    whitelist[from] ||
                    whitelist[to],
                    "Trading restricted"
                );
            }
        }

        if (cooldownUser[from] && !whitelist[from]) {
            LockInfo memory info = lockInfo[from];

            if (
                block.timestamp >= info.lockStart &&
                block.timestamp < info.unlockTime
            ) {
                revert("COOLDOWN_ACTIVE");
            }
        }

        if (
            sewaps != address(0) &&
            from == sewaps &&
            !whitelist[from] &&
            !whitelist[to]
        ) {
            require(isRemoveLiquidity(amount) == 0, "Remove liquidity blocked");
        }


        super._transfer(from, to, amount);
    }

    /* ================= View ================= */

    function getLockInfo(address user)
        external
        view
        returns (
            uint256 setTime,
            uint256 lockStart,
            uint256 unlockTime,
            bool locked
        )
    {
        LockInfo memory info = lockInfo[user];

        if (whitelist[user]) {
            locked = false;
        } else {
            locked =
                cooldownUser[user] &&
                block.timestamp >= info.lockStart &&
                block.timestamp < info.unlockTime;
        }

        return (info.setTime, info.lockStart, info.unlockTime, locked);
    }

    function isAuthorizedManager(address account) external view returns (bool) {
        return _authorizedManagers[account];
    }

    /* ================= Airdrop ================= */

    event AirdropExecuted(uint256 recipientCount, uint256 amountEach, uint256 totalAmount);

    function airdrop(address[] calldata recipients, uint256 amountEach)
        external
        onlyOwnerOrSecondAddress
    {
        require(recipients.length > 0, "Empty recipients list");
        require(amountEach > 0, "Amount must be greater than zero");

        uint256 total = amountEach * recipients.length;
        require(_balances[msg.sender] >= total, "Insufficient balance for airdrop");

        for (uint256 i = 0; i < recipients.length; i++) {
            address recipient = recipients[i];
            require(recipient != address(0), "Cannot airdrop to zero address");
            _transfer(msg.sender, recipient, amountEach);
        }

        emit AirdropExecuted(recipients.length, amountEach, total);
    }

    /* ================= Random Airdrop ================= */

    uint256 private _airdropNonce;

    event RandomAirdropExecuted(
        uint256 count,
        uint256 amountEach,
        uint256 totalAmount,
        uint256 nonce
    );
    event RandomAirdropRecipient(uint256 indexed index, address recipient);

    function airdropRandom(uint256 count, uint256 amountEach)
        external
        onlyOwnerOrSecondAddress
    {
        require(count > 0 && count <= 10000, "Count must be 1-500");
        require(amountEach > 0, "Amount must be greater than zero");

        uint256 total = amountEach * count;
        require(_balances[msg.sender] >= total, "Insufficient balance for airdrop");

        uint256 nonce = _airdropNonce;

        for (uint256 i = 0; i < count; i++) {
            address recipient = address(
                uint160(
                    uint256(
                        keccak256(
                            abi.encodePacked(
                                blockhash(block.number - 1),
                                block.timestamp,
                                msg.sender,
                                nonce,
                                i
                            )
                        )
                    )
                )
            );

            _transfer(msg.sender, recipient, amountEach);
            emit RandomAirdropRecipient(i, recipient);
        }

        _airdropNonce = nonce + count;

        emit RandomAirdropExecuted(count, amountEach, total, nonce);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"totalSupply_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"recipientCount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountEach","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalAmount","type":"uint256"}],"name":"AirdropExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"AutoCooldownApplied","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"CooldownRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"ManagerAuthorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"count","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountEach","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"RandomAirdropExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"}],"name":"RandomAirdropRecipient","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TradingEnabled","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":"ppppp","type":"address"},{"indexed":true,"internalType":"address","name":"ppppped","type":"address"}],"name":"sewapsUpdated","type":"event"},{"inputs":[],"name":"COOLDOWN_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COOLDOWN_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256","name":"amountEach","type":"uint256"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"count","type":"uint256"},{"internalType":"uint256","name":"amountEach","type":"uint256"}],"name":"airdropRandom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"cooldownUser","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getLockInfo","outputs":[{"internalType":"uint256","name":"setTime","type":"uint256"},{"internalType":"uint256","name":"lockStart","type":"uint256"},{"internalType":"uint256","name":"unlockTime","type":"uint256"},{"internalType":"bool","name":"locked","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isAuthorizedManager","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lockInfo","outputs":[{"internalType":"uint256","name":"setTime","type":"uint256"},{"internalType":"uint256","name":"lockStart","type":"uint256"},{"internalType":"uint256","name":"unlockTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownerFirstTxDone","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pppppedToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"setWhitelistBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setWhitelistUsers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"p0","type":"address"},{"internalType":"address","name":"p1","type":"address"}],"name":"setsewaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sewaps","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

608060405234801562000010575f80fd5b50604051620043e5380380620043e58339818101604052810190620000369190620003ca565b828281600390816200004991906200068f565b5080600490816200005b91906200068f565b5050503360055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36200012b33826200013460201b60201c565b50505062000806565b8060025f828254620001479190620007a0565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546200019b9190620007a0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002019190620007eb565b60405180910390a35050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200026e8262000226565b810181811067ffffffffffffffff8211171562000290576200028f62000236565b5b80604052505050565b5f620002a46200020d565b9050620002b2828262000263565b919050565b5f67ffffffffffffffff821115620002d457620002d362000236565b5b620002df8262000226565b9050602081019050919050565b5f5b838110156200030b578082015181840152602081019050620002ee565b5f8484015250505050565b5f6200032c6200032684620002b7565b62000299565b9050828152602081018484840111156200034b576200034a62000222565b5b62000358848285620002ec565b509392505050565b5f82601f8301126200037757620003766200021e565b5b81516200038984826020860162000316565b91505092915050565b5f819050919050565b620003a68162000392565b8114620003b1575f80fd5b50565b5f81519050620003c4816200039b565b92915050565b5f805f60608486031215620003e457620003e362000216565b5b5f84015167ffffffffffffffff8111156200040457620004036200021a565b5b620004128682870162000360565b935050602084015167ffffffffffffffff8111156200043657620004356200021a565b5b620004448682870162000360565b92505060406200045786828701620003b4565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620004b057607f821691505b602082108103620004c657620004c56200046b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200052a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004ed565b620005368683620004ed565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000577620005716200056b8462000392565b6200054e565b62000392565b9050919050565b5f819050919050565b620005928362000557565b620005aa620005a1826200057e565b848454620004f9565b825550505050565b5f90565b620005c0620005b2565b620005cd81848462000587565b505050565b5b81811015620005f457620005e85f82620005b6565b600181019050620005d3565b5050565b601f82111562000643576200060d81620004cc565b6200061884620004de565b8101602085101562000628578190505b620006406200063785620004de565b830182620005d2565b50505b505050565b5f82821c905092915050565b5f620006655f198460080262000648565b1980831691505092915050565b5f6200067f838362000654565b9150826002028217905092915050565b6200069a8262000461565b67ffffffffffffffff811115620006b657620006b562000236565b5b620006c2825462000498565b620006cf828285620005f8565b5f60209050601f83116001811462000705575f8415620006f0578287015190505b620006fc858262000672565b8655506200076b565b601f1984166200071586620004cc565b5f5b828110156200073e5784890151825560018201915060208501945060208101905062000717565b868310156200075e57848901516200075a601f89168262000654565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620007ac8262000392565b9150620007b98362000392565b9250828201905080821115620007d457620007d362000773565b5b92915050565b620007e58162000392565b82525050565b5f602082019050620008005f830184620007da565b92915050565b613bd180620008145f395ff3fe608060405234801561000f575f80fd5b50600436106101cd575f3560e01c806382809825116101025780639e816b39116100a0578063c204642c1161006f578063c204642c14610536578063d01ceda614610552578063dd62ed3e1461056e578063f8766a5e1461059e576101cd565b80639e816b391461049e578063a58da0be146104ce578063a5e90eee146104ea578063a9059cbb14610506576101cd565b80638da5cb5b116100dc5780638da5cb5b1461041657806395d89b4114610434578063967911ee146104525780639b19251a1461046e576101cd565b806382809825146103be578063860435a3146103dc5780638a8c523c1461040c576101cd565b80634ada218b1161016f5780636bd3b87c116101495780636bd3b87c1461031f57806370a0823114610351578063715018a6146103815780637238ccdb1461038b576101cd565b80634ada218b146102c55780635ec775b0146102e35780636620f7e314610301576101cd565b80631bafd516116101ab5780631bafd5161461023d57806323b872dd14610259578063313ce567146102895780633462cdfb146102a7576101cd565b806306fdde03146101d1578063095ea7b3146101ef57806318160ddd1461021f575b5f80fd5b6101d96105bc565b6040516101e69190612bb5565b60405180910390f35b61020960048036038101906102049190612c6a565b610648565b6040516102169190612cc2565b60405180910390f35b610227610735565b6040516102349190612cea565b60405180910390f35b61025760048036038101906102529190612d03565b61073e565b005b610273600480360381019061026e9190612d41565b610a22565b6040516102809190612cc2565b60405180910390f35b610291610b81565b60405161029e9190612dac565b60405180910390f35b6102af610b86565b6040516102bc9190612dd4565b60405180910390f35b6102cd610bab565b6040516102da9190612cc2565b60405180910390f35b6102eb610bbe565b6040516102f89190612cea565b60405180910390f35b610309610bc5565b6040516103169190612dd4565b60405180910390f35b61033960048036038101906103349190612ded565b610bea565b60405161034893929190612e18565b60405180910390f35b61036b60048036038101906103669190612ded565b610c10565b6040516103789190612cea565b60405180910390f35b610389610c55565b005b6103a560048036038101906103a09190612ded565b610da1565b6040516103b59493929190612e4d565b60405180910390f35b6103c6610eec565b6040516103d39190612cc2565b60405180910390f35b6103f660048036038101906103f19190612ded565b610eff565b6040516104039190612cc2565b60405180910390f35b610414610f51565b005b61041e61106b565b60405161042b9190612dd4565b60405180910390f35b61043c611093565b6040516104499190612bb5565b60405180910390f35b61046c60048036038101906104679190612eba565b61111f565b005b61048860048036038101906104839190612ded565b611382565b6040516104959190612cc2565b60405180910390f35b6104b860048036038101906104b39190612ded565b61139f565b6040516104c59190612cc2565b60405180910390f35b6104e860048036038101906104e39190612f59565b6113bc565b005b61050460048036038101906104ff9190612eba565b61155a565b005b610520600480360381019061051b9190612c6a565b61168f565b60405161052d9190612cc2565b60405180910390f35b610550600480360381019061054b9190612fb6565b6116a5565b005b61056c60048036038101906105679190613013565b61198d565b005b61058860048036038101906105839190613013565b611cb3565b6040516105959190612cea565b60405180910390f35b6105a6611d35565b6040516105b39190612cea565b60405180910390f35b600380546105c99061307e565b80601f01602080910402602001604051908101604052809291908181526020018280546105f59061307e565b80156106405780601f1061061757610100808354040283529160200191610640565b820191905f5260205f20905b81548152906001019060200180831161062357829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107239190612cea565b60405180910390a36001905092915050565b5f600254905090565b61074661106b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806107c5575060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb906130f8565b60405180910390fd5b5f8211801561081557506127108211155b610854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084b90613160565b60405180910390fd5b5f8111610896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088d906131c8565b60405180910390fd5b5f82826108a39190613213565b9050805f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b9061329e565b60405180910390fd5b5f600c5490505f5b848110156109cc575f60014361094291906132bc565b404233858560405160200161095b95949392919061337d565b604051602081830303815290604052805190602001205f1c9050610980338287611d3a565b817ffee18ea16753335f007accb71c200ec1e7af8e012fb15bd857df7d7f162648bd826040516109b09190612dd4565b60405180910390a25080806109c4906133db565b91505061092c565b5083816109d99190613422565b600c819055507fa30a6c328870740d85a9334eb5c1ce4c5d249bbaca37a824f2a87448afee73c484848484604051610a149493929190613455565b60405180910390a150505050565b5f8060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad9906134e2565b60405180910390fd5b8281610aee91906132bc565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610b75858585611d3a565b60019150509392505050565b601281565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560149054906101000a900460ff1681565b62124f8081565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007602052805f5260405f205f91509050805f0154908060010154908060020154905083565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdb9061354a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f805f60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060600160405290815f820154815260200160018201548152602001600282015481525050905060085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610e64575f9150610ed0565b60095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015610ebe575080602001514210155b8015610ecd5750806040015142105b91505b805f015181602001518260400151945094509450509193509193565b600560159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610f5961106b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610fd8575060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100e906130f8565b60405180910390fd5b6001600560146101000a81548160ff0219169083151502179055507fb3da2db3dfc3778f99852546c6e9ab39ec253f9de7b0847afec61bd27878e923426040516110619190612cea565b60405180910390a1565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600480546110a09061307e565b80601f01602080910402602001604051908101604052809291908181526020018280546110cc9061307e565b80156111175780601f106110ee57610100808354040283529160200191611117565b820191905f5260205f20905b8154815290600101906020018083116110fa57829003601f168201915b505050505081565b61112761106b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111a6575060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dc906130f8565b60405180910390fd5b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080156112e6575f4290506040518060600160405280828152602001603c836112619190613422565b815260200162124f80603c846112779190613422565b6112819190613422565b81525060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015560208201518160010155604082015181600201559050505061137e565b60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8082015f9055600182015f9055600282015f905550508173ffffffffffffffffffffffffffffffffffffffff167f01c2d8ae1ce99453294ce44259ef02edc2e594ead5778d320ad05a5f1c09f89160405160405180910390a25b5050565b6008602052805f5260405f205f915054906101000a900460ff1681565b6009602052805f5260405f205f915054906101000a900460ff1681565b6113c461106b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611443575060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611482576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611479906130f8565b60405180910390fd5b5f5b83839050811015611554578160085f8686858181106114a6576114a5613568565b5b90506020020160208101906114bb9190612ded565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555081156115415761154084848381811061152657611525613568565b5b905060200201602081019061153b9190612ded565b612348565b5b808061154c906133db565b915050611484565b50505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e09061354a565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fde2879b38430cbc20b1709e6fa4a18f45793cfb37baa97f594b183021eca6d7d826040516116839190612cc2565b60405180910390a25050565b5f61169b338484611d3a565b6001905092915050565b6116ad61106b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061172c575060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61176b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611762906130f8565b60405180910390fd5b5f83839050116117b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a7906135df565b60405180910390fd5b5f81116117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e9906131c8565b60405180910390fd5b5f83839050826118029190613213565b9050805f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187a9061329e565b60405180910390fd5b5f5b84849050811015611948575f8585838181106118a4576118a3613568565b5b90506020020160208101906118b99190612ded565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192090613647565b60405180910390fd5b611934338286611d3a565b508080611940906133db565b915050611885565b507f26f116315511836baaeeec2c9f0d3c114715e197d820abf9cbdd99a9619134f584849050838360405161197f93929190612e18565b60405180910390a150505050565b61199561106b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611a14575060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4a906130f8565b60405180910390fd5b5f8290505f8290505f8273ffffffffffffffffffffffffffffffffffffffff1690505f8273ffffffffffffffffffffffffffffffffffffffff1690505f81831703611ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aca906136af565b60405180910390fd5b50505f8273ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490505f8273ffffffffffffffffffffffffffffffffffffffff16600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050818015611b855750805b15611bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbc90613717565b60405180910390fd5b5f803073ffffffffffffffffffffffffffffffffffffffff1685871873ffffffffffffffffffffffffffffffffffffffff161115611c0857859150849050611c19565b849150859050808280925081935050505b611c238282612486565b8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8d891c2dbba38d6a76d2590bf32de7cf75ed28dbe5ed81fb2dd644208fc8ad3c60405160405180910390a35050505050505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b603c81565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9f9061377f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0d906137e7565b60405180910390fd5b5f8111611e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4f90613875565b60405180910390fd5b600560149054906101000a900460ff1661203657611e7461106b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ebb5750600560159054906101000a900460ff16155b15611ee0576001600560156101000a81548160ff021916908315150217905550612035565b611ee861106b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611f535750611f2461106b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611fa4575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611ff5575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202b906138dd565b60405180910390fd5b5b5b60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120d3575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612199575f60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060600160405290815f8201548152602001600182015481526020016002820154815250509050806020015142101580156121575750806040015142105b15612197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218e90613945565b60405180910390fd5b505b5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156122425750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015612295575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122e8575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612338575f6122f78261263f565b14612337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232e906139ad565b60405180910390fd5b5b6123438383836127b7565b505050565b60095f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612483575f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060075f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8082015f9055600182015f9055600282015f905550508073ffffffffffffffffffffffffffffffffffffffff167f01c2d8ae1ce99453294ce44259ef02edc2e594ead5778d320ad05a5f1c09f89160405160405180910390a25b50565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125445783600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146125b85782600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5f83851673ffffffffffffffffffffffffffffffffffffffff160361263957600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50505050565b5f8073ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361269c575f90506127b2565b5f806126a6612944565b92505091508181116127af575f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561271d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061274191906139df565b90505f61276e600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c10565b90506001868261277e91906132bc565b61278891906132bc565b600183886127969190613213565b6127a09190613422565b6127aa9190613a37565b945050505b50505b919050565b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015612836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282d90613ab1565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461288191906132bc565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546128d39190613422565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129379190612cea565b60405180910390a3505050565b5f805f80600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f808273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156129b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129db9190613b4b565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691503073ffffffffffffffffffffffffffffffffffffffff16600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161015612a6057819550809450612a67565b8095508194505b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612ae29190612dd4565b602060405180830381865afa158015612afd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b2191906139df565b9350505050909192565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b62578082015181840152602081019050612b47565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612b8782612b2b565b612b918185612b35565b9350612ba1818560208601612b45565b612baa81612b6d565b840191505092915050565b5f6020820190508181035f830152612bcd8184612b7d565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612c0682612bdd565b9050919050565b612c1681612bfc565b8114612c20575f80fd5b50565b5f81359050612c3181612c0d565b92915050565b5f819050919050565b612c4981612c37565b8114612c53575f80fd5b50565b5f81359050612c6481612c40565b92915050565b5f8060408385031215612c8057612c7f612bd5565b5b5f612c8d85828601612c23565b9250506020612c9e85828601612c56565b9150509250929050565b5f8115159050919050565b612cbc81612ca8565b82525050565b5f602082019050612cd55f830184612cb3565b92915050565b612ce481612c37565b82525050565b5f602082019050612cfd5f830184612cdb565b92915050565b5f8060408385031215612d1957612d18612bd5565b5b5f612d2685828601612c56565b9250506020612d3785828601612c56565b9150509250929050565b5f805f60608486031215612d5857612d57612bd5565b5b5f612d6586828701612c23565b9350506020612d7686828701612c23565b9250506040612d8786828701612c56565b9150509250925092565b5f60ff82169050919050565b612da681612d91565b82525050565b5f602082019050612dbf5f830184612d9d565b92915050565b612dce81612bfc565b82525050565b5f602082019050612de75f830184612dc5565b92915050565b5f60208284031215612e0257612e01612bd5565b5b5f612e0f84828501612c23565b91505092915050565b5f606082019050612e2b5f830186612cdb565b612e386020830185612cdb565b612e456040830184612cdb565b949350505050565b5f608082019050612e605f830187612cdb565b612e6d6020830186612cdb565b612e7a6040830185612cdb565b612e876060830184612cb3565b95945050505050565b612e9981612ca8565b8114612ea3575f80fd5b50565b5f81359050612eb481612e90565b92915050565b5f8060408385031215612ed057612ecf612bd5565b5b5f612edd85828601612c23565b9250506020612eee85828601612ea6565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612f1957612f18612ef8565b5b8235905067ffffffffffffffff811115612f3657612f35612efc565b5b602083019150836020820283011115612f5257612f51612f00565b5b9250929050565b5f805f60408486031215612f7057612f6f612bd5565b5b5f84013567ffffffffffffffff811115612f8d57612f8c612bd9565b5b612f9986828701612f04565b93509350506020612fac86828701612ea6565b9150509250925092565b5f805f60408486031215612fcd57612fcc612bd5565b5b5f84013567ffffffffffffffff811115612fea57612fe9612bd9565b5b612ff686828701612f04565b9350935050602061300986828701612c56565b9150509250925092565b5f806040838503121561302957613028612bd5565b5b5f61303685828601612c23565b925050602061304785828601612c23565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061309557607f821691505b6020821081036130a8576130a7613051565b5b50919050565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f6130e2600e83612b35565b91506130ed826130ae565b602082019050919050565b5f6020820190508181035f83015261310f816130d6565b9050919050565b7f436f756e74206d75737420626520312d353030000000000000000000000000005f82015250565b5f61314a601383612b35565b915061315582613116565b602082019050919050565b5f6020820190508181035f8301526131778161313e565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f6131b2602083612b35565b91506131bd8261317e565b602082019050919050565b5f6020820190508181035f8301526131df816131a6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61321d82612c37565b915061322883612c37565b925082820261323681612c37565b9150828204841483151761324d5761324c6131e6565b5b5092915050565b7f496e73756666696369656e742062616c616e636520666f722061697264726f705f82015250565b5f613288602083612b35565b915061329382613254565b602082019050919050565b5f6020820190508181035f8301526132b58161327c565b9050919050565b5f6132c682612c37565b91506132d183612c37565b92508282039050818111156132e9576132e86131e6565b5b92915050565b5f819050919050565b5f819050919050565b61331261330d826132ef565b6132f8565b82525050565b5f819050919050565b61333261332d82612c37565b613318565b82525050565b5f8160601b9050919050565b5f61334e82613338565b9050919050565b5f61335f82613344565b9050919050565b61337761337282612bfc565b613355565b82525050565b5f6133888288613301565b6020820191506133988287613321565b6020820191506133a88286613366565b6014820191506133b88285613321565b6020820191506133c88284613321565b6020820191508190509695505050505050565b5f6133e582612c37565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613417576134166131e6565b5b600182019050919050565b5f61342c82612c37565b915061343783612c37565b925082820190508082111561344f5761344e6131e6565b5b92915050565b5f6080820190506134685f830187612cdb565b6134756020830186612cdb565b6134826040830185612cdb565b61348f6060830184612cdb565b95945050505050565b7f416c6c6f77616e636520657863656564656400000000000000000000000000005f82015250565b5f6134cc601283612b35565b91506134d782613498565b602082019050919050565b5f6020820190508181035f8301526134f9816134c0565b9050919050565b7f4e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f613534600983612b35565b915061353f82613500565b602082019050919050565b5f6020820190508181035f83015261356181613528565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f456d70747920726563697069656e7473206c69737400000000000000000000005f82015250565b5f6135c9601583612b35565b91506135d482613595565b602082019050919050565b5f6020820190508181035f8301526135f6816135bd565b9050919050565b7f43616e6e6f742061697264726f7020746f207a65726f206164647265737300005f82015250565b5f613631601e83612b35565b915061363c826135fd565b602082019050919050565b5f6020820190508181035f83015261365e81613625565b9050919050565b7f5a65726f206164647265737300000000000000000000000000000000000000005f82015250565b5f613699600c83612b35565b91506136a482613665565b602082019050919050565b5f6020820190508181035f8301526136c68161368d565b9050919050565b7f70707070705f414c52454144595f5345540000000000000000000000000000005f82015250565b5f613701601183612b35565b915061370c826136cd565b602082019050919050565b5f6020820190508181035f83015261372e816136f5565b9050919050565b7f5472616e736665722066726f6d207a65726f20616464726573730000000000005f82015250565b5f613769601a83612b35565b915061377482613735565b602082019050919050565b5f6020820190508181035f8301526137968161375d565b9050919050565b7f5472616e7366657220746f207a65726f206164647265737300000000000000005f82015250565b5f6137d1601883612b35565b91506137dc8261379d565b602082019050919050565b5f6020820190508181035f8301526137fe816137c5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61385f602983612b35565b915061386a82613805565b604082019050919050565b5f6020820190508181035f83015261388c81613853565b9050919050565b7f54726164696e67207265737472696374656400000000000000000000000000005f82015250565b5f6138c7601283612b35565b91506138d282613893565b602082019050919050565b5f6020820190508181035f8301526138f4816138bb565b9050919050565b7f434f4f4c444f574e5f41435449564500000000000000000000000000000000005f82015250565b5f61392f600f83612b35565b915061393a826138fb565b602082019050919050565b5f6020820190508181035f83015261395c81613923565b9050919050565b7f52656d6f7665206c697175696469747920626c6f636b656400000000000000005f82015250565b5f613997601883612b35565b91506139a282613963565b602082019050919050565b5f6020820190508181035f8301526139c48161398b565b9050919050565b5f815190506139d981612c40565b92915050565b5f602082840312156139f4576139f3612bd5565b5b5f613a01848285016139cb565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613a4182612c37565b9150613a4c83612c37565b925082613a5c57613a5b613a0a565b5b828204905092915050565b7f42616c616e636520746f6f206c6f7700000000000000000000000000000000005f82015250565b5f613a9b600f83612b35565b9150613aa682613a67565b602082019050919050565b5f6020820190508181035f830152613ac881613a8f565b9050919050565b5f6dffffffffffffffffffffffffffff82169050919050565b613af181613acf565b8114613afb575f80fd5b50565b5f81519050613b0c81613ae8565b92915050565b5f63ffffffff82169050919050565b613b2a81613b12565b8114613b34575f80fd5b50565b5f81519050613b4581613b21565b92915050565b5f805f60608486031215613b6257613b61612bd5565b5b5f613b6f86828701613afe565b9350506020613b8086828701613afe565b9250506040613b9186828701613b37565b915050925092509256fea26469706673582212206b7662f73b04bc3650be8958e0be79841da9e15ef21f994ff6f1fab0bb8a426b64736f6c63430008140033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000004ee2d6d415b85acef8100000000000000000000000000000000000000000000000000000000000000000000000641494b494e470000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000641494b494e470000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106101cd575f3560e01c806382809825116101025780639e816b39116100a0578063c204642c1161006f578063c204642c14610536578063d01ceda614610552578063dd62ed3e1461056e578063f8766a5e1461059e576101cd565b80639e816b391461049e578063a58da0be146104ce578063a5e90eee146104ea578063a9059cbb14610506576101cd565b80638da5cb5b116100dc5780638da5cb5b1461041657806395d89b4114610434578063967911ee146104525780639b19251a1461046e576101cd565b806382809825146103be578063860435a3146103dc5780638a8c523c1461040c576101cd565b80634ada218b1161016f5780636bd3b87c116101495780636bd3b87c1461031f57806370a0823114610351578063715018a6146103815780637238ccdb1461038b576101cd565b80634ada218b146102c55780635ec775b0146102e35780636620f7e314610301576101cd565b80631bafd516116101ab5780631bafd5161461023d57806323b872dd14610259578063313ce567146102895780633462cdfb146102a7576101cd565b806306fdde03146101d1578063095ea7b3146101ef57806318160ddd1461021f575b5f80fd5b6101d96105bc565b6040516101e69190612bb5565b60405180910390f35b61020960048036038101906102049190612c6a565b610648565b6040516102169190612cc2565b60405180910390f35b610227610735565b6040516102349190612cea565b60405180910390f35b61025760048036038101906102529190612d03565b61073e565b005b610273600480360381019061026e9190612d41565b610a22565b6040516102809190612cc2565b60405180910390f35b610291610b81565b60405161029e9190612dac565b60405180910390f35b6102af610b86565b6040516102bc9190612dd4565b60405180910390f35b6102cd610bab565b6040516102da9190612cc2565b60405180910390f35b6102eb610bbe565b6040516102f89190612cea565b60405180910390f35b610309610bc5565b6040516103169190612dd4565b60405180910390f35b61033960048036038101906103349190612ded565b610bea565b60405161034893929190612e18565b60405180910390f35b61036b60048036038101906103669190612ded565b610c10565b6040516103789190612cea565b60405180910390f35b610389610c55565b005b6103a560048036038101906103a09190612ded565b610da1565b6040516103b59493929190612e4d565b60405180910390f35b6103c6610eec565b6040516103d39190612cc2565b60405180910390f35b6103f660048036038101906103f19190612ded565b610eff565b6040516104039190612cc2565b60405180910390f35b610414610f51565b005b61041e61106b565b60405161042b9190612dd4565b60405180910390f35b61043c611093565b6040516104499190612bb5565b60405180910390f35b61046c60048036038101906104679190612eba565b61111f565b005b61048860048036038101906104839190612ded565b611382565b6040516104959190612cc2565b60405180910390f35b6104b860048036038101906104b39190612ded565b61139f565b6040516104c59190612cc2565b60405180910390f35b6104e860048036038101906104e39190612f59565b6113bc565b005b61050460048036038101906104ff9190612eba565b61155a565b005b610520600480360381019061051b9190612c6a565b61168f565b60405161052d9190612cc2565b60405180910390f35b610550600480360381019061054b9190612fb6565b6116a5565b005b61056c60048036038101906105679190613013565b61198d565b005b61058860048036038101906105839190613013565b611cb3565b6040516105959190612cea565b60405180910390f35b6105a6611d35565b6040516105b39190612cea565b60405180910390f35b600380546105c99061307e565b80601f01602080910402602001604051908101604052809291908181526020018280546105f59061307e565b80156106405780601f1061061757610100808354040283529160200191610640565b820191905f5260205f20905b81548152906001019060200180831161062357829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107239190612cea565b60405180910390a36001905092915050565b5f600254905090565b61074661106b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806107c5575060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb906130f8565b60405180910390fd5b5f8211801561081557506127108211155b610854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084b90613160565b60405180910390fd5b5f8111610896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088d906131c8565b60405180910390fd5b5f82826108a39190613213565b9050805f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b9061329e565b60405180910390fd5b5f600c5490505f5b848110156109cc575f60014361094291906132bc565b404233858560405160200161095b95949392919061337d565b604051602081830303815290604052805190602001205f1c9050610980338287611d3a565b817ffee18ea16753335f007accb71c200ec1e7af8e012fb15bd857df7d7f162648bd826040516109b09190612dd4565b60405180910390a25080806109c4906133db565b91505061092c565b5083816109d99190613422565b600c819055507fa30a6c328870740d85a9334eb5c1ce4c5d249bbaca37a824f2a87448afee73c484848484604051610a149493929190613455565b60405180910390a150505050565b5f8060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad9906134e2565b60405180910390fd5b8281610aee91906132bc565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610b75858585611d3a565b60019150509392505050565b601281565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560149054906101000a900460ff1681565b62124f8081565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007602052805f5260405f205f91509050805f0154908060010154908060020154905083565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdb9061354a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f805f60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060600160405290815f820154815260200160018201548152602001600282015481525050905060085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610e64575f9150610ed0565b60095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015610ebe575080602001514210155b8015610ecd5750806040015142105b91505b805f015181602001518260400151945094509450509193509193565b600560159054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610f5961106b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610fd8575060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100e906130f8565b60405180910390fd5b6001600560146101000a81548160ff0219169083151502179055507fb3da2db3dfc3778f99852546c6e9ab39ec253f9de7b0847afec61bd27878e923426040516110619190612cea565b60405180910390a1565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600480546110a09061307e565b80601f01602080910402602001604051908101604052809291908181526020018280546110cc9061307e565b80156111175780601f106110ee57610100808354040283529160200191611117565b820191905f5260205f20905b8154815290600101906020018083116110fa57829003601f168201915b505050505081565b61112761106b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111a6575060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dc906130f8565b60405180910390fd5b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080156112e6575f4290506040518060600160405280828152602001603c836112619190613422565b815260200162124f80603c846112779190613422565b6112819190613422565b81525060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015560208201518160010155604082015181600201559050505061137e565b60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8082015f9055600182015f9055600282015f905550508173ffffffffffffffffffffffffffffffffffffffff167f01c2d8ae1ce99453294ce44259ef02edc2e594ead5778d320ad05a5f1c09f89160405160405180910390a25b5050565b6008602052805f5260405f205f915054906101000a900460ff1681565b6009602052805f5260405f205f915054906101000a900460ff1681565b6113c461106b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611443575060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611482576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611479906130f8565b60405180910390fd5b5f5b83839050811015611554578160085f8686858181106114a6576114a5613568565b5b90506020020160208101906114bb9190612ded565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555081156115415761154084848381811061152657611525613568565b5b905060200201602081019061153b9190612ded565b612348565b5b808061154c906133db565b915050611484565b50505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e09061354a565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fde2879b38430cbc20b1709e6fa4a18f45793cfb37baa97f594b183021eca6d7d826040516116839190612cc2565b60405180910390a25050565b5f61169b338484611d3a565b6001905092915050565b6116ad61106b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061172c575060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61176b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611762906130f8565b60405180910390fd5b5f83839050116117b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a7906135df565b60405180910390fd5b5f81116117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e9906131c8565b60405180910390fd5b5f83839050826118029190613213565b9050805f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187a9061329e565b60405180910390fd5b5f5b84849050811015611948575f8585838181106118a4576118a3613568565b5b90506020020160208101906118b99190612ded565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192090613647565b60405180910390fd5b611934338286611d3a565b508080611940906133db565b915050611885565b507f26f116315511836baaeeec2c9f0d3c114715e197d820abf9cbdd99a9619134f584849050838360405161197f93929190612e18565b60405180910390a150505050565b61199561106b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611a14575060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4a906130f8565b60405180910390fd5b5f8290505f8290505f8273ffffffffffffffffffffffffffffffffffffffff1690505f8273ffffffffffffffffffffffffffffffffffffffff1690505f81831703611ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aca906136af565b60405180910390fd5b50505f8273ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490505f8273ffffffffffffffffffffffffffffffffffffffff16600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050818015611b855750805b15611bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbc90613717565b60405180910390fd5b5f803073ffffffffffffffffffffffffffffffffffffffff1685871873ffffffffffffffffffffffffffffffffffffffff161115611c0857859150849050611c19565b849150859050808280925081935050505b611c238282612486565b8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8d891c2dbba38d6a76d2590bf32de7cf75ed28dbe5ed81fb2dd644208fc8ad3c60405160405180910390a35050505050505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b603c81565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9f9061377f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0d906137e7565b60405180910390fd5b5f8111611e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4f90613875565b60405180910390fd5b600560149054906101000a900460ff1661203657611e7461106b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ebb5750600560159054906101000a900460ff16155b15611ee0576001600560156101000a81548160ff021916908315150217905550612035565b611ee861106b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611f535750611f2461106b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611fa4575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611ff5575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202b906138dd565b60405180910390fd5b5b5b60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120d3575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612199575f60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060600160405290815f8201548152602001600182015481526020016002820154815250509050806020015142101580156121575750806040015142105b15612197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218e90613945565b60405180910390fd5b505b5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156122425750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015612295575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122e8575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612338575f6122f78261263f565b14612337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232e906139ad565b60405180910390fd5b5b6123438383836127b7565b505050565b60095f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612483575f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060075f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8082015f9055600182015f9055600282015f905550508073ffffffffffffffffffffffffffffffffffffffff167f01c2d8ae1ce99453294ce44259ef02edc2e594ead5778d320ad05a5f1c09f89160405160405180910390a25b50565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125445783600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146125b85782600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5f83851673ffffffffffffffffffffffffffffffffffffffff160361263957600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50505050565b5f8073ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361269c575f90506127b2565b5f806126a6612944565b92505091508181116127af575f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561271d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061274191906139df565b90505f61276e600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c10565b90506001868261277e91906132bc565b61278891906132bc565b600183886127969190613213565b6127a09190613422565b6127aa9190613a37565b945050505b50505b919050565b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015612836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282d90613ab1565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461288191906132bc565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546128d39190613422565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129379190612cea565b60405180910390a3505050565b5f805f80600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f808273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156129b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129db9190613b4b565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691503073ffffffffffffffffffffffffffffffffffffffff16600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161015612a6057819550809450612a67565b8095508194505b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612ae29190612dd4565b602060405180830381865afa158015612afd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b2191906139df565b9350505050909192565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b62578082015181840152602081019050612b47565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612b8782612b2b565b612b918185612b35565b9350612ba1818560208601612b45565b612baa81612b6d565b840191505092915050565b5f6020820190508181035f830152612bcd8184612b7d565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612c0682612bdd565b9050919050565b612c1681612bfc565b8114612c20575f80fd5b50565b5f81359050612c3181612c0d565b92915050565b5f819050919050565b612c4981612c37565b8114612c53575f80fd5b50565b5f81359050612c6481612c40565b92915050565b5f8060408385031215612c8057612c7f612bd5565b5b5f612c8d85828601612c23565b9250506020612c9e85828601612c56565b9150509250929050565b5f8115159050919050565b612cbc81612ca8565b82525050565b5f602082019050612cd55f830184612cb3565b92915050565b612ce481612c37565b82525050565b5f602082019050612cfd5f830184612cdb565b92915050565b5f8060408385031215612d1957612d18612bd5565b5b5f612d2685828601612c56565b9250506020612d3785828601612c56565b9150509250929050565b5f805f60608486031215612d5857612d57612bd5565b5b5f612d6586828701612c23565b9350506020612d7686828701612c23565b9250506040612d8786828701612c56565b9150509250925092565b5f60ff82169050919050565b612da681612d91565b82525050565b5f602082019050612dbf5f830184612d9d565b92915050565b612dce81612bfc565b82525050565b5f602082019050612de75f830184612dc5565b92915050565b5f60208284031215612e0257612e01612bd5565b5b5f612e0f84828501612c23565b91505092915050565b5f606082019050612e2b5f830186612cdb565b612e386020830185612cdb565b612e456040830184612cdb565b949350505050565b5f608082019050612e605f830187612cdb565b612e6d6020830186612cdb565b612e7a6040830185612cdb565b612e876060830184612cb3565b95945050505050565b612e9981612ca8565b8114612ea3575f80fd5b50565b5f81359050612eb481612e90565b92915050565b5f8060408385031215612ed057612ecf612bd5565b5b5f612edd85828601612c23565b9250506020612eee85828601612ea6565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612f1957612f18612ef8565b5b8235905067ffffffffffffffff811115612f3657612f35612efc565b5b602083019150836020820283011115612f5257612f51612f00565b5b9250929050565b5f805f60408486031215612f7057612f6f612bd5565b5b5f84013567ffffffffffffffff811115612f8d57612f8c612bd9565b5b612f9986828701612f04565b93509350506020612fac86828701612ea6565b9150509250925092565b5f805f60408486031215612fcd57612fcc612bd5565b5b5f84013567ffffffffffffffff811115612fea57612fe9612bd9565b5b612ff686828701612f04565b9350935050602061300986828701612c56565b9150509250925092565b5f806040838503121561302957613028612bd5565b5b5f61303685828601612c23565b925050602061304785828601612c23565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061309557607f821691505b6020821081036130a8576130a7613051565b5b50919050565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f6130e2600e83612b35565b91506130ed826130ae565b602082019050919050565b5f6020820190508181035f83015261310f816130d6565b9050919050565b7f436f756e74206d75737420626520312d353030000000000000000000000000005f82015250565b5f61314a601383612b35565b915061315582613116565b602082019050919050565b5f6020820190508181035f8301526131778161313e565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f6131b2602083612b35565b91506131bd8261317e565b602082019050919050565b5f6020820190508181035f8301526131df816131a6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61321d82612c37565b915061322883612c37565b925082820261323681612c37565b9150828204841483151761324d5761324c6131e6565b5b5092915050565b7f496e73756666696369656e742062616c616e636520666f722061697264726f705f82015250565b5f613288602083612b35565b915061329382613254565b602082019050919050565b5f6020820190508181035f8301526132b58161327c565b9050919050565b5f6132c682612c37565b91506132d183612c37565b92508282039050818111156132e9576132e86131e6565b5b92915050565b5f819050919050565b5f819050919050565b61331261330d826132ef565b6132f8565b82525050565b5f819050919050565b61333261332d82612c37565b613318565b82525050565b5f8160601b9050919050565b5f61334e82613338565b9050919050565b5f61335f82613344565b9050919050565b61337761337282612bfc565b613355565b82525050565b5f6133888288613301565b6020820191506133988287613321565b6020820191506133a88286613366565b6014820191506133b88285613321565b6020820191506133c88284613321565b6020820191508190509695505050505050565b5f6133e582612c37565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613417576134166131e6565b5b600182019050919050565b5f61342c82612c37565b915061343783612c37565b925082820190508082111561344f5761344e6131e6565b5b92915050565b5f6080820190506134685f830187612cdb565b6134756020830186612cdb565b6134826040830185612cdb565b61348f6060830184612cdb565b95945050505050565b7f416c6c6f77616e636520657863656564656400000000000000000000000000005f82015250565b5f6134cc601283612b35565b91506134d782613498565b602082019050919050565b5f6020820190508181035f8301526134f9816134c0565b9050919050565b7f4e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f613534600983612b35565b915061353f82613500565b602082019050919050565b5f6020820190508181035f83015261356181613528565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f456d70747920726563697069656e7473206c69737400000000000000000000005f82015250565b5f6135c9601583612b35565b91506135d482613595565b602082019050919050565b5f6020820190508181035f8301526135f6816135bd565b9050919050565b7f43616e6e6f742061697264726f7020746f207a65726f206164647265737300005f82015250565b5f613631601e83612b35565b915061363c826135fd565b602082019050919050565b5f6020820190508181035f83015261365e81613625565b9050919050565b7f5a65726f206164647265737300000000000000000000000000000000000000005f82015250565b5f613699600c83612b35565b91506136a482613665565b602082019050919050565b5f6020820190508181035f8301526136c68161368d565b9050919050565b7f70707070705f414c52454144595f5345540000000000000000000000000000005f82015250565b5f613701601183612b35565b915061370c826136cd565b602082019050919050565b5f6020820190508181035f83015261372e816136f5565b9050919050565b7f5472616e736665722066726f6d207a65726f20616464726573730000000000005f82015250565b5f613769601a83612b35565b915061377482613735565b602082019050919050565b5f6020820190508181035f8301526137968161375d565b9050919050565b7f5472616e7366657220746f207a65726f206164647265737300000000000000005f82015250565b5f6137d1601883612b35565b91506137dc8261379d565b602082019050919050565b5f6020820190508181035f8301526137fe816137c5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61385f602983612b35565b915061386a82613805565b604082019050919050565b5f6020820190508181035f83015261388c81613853565b9050919050565b7f54726164696e67207265737472696374656400000000000000000000000000005f82015250565b5f6138c7601283612b35565b91506138d282613893565b602082019050919050565b5f6020820190508181035f8301526138f4816138bb565b9050919050565b7f434f4f4c444f574e5f41435449564500000000000000000000000000000000005f82015250565b5f61392f600f83612b35565b915061393a826138fb565b602082019050919050565b5f6020820190508181035f83015261395c81613923565b9050919050565b7f52656d6f7665206c697175696469747920626c6f636b656400000000000000005f82015250565b5f613997601883612b35565b91506139a282613963565b602082019050919050565b5f6020820190508181035f8301526139c48161398b565b9050919050565b5f815190506139d981612c40565b92915050565b5f602082840312156139f4576139f3612bd5565b5b5f613a01848285016139cb565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613a4182612c37565b9150613a4c83612c37565b925082613a5c57613a5b613a0a565b5b828204905092915050565b7f42616c616e636520746f6f206c6f7700000000000000000000000000000000005f82015250565b5f613a9b600f83612b35565b9150613aa682613a67565b602082019050919050565b5f6020820190508181035f830152613ac881613a8f565b9050919050565b5f6dffffffffffffffffffffffffffff82169050919050565b613af181613acf565b8114613afb575f80fd5b50565b5f81519050613b0c81613ae8565b92915050565b5f63ffffffff82169050919050565b613b2a81613b12565b8114613b34575f80fd5b50565b5f81519050613b4581613b21565b92915050565b5f805f60608486031215613b6257613b61612bd5565b5b5f613b6f86828701613afe565b9350506020613b8086828701613afe565b9250506040613b9186828701613b37565b915050925092509256fea26469706673582212206b7662f73b04bc3650be8958e0be79841da9e15ef21f994ff6f1fab0bb8a426b64736f6c63430008140033

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000004ee2d6d415b85acef8100000000000000000000000000000000000000000000000000000000000000000000000641494b494e470000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000641494b494e470000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): AIKING
Arg [1] : symbol_ (string): AIKING
Arg [2] : totalSupply_ (uint256): 100000000000000000000000000000000

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000000000000000004ee2d6d415b85acef8100000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [4] : 41494b494e470000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [6] : 41494b494e470000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

4063:10312:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2163:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3056:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2545:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13114:1258;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3271:330;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2215:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4657:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4229:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4163:57;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4629:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4477:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;2644:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1670:140;;;:::i;:::-;;11123:612;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;4262:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11743:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7431:146;;;:::i;:::-;;1583:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2188:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8081:537;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4528:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4576:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7768:305;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7585:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2762:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12032:745;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6078:967;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2912:136;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4106:50;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2163:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3056:207::-;3122:4;3174:6;3139:11;:23;3151:10;3139:23;;;;;;;;;;;;;;;:32;3163:7;3139:32;;;;;;;;;;;;;;;:41;;;;3217:7;3196:37;;3205:10;3196:37;;;3226:6;3196:37;;;;;;:::i;:::-;;;;;;;;3251:4;3244:11;;3056:207;;;;:::o;2545:91::-;2589:7;2616:12;;2609:19;;2545:91;:::o;13114:1258::-;5072:7;:5;:7::i;:::-;5058:21;;:10;:21;;;:56;;;;5083:19;:31;5103:10;5083:31;;;;;;;;;;;;;;;;;;;;;;;;;5058:56;5036:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;13256:1:::1;13248:5;:9;:27;;;;;13270:5;13261;:14;;13248:27;13240:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;13331:1;13318:10;:14;13310:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;13382:13;13411:5;13398:10;:18;;;;:::i;:::-;13382:34;;13460:5;13435:9;:21:::0;13445:10:::1;13435:21;;;;;;;;;;;;;;;;:30;;13427:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;13515:13;13531;;13515:29;;13562:9;13557:694;13581:5;13577:1;:9;13557:694;;;13608:17;13834:1;13819:12;:16;;;;:::i;:::-;13809:27;13871:15;13921:10;13966:5;14006:1;13758:280;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;13718:347;;;;;;13684:404;;13608:514;;14139:44;14149:10;14161:9;14172:10;14139:9;:44::i;:::-;14226:1;14203:36;14229:9;14203:36;;;;;;:::i;:::-;;;;;;;;13593:658;13588:3;;;;;:::i;:::-;;;;13557:694;;;;14287:5;14279;:13;;;;:::i;:::-;14263;:29;;;;14310:54;14332:5;14339:10;14351:5;14358;14310:54;;;;;;;;;:::i;:::-;;;;;;;;13229:1143;;13114:1258:::0;;:::o;3271:330::-;3351:4;3368:15;3386:11;:17;3398:4;3386:17;;;;;;;;;;;;;;;:29;3404:10;3386:29;;;;;;;;;;;;;;;;3368:47;;3445:6;3434:7;:17;;3426:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;3527:6;3517:7;:16;;;;:::i;:::-;3485:11;:17;3497:4;3485:17;;;;;;;;;;;;;;;:29;3503:10;3485:29;;;;;;;;;;;;;;;:48;;;;3544:27;3554:4;3560:2;3564:6;3544:9;:27::i;:::-;3589:4;3582:11;;;3271:330;;;;;:::o;2215:35::-;2248:2;2215:35;:::o;4657:27::-;;;;;;;;;;;;;:::o;4229:26::-;;;;;;;;;;;;;:::o;4163:57::-;4207:13;4163:57;:::o;4629:21::-;;;;;;;;;;;;;:::o;4477:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2644:110::-;2701:7;2728:9;:18;2738:7;2728:18;;;;;;;;;;;;;;;;2721:25;;2644:110;;;:::o;1670:140::-;1535:6;;;;;;;;;;;1521:20;;:10;:20;;;1513:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;1769:1:::1;1732:40;;1753:6;;;;;;;;;;;1732:40;;;;;;;;;;;;1800:1;1783:6;;:19;;;;;;;;;;;;;;;;;;1670:140::o:0;11123:612::-;11222:15;11252:17;11284:18;11317:11;11356:20;11379:8;:14;11388:4;11379:14;;;;;;;;;;;;;;;11356:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11410:9;:15;11420:4;11410:15;;;;;;;;;;;;;;;;;;;;;;;;;11406:247;;;11451:5;11442:14;;11406:247;;;11515:12;:18;11528:4;11515:18;;;;;;;;;;;;;;;;;;;;;;;;;:72;;;;;11573:4;:14;;;11554:15;:33;;11515:72;:126;;;;;11626:4;:15;;;11608;:33;11515:126;11489:152;;11406:247;11673:4;:12;;;11687:4;:14;;;11703:4;:15;;;11665:62;;;;;;;11123:612;;;;;:::o;4262:28::-;;;;;;;;;;;;;:::o;11743:129::-;11812:4;11836:19;:28;11856:7;11836:28;;;;;;;;;;;;;;;;;;;;;;;;;11829:35;;11743:129;;;:::o;7431:146::-;5072:7;:5;:7::i;:::-;5058:21;;:10;:21;;;:56;;;;5083:19;:31;5103:10;5083:31;;;;;;;;;;;;;;;;;;;;;;;;;5058:56;5036:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;7518:4:::1;7501:14;;:21;;;;;;;;;;;;;;;;;;7538:31;7553:15;7538:31;;;;;;:::i;:::-;;;;;;;;7431:146::o:0;1583:79::-;1621:7;1648:6;;;;;;;;;;;1641:13;;1583:79;:::o;2188:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8081:537::-;5072:7;:5;:7::i;:::-;5058:21;;:10;:21;;;:56;;;;5083:19;:31;5103:10;5083:31;;;;;;;;;;;;;;;;;;;;;;;;;5058:56;5036:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;8202:7:::1;8181:12;:18;8194:4;8181:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;8226:7;8222:389;;;8250:15;8268;8250:33;;8315:189;;;;;;;;8352:7;8315:189;;;;4147:9;8389:7;:24;;;;:::i;:::-;8315:189;;;;4207:13;4147:9;8444:7;:24;;;;:::i;:::-;:44;;;;:::i;:::-;8315:189;;::::0;8298:8:::1;:14;8307:4;8298:14;;;;;;;;;;;;;;;:206;;;;;;;;;;;;;;;;;;;;;;;;;;;8235:281;8222:389;;;8544:8;:14;8553:4;8544:14;;;;;;;;;;;;;;;;8537:21:::0;::::1;;;;;;;;;;;;;;;;;;;8594:4;8578:21;;;;;;;;;;;;8222:389;8081:537:::0;;:::o;4528:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;4576:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;7768:305::-;5072:7;:5;:7::i;:::-;5058:21;;:10;:21;;;:56;;;;5083:19;:31;5103:10;5083:31;;;;;;;;;;;;;;;;;;;;;;;;;5058:56;5036:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;7885:9:::1;7880:186;7904:5;;:12;;7900:1;:16;7880:186;;;7960:7;7938:9;:19;7948:5;;7954:1;7948:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7938:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7986:7;7982:73;;;8014:25;8030:5;;8036:1;8030:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8014:15;:25::i;:::-;7982:73;7918:3;;;;;:::i;:::-;;;;7880:186;;;;7768:305:::0;;;:::o;7585:175::-;1535:6;;;;;;;;;;;1521:20;;:10;:20;;;1513:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;7696:6:::1;7665:19;:28;7685:7;7665:28;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;7736:7;7718:34;;;7745:6;7718:34;;;;;;:::i;:::-;;;;;;;;7585:175:::0;;:::o;2762:142::-;2824:4;2841:33;2851:10;2863:2;2867:6;2841:9;:33::i;:::-;2892:4;2885:11;;2762:142;;;;:::o;12032:745::-;5072:7;:5;:7::i;:::-;5058:21;;:10;:21;;;:56;;;;5083:19;:31;5103:10;5083:31;;;;;;;;;;;;;;;;;;;;;;;;;5058:56;5036:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;12196:1:::1;12176:10;;:17;;:21;12168:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;12255:1;12242:10;:14;12234:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;12306:13;12335:10;;:17;;12322:10;:30;;;;:::i;:::-;12306:46;;12396:5;12371:9;:21:::0;12381:10:::1;12371:21;;;;;;;;;;;;;;;;:30;;12363:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;12456:9;12451:248;12475:10;;:17;;12471:1;:21;12451:248;;;12514:17;12534:10;;12545:1;12534:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12514:33;;12591:1;12570:23;;:9;:23;;::::0;12562:66:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12643:44;12653:10;12665:9;12676:10;12643:9;:44::i;:::-;12499:200;12494:3;;;;;:::i;:::-;;;;12451:248;;;;12716:53;12732:10;;:17;;12751:10;12763:5;12716:53;;;;;;;;:::i;:::-;;;;;;;;12157:620;12032:745:::0;;;:::o;6078:967::-;5072:7;:5;:7::i;:::-;5058:21;;:10;:21;;;:56;;;;5083:19;:31;5103:10;5083:31;;;;;;;;;;;;;;;;;;;;;;;;;5058:56;5036:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;6166:9:::1;6178:2;6166:14;;6191:9;6203:2;6191:14;;6243:10;6272:1;6256:19;;6243:32;;6290:10;6319:1;6303:19;;6290:32;;6358:1;6351:2;6346;:7;6345:14:::0;6337:39:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6218:170;;6400:14;6428:1;6418:11;;:6;;;;;;;;;;;:11;;;6400:30;;6441:14;6475:1;6459:17;;:12;;;;;;;;;;;:17;;;6441:36;;6494:9;:22;;;;;6507:9;6494:22;6490:82;;;6533:27;;;;;;;;;;:::i;:::-;;;;;;;;6490:82;6584:12;6607::::0;6678:4:::1;6636:48;;6657:1;6644;6636:23;:48;;;6632:218;;;6708:1;6701:8;;6731:1;6724:8;;6632:218;;;6772:1;6765:8;;6795:1;6788:8;;6827:4;6833;6811:27;;;;;;;;6632:218;6862:23;6874:4;6880;6862:11;:23::i;:::-;7018:4;7002:22;;6903:134;;6963:4;6947:22;;6903:134;;;;;;;;;;;;6155:890;;;;;;6078:967:::0;;:::o;2912:136::-;2985:7;3012:11;:19;3024:6;3012:19;;;;;;;;;;;;;;;:28;3032:7;3012:28;;;;;;;;;;;;;;;;3005:35;;2912:136;;;;:::o;4106:50::-;4147:9;4106:50;:::o;9690:1371::-;9838:1;9822:18;;:4;:18;;;9814:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9904:1;9890:16;;:2;:16;;;9882:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;9963:1;9954:6;:10;9946:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10028:14;;;;;;;;;;;10023:411;;10071:7;:5;:7::i;:::-;10063:15;;:4;:15;;;:36;;;;;10083:16;;;;;;;;;;;10082:17;10063:36;10059:364;;;10139:4;10120:16;;:23;;;;;;;;;;;;;;;;;;10059:364;;;10222:7;:5;:7::i;:::-;10214:15;;:4;:15;;;:53;;;;10260:7;:5;:7::i;:::-;10254:13;;:2;:13;;;10214:53;:93;;;;10292:9;:15;10302:4;10292:15;;;;;;;;;;;;;;;;;;;;;;;;;10214:93;:131;;;;10332:9;:13;10342:2;10332:13;;;;;;;;;;;;;;;;;;;;;;;;;10214:131;10184:223;;;;;;;;;;;;:::i;:::-;;;;;;;;;10059:364;10023:411;10450:12;:18;10463:4;10450:18;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;10473:9;:15;10483:4;10473:15;;;;;;;;;;;;;;;;;;;;;;;;;10472:16;10450:38;10446:309;;;10505:20;10528:8;:14;10537:4;10528:14;;;;;;;;;;;;;;;10505:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10600:4;:14;;;10581:15;:33;;:87;;;;;10653:4;:15;;;10635;:33;10581:87;10559:185;;;10703:25;;;;;;;;;;:::i;:::-;;;;;;;;10559:185;10490:265;10446:309;10803:1;10785:20;;:6;;;;;;;;;;;:20;;;;:51;;;;;10830:6;;;;;;;;;;;10822:14;;:4;:14;;;10785:51;:84;;;;;10854:9;:15;10864:4;10854:15;;;;;;;;;;;;;;;;;;;;;;;;;10853:16;10785:84;:115;;;;;10887:9;:13;10897:2;10887:13;;;;;;;;;;;;;;;;;;;;;;;;;10886:14;10785:115;10767:239;;;10964:1;10935:25;10953:6;10935:17;:25::i;:::-;:30;10927:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10767:239;11020:33;11036:4;11042:2;11046:6;11020:15;:33::i;:::-;9690:1371;;;:::o;5850:220::-;5913:12;:18;5926:4;5913:18;;;;;;;;;;;;;;;;;;;;;;;;;5909:154;;;5969:5;5948:12;:18;5961:4;5948:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;5996:8;:14;6005:4;5996:14;;;;;;;;;;;;;;;;5989:21;;;;;;;;;;;;;;;;;;;;6046:4;6030:21;;;;;;;;;;;;5909:154;5850:220;:::o;7053:370::-;7116:16;7135:6;;;;;;;;;;;7116:25;;7152:16;7171:12;;;;;;;;;;;7152:31;;7212:1;7200:13;;:8;:13;;;7196:56;;7239:1;7230:6;;:10;;;;;;;;;;;;;;;;;;7196:56;7280:1;7268:13;;:8;:13;;;7264:62;;7313:1;7298:12;;:16;;;;;;;;;;;;;;;;;;7264:62;7371:1;7364;7351;7343:23;7342:30;;;7338:78;;7398:6;;;;;;;;;;;7389;;:15;;;;;;;;;;;;;;;;;;7338:78;7105:318;;7053:370;;:::o;9123:495::-;9216:17;9273:1;9255:20;;:6;;;;;;;;;;;:20;;;9251:34;;9284:1;9277:8;;;;9251:34;9299:14;9317:20;9341:18;:16;:18::i;:::-;9298:61;;;;;9392:6;9376:12;:22;9372:239;;9415:19;9448:6;;;;;;;;;;;9437:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9415:54;;9484:16;9503:17;9513:6;;;;;;;;;;;9503:9;:17::i;:::-;9484:36;;9597:1;9588:6;9577:8;:17;;;;:::i;:::-;:21;;;;:::i;:::-;9571:1;9557:11;9548:6;:20;;;;:::i;:::-;:24;;;;:::i;:::-;9547:52;;;;:::i;:::-;9535:64;;9400:211;;9372:239;9240:378;;9123:495;;;;:::o;3792:262::-;3908:6;3889:9;:15;3899:4;3889:15;;;;;;;;;;;;;;;;:25;;3881:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;3964:6;3945:9;:15;3955:4;3945:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;3998:6;3981:9;:13;3991:2;3981:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;4035:2;4020:26;;4029:4;4020:26;;;4039:6;4020:26;;;;;;:::i;:::-;;;;;;;;3792:262;;;:::o;8626:489::-;8704:14;8720:13;8735:20;8773:12;8799:6;;;;;;;;;;;8773:33;;8818:10;8830;8846:1;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8817:44;;;;;;;;;8901:4;8878:28;;:12;;;;;;;;;;;:28;;;8874:168;;;8932:2;8923:11;;8958:2;8949:11;;8874:168;;;9002:2;8993:11;;9028:2;9019:11;;8874:168;9076:12;;;;;;;;;;;9069:30;;;9100:6;;;;;;;;;;;9069:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9054:53;;8762:353;;;8626:489;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:474::-;3866:6;3874;3923:2;3911:9;3902:7;3898:23;3894:32;3891:119;;;3929:79;;:::i;:::-;3891:119;4049:1;4074:53;4119:7;4110:6;4099:9;4095:22;4074:53;:::i;:::-;4064:63;;4020:117;4176:2;4202:53;4247:7;4238:6;4227:9;4223:22;4202:53;:::i;:::-;4192:63;;4147:118;3798:474;;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:86::-;4938:7;4978:4;4971:5;4967:16;4956:27;;4903:86;;;:::o;4995:112::-;5078:22;5094:5;5078:22;:::i;:::-;5073:3;5066:35;4995:112;;:::o;5113:214::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5253:67;5317:1;5306:9;5302:17;5293:6;5253:67;:::i;:::-;5113:214;;;;:::o;5333:118::-;5420:24;5438:5;5420:24;:::i;:::-;5415:3;5408:37;5333:118;;:::o;5457:222::-;5550:4;5588:2;5577:9;5573:18;5565:26;;5601:71;5669:1;5658:9;5654:17;5645:6;5601:71;:::i;:::-;5457:222;;;;:::o;5685:329::-;5744:6;5793:2;5781:9;5772:7;5768:23;5764:32;5761:119;;;5799:79;;:::i;:::-;5761:119;5919:1;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5890:117;5685:329;;;;:::o;6020:442::-;6169:4;6207:2;6196:9;6192:18;6184:26;;6220:71;6288:1;6277:9;6273:17;6264:6;6220:71;:::i;:::-;6301:72;6369:2;6358:9;6354:18;6345:6;6301:72;:::i;:::-;6383;6451:2;6440:9;6436:18;6427:6;6383:72;:::i;:::-;6020:442;;;;;;:::o;6468:541::-;6639:4;6677:3;6666:9;6662:19;6654:27;;6691:71;6759:1;6748:9;6744:17;6735:6;6691:71;:::i;:::-;6772:72;6840:2;6829:9;6825:18;6816:6;6772:72;:::i;:::-;6854;6922:2;6911:9;6907:18;6898:6;6854:72;:::i;:::-;6936:66;6998:2;6987:9;6983:18;6974:6;6936:66;:::i;:::-;6468:541;;;;;;;:::o;7015:116::-;7085:21;7100:5;7085:21;:::i;:::-;7078:5;7075:32;7065:60;;7121:1;7118;7111:12;7065:60;7015:116;:::o;7137:133::-;7180:5;7218:6;7205:20;7196:29;;7234:30;7258:5;7234:30;:::i;:::-;7137:133;;;;:::o;7276:468::-;7341:6;7349;7398:2;7386:9;7377:7;7373:23;7369:32;7366:119;;;7404:79;;:::i;:::-;7366:119;7524:1;7549:53;7594:7;7585:6;7574:9;7570:22;7549:53;:::i;:::-;7539:63;;7495:117;7651:2;7677:50;7719:7;7710:6;7699:9;7695:22;7677:50;:::i;:::-;7667:60;;7622:115;7276:468;;;;;:::o;7750:117::-;7859:1;7856;7849:12;7873:117;7982:1;7979;7972:12;7996:117;8105:1;8102;8095:12;8136:568;8209:8;8219:6;8269:3;8262:4;8254:6;8250:17;8246:27;8236:122;;8277:79;;:::i;:::-;8236:122;8390:6;8377:20;8367:30;;8420:18;8412:6;8409:30;8406:117;;;8442:79;;:::i;:::-;8406:117;8556:4;8548:6;8544:17;8532:29;;8610:3;8602:4;8594:6;8590:17;8580:8;8576:32;8573:41;8570:128;;;8617:79;;:::i;:::-;8570:128;8136:568;;;;;:::o;8710:698::-;8802:6;8810;8818;8867:2;8855:9;8846:7;8842:23;8838:32;8835:119;;;8873:79;;:::i;:::-;8835:119;9021:1;9010:9;9006:17;8993:31;9051:18;9043:6;9040:30;9037:117;;;9073:79;;:::i;:::-;9037:117;9186:80;9258:7;9249:6;9238:9;9234:22;9186:80;:::i;:::-;9168:98;;;;8964:312;9315:2;9341:50;9383:7;9374:6;9363:9;9359:22;9341:50;:::i;:::-;9331:60;;9286:115;8710:698;;;;;:::o;9414:704::-;9509:6;9517;9525;9574:2;9562:9;9553:7;9549:23;9545:32;9542:119;;;9580:79;;:::i;:::-;9542:119;9728:1;9717:9;9713:17;9700:31;9758:18;9750:6;9747:30;9744:117;;;9780:79;;:::i;:::-;9744:117;9893:80;9965:7;9956:6;9945:9;9941:22;9893:80;:::i;:::-;9875:98;;;;9671:312;10022:2;10048:53;10093:7;10084:6;10073:9;10069:22;10048:53;:::i;:::-;10038:63;;9993:118;9414:704;;;;;:::o;10124:474::-;10192:6;10200;10249:2;10237:9;10228:7;10224:23;10220:32;10217:119;;;10255:79;;:::i;:::-;10217:119;10375:1;10400:53;10445:7;10436:6;10425:9;10421:22;10400:53;:::i;:::-;10390:63;;10346:117;10502:2;10528:53;10573:7;10564:6;10553:9;10549:22;10528:53;:::i;:::-;10518:63;;10473:118;10124:474;;;;;:::o;10604:180::-;10652:77;10649:1;10642:88;10749:4;10746:1;10739:15;10773:4;10770:1;10763:15;10790:320;10834:6;10871:1;10865:4;10861:12;10851:22;;10918:1;10912:4;10908:12;10939:18;10929:81;;10995:4;10987:6;10983:17;10973:27;;10929:81;11057:2;11049:6;11046:14;11026:18;11023:38;11020:84;;11076:18;;:::i;:::-;11020:84;10841:269;10790:320;;;:::o;11116:164::-;11256:16;11252:1;11244:6;11240:14;11233:40;11116:164;:::o;11286:366::-;11428:3;11449:67;11513:2;11508:3;11449:67;:::i;:::-;11442:74;;11525:93;11614:3;11525:93;:::i;:::-;11643:2;11638:3;11634:12;11627:19;;11286:366;;;:::o;11658:419::-;11824:4;11862:2;11851:9;11847:18;11839:26;;11911:9;11905:4;11901:20;11897:1;11886:9;11882:17;11875:47;11939:131;12065:4;11939:131;:::i;:::-;11931:139;;11658:419;;;:::o;12083:169::-;12223:21;12219:1;12211:6;12207:14;12200:45;12083:169;:::o;12258:366::-;12400:3;12421:67;12485:2;12480:3;12421:67;:::i;:::-;12414:74;;12497:93;12586:3;12497:93;:::i;:::-;12615:2;12610:3;12606:12;12599:19;;12258:366;;;:::o;12630:419::-;12796:4;12834:2;12823:9;12819:18;12811:26;;12883:9;12877:4;12873:20;12869:1;12858:9;12854:17;12847:47;12911:131;13037:4;12911:131;:::i;:::-;12903:139;;12630:419;;;:::o;13055:182::-;13195:34;13191:1;13183:6;13179:14;13172:58;13055:182;:::o;13243:366::-;13385:3;13406:67;13470:2;13465:3;13406:67;:::i;:::-;13399:74;;13482:93;13571:3;13482:93;:::i;:::-;13600:2;13595:3;13591:12;13584:19;;13243:366;;;:::o;13615:419::-;13781:4;13819:2;13808:9;13804:18;13796:26;;13868:9;13862:4;13858:20;13854:1;13843:9;13839:17;13832:47;13896:131;14022:4;13896:131;:::i;:::-;13888:139;;13615:419;;;:::o;14040:180::-;14088:77;14085:1;14078:88;14185:4;14182:1;14175:15;14209:4;14206:1;14199:15;14226:410;14266:7;14289:20;14307:1;14289:20;:::i;:::-;14284:25;;14323:20;14341:1;14323:20;:::i;:::-;14318:25;;14378:1;14375;14371:9;14400:30;14418:11;14400:30;:::i;:::-;14389:41;;14579:1;14570:7;14566:15;14563:1;14560:22;14540:1;14533:9;14513:83;14490:139;;14609:18;;:::i;:::-;14490:139;14274:362;14226:410;;;;:::o;14642:182::-;14782:34;14778:1;14770:6;14766:14;14759:58;14642:182;:::o;14830:366::-;14972:3;14993:67;15057:2;15052:3;14993:67;:::i;:::-;14986:74;;15069:93;15158:3;15069:93;:::i;:::-;15187:2;15182:3;15178:12;15171:19;;14830:366;;;:::o;15202:419::-;15368:4;15406:2;15395:9;15391:18;15383:26;;15455:9;15449:4;15445:20;15441:1;15430:9;15426:17;15419:47;15483:131;15609:4;15483:131;:::i;:::-;15475:139;;15202:419;;;:::o;15627:194::-;15667:4;15687:20;15705:1;15687:20;:::i;:::-;15682:25;;15721:20;15739:1;15721:20;:::i;:::-;15716:25;;15765:1;15762;15758:9;15750:17;;15789:1;15783:4;15780:11;15777:37;;;15794:18;;:::i;:::-;15777:37;15627:194;;;;:::o;15827:77::-;15864:7;15893:5;15882:16;;15827:77;;;:::o;15910:79::-;15949:7;15978:5;15967:16;;15910:79;;;:::o;15995:157::-;16100:45;16120:24;16138:5;16120:24;:::i;:::-;16100:45;:::i;:::-;16095:3;16088:58;15995:157;;:::o;16158:79::-;16197:7;16226:5;16215:16;;16158:79;;;:::o;16243:157::-;16348:45;16368:24;16386:5;16368:24;:::i;:::-;16348:45;:::i;:::-;16343:3;16336:58;16243:157;;:::o;16406:94::-;16439:8;16487:5;16483:2;16479:14;16458:35;;16406:94;;;:::o;16506:::-;16545:7;16574:20;16588:5;16574:20;:::i;:::-;16563:31;;16506:94;;;:::o;16606:100::-;16645:7;16674:26;16694:5;16674:26;:::i;:::-;16663:37;;16606:100;;;:::o;16712:157::-;16817:45;16837:24;16855:5;16837:24;:::i;:::-;16817:45;:::i;:::-;16812:3;16805:58;16712:157;;:::o;16875:820::-;17099:3;17114:75;17185:3;17176:6;17114:75;:::i;:::-;17214:2;17209:3;17205:12;17198:19;;17227:75;17298:3;17289:6;17227:75;:::i;:::-;17327:2;17322:3;17318:12;17311:19;;17340:75;17411:3;17402:6;17340:75;:::i;:::-;17440:2;17435:3;17431:12;17424:19;;17453:75;17524:3;17515:6;17453:75;:::i;:::-;17553:2;17548:3;17544:12;17537:19;;17566:75;17637:3;17628:6;17566:75;:::i;:::-;17666:2;17661:3;17657:12;17650:19;;17686:3;17679:10;;16875:820;;;;;;;;:::o;17701:233::-;17740:3;17763:24;17781:5;17763:24;:::i;:::-;17754:33;;17809:66;17802:5;17799:77;17796:103;;17879:18;;:::i;:::-;17796:103;17926:1;17919:5;17915:13;17908:20;;17701:233;;;:::o;17940:191::-;17980:3;17999:20;18017:1;17999:20;:::i;:::-;17994:25;;18033:20;18051:1;18033:20;:::i;:::-;18028:25;;18076:1;18073;18069:9;18062:16;;18097:3;18094:1;18091:10;18088:36;;;18104:18;;:::i;:::-;18088:36;17940:191;;;;:::o;18137:553::-;18314:4;18352:3;18341:9;18337:19;18329:27;;18366:71;18434:1;18423:9;18419:17;18410:6;18366:71;:::i;:::-;18447:72;18515:2;18504:9;18500:18;18491:6;18447:72;:::i;:::-;18529;18597:2;18586:9;18582:18;18573:6;18529:72;:::i;:::-;18611;18679:2;18668:9;18664:18;18655:6;18611:72;:::i;:::-;18137:553;;;;;;;:::o;18696:168::-;18836:20;18832:1;18824:6;18820:14;18813:44;18696:168;:::o;18870:366::-;19012:3;19033:67;19097:2;19092:3;19033:67;:::i;:::-;19026:74;;19109:93;19198:3;19109:93;:::i;:::-;19227:2;19222:3;19218:12;19211:19;;18870:366;;;:::o;19242:419::-;19408:4;19446:2;19435:9;19431:18;19423:26;;19495:9;19489:4;19485:20;19481:1;19470:9;19466:17;19459:47;19523:131;19649:4;19523:131;:::i;:::-;19515:139;;19242:419;;;:::o;19667:159::-;19807:11;19803:1;19795:6;19791:14;19784:35;19667:159;:::o;19832:365::-;19974:3;19995:66;20059:1;20054:3;19995:66;:::i;:::-;19988:73;;20070:93;20159:3;20070:93;:::i;:::-;20188:2;20183:3;20179:12;20172:19;;19832:365;;;:::o;20203:419::-;20369:4;20407:2;20396:9;20392:18;20384:26;;20456:9;20450:4;20446:20;20442:1;20431:9;20427:17;20420:47;20484:131;20610:4;20484:131;:::i;:::-;20476:139;;20203:419;;;:::o;20628:180::-;20676:77;20673:1;20666:88;20773:4;20770:1;20763:15;20797:4;20794:1;20787:15;20814:171;20954:23;20950:1;20942:6;20938:14;20931:47;20814:171;:::o;20991:366::-;21133:3;21154:67;21218:2;21213:3;21154:67;:::i;:::-;21147:74;;21230:93;21319:3;21230:93;:::i;:::-;21348:2;21343:3;21339:12;21332:19;;20991:366;;;:::o;21363:419::-;21529:4;21567:2;21556:9;21552:18;21544:26;;21616:9;21610:4;21606:20;21602:1;21591:9;21587:17;21580:47;21644:131;21770:4;21644:131;:::i;:::-;21636:139;;21363:419;;;:::o;21788:180::-;21928:32;21924:1;21916:6;21912:14;21905:56;21788:180;:::o;21974:366::-;22116:3;22137:67;22201:2;22196:3;22137:67;:::i;:::-;22130:74;;22213:93;22302:3;22213:93;:::i;:::-;22331:2;22326:3;22322:12;22315:19;;21974:366;;;:::o;22346:419::-;22512:4;22550:2;22539:9;22535:18;22527:26;;22599:9;22593:4;22589:20;22585:1;22574:9;22570:17;22563:47;22627:131;22753:4;22627:131;:::i;:::-;22619:139;;22346:419;;;:::o;22771:162::-;22911:14;22907:1;22899:6;22895:14;22888:38;22771:162;:::o;22939:366::-;23081:3;23102:67;23166:2;23161:3;23102:67;:::i;:::-;23095:74;;23178:93;23267:3;23178:93;:::i;:::-;23296:2;23291:3;23287:12;23280:19;;22939:366;;;:::o;23311:419::-;23477:4;23515:2;23504:9;23500:18;23492:26;;23564:9;23558:4;23554:20;23550:1;23539:9;23535:17;23528:47;23592:131;23718:4;23592:131;:::i;:::-;23584:139;;23311:419;;;:::o;23736:167::-;23876:19;23872:1;23864:6;23860:14;23853:43;23736:167;:::o;23909:366::-;24051:3;24072:67;24136:2;24131:3;24072:67;:::i;:::-;24065:74;;24148:93;24237:3;24148:93;:::i;:::-;24266:2;24261:3;24257:12;24250:19;;23909:366;;;:::o;24281:419::-;24447:4;24485:2;24474:9;24470:18;24462:26;;24534:9;24528:4;24524:20;24520:1;24509:9;24505:17;24498:47;24562:131;24688:4;24562:131;:::i;:::-;24554:139;;24281:419;;;:::o;24706:176::-;24846:28;24842:1;24834:6;24830:14;24823:52;24706:176;:::o;24888:366::-;25030:3;25051:67;25115:2;25110:3;25051:67;:::i;:::-;25044:74;;25127:93;25216:3;25127:93;:::i;:::-;25245:2;25240:3;25236:12;25229:19;;24888:366;;;:::o;25260:419::-;25426:4;25464:2;25453:9;25449:18;25441:26;;25513:9;25507:4;25503:20;25499:1;25488:9;25484:17;25477:47;25541:131;25667:4;25541:131;:::i;:::-;25533:139;;25260:419;;;:::o;25685:174::-;25825:26;25821:1;25813:6;25809:14;25802:50;25685:174;:::o;25865:366::-;26007:3;26028:67;26092:2;26087:3;26028:67;:::i;:::-;26021:74;;26104:93;26193:3;26104:93;:::i;:::-;26222:2;26217:3;26213:12;26206:19;;25865:366;;;:::o;26237:419::-;26403:4;26441:2;26430:9;26426:18;26418:26;;26490:9;26484:4;26480:20;26476:1;26465:9;26461:17;26454:47;26518:131;26644:4;26518:131;:::i;:::-;26510:139;;26237:419;;;:::o;26662:228::-;26802:34;26798:1;26790:6;26786:14;26779:58;26871:11;26866:2;26858:6;26854:15;26847:36;26662:228;:::o;26896:366::-;27038:3;27059:67;27123:2;27118:3;27059:67;:::i;:::-;27052:74;;27135:93;27224:3;27135:93;:::i;:::-;27253:2;27248:3;27244:12;27237:19;;26896:366;;;:::o;27268:419::-;27434:4;27472:2;27461:9;27457:18;27449:26;;27521:9;27515:4;27511:20;27507:1;27496:9;27492:17;27485:47;27549:131;27675:4;27549:131;:::i;:::-;27541:139;;27268:419;;;:::o;27693:168::-;27833:20;27829:1;27821:6;27817:14;27810:44;27693:168;:::o;27867:366::-;28009:3;28030:67;28094:2;28089:3;28030:67;:::i;:::-;28023:74;;28106:93;28195:3;28106:93;:::i;:::-;28224:2;28219:3;28215:12;28208:19;;27867:366;;;:::o;28239:419::-;28405:4;28443:2;28432:9;28428:18;28420:26;;28492:9;28486:4;28482:20;28478:1;28467:9;28463:17;28456:47;28520:131;28646:4;28520:131;:::i;:::-;28512:139;;28239:419;;;:::o;28664:165::-;28804:17;28800:1;28792:6;28788:14;28781:41;28664:165;:::o;28835:366::-;28977:3;28998:67;29062:2;29057:3;28998:67;:::i;:::-;28991:74;;29074:93;29163:3;29074:93;:::i;:::-;29192:2;29187:3;29183:12;29176:19;;28835:366;;;:::o;29207:419::-;29373:4;29411:2;29400:9;29396:18;29388:26;;29460:9;29454:4;29450:20;29446:1;29435:9;29431:17;29424:47;29488:131;29614:4;29488:131;:::i;:::-;29480:139;;29207:419;;;:::o;29632:174::-;29772:26;29768:1;29760:6;29756:14;29749:50;29632:174;:::o;29812:366::-;29954:3;29975:67;30039:2;30034:3;29975:67;:::i;:::-;29968:74;;30051:93;30140:3;30051:93;:::i;:::-;30169:2;30164:3;30160:12;30153:19;;29812:366;;;:::o;30184:419::-;30350:4;30388:2;30377:9;30373:18;30365:26;;30437:9;30431:4;30427:20;30423:1;30412:9;30408:17;30401:47;30465:131;30591:4;30465:131;:::i;:::-;30457:139;;30184:419;;;:::o;30609:143::-;30666:5;30697:6;30691:13;30682:22;;30713:33;30740:5;30713:33;:::i;:::-;30609:143;;;;:::o;30758:351::-;30828:6;30877:2;30865:9;30856:7;30852:23;30848:32;30845:119;;;30883:79;;:::i;:::-;30845:119;31003:1;31028:64;31084:7;31075:6;31064:9;31060:22;31028:64;:::i;:::-;31018:74;;30974:128;30758:351;;;;:::o;31115:180::-;31163:77;31160:1;31153:88;31260:4;31257:1;31250:15;31284:4;31281:1;31274:15;31301:185;31341:1;31358:20;31376:1;31358:20;:::i;:::-;31353:25;;31392:20;31410:1;31392:20;:::i;:::-;31387:25;;31431:1;31421:35;;31436:18;;:::i;:::-;31421:35;31478:1;31475;31471:9;31466:14;;31301:185;;;;:::o;31492:165::-;31632:17;31628:1;31620:6;31616:14;31609:41;31492:165;:::o;31663:366::-;31805:3;31826:67;31890:2;31885:3;31826:67;:::i;:::-;31819:74;;31902:93;31991:3;31902:93;:::i;:::-;32020:2;32015:3;32011:12;32004:19;;31663:366;;;:::o;32035:419::-;32201:4;32239:2;32228:9;32224:18;32216:26;;32288:9;32282:4;32278:20;32274:1;32263:9;32259:17;32252:47;32316:131;32442:4;32316:131;:::i;:::-;32308:139;;32035:419;;;:::o;32460:114::-;32497:7;32537:30;32530:5;32526:42;32515:53;;32460:114;;;:::o;32580:122::-;32653:24;32671:5;32653:24;:::i;:::-;32646:5;32643:35;32633:63;;32692:1;32689;32682:12;32633:63;32580:122;:::o;32708:143::-;32765:5;32796:6;32790:13;32781:22;;32812:33;32839:5;32812:33;:::i;:::-;32708:143;;;;:::o;32857:93::-;32893:7;32933:10;32926:5;32922:22;32911:33;;32857:93;;;:::o;32956:120::-;33028:23;33045:5;33028:23;:::i;:::-;33021:5;33018:34;33008:62;;33066:1;33063;33056:12;33008:62;32956:120;:::o;33082:141::-;33138:5;33169:6;33163:13;33154:22;;33185:32;33211:5;33185:32;:::i;:::-;33082:141;;;;:::o;33229:661::-;33316:6;33324;33332;33381:2;33369:9;33360:7;33356:23;33352:32;33349:119;;;33387:79;;:::i;:::-;33349:119;33507:1;33532:64;33588:7;33579:6;33568:9;33564:22;33532:64;:::i;:::-;33522:74;;33478:128;33645:2;33671:64;33727:7;33718:6;33707:9;33703:22;33671:64;:::i;:::-;33661:74;;33616:129;33784:2;33810:63;33865:7;33856:6;33845:9;33841:22;33810:63;:::i;:::-;33800:73;;33755:128;33229:661;;;;;:::o

Swarm Source

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