ETH Price: $2,993.16 (+0.75%)
Gas: 7 Gwei

Token

Winnerz (WNZ)
 

Overview

Max Total Supply

10,000,000,000 WNZ

Holders

5,619 (0.00%)

Total Transfers

-

Market

Price

$0.05 @ 0.000017 ETH (+2.23%)

Onchain Market Cap

$496,579,900.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Winnerz claims to be the first martial arts platform that benefits all participants like players, clubs, and users.

Market

Volume (24H):$190,117.00
Market Capitalization:$0.00
Circulating Supply:0.00 WNZ
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Winnerz

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-11
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.16;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this;
        //silence state mutability warning without generating bytecode. https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    modifier onlyOwner() {
        require(owner() == _msgSender(), "caller not owner");
        _;
    }

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "newOwner is zero");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

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

abstract contract Freezable is Context {
    mapping(address => bool) private _frozenAccount;

    event Freeze(address indexed holder);
    event Unfreeze(address indexed holder);

    modifier whenNotFrozen(address holder) {
        require(!_frozenAccount[holder], "frozen");
        _;
    }

    function isFrozen(address holder) public view virtual returns (bool frozen) {
        return _frozenAccount[holder];
    }

    function _freezeAccount(address holder) internal virtual returns (bool success) {
        require(!isFrozen(holder), "frozen");
        _frozenAccount[holder] = true;
        emit Freeze(holder);
        success = true;
    }

    function _unfreezeAccount(address holder) internal virtual returns (bool success) {
        require(isFrozen(holder), "not frozen");
        _frozenAccount[holder] = false;
        emit Unfreeze(holder);
        success = true;
    }
}

abstract contract Pausable is Context {
    bool private _paused;

    event Paused(address account);
    event Unpaused(address account);

    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    constructor() {
        _paused = false;
    }

    function paused() public view virtual returns (bool) {
        return _paused;
    }

    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

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

    function transfer(address recipient, uint256 amount) external returns (bool);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

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

    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function transfer(address recipient, uint256 amount) external virtual override returns (bool) {
        return _transfer(_msgSender(), recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external virtual override returns (bool) {
        return _transferFrom(sender, recipient, amount);
    }

    function approve(address spender, uint256 amount) external virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

    function _transfer(address sender, address recipient, uint256 amount) internal virtual returns (bool) {
        require(sender != address(0), "transfer from the zero address");
        require(recipient != address(0), "transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

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

    function _transferFrom(address sender, address recipient, uint256 amount) internal virtual returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "mint to the zero address");
        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "approve from the zero address");
        require(spender != address(0), "approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

abstract contract ERC20Burnable is Context, ERC20, Ownable {
    function burn(uint256 amount) external virtual {
        _burn(_msgSender(), amount);
    }

    function burnFrom(address account, uint256 amount) external virtual {
        uint256 currentAllowance = allowance(account, _msgSender());
        require(currentAllowance >= amount, "burn amount exceeds allowance");
        unchecked {
            _approve(account, _msgSender(), currentAllowance - amount);
        }
        _burn(account, amount);
    }
}

abstract contract ERC20Lockable is ERC20, Ownable {
    struct LockInfo {
        uint256 _releaseTime;
        uint256 _amount;
    }

    mapping(address => LockInfo[]) internal _locks;
    mapping(address => uint256) internal _totalLocked;

    event Lock(address indexed from, uint256 amount, uint256 releaseTime);
    event Unlock(address indexed from, uint256 amount);

    modifier checkLock(address from, uint256 amount) {
        uint256 length = _locks[from].length;
        for (uint256 i = 0; i < _locks[from].length; i++) {
            if (_locks[from][i]._releaseTime < block.timestamp) {
                _unlock(from, i);
            }
        }
        require(_balances[from] >= _totalLocked[from] + amount, "balance exceed");
        _;
    }

    function lock(address recipient, uint256 amount, uint256 releaseTime) external onlyOwner returns (bool success) {
        _lock(recipient, amount, releaseTime);
        success = true;
    }

    function unlock(address from, uint256 idx) external onlyOwner returns (bool success) {
        require(_locks[from].length > idx, "There is not lock info.");
        _unlock(from, idx);
        success = true;
    }

    function releaseLock(address from) external onlyOwner returns (bool success) {
        require(_locks[from].length > 0, "There is not lock info.");
        for (uint256 i = _locks[from].length; i > 0; i--) {
            _unlock(from, i - 1);
        }
        success = true;
    }

    function transferWithLock(
        address recipient,
        uint256 amount,
        uint256 releaseTime
    ) external onlyOwner returns (bool success) {
        require(recipient != address(0), "recipient zero");
        _transfer(_msgSender(), recipient, amount);
        _lock(recipient, amount, releaseTime);
        success = true;
    }

    function lockInfo(address locked, uint256 index) public view returns (uint256 releaseTime, uint256 amount) {
        LockInfo memory info = _locks[locked][index];
        releaseTime = info._releaseTime;
        amount = info._amount;
    }

    function totalLocked(address locked) public view returns (uint256 amount, uint256 length) {
        amount = _totalLocked[locked];
        length = _locks[locked].length;
    }

    function _lock(address from, uint256 amount, uint256 releaseTime) internal returns (bool success) {
        require(_balances[from] >= amount + _totalLocked[from], "can only lock the balance");
        _totalLocked[from] = _totalLocked[from] + amount;
        _locks[from].push(LockInfo(releaseTime, amount));
        emit Lock(from, amount, releaseTime);
        success = true;
    }

    function _unlock(address from, uint256 index) internal returns (bool success) {
        LockInfo storage info = _locks[from][index];
        _totalLocked[from] = _totalLocked[from] - info._amount;
        emit Unlock(from, info._amount);
        _locks[from][index] = _locks[from][_locks[from].length - 1];
        _locks[from].pop();
        success = true;
    }
}

contract Token is ERC20, Pausable, Freezable, ERC20Burnable, ERC20Lockable {
    constructor(string memory __name, string memory __symbol, uint256 __totalSupply) ERC20(__name, __symbol) {
        _mint(_msgSender(), __totalSupply * (10 ** decimals()));
    }

    function pause() external onlyOwner {
        _pause();
    }

    function unpause() external onlyOwner {
        _unpause();
    }

    function freezeAccount(address holder) external onlyOwner {
        _freezeAccount(holder);
    }

    function unfreezeAccount(address holder) external onlyOwner {
        _unfreezeAccount(holder);
    }

    function availableBalanceOf(address holder) public view returns (uint256 balance) {
        uint256 totalBalance = super.balanceOf(holder);
        uint256 avaliableBalance = 0;
        (uint256 lockedBalance, uint256 lockedLength) = totalLocked(holder);
        require(totalBalance >= lockedBalance, "overflow lock balance");

        if (lockedLength > 0) {
            for (uint i = 0; i < lockedLength; i++) {
                (uint256 releaseTime, uint256 amount) = lockInfo(holder, i);
                if (releaseTime <= block.timestamp) {
                    avaliableBalance += amount;
                }
            }
        }

        balance = totalBalance - lockedBalance + avaliableBalance;
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal override whenNotPaused whenNotFrozen(from) checkLock(from, amount) {
        super._beforeTokenTransfer(from, to, amount);
    }
}

contract Winnerz is Token {
    constructor() Token("Winnerz", "WNZ", 10000000000) {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"releaseTime","type":"uint256"}],"name":"Lock","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":"address","name":"account","type":"address"}],"name":"Paused","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":"holder","type":"address"}],"name":"Unfreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"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":"holder","type":"address"}],"name":"availableBalanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"freezeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"isFrozen","outputs":[{"internalType":"bool","name":"frozen","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"releaseTime","type":"uint256"}],"name":"lock","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"locked","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"lockInfo","outputs":[{"internalType":"uint256","name":"releaseTime","type":"uint256"},{"internalType":"uint256","name":"amount","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":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"}],"name":"releaseLock","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"locked","type":"address"}],"name":"totalLocked","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"releaseTime","type":"uint256"}],"name":"transferWithLock","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"unfreezeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"unlock","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600781526020017f57696e6e65727a000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f574e5a00000000000000000000000000000000000000000000000000000000008152506402540be400828281600390816200009791906200059c565b508060049081620000a991906200059c565b5050506000600560006101000a81548160ff0219169083151502179055506000620000d9620001cc60201b60201c565b905080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001c36200018c620001cc60201b60201c565b6200019c620001d460201b60201c565b600a620001aa919062000813565b83620001b7919062000864565b620001dd60201b60201c565b505050620009b1565b600033905090565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200024f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002469062000926565b60405180910390fd5b806002600082825462000263919062000948565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000316919062000994565b60405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003a457607f821691505b602082108103620003ba57620003b96200035c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003e5565b620004308683620003e5565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200047d62000477620004718462000448565b62000452565b62000448565b9050919050565b6000819050919050565b62000499836200045c565b620004b1620004a88262000484565b848454620003f2565b825550505050565b600090565b620004c8620004b9565b620004d58184846200048e565b505050565b5b81811015620004fd57620004f1600082620004be565b600181019050620004db565b5050565b601f8211156200054c576200051681620003c0565b6200052184620003d5565b8101602085101562000531578190505b620005496200054085620003d5565b830182620004da565b50505b505050565b600082821c905092915050565b6000620005716000198460080262000551565b1980831691505092915050565b60006200058c83836200055e565b9150826002028217905092915050565b620005a78262000322565b67ffffffffffffffff811115620005c357620005c26200032d565b5b620005cf82546200038b565b620005dc82828562000501565b600060209050601f831160018114620006145760008415620005ff578287015190505b6200060b85826200057e565b8655506200067b565b601f1984166200062486620003c0565b60005b828110156200064e5784890151825560018201915060208501945060208101905062000627565b868310156200066e57848901516200066a601f8916826200055e565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200071157808604811115620006e957620006e862000683565b5b6001851615620006f95780820291505b80810290506200070985620006b2565b9450620006c9565b94509492505050565b6000826200072c5760019050620007ff565b816200073c5760009050620007ff565b8160018114620007555760028114620007605762000796565b6001915050620007ff565b60ff84111562000775576200077462000683565b5b8360020a9150848211156200078f576200078e62000683565b5b50620007ff565b5060208310610133831016604e8410600b8410161715620007d05782820a905083811115620007ca57620007c962000683565b5b620007ff565b620007df8484846001620006bf565b92509050818404811115620007f957620007f862000683565b5b81810290505b9392505050565b600060ff82169050919050565b6000620008208262000448565b91506200082d8362000806565b92506200085c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200071a565b905092915050565b6000620008718262000448565b91506200087e8362000448565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008ba57620008b962000683565b5b828202905092915050565b600082825260208201905092915050565b7f6d696e7420746f20746865207a65726f20616464726573730000000000000000600082015250565b60006200090e601883620008c5565b91506200091b82620008d6565b602082019050919050565b600060208201905081810360008301526200094181620008ff565b9050919050565b6000620009558262000448565b9150620009628362000448565b92508282019050808211156200097d576200097c62000683565b5b92915050565b6200098e8162000448565b82525050565b6000602082019050620009ab600083018462000983565b92915050565b61373780620009c16000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80637eee288d11610104578063d1c46916116100a2578063e2ab691d11610071578063e2ab691d1461056c578063e58398361461059c578063f26c159f146105cc578063f2fde38b146105e8576101cf565b8063d1c46916146104ab578063d8fb9337146104db578063dd62ed3e1461050c578063de6baccb1461053c576101cf565b806395d89b41116100de57806395d89b41146103fc578063a457c2d71461041a578063a9059cbb1461044a578063b2520a7c1461047a576101cf565b80637eee288d146103a45780638456cb59146103d45780638da5cb5b146103de576101cf565b80633f4ba83a1161017157806370a082311161014b57806370a0823114610332578063715018a614610362578063788649ea1461036c57806379cc679014610388576101cf565b80633f4ba83a146102ee57806342966c68146102f85780635c975abb14610314576101cf565b806323b872dd116101ad57806323b872dd1461024057806325d998bb14610270578063313ce567146102a057806339509351146102be576101cf565b806306fdde03146101d4578063095ea7b3146101f257806318160ddd14610222575b600080fd5b6101dc610604565b6040516101e9919061293a565b60405180910390f35b61020c600480360381019061020791906129f5565b610696565b6040516102199190612a50565b60405180910390f35b61022a6106b4565b6040516102379190612a7a565b60405180910390f35b61025a60048036038101906102559190612a95565b6106be565b6040516102679190612a50565b60405180910390f35b61028a60048036038101906102859190612ae8565b6106d4565b6040516102979190612a7a565b60405180910390f35b6102a86107aa565b6040516102b59190612b31565b60405180910390f35b6102d860048036038101906102d391906129f5565b6107b3565b6040516102e59190612a50565b60405180910390f35b6102f661085f565b005b610312600480360381019061030d9190612b4c565b6108e5565b005b61031c6108f9565b6040516103299190612a50565b60405180910390f35b61034c60048036038101906103479190612ae8565b610910565b6040516103599190612a7a565b60405180910390f35b61036a610958565b005b61038660048036038101906103819190612ae8565b610a95565b005b6103a2600480360381019061039d91906129f5565b610b1e565b005b6103be60048036038101906103b991906129f5565b610b99565b6040516103cb9190612a50565b60405180910390f35b6103dc610cb0565b005b6103e6610d36565b6040516103f39190612b88565b60405180910390f35b610404610d60565b604051610411919061293a565b60405180910390f35b610434600480360381019061042f91906129f5565b610df2565b6040516104419190612a50565b60405180910390f35b610464600480360381019061045f91906129f5565b610edd565b6040516104719190612a50565b60405180910390f35b610494600480360381019061048f91906129f5565b610ef9565b6040516104a2929190612ba3565b60405180910390f35b6104c560048036038101906104c09190612ae8565b610f94565b6040516104d29190612a50565b60405180910390f35b6104f560048036038101906104f09190612ae8565b61111c565b604051610503929190612ba3565b60405180910390f35b61052660048036038101906105219190612bcc565b6111ab565b6040516105339190612a7a565b60405180910390f35b61055660048036038101906105519190612c0c565b611232565b6040516105639190612a50565b60405180910390f35b61058660048036038101906105819190612c0c565b611349565b6040516105939190612a50565b60405180910390f35b6105b660048036038101906105b19190612ae8565b6113de565b6040516105c39190612a50565b60405180910390f35b6105e660048036038101906105e19190612ae8565b611434565b005b61060260048036038101906105fd9190612ae8565b6114bd565b005b60606003805461061390612c8e565b80601f016020809104026020016040519081016040528092919081815260200182805461063f90612c8e565b801561068c5780601f106106615761010080835404028352916020019161068c565b820191906000526020600020905b81548152906001019060200180831161066f57829003601f168201915b5050505050905090565b60006106aa6106a3611668565b8484611670565b6001905092915050565b6000600254905090565b60006106cb848484611839565b90509392505050565b6000806106e083610910565b9050600080806106ef8661111c565b9150915081841015610736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072d90612d0b565b60405180910390fd5b60008111156107885760005b81811015610786576000806107578984610ef9565b9150915042821161077157808661076e9190612d5a565b95505b5050808061077e90612d8e565b915050610742565b505b8282856107959190612dd6565b61079f9190612d5a565b945050505050919050565b60006012905090565b60006108556107c0611668565b8484600160006107ce611668565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108509190612d5a565b611670565b6001905092915050565b610867611668565b73ffffffffffffffffffffffffffffffffffffffff16610885610d36565b73ffffffffffffffffffffffffffffffffffffffff16146108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d290612e56565b60405180910390fd5b6108e3611932565b565b6108f66108f0611668565b826119d4565b50565b6000600560009054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610960611668565b73ffffffffffffffffffffffffffffffffffffffff1661097e610d36565b73ffffffffffffffffffffffffffffffffffffffff16146109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb90612e56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a9d611668565b73ffffffffffffffffffffffffffffffffffffffff16610abb610d36565b73ffffffffffffffffffffffffffffffffffffffff1614610b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0890612e56565b60405180910390fd5b610b1a81611b9e565b5050565b6000610b3183610b2c611668565b6111ab565b905081811015610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d90612ec2565b60405180910390fd5b610b8a83610b82611668565b848403611670565b610b9483836119d4565b505050565b6000610ba3611668565b73ffffffffffffffffffffffffffffffffffffffff16610bc1610d36565b73ffffffffffffffffffffffffffffffffffffffff1614610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0e90612e56565b60405180910390fd5b81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9290612f2e565b60405180910390fd5b610ca58383611c8c565b506001905092915050565b610cb8611668565b73ffffffffffffffffffffffffffffffffffffffff16610cd6610d36565b73ffffffffffffffffffffffffffffffffffffffff1614610d2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2390612e56565b60405180910390fd5b610d34611f7a565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d6f90612c8e565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9b90612c8e565b8015610de85780601f10610dbd57610100808354040283529160200191610de8565b820191906000526020600020905b815481529060010190602001808311610dcb57829003601f168201915b5050505050905090565b60008060016000610e01611668565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb590612f9a565b60405180910390fd5b610ed2610ec9611668565b85858403611670565b600191505092915050565b6000610ef1610eea611668565b848461201d565b905092915050565b6000806000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610f4f57610f4e612fba565b5b90600052602060002090600202016040518060400160405290816000820154815260200160018201548152505090508060000151925080602001519150509250929050565b6000610f9e611668565b73ffffffffffffffffffffffffffffffffffffffff16610fbc610d36565b73ffffffffffffffffffffffffffffffffffffffff1614611012576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100990612e56565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90612f2e565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090505b6000811115611112576110fe836001836110f99190612dd6565b611c8c565b50808061110a90612fe9565b9150506110df565b5060019050919050565b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050915091565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061123c611668565b73ffffffffffffffffffffffffffffffffffffffff1661125a610d36565b73ffffffffffffffffffffffffffffffffffffffff16146112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a790612e56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361131f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113169061305e565b60405180910390fd5b61133161132a611668565b858561201d565b5061133d848484612298565b50600190509392505050565b6000611353611668565b73ffffffffffffffffffffffffffffffffffffffff16611371610d36565b73ffffffffffffffffffffffffffffffffffffffff16146113c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113be90612e56565b60405180910390fd5b6113d2848484612298565b50600190509392505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61143c611668565b73ffffffffffffffffffffffffffffffffffffffff1661145a610d36565b73ffffffffffffffffffffffffffffffffffffffff16146114b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a790612e56565b60405180910390fd5b6114b9816124e1565b5050565b6114c5611668565b73ffffffffffffffffffffffffffffffffffffffff166114e3610d36565b73ffffffffffffffffffffffffffffffffffffffff1614611539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153090612e56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159f906130ca565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d690613136565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361174e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611745906131a2565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161182c9190612a7a565b60405180910390a3505050565b600061184684848461201d565b506000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611892611668565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611912576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119099061320e565b60405180910390fd5b6119268561191e611668565b858403611670565b60019150509392505050565b61193a6108f9565b611979576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119709061327a565b60405180910390fd5b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6119bd611668565b6040516119ca9190612b88565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3a906132e6565b60405180910390fd5b611a4f826000836125d0565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acc90613352565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254611b2c9190612dd6565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b919190612a7a565b60405180910390a3505050565b6000611ba9826113de565b611be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdf906133be565b60405180910390fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fca5069937e68fd197927055037f59d7c90bf75ac104e6e375539ef480c3ad6ee60405160405180910390a260019050919050565b600080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110611ce057611cdf612fba565b5b906000526020600020906002020190508060010154600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d3f9190612dd6565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f18260010154604051611dcc9190612a7a565b60405180910390a2600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050611e629190612dd6565b81548110611e7357611e72612fba565b5b9060005260206000209060020201600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110611ed257611ed1612fba565b5b90600052602060002090600202016000820154816000015560018201548160010155905050600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480611f4657611f456133de565b5b6001900381819060005260206000209060020201600080820160009055600182016000905550509055600191505092915050565b611f826108f9565b15611fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb990613459565b60405180910390fd5b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612006611668565b6040516120139190612b88565b60405180910390a1565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361208d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612084906134c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f390613531565b60405180910390fd5b6121078484846125d0565b60008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561218d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121849061359d565b60405180910390fd5b8281036000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122209190612d5a565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122849190612a7a565b60405180910390a360019150509392505050565b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836122e59190612d5a565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235c90613609565b60405180910390fd5b82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b09190612d5a565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280848152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b84846040516124ce929190612ba3565b60405180910390a2600190509392505050565b60006124ec826113de565b1561252c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252390613675565b60405180910390fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc32304960405160405180910390a260019050919050565b6125d86108f9565b15612618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260f90613459565b60405180910390fd5b82600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269d90613675565b60405180910390fd5b83826000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060005b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156127c55742600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061278e5761278d612fba565b5b90600052602060002090600202016000015410156127b2576127b08482611c8c565b505b80806127bd90612d8e565b9150506126f2565b5081600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128119190612d5a565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612891576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612888906136e1565b60405180910390fd5b61289c8787876128a5565b50505050505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128e45780820151818401526020810190506128c9565b60008484015250505050565b6000601f19601f8301169050919050565b600061290c826128aa565b61291681856128b5565b93506129268185602086016128c6565b61292f816128f0565b840191505092915050565b600060208201905081810360008301526129548184612901565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061298c82612961565b9050919050565b61299c81612981565b81146129a757600080fd5b50565b6000813590506129b981612993565b92915050565b6000819050919050565b6129d2816129bf565b81146129dd57600080fd5b50565b6000813590506129ef816129c9565b92915050565b60008060408385031215612a0c57612a0b61295c565b5b6000612a1a858286016129aa565b9250506020612a2b858286016129e0565b9150509250929050565b60008115159050919050565b612a4a81612a35565b82525050565b6000602082019050612a656000830184612a41565b92915050565b612a74816129bf565b82525050565b6000602082019050612a8f6000830184612a6b565b92915050565b600080600060608486031215612aae57612aad61295c565b5b6000612abc868287016129aa565b9350506020612acd868287016129aa565b9250506040612ade868287016129e0565b9150509250925092565b600060208284031215612afe57612afd61295c565b5b6000612b0c848285016129aa565b91505092915050565b600060ff82169050919050565b612b2b81612b15565b82525050565b6000602082019050612b466000830184612b22565b92915050565b600060208284031215612b6257612b6161295c565b5b6000612b70848285016129e0565b91505092915050565b612b8281612981565b82525050565b6000602082019050612b9d6000830184612b79565b92915050565b6000604082019050612bb86000830185612a6b565b612bc56020830184612a6b565b9392505050565b60008060408385031215612be357612be261295c565b5b6000612bf1858286016129aa565b9250506020612c02858286016129aa565b9150509250929050565b600080600060608486031215612c2557612c2461295c565b5b6000612c33868287016129aa565b9350506020612c44868287016129e0565b9250506040612c55868287016129e0565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ca657607f821691505b602082108103612cb957612cb8612c5f565b5b50919050565b7f6f766572666c6f77206c6f636b2062616c616e63650000000000000000000000600082015250565b6000612cf56015836128b5565b9150612d0082612cbf565b602082019050919050565b60006020820190508181036000830152612d2481612ce8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d65826129bf565b9150612d70836129bf565b9250828201905080821115612d8857612d87612d2b565b5b92915050565b6000612d99826129bf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612dcb57612dca612d2b565b5b600182019050919050565b6000612de1826129bf565b9150612dec836129bf565b9250828203905081811115612e0457612e03612d2b565b5b92915050565b7f63616c6c6572206e6f74206f776e657200000000000000000000000000000000600082015250565b6000612e406010836128b5565b9150612e4b82612e0a565b602082019050919050565b60006020820190508181036000830152612e6f81612e33565b9050919050565b7f6275726e20616d6f756e74206578636565647320616c6c6f77616e6365000000600082015250565b6000612eac601d836128b5565b9150612eb782612e76565b602082019050919050565b60006020820190508181036000830152612edb81612e9f565b9050919050565b7f5468657265206973206e6f74206c6f636b20696e666f2e000000000000000000600082015250565b6000612f186017836128b5565b9150612f2382612ee2565b602082019050919050565b60006020820190508181036000830152612f4781612f0b565b9050919050565b7f64656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000600082015250565b6000612f84601e836128b5565b9150612f8f82612f4e565b602082019050919050565b60006020820190508181036000830152612fb381612f77565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612ff4826129bf565b91506000820361300757613006612d2b565b5b600182039050919050565b7f726563697069656e74207a65726f000000000000000000000000000000000000600082015250565b6000613048600e836128b5565b915061305382613012565b602082019050919050565b600060208201905081810360008301526130778161303b565b9050919050565b7f6e65774f776e6572206973207a65726f00000000000000000000000000000000600082015250565b60006130b46010836128b5565b91506130bf8261307e565b602082019050919050565b600060208201905081810360008301526130e3816130a7565b9050919050565b7f617070726f76652066726f6d20746865207a65726f2061646472657373000000600082015250565b6000613120601d836128b5565b915061312b826130ea565b602082019050919050565b6000602082019050818103600083015261314f81613113565b9050919050565b7f617070726f766520746f20746865207a65726f20616464726573730000000000600082015250565b600061318c601b836128b5565b915061319782613156565b602082019050919050565b600060208201905081810360008301526131bb8161317f565b9050919050565b7f616d6f756e74206578636565647320616c6c6f77616e63650000000000000000600082015250565b60006131f86018836128b5565b9150613203826131c2565b602082019050919050565b60006020820190508181036000830152613227816131eb565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006132646014836128b5565b915061326f8261322e565b602082019050919050565b6000602082019050818103600083015261329381613257565b9050919050565b7f6275726e2066726f6d20746865207a65726f2061646472657373000000000000600082015250565b60006132d0601a836128b5565b91506132db8261329a565b602082019050919050565b600060208201905081810360008301526132ff816132c3565b9050919050565b7f6275726e20616d6f756e7420657863656564732062616c616e63650000000000600082015250565b600061333c601b836128b5565b915061334782613306565b602082019050919050565b6000602082019050818103600083015261336b8161332f565b9050919050565b7f6e6f742066726f7a656e00000000000000000000000000000000000000000000600082015250565b60006133a8600a836128b5565b91506133b382613372565b602082019050919050565b600060208201905081810360008301526133d78161339b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006134436010836128b5565b915061344e8261340d565b602082019050919050565b6000602082019050818103600083015261347281613436565b9050919050565b7f7472616e736665722066726f6d20746865207a65726f20616464726573730000600082015250565b60006134af601e836128b5565b91506134ba82613479565b602082019050919050565b600060208201905081810360008301526134de816134a2565b9050919050565b7f7472616e7366657220746f20746865207a65726f206164647265737300000000600082015250565b600061351b601c836128b5565b9150613526826134e5565b602082019050919050565b6000602082019050818103600083015261354a8161350e565b9050919050565b7f7472616e7366657220616d6f756e7420657863656564732062616c616e636500600082015250565b6000613587601f836128b5565b915061359282613551565b602082019050919050565b600060208201905081810360008301526135b68161357a565b9050919050565b7f63616e206f6e6c79206c6f636b207468652062616c616e636500000000000000600082015250565b60006135f36019836128b5565b91506135fe826135bd565b602082019050919050565b60006020820190508181036000830152613622816135e6565b9050919050565b7f66726f7a656e0000000000000000000000000000000000000000000000000000600082015250565b600061365f6006836128b5565b915061366a82613629565b602082019050919050565b6000602082019050818103600083015261368e81613652565b9050919050565b7f62616c616e636520657863656564000000000000000000000000000000000000600082015250565b60006136cb600e836128b5565b91506136d682613695565b602082019050919050565b600060208201905081810360008301526136fa816136be565b905091905056fea264697066735822122042f72946ab986b3ea9da6b87d076caebb9782f9ed3d5211f97535df51ef2498d64736f6c63430008100033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80637eee288d11610104578063d1c46916116100a2578063e2ab691d11610071578063e2ab691d1461056c578063e58398361461059c578063f26c159f146105cc578063f2fde38b146105e8576101cf565b8063d1c46916146104ab578063d8fb9337146104db578063dd62ed3e1461050c578063de6baccb1461053c576101cf565b806395d89b41116100de57806395d89b41146103fc578063a457c2d71461041a578063a9059cbb1461044a578063b2520a7c1461047a576101cf565b80637eee288d146103a45780638456cb59146103d45780638da5cb5b146103de576101cf565b80633f4ba83a1161017157806370a082311161014b57806370a0823114610332578063715018a614610362578063788649ea1461036c57806379cc679014610388576101cf565b80633f4ba83a146102ee57806342966c68146102f85780635c975abb14610314576101cf565b806323b872dd116101ad57806323b872dd1461024057806325d998bb14610270578063313ce567146102a057806339509351146102be576101cf565b806306fdde03146101d4578063095ea7b3146101f257806318160ddd14610222575b600080fd5b6101dc610604565b6040516101e9919061293a565b60405180910390f35b61020c600480360381019061020791906129f5565b610696565b6040516102199190612a50565b60405180910390f35b61022a6106b4565b6040516102379190612a7a565b60405180910390f35b61025a60048036038101906102559190612a95565b6106be565b6040516102679190612a50565b60405180910390f35b61028a60048036038101906102859190612ae8565b6106d4565b6040516102979190612a7a565b60405180910390f35b6102a86107aa565b6040516102b59190612b31565b60405180910390f35b6102d860048036038101906102d391906129f5565b6107b3565b6040516102e59190612a50565b60405180910390f35b6102f661085f565b005b610312600480360381019061030d9190612b4c565b6108e5565b005b61031c6108f9565b6040516103299190612a50565b60405180910390f35b61034c60048036038101906103479190612ae8565b610910565b6040516103599190612a7a565b60405180910390f35b61036a610958565b005b61038660048036038101906103819190612ae8565b610a95565b005b6103a2600480360381019061039d91906129f5565b610b1e565b005b6103be60048036038101906103b991906129f5565b610b99565b6040516103cb9190612a50565b60405180910390f35b6103dc610cb0565b005b6103e6610d36565b6040516103f39190612b88565b60405180910390f35b610404610d60565b604051610411919061293a565b60405180910390f35b610434600480360381019061042f91906129f5565b610df2565b6040516104419190612a50565b60405180910390f35b610464600480360381019061045f91906129f5565b610edd565b6040516104719190612a50565b60405180910390f35b610494600480360381019061048f91906129f5565b610ef9565b6040516104a2929190612ba3565b60405180910390f35b6104c560048036038101906104c09190612ae8565b610f94565b6040516104d29190612a50565b60405180910390f35b6104f560048036038101906104f09190612ae8565b61111c565b604051610503929190612ba3565b60405180910390f35b61052660048036038101906105219190612bcc565b6111ab565b6040516105339190612a7a565b60405180910390f35b61055660048036038101906105519190612c0c565b611232565b6040516105639190612a50565b60405180910390f35b61058660048036038101906105819190612c0c565b611349565b6040516105939190612a50565b60405180910390f35b6105b660048036038101906105b19190612ae8565b6113de565b6040516105c39190612a50565b60405180910390f35b6105e660048036038101906105e19190612ae8565b611434565b005b61060260048036038101906105fd9190612ae8565b6114bd565b005b60606003805461061390612c8e565b80601f016020809104026020016040519081016040528092919081815260200182805461063f90612c8e565b801561068c5780601f106106615761010080835404028352916020019161068c565b820191906000526020600020905b81548152906001019060200180831161066f57829003601f168201915b5050505050905090565b60006106aa6106a3611668565b8484611670565b6001905092915050565b6000600254905090565b60006106cb848484611839565b90509392505050565b6000806106e083610910565b9050600080806106ef8661111c565b9150915081841015610736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072d90612d0b565b60405180910390fd5b60008111156107885760005b81811015610786576000806107578984610ef9565b9150915042821161077157808661076e9190612d5a565b95505b5050808061077e90612d8e565b915050610742565b505b8282856107959190612dd6565b61079f9190612d5a565b945050505050919050565b60006012905090565b60006108556107c0611668565b8484600160006107ce611668565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108509190612d5a565b611670565b6001905092915050565b610867611668565b73ffffffffffffffffffffffffffffffffffffffff16610885610d36565b73ffffffffffffffffffffffffffffffffffffffff16146108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d290612e56565b60405180910390fd5b6108e3611932565b565b6108f66108f0611668565b826119d4565b50565b6000600560009054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610960611668565b73ffffffffffffffffffffffffffffffffffffffff1661097e610d36565b73ffffffffffffffffffffffffffffffffffffffff16146109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb90612e56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a9d611668565b73ffffffffffffffffffffffffffffffffffffffff16610abb610d36565b73ffffffffffffffffffffffffffffffffffffffff1614610b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0890612e56565b60405180910390fd5b610b1a81611b9e565b5050565b6000610b3183610b2c611668565b6111ab565b905081811015610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d90612ec2565b60405180910390fd5b610b8a83610b82611668565b848403611670565b610b9483836119d4565b505050565b6000610ba3611668565b73ffffffffffffffffffffffffffffffffffffffff16610bc1610d36565b73ffffffffffffffffffffffffffffffffffffffff1614610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0e90612e56565b60405180910390fd5b81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9290612f2e565b60405180910390fd5b610ca58383611c8c565b506001905092915050565b610cb8611668565b73ffffffffffffffffffffffffffffffffffffffff16610cd6610d36565b73ffffffffffffffffffffffffffffffffffffffff1614610d2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2390612e56565b60405180910390fd5b610d34611f7a565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d6f90612c8e565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9b90612c8e565b8015610de85780601f10610dbd57610100808354040283529160200191610de8565b820191906000526020600020905b815481529060010190602001808311610dcb57829003601f168201915b5050505050905090565b60008060016000610e01611668565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb590612f9a565b60405180910390fd5b610ed2610ec9611668565b85858403611670565b600191505092915050565b6000610ef1610eea611668565b848461201d565b905092915050565b6000806000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610f4f57610f4e612fba565b5b90600052602060002090600202016040518060400160405290816000820154815260200160018201548152505090508060000151925080602001519150509250929050565b6000610f9e611668565b73ffffffffffffffffffffffffffffffffffffffff16610fbc610d36565b73ffffffffffffffffffffffffffffffffffffffff1614611012576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100990612e56565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90612f2e565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090505b6000811115611112576110fe836001836110f99190612dd6565b611c8c565b50808061110a90612fe9565b9150506110df565b5060019050919050565b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050915091565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061123c611668565b73ffffffffffffffffffffffffffffffffffffffff1661125a610d36565b73ffffffffffffffffffffffffffffffffffffffff16146112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a790612e56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361131f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113169061305e565b60405180910390fd5b61133161132a611668565b858561201d565b5061133d848484612298565b50600190509392505050565b6000611353611668565b73ffffffffffffffffffffffffffffffffffffffff16611371610d36565b73ffffffffffffffffffffffffffffffffffffffff16146113c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113be90612e56565b60405180910390fd5b6113d2848484612298565b50600190509392505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61143c611668565b73ffffffffffffffffffffffffffffffffffffffff1661145a610d36565b73ffffffffffffffffffffffffffffffffffffffff16146114b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a790612e56565b60405180910390fd5b6114b9816124e1565b5050565b6114c5611668565b73ffffffffffffffffffffffffffffffffffffffff166114e3610d36565b73ffffffffffffffffffffffffffffffffffffffff1614611539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153090612e56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159f906130ca565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d690613136565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361174e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611745906131a2565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161182c9190612a7a565b60405180910390a3505050565b600061184684848461201d565b506000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611892611668565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611912576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119099061320e565b60405180910390fd5b6119268561191e611668565b858403611670565b60019150509392505050565b61193a6108f9565b611979576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119709061327a565b60405180910390fd5b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6119bd611668565b6040516119ca9190612b88565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3a906132e6565b60405180910390fd5b611a4f826000836125d0565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acc90613352565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254611b2c9190612dd6565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b919190612a7a565b60405180910390a3505050565b6000611ba9826113de565b611be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdf906133be565b60405180910390fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fca5069937e68fd197927055037f59d7c90bf75ac104e6e375539ef480c3ad6ee60405160405180910390a260019050919050565b600080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110611ce057611cdf612fba565b5b906000526020600020906002020190508060010154600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d3f9190612dd6565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f18260010154604051611dcc9190612a7a565b60405180910390a2600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050611e629190612dd6565b81548110611e7357611e72612fba565b5b9060005260206000209060020201600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110611ed257611ed1612fba565b5b90600052602060002090600202016000820154816000015560018201548160010155905050600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480611f4657611f456133de565b5b6001900381819060005260206000209060020201600080820160009055600182016000905550509055600191505092915050565b611f826108f9565b15611fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb990613459565b60405180910390fd5b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612006611668565b6040516120139190612b88565b60405180910390a1565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361208d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612084906134c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f390613531565b60405180910390fd5b6121078484846125d0565b60008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561218d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121849061359d565b60405180910390fd5b8281036000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122209190612d5a565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122849190612a7a565b60405180910390a360019150509392505050565b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836122e59190612d5a565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235c90613609565b60405180910390fd5b82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b09190612d5a565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280848152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b84846040516124ce929190612ba3565b60405180910390a2600190509392505050565b60006124ec826113de565b1561252c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252390613675565b60405180910390fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc32304960405160405180910390a260019050919050565b6125d86108f9565b15612618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260f90613459565b60405180910390fd5b82600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269d90613675565b60405180910390fd5b83826000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060005b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156127c55742600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061278e5761278d612fba565b5b90600052602060002090600202016000015410156127b2576127b08482611c8c565b505b80806127bd90612d8e565b9150506126f2565b5081600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128119190612d5a565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612891576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612888906136e1565b60405180910390fd5b61289c8787876128a5565b50505050505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128e45780820151818401526020810190506128c9565b60008484015250505050565b6000601f19601f8301169050919050565b600061290c826128aa565b61291681856128b5565b93506129268185602086016128c6565b61292f816128f0565b840191505092915050565b600060208201905081810360008301526129548184612901565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061298c82612961565b9050919050565b61299c81612981565b81146129a757600080fd5b50565b6000813590506129b981612993565b92915050565b6000819050919050565b6129d2816129bf565b81146129dd57600080fd5b50565b6000813590506129ef816129c9565b92915050565b60008060408385031215612a0c57612a0b61295c565b5b6000612a1a858286016129aa565b9250506020612a2b858286016129e0565b9150509250929050565b60008115159050919050565b612a4a81612a35565b82525050565b6000602082019050612a656000830184612a41565b92915050565b612a74816129bf565b82525050565b6000602082019050612a8f6000830184612a6b565b92915050565b600080600060608486031215612aae57612aad61295c565b5b6000612abc868287016129aa565b9350506020612acd868287016129aa565b9250506040612ade868287016129e0565b9150509250925092565b600060208284031215612afe57612afd61295c565b5b6000612b0c848285016129aa565b91505092915050565b600060ff82169050919050565b612b2b81612b15565b82525050565b6000602082019050612b466000830184612b22565b92915050565b600060208284031215612b6257612b6161295c565b5b6000612b70848285016129e0565b91505092915050565b612b8281612981565b82525050565b6000602082019050612b9d6000830184612b79565b92915050565b6000604082019050612bb86000830185612a6b565b612bc56020830184612a6b565b9392505050565b60008060408385031215612be357612be261295c565b5b6000612bf1858286016129aa565b9250506020612c02858286016129aa565b9150509250929050565b600080600060608486031215612c2557612c2461295c565b5b6000612c33868287016129aa565b9350506020612c44868287016129e0565b9250506040612c55868287016129e0565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ca657607f821691505b602082108103612cb957612cb8612c5f565b5b50919050565b7f6f766572666c6f77206c6f636b2062616c616e63650000000000000000000000600082015250565b6000612cf56015836128b5565b9150612d0082612cbf565b602082019050919050565b60006020820190508181036000830152612d2481612ce8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d65826129bf565b9150612d70836129bf565b9250828201905080821115612d8857612d87612d2b565b5b92915050565b6000612d99826129bf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612dcb57612dca612d2b565b5b600182019050919050565b6000612de1826129bf565b9150612dec836129bf565b9250828203905081811115612e0457612e03612d2b565b5b92915050565b7f63616c6c6572206e6f74206f776e657200000000000000000000000000000000600082015250565b6000612e406010836128b5565b9150612e4b82612e0a565b602082019050919050565b60006020820190508181036000830152612e6f81612e33565b9050919050565b7f6275726e20616d6f756e74206578636565647320616c6c6f77616e6365000000600082015250565b6000612eac601d836128b5565b9150612eb782612e76565b602082019050919050565b60006020820190508181036000830152612edb81612e9f565b9050919050565b7f5468657265206973206e6f74206c6f636b20696e666f2e000000000000000000600082015250565b6000612f186017836128b5565b9150612f2382612ee2565b602082019050919050565b60006020820190508181036000830152612f4781612f0b565b9050919050565b7f64656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000600082015250565b6000612f84601e836128b5565b9150612f8f82612f4e565b602082019050919050565b60006020820190508181036000830152612fb381612f77565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612ff4826129bf565b91506000820361300757613006612d2b565b5b600182039050919050565b7f726563697069656e74207a65726f000000000000000000000000000000000000600082015250565b6000613048600e836128b5565b915061305382613012565b602082019050919050565b600060208201905081810360008301526130778161303b565b9050919050565b7f6e65774f776e6572206973207a65726f00000000000000000000000000000000600082015250565b60006130b46010836128b5565b91506130bf8261307e565b602082019050919050565b600060208201905081810360008301526130e3816130a7565b9050919050565b7f617070726f76652066726f6d20746865207a65726f2061646472657373000000600082015250565b6000613120601d836128b5565b915061312b826130ea565b602082019050919050565b6000602082019050818103600083015261314f81613113565b9050919050565b7f617070726f766520746f20746865207a65726f20616464726573730000000000600082015250565b600061318c601b836128b5565b915061319782613156565b602082019050919050565b600060208201905081810360008301526131bb8161317f565b9050919050565b7f616d6f756e74206578636565647320616c6c6f77616e63650000000000000000600082015250565b60006131f86018836128b5565b9150613203826131c2565b602082019050919050565b60006020820190508181036000830152613227816131eb565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006132646014836128b5565b915061326f8261322e565b602082019050919050565b6000602082019050818103600083015261329381613257565b9050919050565b7f6275726e2066726f6d20746865207a65726f2061646472657373000000000000600082015250565b60006132d0601a836128b5565b91506132db8261329a565b602082019050919050565b600060208201905081810360008301526132ff816132c3565b9050919050565b7f6275726e20616d6f756e7420657863656564732062616c616e63650000000000600082015250565b600061333c601b836128b5565b915061334782613306565b602082019050919050565b6000602082019050818103600083015261336b8161332f565b9050919050565b7f6e6f742066726f7a656e00000000000000000000000000000000000000000000600082015250565b60006133a8600a836128b5565b91506133b382613372565b602082019050919050565b600060208201905081810360008301526133d78161339b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006134436010836128b5565b915061344e8261340d565b602082019050919050565b6000602082019050818103600083015261347281613436565b9050919050565b7f7472616e736665722066726f6d20746865207a65726f20616464726573730000600082015250565b60006134af601e836128b5565b91506134ba82613479565b602082019050919050565b600060208201905081810360008301526134de816134a2565b9050919050565b7f7472616e7366657220746f20746865207a65726f206164647265737300000000600082015250565b600061351b601c836128b5565b9150613526826134e5565b602082019050919050565b6000602082019050818103600083015261354a8161350e565b9050919050565b7f7472616e7366657220616d6f756e7420657863656564732062616c616e636500600082015250565b6000613587601f836128b5565b915061359282613551565b602082019050919050565b600060208201905081810360008301526135b68161357a565b9050919050565b7f63616e206f6e6c79206c6f636b207468652062616c616e636500000000000000600082015250565b60006135f36019836128b5565b91506135fe826135bd565b602082019050919050565b60006020820190508181036000830152613622816135e6565b9050919050565b7f66726f7a656e0000000000000000000000000000000000000000000000000000600082015250565b600061365f6006836128b5565b915061366a82613629565b602082019050919050565b6000602082019050818103600083015261368e81613652565b9050919050565b7f62616c616e636520657863656564000000000000000000000000000000000000600082015250565b60006136cb600e836128b5565b91506136d682613695565b602082019050919050565b600060208201905081810360008301526136fa816136be565b905091905056fea264697066735822122042f72946ab986b3ea9da6b87d076caebb9782f9ed3d5211f97535df51ef2498d64736f6c63430008100033

Deployed Bytecode Sourcemap

14016:89:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5547:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4727:171;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5868:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4539:180;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13031:725;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5767:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4906:217;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12738:67;;;:::i;:::-;;8838:93;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2701:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5984:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;884:148;;;:::i;:::-;;12920:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8939:363;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10299:219;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12667:63;;;:::i;:::-;;1270:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5655:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5131:408;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4369:162;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11182:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;10526:287;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11434:179;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;6119:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10821:353;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10098:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1676:124;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12813:99;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1040:222;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5547:100;5601:13;5634:5;5627:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5547:100;:::o;4727:171::-;4812:4;4829:39;4838:12;:10;:12::i;:::-;4852:7;4861:6;4829:8;:39::i;:::-;4886:4;4879:11;;4727:171;;;;:::o;5868:108::-;5929:7;5956:12;;5949:19;;5868:108;:::o;4539:180::-;4647:4;4671:40;4685:6;4693:9;4704:6;4671:13;:40::i;:::-;4664:47;;4539:180;;;;;:::o;13031:725::-;13096:15;13124:20;13147:23;13163:6;13147:15;:23::i;:::-;13124:46;;13181:24;13221:21;13244:20;13268:19;13280:6;13268:11;:19::i;:::-;13220:67;;;;13322:13;13306:12;:29;;13298:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;13393:1;13378:12;:16;13374:305;;;13416:6;13411:257;13432:12;13428:1;:16;13411:257;;;13471:19;13492:14;13510:19;13519:6;13527:1;13510:8;:19::i;:::-;13470:59;;;;13567:15;13552:11;:30;13548:105;;13627:6;13607:26;;;;;:::i;:::-;;;13548:105;13451:217;;13446:3;;;;;:::i;:::-;;;;13411:257;;;;13374:305;13732:16;13716:13;13701:12;:28;;;;:::i;:::-;:47;;;;:::i;:::-;13691:57;;13113:643;;;;13031:725;;;:::o;5767:93::-;5825:5;5850:2;5843:9;;5767:93;:::o;4906:217::-;4996:4;5013:80;5022:12;:10;:12::i;:::-;5036:7;5082:10;5045:11;:25;5057:12;:10;:12::i;:::-;5045:25;;;;;;;;;;;;;;;:34;5071:7;5045:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;5013:8;:80::i;:::-;5111:4;5104:11;;4906:217;;;;:::o;12738:67::-;662:12;:10;:12::i;:::-;651:23;;:7;:5;:7::i;:::-;:23;;;643:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;12787:10:::1;:8;:10::i;:::-;12738:67::o:0;8838:93::-;8896:27;8902:12;:10;:12::i;:::-;8916:6;8896:5;:27::i;:::-;8838:93;:::o;2701:86::-;2748:4;2772:7;;;;;;;;;;;2765:14;;2701:86;:::o;5984:127::-;6058:7;6085:9;:18;6095:7;6085:18;;;;;;;;;;;;;;;;6078:25;;5984:127;;;:::o;884:148::-;662:12;:10;:12::i;:::-;651:23;;:7;:5;:7::i;:::-;:23;;;643:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;991:1:::1;954:40;;975:6;;;;;;;;;;;954:40;;;;;;;;;;;;1022:1;1005:6;;:19;;;;;;;;;;;;;;;;;;884:148::o:0;12920:103::-;662:12;:10;:12::i;:::-;651:23;;:7;:5;:7::i;:::-;:23;;;643:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;12991:24:::1;13008:6;12991:16;:24::i;:::-;;12920:103:::0;:::o;8939:363::-;9018:24;9045:32;9055:7;9064:12;:10;:12::i;:::-;9045:9;:32::i;:::-;9018:59;;9116:6;9096:16;:26;;9088:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9192:58;9201:7;9210:12;:10;:12::i;:::-;9243:6;9224:16;:25;9192:8;:58::i;:::-;9272:22;9278:7;9287:6;9272:5;:22::i;:::-;9007:295;8939:363;;:::o;10299:219::-;10370:12;662;:10;:12::i;:::-;651:23;;:7;:5;:7::i;:::-;:23;;;643:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;10425:3:::1;10403:6;:12;10410:4;10403:12;;;;;;;;;;;;;;;:19;;;;:25;10395:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;10467:18;10475:4;10481:3;10467:7;:18::i;:::-;;10506:4;10496:14;;10299:219:::0;;;;:::o;12667:63::-;662:12;:10;:12::i;:::-;651:23;;:7;:5;:7::i;:::-;:23;;;643:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;12714:8:::1;:6;:8::i;:::-;12667:63::o:0;1270:87::-;1316:7;1343:6;;;;;;;;;;;1336:13;;1270:87;:::o;5655:104::-;5711:13;5744:7;5737:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5655:104;:::o;5131:408::-;5226:4;5243:24;5270:11;:25;5282:12;:10;:12::i;:::-;5270:25;;;;;;;;;;;;;;;:34;5296:7;5270:34;;;;;;;;;;;;;;;;5243:61;;5343:15;5323:16;:35;;5315:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;5429:67;5438:12;:10;:12::i;:::-;5452:7;5480:15;5461:16;:34;5429:8;:67::i;:::-;5527:4;5520:11;;;5131:408;;;;:::o;4369:162::-;4457:4;4481:42;4491:12;:10;:12::i;:::-;4505:9;4516:6;4481:9;:42::i;:::-;4474:49;;4369:162;;;;:::o;11182:244::-;11252:19;11273:14;11300:20;11323:6;:14;11330:6;11323:14;;;;;;;;;;;;;;;11338:5;11323:21;;;;;;;;:::i;:::-;;;;;;;;;;;;11300:44;;;;;;;;;;;;;;;;;;;;;;;;;;;11369:4;:17;;;11355:31;;11406:4;:12;;;11397:21;;11289:137;11182:244;;;;;:::o;10526:287::-;10589:12;662;:10;:12::i;:::-;651:23;;:7;:5;:7::i;:::-;:23;;;643:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;10644:1:::1;10622:6;:12;10629:4;10622:12;;;;;;;;;;;;;;;:19;;;;:23;10614:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10689:9;10701:6;:12;10708:4;10701:12;;;;;;;;;;;;;;;:19;;;;10689:31;;10684:97;10726:1;10722;:5;10684:97;;;10749:20;10757:4;10767:1;10763;:5;;;;:::i;:::-;10749:7;:20::i;:::-;;10729:3;;;;;:::i;:::-;;;;10684:97;;;;10801:4;10791:14;;10526:287:::0;;;:::o;11434:179::-;11492:14;11508;11544:12;:20;11557:6;11544:20;;;;;;;;;;;;;;;;11535:29;;11584:6;:14;11591:6;11584:14;;;;;;;;;;;;;;;:21;;;;11575:30;;11434:179;;;:::o;6119:151::-;6208:7;6235:11;:18;6247:5;6235:18;;;;;;;;;;;;;;;:27;6254:7;6235:27;;;;;;;;;;;;;;;;6228:34;;6119:151;;;;:::o;10821:353::-;10965:12;662;:10;:12::i;:::-;651:23;;:7;:5;:7::i;:::-;:23;;;643:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;11019:1:::1;10998:23;;:9;:23;;::::0;10990:50:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11051:42;11061:12;:10;:12::i;:::-;11075:9;11086:6;11051:9;:42::i;:::-;;11104:37;11110:9;11121:6;11129:11;11104:5;:37::i;:::-;;11162:4;11152:14;;10821:353:::0;;;;;:::o;10098:193::-;10196:12;662;:10;:12::i;:::-;651:23;;:7;:5;:7::i;:::-;:23;;;643:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;10221:37:::1;10227:9;10238:6;10246:11;10221:5;:37::i;:::-;;10279:4;10269:14;;10098:193:::0;;;;;:::o;1676:124::-;1739:11;1770:14;:22;1785:6;1770:22;;;;;;;;;;;;;;;;;;;;;;;;;1763:29;;1676:124;;;:::o;12813:99::-;662:12;:10;:12::i;:::-;651:23;;:7;:5;:7::i;:::-;:23;;;643:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;12882:22:::1;12897:6;12882:14;:22::i;:::-;;12813:99:::0;:::o;1040:222::-;662:12;:10;:12::i;:::-;651:23;;:7;:5;:7::i;:::-;:23;;;643:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;1149:1:::1;1129:22;;:8;:22;;::::0;1121:51:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1217:8;1188:38;;1209:6;;;;;;;;;;;1188:38;;;;;;;;;;;;1246:8;1237:6;;:17;;;;;;;;;;;;;;;;;;1040:222:::0;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;8334:332::-;8453:1;8436:19;;:5;:19;;;8428:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;8527:1;8508:21;;:7;:21;;;8500:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;8604:6;8574:11;:18;8586:5;8574:18;;;;;;;;;;;;;;;:27;8593:7;8574:27;;;;;;;;;;;;;;;:36;;;;8642:7;8626:32;;8635:5;8626:32;;;8651:6;8626:32;;;;;;:::i;:::-;;;;;;;;8334:332;;;:::o;6942:436::-;7042:4;7059:36;7069:6;7077:9;7088:6;7059:9;:36::i;:::-;;7108:24;7135:11;:19;7147:6;7135:19;;;;;;;;;;;;;;;:33;7155:12;:10;:12::i;:::-;7135:33;;;;;;;;;;;;;;;;7108:60;;7207:6;7187:16;:26;;7179:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7278:57;7287:6;7295:12;:10;:12::i;:::-;7328:6;7309:16;:25;7278:8;:57::i;:::-;7366:4;7359:11;;;6942:436;;;;;:::o;2921:120::-;2584:8;:6;:8::i;:::-;2576:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2990:5:::1;2980:7;;:15;;;;;;;;;;;;;;;;;;3011:22;3020:12;:10;:12::i;:::-;3011:22;;;;;;:::i;:::-;;;;;;;;2921:120::o:0;7810:516::-;7913:1;7894:21;;:7;:21;;;7886:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7959:49;7980:7;7997:1;8001:6;7959:20;:49::i;:::-;8021:22;8046:9;:18;8056:7;8046:18;;;;;;;;;;;;;;;;8021:43;;8101:6;8083:14;:24;;8075:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8213:6;8196:14;:23;8175:9;:18;8185:7;8175:18;;;;;;;;;;;;;;;:44;;;;8257:6;8241:12;;:22;;;;;;;:::i;:::-;;;;;;;;8307:1;8281:37;;8290:7;8281:37;;;8311:6;8281:37;;;;;;:::i;:::-;;;;;;;;7875:451;7810:516;;:::o;2046:238::-;2114:12;2147:16;2156:6;2147:8;:16::i;:::-;2139:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2214:5;2189:14;:22;2204:6;2189:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;2244:6;2235:16;;;;;;;;;;;;2272:4;2262:14;;2046:238;;;:::o;12020:371::-;12084:12;12109:21;12133:6;:12;12140:4;12133:12;;;;;;;;;;;;;;;12146:5;12133:19;;;;;;;;:::i;:::-;;;;;;;;;;;;12109:43;;12205:4;:12;;;12184;:18;12197:4;12184:18;;;;;;;;;;;;;;;;:33;;;;:::i;:::-;12163:12;:18;12176:4;12163:18;;;;;;;;;;;;;;;:54;;;;12240:4;12233:26;;;12246:4;:12;;;12233:26;;;;;;:::i;:::-;;;;;;;;12292:6;:12;12299:4;12292:12;;;;;;;;;;;;;;;12327:1;12305:6;:12;12312:4;12305:12;;;;;;;;;;;;;;;:19;;;;:23;;;;:::i;:::-;12292:37;;;;;;;;:::i;:::-;;;;;;;;;;;;12270:6;:12;12277:4;12270:12;;;;;;;;;;;;;;;12283:5;12270:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:59;;;;;;;;;;;;;;;;;;;12340:6;:12;12347:4;12340:12;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12379:4;12369:14;;12098:293;12020:371;;;;:::o;2795:118::-;2486:8;:6;:8::i;:::-;2485:9;2477:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2865:4:::1;2855:7;;:14;;;;;;;;;;;;;;;;;;2885:20;2892:12;:10;:12::i;:::-;2885:20;;;;;;:::i;:::-;;;;;;;;2795:118::o:0;6278:656::-;6374:4;6417:1;6399:20;;:6;:20;;;6391:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;6494:1;6473:23;;:9;:23;;;6465:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6542:47;6563:6;6571:9;6582:6;6542:20;:47::i;:::-;6602:21;6626:9;:17;6636:6;6626:17;;;;;;;;;;;;;;;;6602:41;;6679:6;6662:13;:23;;6654:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6793:6;6777:13;:22;6757:9;:17;6767:6;6757:17;;;;;;;;;;;;;;;:42;;;;6845:6;6821:9;:20;6831:9;6821:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;6886:9;6869:35;;6878:6;6869:35;;;6897:6;6869:35;;;;;;:::i;:::-;;;;;;;;6922:4;6915:11;;;6278:656;;;;;:::o;11621:391::-;11705:12;11766;:18;11779:4;11766:18;;;;;;;;;;;;;;;;11757:6;:27;;;;:::i;:::-;11738:9;:15;11748:4;11738:15;;;;;;;;;;;;;;;;:46;;11730:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;11867:6;11846:12;:18;11859:4;11846:18;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;11825:12;:18;11838:4;11825:18;;;;;;;;;;;;;;;:48;;;;11884:6;:12;11891:4;11884:12;;;;;;;;;;;;;;;11902:29;;;;;;;;11911:11;11902:29;;;;11924:6;11902:29;;;11884:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11953:4;11948:31;;;11959:6;11967:11;11948:31;;;;;;;:::i;:::-;;;;;;;;12000:4;11990:14;;11621:391;;;;;:::o;1808:230::-;1874:12;1908:16;1917:6;1908:8;:16::i;:::-;1907:17;1899:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;1971:4;1946:14;:22;1961:6;1946:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1998:6;1991:14;;;;;;;;;;;;2026:4;2016:14;;1808:230;;;:::o;13764:245::-;2486:8;:6;:8::i;:::-;2485:9;2477:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13916:4:::1;1615:14;:22;1630:6;1615:22;;;;;;;;;;;;;;;;;;;;;;;;;1614:23;1606:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;13932:4:::2;13938:6;9761:14;9778:6;:12;9785:4;9778:12;;;;;;;;;;;;;;;:19;;;;9761:36;;9813:9;9808:179;9832:6;:12;9839:4;9832:12;;;;;;;;;;;;;;;:19;;;;9828:1;:23;9808:179;;;9908:15;9877:6;:12;9884:4;9877:12;;;;;;;;;;;;;;;9890:1;9877:15;;;;;;;;:::i;:::-;;;;;;;;;;;;:28;;;:46;9873:103;;;9944:16;9952:4;9958:1;9944:7;:16::i;:::-;;9873:103;9853:3;;;;;:::i;:::-;;;;9808:179;;;;10045:6;10024:12;:18;10037:4;10024:18;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;10005:9;:15:::0;10015:4:::2;10005:15;;;;;;;;;;;;;;;;:46;;9997:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;13957:44:::3;13984:4;13990:2;13994:6;13957:26;:44::i;:::-;9750:340:::2;1659:1;;2526::::1;13764:245:::0;;;:::o;8674:91::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:332::-;5996:4;6034:2;6023:9;6019:18;6011:26;;6047:71;6115:1;6104:9;6100:17;6091:6;6047:71;:::i;:::-;6128:72;6196:2;6185:9;6181:18;6172:6;6128:72;:::i;:::-;5875:332;;;;;:::o;6213:474::-;6281:6;6289;6338:2;6326:9;6317:7;6313:23;6309:32;6306:119;;;6344:79;;:::i;:::-;6306:119;6464:1;6489:53;6534:7;6525:6;6514:9;6510:22;6489:53;:::i;:::-;6479:63;;6435:117;6591:2;6617:53;6662:7;6653:6;6642:9;6638:22;6617:53;:::i;:::-;6607:63;;6562:118;6213:474;;;;;:::o;6693:619::-;6770:6;6778;6786;6835:2;6823:9;6814:7;6810:23;6806:32;6803:119;;;6841:79;;:::i;:::-;6803:119;6961:1;6986:53;7031:7;7022:6;7011:9;7007:22;6986:53;:::i;:::-;6976:63;;6932:117;7088:2;7114:53;7159:7;7150:6;7139:9;7135:22;7114:53;:::i;:::-;7104:63;;7059:118;7216:2;7242:53;7287:7;7278:6;7267:9;7263:22;7242:53;:::i;:::-;7232:63;;7187:118;6693:619;;;;;:::o;7318:180::-;7366:77;7363:1;7356:88;7463:4;7460:1;7453:15;7487:4;7484:1;7477:15;7504:320;7548:6;7585:1;7579:4;7575:12;7565:22;;7632:1;7626:4;7622:12;7653:18;7643:81;;7709:4;7701:6;7697:17;7687:27;;7643:81;7771:2;7763:6;7760:14;7740:18;7737:38;7734:84;;7790:18;;:::i;:::-;7734:84;7555:269;7504:320;;;:::o;7830:171::-;7970:23;7966:1;7958:6;7954:14;7947:47;7830:171;:::o;8007:366::-;8149:3;8170:67;8234:2;8229:3;8170:67;:::i;:::-;8163:74;;8246:93;8335:3;8246:93;:::i;:::-;8364:2;8359:3;8355:12;8348:19;;8007:366;;;:::o;8379:419::-;8545:4;8583:2;8572:9;8568:18;8560:26;;8632:9;8626:4;8622:20;8618:1;8607:9;8603:17;8596:47;8660:131;8786:4;8660:131;:::i;:::-;8652:139;;8379:419;;;:::o;8804:180::-;8852:77;8849:1;8842:88;8949:4;8946:1;8939:15;8973:4;8970:1;8963:15;8990:191;9030:3;9049:20;9067:1;9049:20;:::i;:::-;9044:25;;9083:20;9101:1;9083:20;:::i;:::-;9078:25;;9126:1;9123;9119:9;9112:16;;9147:3;9144:1;9141:10;9138:36;;;9154:18;;:::i;:::-;9138:36;8990:191;;;;:::o;9187:233::-;9226:3;9249:24;9267:5;9249:24;:::i;:::-;9240:33;;9295:66;9288:5;9285:77;9282:103;;9365:18;;:::i;:::-;9282:103;9412:1;9405:5;9401:13;9394:20;;9187:233;;;:::o;9426:194::-;9466:4;9486:20;9504:1;9486:20;:::i;:::-;9481:25;;9520:20;9538:1;9520:20;:::i;:::-;9515:25;;9564:1;9561;9557:9;9549:17;;9588:1;9582:4;9579:11;9576:37;;;9593:18;;:::i;:::-;9576:37;9426:194;;;;:::o;9626:166::-;9766:18;9762:1;9754:6;9750:14;9743:42;9626:166;:::o;9798:366::-;9940:3;9961:67;10025:2;10020:3;9961:67;:::i;:::-;9954:74;;10037:93;10126:3;10037:93;:::i;:::-;10155:2;10150:3;10146:12;10139:19;;9798:366;;;:::o;10170:419::-;10336:4;10374:2;10363:9;10359:18;10351:26;;10423:9;10417:4;10413:20;10409:1;10398:9;10394:17;10387:47;10451:131;10577:4;10451:131;:::i;:::-;10443:139;;10170:419;;;:::o;10595:179::-;10735:31;10731:1;10723:6;10719:14;10712:55;10595:179;:::o;10780:366::-;10922:3;10943:67;11007:2;11002:3;10943:67;:::i;:::-;10936:74;;11019:93;11108:3;11019:93;:::i;:::-;11137:2;11132:3;11128:12;11121:19;;10780:366;;;:::o;11152:419::-;11318:4;11356:2;11345:9;11341:18;11333:26;;11405:9;11399:4;11395:20;11391:1;11380:9;11376:17;11369:47;11433:131;11559:4;11433:131;:::i;:::-;11425:139;;11152:419;;;:::o;11577:173::-;11717:25;11713:1;11705:6;11701:14;11694:49;11577:173;:::o;11756:366::-;11898:3;11919:67;11983:2;11978:3;11919:67;:::i;:::-;11912:74;;11995:93;12084:3;11995:93;:::i;:::-;12113:2;12108:3;12104:12;12097:19;;11756:366;;;:::o;12128:419::-;12294:4;12332:2;12321:9;12317:18;12309:26;;12381:9;12375:4;12371:20;12367:1;12356:9;12352:17;12345:47;12409:131;12535:4;12409:131;:::i;:::-;12401:139;;12128:419;;;:::o;12553:180::-;12693:32;12689:1;12681:6;12677:14;12670:56;12553:180;:::o;12739:366::-;12881:3;12902:67;12966:2;12961:3;12902:67;:::i;:::-;12895:74;;12978:93;13067:3;12978:93;:::i;:::-;13096:2;13091:3;13087:12;13080:19;;12739:366;;;:::o;13111:419::-;13277:4;13315:2;13304:9;13300:18;13292:26;;13364:9;13358:4;13354:20;13350:1;13339:9;13335:17;13328:47;13392:131;13518:4;13392:131;:::i;:::-;13384:139;;13111:419;;;:::o;13536:180::-;13584:77;13581:1;13574:88;13681:4;13678:1;13671:15;13705:4;13702:1;13695:15;13722:171;13761:3;13784:24;13802:5;13784:24;:::i;:::-;13775:33;;13830:4;13823:5;13820:15;13817:41;;13838:18;;:::i;:::-;13817:41;13885:1;13878:5;13874:13;13867:20;;13722:171;;;:::o;13899:164::-;14039:16;14035:1;14027:6;14023:14;14016:40;13899:164;:::o;14069:366::-;14211:3;14232:67;14296:2;14291:3;14232:67;:::i;:::-;14225:74;;14308:93;14397:3;14308:93;:::i;:::-;14426:2;14421:3;14417:12;14410:19;;14069:366;;;:::o;14441:419::-;14607:4;14645:2;14634:9;14630:18;14622:26;;14694:9;14688:4;14684:20;14680:1;14669:9;14665:17;14658:47;14722:131;14848:4;14722:131;:::i;:::-;14714:139;;14441:419;;;:::o;14866:166::-;15006:18;15002:1;14994:6;14990:14;14983:42;14866:166;:::o;15038:366::-;15180:3;15201:67;15265:2;15260:3;15201:67;:::i;:::-;15194:74;;15277:93;15366:3;15277:93;:::i;:::-;15395:2;15390:3;15386:12;15379:19;;15038:366;;;:::o;15410:419::-;15576:4;15614:2;15603:9;15599:18;15591:26;;15663:9;15657:4;15653:20;15649:1;15638:9;15634:17;15627:47;15691:131;15817:4;15691:131;:::i;:::-;15683:139;;15410:419;;;:::o;15835:179::-;15975:31;15971:1;15963:6;15959:14;15952:55;15835:179;:::o;16020:366::-;16162:3;16183:67;16247:2;16242:3;16183:67;:::i;:::-;16176:74;;16259:93;16348:3;16259:93;:::i;:::-;16377:2;16372:3;16368:12;16361:19;;16020:366;;;:::o;16392:419::-;16558:4;16596:2;16585:9;16581:18;16573:26;;16645:9;16639:4;16635:20;16631:1;16620:9;16616:17;16609:47;16673:131;16799:4;16673:131;:::i;:::-;16665:139;;16392:419;;;:::o;16817:177::-;16957:29;16953:1;16945:6;16941:14;16934:53;16817:177;:::o;17000:366::-;17142:3;17163:67;17227:2;17222:3;17163:67;:::i;:::-;17156:74;;17239:93;17328:3;17239:93;:::i;:::-;17357:2;17352:3;17348:12;17341:19;;17000:366;;;:::o;17372:419::-;17538:4;17576:2;17565:9;17561:18;17553:26;;17625:9;17619:4;17615:20;17611:1;17600:9;17596:17;17589:47;17653:131;17779:4;17653:131;:::i;:::-;17645:139;;17372:419;;;:::o;17797:174::-;17937:26;17933:1;17925:6;17921:14;17914:50;17797:174;:::o;17977:366::-;18119:3;18140:67;18204:2;18199:3;18140:67;:::i;:::-;18133:74;;18216:93;18305:3;18216:93;:::i;:::-;18334:2;18329:3;18325:12;18318:19;;17977:366;;;:::o;18349:419::-;18515:4;18553:2;18542:9;18538:18;18530:26;;18602:9;18596:4;18592:20;18588:1;18577:9;18573:17;18566:47;18630:131;18756:4;18630:131;:::i;:::-;18622:139;;18349:419;;;:::o;18774:170::-;18914:22;18910:1;18902:6;18898:14;18891:46;18774:170;:::o;18950:366::-;19092:3;19113:67;19177:2;19172:3;19113:67;:::i;:::-;19106:74;;19189:93;19278:3;19189:93;:::i;:::-;19307:2;19302:3;19298:12;19291:19;;18950:366;;;:::o;19322:419::-;19488:4;19526:2;19515:9;19511:18;19503:26;;19575:9;19569:4;19565:20;19561:1;19550:9;19546:17;19539:47;19603:131;19729:4;19603:131;:::i;:::-;19595:139;;19322:419;;;:::o;19747:176::-;19887:28;19883:1;19875:6;19871:14;19864:52;19747:176;:::o;19929:366::-;20071:3;20092:67;20156:2;20151:3;20092:67;:::i;:::-;20085:74;;20168:93;20257:3;20168:93;:::i;:::-;20286:2;20281:3;20277:12;20270:19;;19929:366;;;:::o;20301:419::-;20467:4;20505:2;20494:9;20490:18;20482:26;;20554:9;20548:4;20544:20;20540:1;20529:9;20525:17;20518:47;20582:131;20708:4;20582:131;:::i;:::-;20574:139;;20301:419;;;:::o;20726:177::-;20866:29;20862:1;20854:6;20850:14;20843:53;20726:177;:::o;20909:366::-;21051:3;21072:67;21136:2;21131:3;21072:67;:::i;:::-;21065:74;;21148:93;21237:3;21148:93;:::i;:::-;21266:2;21261:3;21257:12;21250:19;;20909:366;;;:::o;21281:419::-;21447:4;21485:2;21474:9;21470:18;21462:26;;21534:9;21528:4;21524:20;21520:1;21509:9;21505:17;21498:47;21562:131;21688:4;21562:131;:::i;:::-;21554:139;;21281:419;;;:::o;21706:160::-;21846:12;21842:1;21834:6;21830:14;21823:36;21706:160;:::o;21872:366::-;22014:3;22035:67;22099:2;22094:3;22035:67;:::i;:::-;22028:74;;22111:93;22200:3;22111:93;:::i;:::-;22229:2;22224:3;22220:12;22213:19;;21872:366;;;:::o;22244:419::-;22410:4;22448:2;22437:9;22433:18;22425:26;;22497:9;22491:4;22487:20;22483:1;22472:9;22468:17;22461:47;22525:131;22651:4;22525:131;:::i;:::-;22517:139;;22244:419;;;:::o;22669:180::-;22717:77;22714:1;22707:88;22814:4;22811:1;22804:15;22838:4;22835:1;22828:15;22855:166;22995:18;22991:1;22983:6;22979:14;22972:42;22855:166;:::o;23027:366::-;23169:3;23190:67;23254:2;23249:3;23190:67;:::i;:::-;23183:74;;23266:93;23355:3;23266:93;:::i;:::-;23384:2;23379:3;23375:12;23368:19;;23027:366;;;:::o;23399:419::-;23565:4;23603:2;23592:9;23588:18;23580:26;;23652:9;23646:4;23642:20;23638:1;23627:9;23623:17;23616:47;23680:131;23806:4;23680:131;:::i;:::-;23672:139;;23399:419;;;:::o;23824:180::-;23964:32;23960:1;23952:6;23948:14;23941:56;23824:180;:::o;24010:366::-;24152:3;24173:67;24237:2;24232:3;24173:67;:::i;:::-;24166:74;;24249:93;24338:3;24249:93;:::i;:::-;24367:2;24362:3;24358:12;24351:19;;24010:366;;;:::o;24382:419::-;24548:4;24586:2;24575:9;24571:18;24563:26;;24635:9;24629:4;24625:20;24621:1;24610:9;24606:17;24599:47;24663:131;24789:4;24663:131;:::i;:::-;24655:139;;24382:419;;;:::o;24807:178::-;24947:30;24943:1;24935:6;24931:14;24924:54;24807:178;:::o;24991:366::-;25133:3;25154:67;25218:2;25213:3;25154:67;:::i;:::-;25147:74;;25230:93;25319:3;25230:93;:::i;:::-;25348:2;25343:3;25339:12;25332:19;;24991:366;;;:::o;25363:419::-;25529:4;25567:2;25556:9;25552:18;25544:26;;25616:9;25610:4;25606:20;25602:1;25591:9;25587:17;25580:47;25644:131;25770:4;25644:131;:::i;:::-;25636:139;;25363:419;;;:::o;25788:181::-;25928:33;25924:1;25916:6;25912:14;25905:57;25788:181;:::o;25975:366::-;26117:3;26138:67;26202:2;26197:3;26138:67;:::i;:::-;26131:74;;26214:93;26303:3;26214:93;:::i;:::-;26332:2;26327:3;26323:12;26316:19;;25975:366;;;:::o;26347:419::-;26513:4;26551:2;26540:9;26536:18;26528:26;;26600:9;26594:4;26590:20;26586:1;26575:9;26571:17;26564:47;26628:131;26754:4;26628:131;:::i;:::-;26620:139;;26347:419;;;:::o;26772:175::-;26912:27;26908:1;26900:6;26896:14;26889:51;26772:175;:::o;26953:366::-;27095:3;27116:67;27180:2;27175:3;27116:67;:::i;:::-;27109:74;;27192:93;27281:3;27192:93;:::i;:::-;27310:2;27305:3;27301:12;27294:19;;26953:366;;;:::o;27325:419::-;27491:4;27529:2;27518:9;27514:18;27506:26;;27578:9;27572:4;27568:20;27564:1;27553:9;27549:17;27542:47;27606:131;27732:4;27606:131;:::i;:::-;27598:139;;27325:419;;;:::o;27750:156::-;27890:8;27886:1;27878:6;27874:14;27867:32;27750:156;:::o;27912:365::-;28054:3;28075:66;28139:1;28134:3;28075:66;:::i;:::-;28068:73;;28150:93;28239:3;28150:93;:::i;:::-;28268:2;28263:3;28259:12;28252:19;;27912:365;;;:::o;28283:419::-;28449:4;28487:2;28476:9;28472:18;28464:26;;28536:9;28530:4;28526:20;28522:1;28511:9;28507:17;28500:47;28564:131;28690:4;28564:131;:::i;:::-;28556:139;;28283:419;;;:::o;28708:164::-;28848:16;28844:1;28836:6;28832:14;28825:40;28708:164;:::o;28878:366::-;29020:3;29041:67;29105:2;29100:3;29041:67;:::i;:::-;29034:74;;29117:93;29206:3;29117:93;:::i;:::-;29235:2;29230:3;29226:12;29219:19;;28878:366;;;:::o;29250:419::-;29416:4;29454:2;29443:9;29439:18;29431:26;;29503:9;29497:4;29493:20;29489:1;29478:9;29474:17;29467:47;29531:131;29657:4;29531:131;:::i;:::-;29523:139;;29250:419;;;:::o

Swarm Source

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