ETH Price: $2,587.55 (-2.13%)

Token

Time Bomb (TB)
 

Overview

Max Total Supply

13,000,000,000 TB

Holders

167

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,407,805.656995764850120004 TB

Value
$0.00
0x8eA847a9d8113ED9417c123F33c48eD3b895B60d
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TimeBomb

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-02
*/

// SPDX-License-Identifier: UNLICENSED

// Website: https://www.thetrustco.in/

pragma solidity 0.8.20;

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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)) internal _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

    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 transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

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

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _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), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

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

library Address {
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

    function WETH() external pure returns (address);

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

contract TimeBomb is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;

    uint256 public swapThreshold;

    address public marketingWallet = 0x84874cD121274690D972137e65C8AcA0937d0Af6;
    address public devWallet = 0x25Eff24DF1D8C0F6f891AADcF4cdEc03529818D5;
    address public wtrustTokenAddress = 0x14D8D5055353589024e9fC55d0B06d77f3EbD709;

    uint256 public startBlockNumber;
    uint256 public blockThreshold = 600;

    uint256 public totSellTax = 99;

    mapping(address => bool) public excludedFromFees;
    mapping(address => bool) private isBot;

    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }

    constructor() ERC20("Time Bomb", "TB") {
        _mint(msg.sender, 13e9 * 10 ** decimals());
        excludedFromFees[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), wtrustTokenAddress);

        router = _router;
        pair = _pair;
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[devWallet] = true;

        startBlockNumber = block.number;
    }

    function blockDecrementor() public {
        uint256 _sellTax = totSellTax;

        uint256 blocksMined = block.number - startBlockNumber;

        uint256 decrementNumberForSellTax = blocksMined / blockThreshold;

        if (decrementNumberForSellTax > 0 && decrementNumberForSellTax < 99) {
            if (decrementNumberForSellTax < _sellTax) {
                _sellTax = _sellTax - decrementNumberForSellTax;
                _sellTax -= decrementNumberForSellTax;
                totSellTax = _sellTax;
            } else {
                startBlockNumber = block.number;
                totSellTax = 99;
            }
        } else {
            startBlockNumber = block.number;
            totSellTax = 99;
        }
    }

    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens");

        blockDecrementor();

        if (!excludedFromFees[sender] && !excludedFromFees[recipient]) {
            require(tradingEnabled, "Trading not active yet");
        }

        uint256 fee;

        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
        else {
            if (recipient == pair) fee = (amount * totSellTax) / 100;
        }

        if (swapEnabled && !swapping && fee > 0) {
            super._transfer(sender, address(this), fee);
            swapTbForWTrust(fee);
        }

        super._transfer(sender, recipient, amount - fee);
    }

    function swapTbForWTrust(uint256 tokenAmount) private inSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = wtrustTokenAddress;

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount, 0, path, marketingWallet, block.timestamp);
    }

    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setBlockThreshold(uint256 new_amount) external onlyOwner {
        blockThreshold = new_amount;
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
    }

    function _setSellTaxes(uint256 _newValue) internal {
        totSellTax = _newValue;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        marketingWallet = newWallet;
    }

     function updatePairOfWTRUST(address newWallet) external onlyOwner {
        wtrustTokenAddress = newWallet;
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), wtrustTokenAddress);

        router = _router;
        pair = _pair;
    }

    function updateSaleTax(uint256 _amount) external onlyOwner {
        _setSellTaxes(_amount);
    }

    function updatePeppaWallet(address newWallet) external onlyOwner {
        devWallet = newWallet;
    }

    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner {
        router = _router;
        pair = _pair;
    }

    function addBots(address[] memory isBot_) public onlyOwner {
        for (uint i = 0; i < isBot_.length; i++) {
            isBot[isBot_[i]] = true;
        }
    }

    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }

    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner {
        IERC20(tokenAddress).transfer(owner(), amount);
    }

    function rescueETH(uint256 weiAmount) external onlyOwner {
        payable(owner()).sendValue(weiAmount);
    }

    function manualSwap(uint256 amount) external onlyOwner {
        swapTbForWTrust(amount);
    }

    // fallbacks
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockDecrementor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"blockThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"uint256","name":"amount","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setBlockThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatePairOfWTRUST","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatePeppaWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"updateSaleTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wtrustTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040527384874cd121274690d972137e65c8aca0937d0af660095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507325eff24df1d8c0f6f891aadcf4cdec03529818d5600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507314d8d5055353589024e9fc55d0b06d77f3ebd709600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610258600d556063600e5534801562000117575f80fd5b506040518060400160405280600981526020017f54696d6520426f6d6200000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f54420000000000000000000000000000000000000000000000000000000000008152508160039081620001959190620009f3565b508060049081620001a79190620009f3565b505050620001ca620001be6200055b60201b60201c565b6200056260201b60201c565b6200020b33620001df6200062560201b60201c565b600a620001ed919062000c60565b640306dc4200620001ff919062000cb0565b6200062d60201b60201c565b6001600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002e9919062000d5f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016200034692919062000da0565b6020604051808303815f875af115801562000363573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000389919062000d5f565b90508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555043600c81905550505062000eaf565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200069e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006959062000e29565b60405180910390fd5b620006b15f83836200078a60201b60201c565b8060025f828254620006c4919062000e49565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000718919062000e49565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200077e919062000e94565b60405180910390a35050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200080b57607f821691505b602082108103620008215762000820620007c6565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000848565b62000891868362000848565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620008db620008d5620008cf84620008a9565b620008b2565b620008a9565b9050919050565b5f819050919050565b620008f683620008bb565b6200090e6200090582620008e2565b84845462000854565b825550505050565b5f90565b6200092462000916565b62000931818484620008eb565b505050565b5b8181101562000958576200094c5f826200091a565b60018101905062000937565b5050565b601f821115620009a757620009718162000827565b6200097c8462000839565b810160208510156200098c578190505b620009a46200099b8562000839565b83018262000936565b50505b505050565b5f82821c905092915050565b5f620009c95f1984600802620009ac565b1980831691505092915050565b5f620009e38383620009b8565b9150826002028217905092915050565b620009fe826200078f565b67ffffffffffffffff81111562000a1a5762000a1962000799565b5b62000a268254620007f3565b62000a338282856200095c565b5f60209050601f83116001811462000a69575f841562000a54578287015190505b62000a608582620009d6565b86555062000acf565b601f19841662000a798662000827565b5f5b8281101562000aa25784890151825560018201915060208501945060208101905062000a7b565b8683101562000ac2578489015162000abe601f891682620009b8565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000b615780860481111562000b395762000b3862000ad7565b5b600185161562000b495780820291505b808102905062000b598562000b04565b945062000b19565b94509492505050565b5f8262000b7b576001905062000c4d565b8162000b8a575f905062000c4d565b816001811462000ba3576002811462000bae5762000be4565b600191505062000c4d565b60ff84111562000bc35762000bc262000ad7565b5b8360020a91508482111562000bdd5762000bdc62000ad7565b5b5062000c4d565b5060208310610133831016604e8410600b841016171562000c1e5782820a90508381111562000c185762000c1762000ad7565b5b62000c4d565b62000c2d848484600162000b10565b9250905081840481111562000c475762000c4662000ad7565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000c6c82620008a9565b915062000c798362000c54565b925062000ca87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b6a565b905092915050565b5f62000cbc82620008a9565b915062000cc983620008a9565b925082820262000cd981620008a9565b9150828204841483151762000cf35762000cf262000ad7565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000d298262000cfe565b9050919050565b62000d3b8162000d1d565b811462000d46575f80fd5b50565b5f8151905062000d598162000d30565b92915050565b5f6020828403121562000d775762000d7662000cfa565b5b5f62000d868482850162000d49565b91505092915050565b62000d9a8162000d1d565b82525050565b5f60408201905062000db55f83018562000d8f565b62000dc4602083018462000d8f565b9392505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000e11601f8362000dcb565b915062000e1e8262000ddb565b602082019050919050565b5f6020820190508181035f83015262000e428162000e03565b9050919050565b5f62000e5582620008a9565b915062000e6283620008a9565b925082820190508082111562000e7d5762000e7c62000ad7565b5b92915050565b62000e8e81620008a9565b82525050565b5f60208201905062000ea95f83018462000e83565b92915050565b613b008062000ebd5f395ff3fe60806040526004361061023e575f3560e01c80638cd4426d1161012d578063aacebbe3116100aa578063e01af92c1161006e578063e01af92c14610849578063e3facc4d14610871578063e545fd6d14610899578063f2fde38b146108c1578063f887ea40146108e957610245565b8063aacebbe314610759578063b70143c914610781578063d34628cc146107a9578063dbe66ca0146107d1578063dd62ed3e1461080d57610245565b80639e252f00116100f15780639e252f00146106675780639f55efb91461068f578063a457c2d7146106b7578063a8aa1b31146106f3578063a9059cbb1461071d57610245565b80638cd4426d146105995780638da5cb5b146105c15780638ea5220f146105eb57806390b9cbe21461061557806395d89b411461063d57610245565b8063498a4c2d116101bb5780636ddd17131161017f5780636ddd1713146104dd57806370a0823114610507578063715018a61461054357806375f0a874146105595780638a8c523c1461058357610245565b8063498a4c2d146104215780634ada218b1461044b5780634c41a6c7146104755780635f50a1ad1461049f5780636aa9689f146104c757610245565b80632253163d116102025780632253163d1461032d57806323b872dd14610357578063313ce5671461039357806339509351146103bd57806340b28c2f146103f957610245565b80630445b6671461024957806306fdde0314610273578063095ea7b31461029d5780630c63dd0c146102d957806318160ddd1461030357610245565b3661024557005b5f80fd5b348015610254575f80fd5b5061025d610913565b60405161026a91906128cf565b60405180910390f35b34801561027e575f80fd5b50610287610919565b6040516102949190612972565b60405180910390f35b3480156102a8575f80fd5b506102c360048036038101906102be9190612a27565b6109a9565b6040516102d09190612a7f565b60405180910390f35b3480156102e4575f80fd5b506102ed6109c6565b6040516102fa9190612aa7565b60405180910390f35b34801561030e575f80fd5b506103176109eb565b60405161032491906128cf565b60405180910390f35b348015610338575f80fd5b506103416109f4565b60405161034e91906128cf565b60405180910390f35b348015610362575f80fd5b5061037d60048036038101906103789190612ac0565b6109fa565b60405161038a9190612a7f565b60405180910390f35b34801561039e575f80fd5b506103a7610af5565b6040516103b49190612b2b565b60405180910390f35b3480156103c8575f80fd5b506103e360048036038101906103de9190612a27565b610afd565b6040516103f09190612a7f565b60405180910390f35b348015610404575f80fd5b5061041f600480360381019061041a9190612b7f565b610ba4565b005b34801561042c575f80fd5b50610435610ca4565b60405161044291906128cf565b60405180910390f35b348015610456575f80fd5b5061045f610caa565b60405161046c9190612a7f565b60405180910390f35b348015610480575f80fd5b50610489610cbd565b60405161049691906128cf565b60405180910390f35b3480156104aa575f80fd5b506104c560048036038101906104c09190612bbd565b610cc3565b005b3480156104d2575f80fd5b506104db610d49565b005b3480156104e8575f80fd5b506104f1610ddf565b6040516104fe9190612a7f565b60405180910390f35b348015610512575f80fd5b5061052d60048036038101906105289190612be8565b610df2565b60405161053a91906128cf565b60405180910390f35b34801561054e575f80fd5b50610557610e37565b005b348015610564575f80fd5b5061056d610ebe565b60405161057a9190612aa7565b60405180910390f35b34801561058e575f80fd5b50610597610ee3565b005b3480156105a4575f80fd5b506105bf60048036038101906105ba9190612a27565b610fe7565b005b3480156105cc575f80fd5b506105d56110ea565b6040516105e29190612aa7565b60405180910390f35b3480156105f6575f80fd5b506105ff611112565b60405161060c9190612aa7565b60405180910390f35b348015610620575f80fd5b5061063b60048036038101906106369190612be8565b611137565b005b348015610648575f80fd5b5061065161139b565b60405161065e9190612972565b60405180910390f35b348015610672575f80fd5b5061068d60048036038101906106889190612bbd565b61142b565b005b34801561069a575f80fd5b506106b560048036038101906106b09190612be8565b6114da565b005b3480156106c2575f80fd5b506106dd60048036038101906106d89190612a27565b611599565b6040516106ea9190612a7f565b60405180910390f35b3480156106fe575f80fd5b50610707611688565b6040516107149190612aa7565b60405180910390f35b348015610728575f80fd5b50610743600480360381019061073e9190612a27565b6116ad565b6040516107509190612a7f565b60405180910390f35b348015610764575f80fd5b5061077f600480360381019061077a9190612be8565b6116ca565b005b34801561078c575f80fd5b506107a760048036038101906107a29190612bbd565b611789565b005b3480156107b4575f80fd5b506107cf60048036038101906107ca9190612d53565b611811565b005b3480156107dc575f80fd5b506107f760048036038101906107f29190612be8565b61191e565b6040516108049190612a7f565b60405180910390f35b348015610818575f80fd5b50610833600480360381019061082e9190612d9a565b61193b565b60405161084091906128cf565b60405180910390f35b348015610854575f80fd5b5061086f600480360381019061086a9190612e02565b6119bd565b005b34801561087c575f80fd5b5061089760048036038101906108929190612bbd565b611a56565b005b3480156108a4575f80fd5b506108bf60048036038101906108ba9190612e2d565b611ade565b005b3480156108cc575f80fd5b506108e760048036038101906108e29190612be8565b611bb2565b005b3480156108f4575f80fd5b506108fd611ca8565b60405161090a9190612ec6565b60405180910390f35b60085481565b60606003805461092890612f0c565b80601f016020809104026020016040519081016040528092919081815260200182805461095490612f0c565b801561099f5780601f106109765761010080835404028352916020019161099f565b820191905f5260205f20905b81548152906001019060200180831161098257829003601f168201915b5050505050905090565b5f6109bc6109b5611ccd565b8484611cd4565b6001905092915050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b600e5481565b5f610a06848484611e97565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610a4d611ccd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac390612fac565b60405180910390fd5b610ae985610ad8611ccd565b8584610ae49190612ff7565b611cd4565b60019150509392505050565b5f6012905090565b5f610b9a610b09611ccd565b848460015f610b16611ccd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b95919061302a565b611cd4565b6001905092915050565b610bac611ccd565b73ffffffffffffffffffffffffffffffffffffffff16610bca6110ea565b73ffffffffffffffffffffffffffffffffffffffff1614610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c17906130a7565b60405180910390fd5b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600c5481565b600760169054906101000a900460ff1681565b600d5481565b610ccb611ccd565b73ffffffffffffffffffffffffffffffffffffffff16610ce96110ea565b73ffffffffffffffffffffffffffffffffffffffff1614610d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d36906130a7565b60405180910390fd5b80600d8190555050565b5f600e5490505f600c5443610d5e9190612ff7565b90505f600d5482610d6f91906130f2565b90505f81118015610d805750606381105b15610dca5782811015610db5578083610d999190612ff7565b92508083610da79190612ff7565b925082600e81905550610dc5565b43600c819055506063600e819055505b610dda565b43600c819055506063600e819055505b505050565b600760159054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e3f611ccd565b73ffffffffffffffffffffffffffffffffffffffff16610e5d6110ea565b73ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa906130a7565b60405180910390fd5b610ebc5f61224d565b565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610eeb611ccd565b73ffffffffffffffffffffffffffffffffffffffff16610f096110ea565b73ffffffffffffffffffffffffffffffffffffffff1614610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f56906130a7565b60405180910390fd5b600760169054906101000a900460ff1615610faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa69061316c565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550565b610fef611ccd565b73ffffffffffffffffffffffffffffffffffffffff1661100d6110ea565b73ffffffffffffffffffffffffffffffffffffffff1614611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105a906130a7565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6110876110ea565b836040518363ffffffff1660e01b81526004016110a592919061318a565b6020604051808303815f875af11580156110c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e591906131c5565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61113f611ccd565b73ffffffffffffffffffffffffffffffffffffffff1661115d6110ea565b73ffffffffffffffffffffffffffffffffffffffff16146111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa906130a7565b60405180910390fd5b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611255573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112799190613204565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016112d492919061322f565b6020604051808303815f875af11580156112f0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113149190613204565b90508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6060600480546113aa90612f0c565b80601f01602080910402602001604051908101604052809291908181526020018280546113d690612f0c565b80156114215780601f106113f857610100808354040283529160200191611421565b820191905f5260205f20905b81548152906001019060200180831161140457829003601f168201915b5050505050905090565b611433611ccd565b73ffffffffffffffffffffffffffffffffffffffff166114516110ea565b73ffffffffffffffffffffffffffffffffffffffff16146114a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149e906130a7565b60405180910390fd5b6114d7816114b36110ea565b73ffffffffffffffffffffffffffffffffffffffff1661231090919063ffffffff16565b50565b6114e2611ccd565b73ffffffffffffffffffffffffffffffffffffffff166115006110ea565b73ffffffffffffffffffffffffffffffffffffffff1614611556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154d906130a7565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f8060015f6115a6611ccd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611660576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611657906132c6565b60405180910390fd5b61167d61166b611ccd565b8585846116789190612ff7565b611cd4565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6116c06116b9611ccd565b8484611e97565b6001905092915050565b6116d2611ccd565b73ffffffffffffffffffffffffffffffffffffffff166116f06110ea565b73ffffffffffffffffffffffffffffffffffffffff1614611746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173d906130a7565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611791611ccd565b73ffffffffffffffffffffffffffffffffffffffff166117af6110ea565b73ffffffffffffffffffffffffffffffffffffffff1614611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc906130a7565b60405180910390fd5b61180e81612400565b50565b611819611ccd565b73ffffffffffffffffffffffffffffffffffffffff166118376110ea565b73ffffffffffffffffffffffffffffffffffffffff161461188d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611884906130a7565b60405180910390fd5b5f5b815181101561191a57600160105f8484815181106118b0576118af6132e4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061191290613311565b91505061188f565b5050565b600f602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6119c5611ccd565b73ffffffffffffffffffffffffffffffffffffffff166119e36110ea565b73ffffffffffffffffffffffffffffffffffffffff1614611a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a30906130a7565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611a5e611ccd565b73ffffffffffffffffffffffffffffffffffffffff16611a7c6110ea565b73ffffffffffffffffffffffffffffffffffffffff1614611ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac9906130a7565b60405180910390fd5b611adb81612635565b50565b611ae6611ccd565b73ffffffffffffffffffffffffffffffffffffffff16611b046110ea565b73ffffffffffffffffffffffffffffffffffffffff1614611b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b51906130a7565b60405180910390fd5b80600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611bba611ccd565b73ffffffffffffffffffffffffffffffffffffffff16611bd86110ea565b73ffffffffffffffffffffffffffffffffffffffff1614611c2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c25906130a7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c93906133c8565b60405180910390fd5b611ca58161224d565b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3990613456565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da7906134e4565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e8a91906128cf565b60405180910390a3505050565b5f8111611ed9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed090613572565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611f77575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fad906135da565b60405180910390fd5b611fbe610d49565b600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561205c5750600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156120b157600760169054906101000a900460ff166120b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a790613642565b60405180910390fd5b5b5f600760149054906101000a900460ff16806121135750600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806121645750600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612171575f90506121e3565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121e2576064600e54836121d59190613660565b6121df91906130f2565b90505b5b600760159054906101000a900460ff16801561220c5750600760149054906101000a900460ff16155b801561221757505f81115b156122315761222784308361263f565b61223081612400565b5b612247848483856122429190612ff7565b61263f565b50505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015612353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234a906136eb565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff168260405161237890613736565b5f6040518083038185875af1925050503d805f81146123b2576040519150601f19603f3d011682016040523d82523d5f602084013e6123b7565b606091505b50509050806123fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f2906137ba565b60405180910390fd5b505050565b600760149054906101000a900460ff16612632576001600760146101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561244b5761244a612c17565b5b6040519080825280602002602001820160405280156124795781602001602082028036833780820191505090505b50905030815f815181106124905761248f6132e4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612500576124ff6132e4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125663060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cd4565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8460095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016125e99594939291906138c8565b5f604051808303815f87803b158015612600575f80fd5b505af1158015612612573d5f803e3d5ffd5b50505050505f600760146101000a81548160ff0219169083151502179055505b50565b80600e8190555050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a490613990565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361271b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271290613a1e565b60405180910390fd5b6127268383836128b2565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156127a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a090613aac565b60405180910390fd5b81816127b59190612ff7565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612840919061302a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128a491906128cf565b60405180910390a350505050565b505050565b5f819050919050565b6128c9816128b7565b82525050565b5f6020820190506128e25f8301846128c0565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561291f578082015181840152602081019050612904565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612944826128e8565b61294e81856128f2565b935061295e818560208601612902565b6129678161292a565b840191505092915050565b5f6020820190508181035f83015261298a818461293a565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6129cc826129a3565b9050919050565b6129dc816129c2565b81146129e6575f80fd5b50565b5f813590506129f7816129d3565b92915050565b612a06816128b7565b8114612a10575f80fd5b50565b5f81359050612a21816129fd565b92915050565b5f8060408385031215612a3d57612a3c61299b565b5b5f612a4a858286016129e9565b9250506020612a5b85828601612a13565b9150509250929050565b5f8115159050919050565b612a7981612a65565b82525050565b5f602082019050612a925f830184612a70565b92915050565b612aa1816129c2565b82525050565b5f602082019050612aba5f830184612a98565b92915050565b5f805f60608486031215612ad757612ad661299b565b5b5f612ae4868287016129e9565b9350506020612af5868287016129e9565b9250506040612b0686828701612a13565b9150509250925092565b5f60ff82169050919050565b612b2581612b10565b82525050565b5f602082019050612b3e5f830184612b1c565b92915050565b5f612b4e826129c2565b9050919050565b612b5e81612b44565b8114612b68575f80fd5b50565b5f81359050612b7981612b55565b92915050565b5f8060408385031215612b9557612b9461299b565b5b5f612ba285828601612b6b565b9250506020612bb3858286016129e9565b9150509250929050565b5f60208284031215612bd257612bd161299b565b5b5f612bdf84828501612a13565b91505092915050565b5f60208284031215612bfd57612bfc61299b565b5b5f612c0a848285016129e9565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612c4d8261292a565b810181811067ffffffffffffffff82111715612c6c57612c6b612c17565b5b80604052505050565b5f612c7e612992565b9050612c8a8282612c44565b919050565b5f67ffffffffffffffff821115612ca957612ca8612c17565b5b602082029050602081019050919050565b5f80fd5b5f612cd0612ccb84612c8f565b612c75565b90508083825260208201905060208402830185811115612cf357612cf2612cba565b5b835b81811015612d1c5780612d0888826129e9565b845260208401935050602081019050612cf5565b5050509392505050565b5f82601f830112612d3a57612d39612c13565b5b8135612d4a848260208601612cbe565b91505092915050565b5f60208284031215612d6857612d6761299b565b5b5f82013567ffffffffffffffff811115612d8557612d8461299f565b5b612d9184828501612d26565b91505092915050565b5f8060408385031215612db057612daf61299b565b5b5f612dbd858286016129e9565b9250506020612dce858286016129e9565b9150509250929050565b612de181612a65565b8114612deb575f80fd5b50565b5f81359050612dfc81612dd8565b92915050565b5f60208284031215612e1757612e1661299b565b5b5f612e2484828501612dee565b91505092915050565b5f8060408385031215612e4357612e4261299b565b5b5f612e50858286016129e9565b9250506020612e6185828601612dee565b9150509250929050565b5f819050919050565b5f612e8e612e89612e84846129a3565b612e6b565b6129a3565b9050919050565b5f612e9f82612e74565b9050919050565b5f612eb082612e95565b9050919050565b612ec081612ea6565b82525050565b5f602082019050612ed95f830184612eb7565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612f2357607f821691505b602082108103612f3657612f35612edf565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612f966028836128f2565b9150612fa182612f3c565b604082019050919050565b5f6020820190508181035f830152612fc381612f8a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613001826128b7565b915061300c836128b7565b925082820390508181111561302457613023612fca565b5b92915050565b5f613034826128b7565b915061303f836128b7565b925082820190508082111561305757613056612fca565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6130916020836128f2565b915061309c8261305d565b602082019050919050565b5f6020820190508181035f8301526130be81613085565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6130fc826128b7565b9150613107836128b7565b925082613117576131166130c5565b5b828204905092915050565b7f54726164696e6720616c726561647920616374697665000000000000000000005f82015250565b5f6131566016836128f2565b915061316182613122565b602082019050919050565b5f6020820190508181035f8301526131838161314a565b9050919050565b5f60408201905061319d5f830185612a98565b6131aa60208301846128c0565b9392505050565b5f815190506131bf81612dd8565b92915050565b5f602082840312156131da576131d961299b565b5b5f6131e7848285016131b1565b91505092915050565b5f815190506131fe816129d3565b92915050565b5f602082840312156132195761321861299b565b5b5f613226848285016131f0565b91505092915050565b5f6040820190506132425f830185612a98565b61324f6020830184612a98565b9392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6132b06025836128f2565b91506132bb82613256565b604082019050919050565b5f6020820190508181035f8301526132dd816132a4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61331b826128b7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361334d5761334c612fca565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6133b26026836128f2565b91506133bd82613358565b604082019050919050565b5f6020820190508181035f8301526133df816133a6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134406024836128f2565b915061344b826133e6565b604082019050919050565b5f6020820190508181035f83015261346d81613434565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134ce6022836128f2565b91506134d982613474565b604082019050919050565b5f6020820190508181035f8301526134fb816134c2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61355c6029836128f2565b915061356782613502565b604082019050919050565b5f6020820190508181035f83015261358981613550565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e73000000000000005f82015250565b5f6135c46019836128f2565b91506135cf82613590565b602082019050919050565b5f6020820190508181035f8301526135f1816135b8565b9050919050565b7f54726164696e67206e6f742061637469766520796574000000000000000000005f82015250565b5f61362c6016836128f2565b9150613637826135f8565b602082019050919050565b5f6020820190508181035f83015261365981613620565b9050919050565b5f61366a826128b7565b9150613675836128b7565b9250828202613683816128b7565b9150828204841483151761369a57613699612fca565b5b5092915050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f6136d5601d836128f2565b91506136e0826136a1565b602082019050919050565b5f6020820190508181035f830152613702816136c9565b9050919050565b5f81905092915050565b50565b5f6137215f83613709565b915061372c82613713565b5f82019050919050565b5f61374082613716565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f6137a4603a836128f2565b91506137af8261374a565b604082019050919050565b5f6020820190508181035f8301526137d181613798565b9050919050565b5f819050919050565b5f6137fb6137f66137f1846137d8565b612e6b565b6128b7565b9050919050565b61380b816137e1565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613843816129c2565b82525050565b5f613854838361383a565b60208301905092915050565b5f602082019050919050565b5f61387682613811565b613880818561381b565b935061388b8361382b565b805f5b838110156138bb5781516138a28882613849565b97506138ad83613860565b92505060018101905061388e565b5085935050505092915050565b5f60a0820190506138db5f8301886128c0565b6138e86020830187613802565b81810360408301526138fa818661386c565b90506139096060830185612a98565b61391660808301846128c0565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61397a6025836128f2565b915061398582613920565b604082019050919050565b5f6020820190508181035f8301526139a78161396e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613a086023836128f2565b9150613a13826139ae565b604082019050919050565b5f6020820190508181035f830152613a35816139fc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613a966026836128f2565b9150613aa182613a3c565b604082019050919050565b5f6020820190508181035f830152613ac381613a8a565b905091905056fea2646970667358221220138f43a2a7e0d10468eadf3f80a251bca1e8440d430e897c22e4b3f350e1d89464736f6c63430008140033

Deployed Bytecode

0x60806040526004361061023e575f3560e01c80638cd4426d1161012d578063aacebbe3116100aa578063e01af92c1161006e578063e01af92c14610849578063e3facc4d14610871578063e545fd6d14610899578063f2fde38b146108c1578063f887ea40146108e957610245565b8063aacebbe314610759578063b70143c914610781578063d34628cc146107a9578063dbe66ca0146107d1578063dd62ed3e1461080d57610245565b80639e252f00116100f15780639e252f00146106675780639f55efb91461068f578063a457c2d7146106b7578063a8aa1b31146106f3578063a9059cbb1461071d57610245565b80638cd4426d146105995780638da5cb5b146105c15780638ea5220f146105eb57806390b9cbe21461061557806395d89b411461063d57610245565b8063498a4c2d116101bb5780636ddd17131161017f5780636ddd1713146104dd57806370a0823114610507578063715018a61461054357806375f0a874146105595780638a8c523c1461058357610245565b8063498a4c2d146104215780634ada218b1461044b5780634c41a6c7146104755780635f50a1ad1461049f5780636aa9689f146104c757610245565b80632253163d116102025780632253163d1461032d57806323b872dd14610357578063313ce5671461039357806339509351146103bd57806340b28c2f146103f957610245565b80630445b6671461024957806306fdde0314610273578063095ea7b31461029d5780630c63dd0c146102d957806318160ddd1461030357610245565b3661024557005b5f80fd5b348015610254575f80fd5b5061025d610913565b60405161026a91906128cf565b60405180910390f35b34801561027e575f80fd5b50610287610919565b6040516102949190612972565b60405180910390f35b3480156102a8575f80fd5b506102c360048036038101906102be9190612a27565b6109a9565b6040516102d09190612a7f565b60405180910390f35b3480156102e4575f80fd5b506102ed6109c6565b6040516102fa9190612aa7565b60405180910390f35b34801561030e575f80fd5b506103176109eb565b60405161032491906128cf565b60405180910390f35b348015610338575f80fd5b506103416109f4565b60405161034e91906128cf565b60405180910390f35b348015610362575f80fd5b5061037d60048036038101906103789190612ac0565b6109fa565b60405161038a9190612a7f565b60405180910390f35b34801561039e575f80fd5b506103a7610af5565b6040516103b49190612b2b565b60405180910390f35b3480156103c8575f80fd5b506103e360048036038101906103de9190612a27565b610afd565b6040516103f09190612a7f565b60405180910390f35b348015610404575f80fd5b5061041f600480360381019061041a9190612b7f565b610ba4565b005b34801561042c575f80fd5b50610435610ca4565b60405161044291906128cf565b60405180910390f35b348015610456575f80fd5b5061045f610caa565b60405161046c9190612a7f565b60405180910390f35b348015610480575f80fd5b50610489610cbd565b60405161049691906128cf565b60405180910390f35b3480156104aa575f80fd5b506104c560048036038101906104c09190612bbd565b610cc3565b005b3480156104d2575f80fd5b506104db610d49565b005b3480156104e8575f80fd5b506104f1610ddf565b6040516104fe9190612a7f565b60405180910390f35b348015610512575f80fd5b5061052d60048036038101906105289190612be8565b610df2565b60405161053a91906128cf565b60405180910390f35b34801561054e575f80fd5b50610557610e37565b005b348015610564575f80fd5b5061056d610ebe565b60405161057a9190612aa7565b60405180910390f35b34801561058e575f80fd5b50610597610ee3565b005b3480156105a4575f80fd5b506105bf60048036038101906105ba9190612a27565b610fe7565b005b3480156105cc575f80fd5b506105d56110ea565b6040516105e29190612aa7565b60405180910390f35b3480156105f6575f80fd5b506105ff611112565b60405161060c9190612aa7565b60405180910390f35b348015610620575f80fd5b5061063b60048036038101906106369190612be8565b611137565b005b348015610648575f80fd5b5061065161139b565b60405161065e9190612972565b60405180910390f35b348015610672575f80fd5b5061068d60048036038101906106889190612bbd565b61142b565b005b34801561069a575f80fd5b506106b560048036038101906106b09190612be8565b6114da565b005b3480156106c2575f80fd5b506106dd60048036038101906106d89190612a27565b611599565b6040516106ea9190612a7f565b60405180910390f35b3480156106fe575f80fd5b50610707611688565b6040516107149190612aa7565b60405180910390f35b348015610728575f80fd5b50610743600480360381019061073e9190612a27565b6116ad565b6040516107509190612a7f565b60405180910390f35b348015610764575f80fd5b5061077f600480360381019061077a9190612be8565b6116ca565b005b34801561078c575f80fd5b506107a760048036038101906107a29190612bbd565b611789565b005b3480156107b4575f80fd5b506107cf60048036038101906107ca9190612d53565b611811565b005b3480156107dc575f80fd5b506107f760048036038101906107f29190612be8565b61191e565b6040516108049190612a7f565b60405180910390f35b348015610818575f80fd5b50610833600480360381019061082e9190612d9a565b61193b565b60405161084091906128cf565b60405180910390f35b348015610854575f80fd5b5061086f600480360381019061086a9190612e02565b6119bd565b005b34801561087c575f80fd5b5061089760048036038101906108929190612bbd565b611a56565b005b3480156108a4575f80fd5b506108bf60048036038101906108ba9190612e2d565b611ade565b005b3480156108cc575f80fd5b506108e760048036038101906108e29190612be8565b611bb2565b005b3480156108f4575f80fd5b506108fd611ca8565b60405161090a9190612ec6565b60405180910390f35b60085481565b60606003805461092890612f0c565b80601f016020809104026020016040519081016040528092919081815260200182805461095490612f0c565b801561099f5780601f106109765761010080835404028352916020019161099f565b820191905f5260205f20905b81548152906001019060200180831161098257829003601f168201915b5050505050905090565b5f6109bc6109b5611ccd565b8484611cd4565b6001905092915050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b600e5481565b5f610a06848484611e97565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610a4d611ccd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac390612fac565b60405180910390fd5b610ae985610ad8611ccd565b8584610ae49190612ff7565b611cd4565b60019150509392505050565b5f6012905090565b5f610b9a610b09611ccd565b848460015f610b16611ccd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b95919061302a565b611cd4565b6001905092915050565b610bac611ccd565b73ffffffffffffffffffffffffffffffffffffffff16610bca6110ea565b73ffffffffffffffffffffffffffffffffffffffff1614610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c17906130a7565b60405180910390fd5b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600c5481565b600760169054906101000a900460ff1681565b600d5481565b610ccb611ccd565b73ffffffffffffffffffffffffffffffffffffffff16610ce96110ea565b73ffffffffffffffffffffffffffffffffffffffff1614610d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d36906130a7565b60405180910390fd5b80600d8190555050565b5f600e5490505f600c5443610d5e9190612ff7565b90505f600d5482610d6f91906130f2565b90505f81118015610d805750606381105b15610dca5782811015610db5578083610d999190612ff7565b92508083610da79190612ff7565b925082600e81905550610dc5565b43600c819055506063600e819055505b610dda565b43600c819055506063600e819055505b505050565b600760159054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e3f611ccd565b73ffffffffffffffffffffffffffffffffffffffff16610e5d6110ea565b73ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa906130a7565b60405180910390fd5b610ebc5f61224d565b565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610eeb611ccd565b73ffffffffffffffffffffffffffffffffffffffff16610f096110ea565b73ffffffffffffffffffffffffffffffffffffffff1614610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f56906130a7565b60405180910390fd5b600760169054906101000a900460ff1615610faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa69061316c565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550565b610fef611ccd565b73ffffffffffffffffffffffffffffffffffffffff1661100d6110ea565b73ffffffffffffffffffffffffffffffffffffffff1614611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105a906130a7565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6110876110ea565b836040518363ffffffff1660e01b81526004016110a592919061318a565b6020604051808303815f875af11580156110c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e591906131c5565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61113f611ccd565b73ffffffffffffffffffffffffffffffffffffffff1661115d6110ea565b73ffffffffffffffffffffffffffffffffffffffff16146111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa906130a7565b60405180910390fd5b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611255573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112799190613204565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016112d492919061322f565b6020604051808303815f875af11580156112f0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113149190613204565b90508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6060600480546113aa90612f0c565b80601f01602080910402602001604051908101604052809291908181526020018280546113d690612f0c565b80156114215780601f106113f857610100808354040283529160200191611421565b820191905f5260205f20905b81548152906001019060200180831161140457829003601f168201915b5050505050905090565b611433611ccd565b73ffffffffffffffffffffffffffffffffffffffff166114516110ea565b73ffffffffffffffffffffffffffffffffffffffff16146114a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149e906130a7565b60405180910390fd5b6114d7816114b36110ea565b73ffffffffffffffffffffffffffffffffffffffff1661231090919063ffffffff16565b50565b6114e2611ccd565b73ffffffffffffffffffffffffffffffffffffffff166115006110ea565b73ffffffffffffffffffffffffffffffffffffffff1614611556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154d906130a7565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f8060015f6115a6611ccd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611660576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611657906132c6565b60405180910390fd5b61167d61166b611ccd565b8585846116789190612ff7565b611cd4565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6116c06116b9611ccd565b8484611e97565b6001905092915050565b6116d2611ccd565b73ffffffffffffffffffffffffffffffffffffffff166116f06110ea565b73ffffffffffffffffffffffffffffffffffffffff1614611746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173d906130a7565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611791611ccd565b73ffffffffffffffffffffffffffffffffffffffff166117af6110ea565b73ffffffffffffffffffffffffffffffffffffffff1614611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc906130a7565b60405180910390fd5b61180e81612400565b50565b611819611ccd565b73ffffffffffffffffffffffffffffffffffffffff166118376110ea565b73ffffffffffffffffffffffffffffffffffffffff161461188d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611884906130a7565b60405180910390fd5b5f5b815181101561191a57600160105f8484815181106118b0576118af6132e4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061191290613311565b91505061188f565b5050565b600f602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6119c5611ccd565b73ffffffffffffffffffffffffffffffffffffffff166119e36110ea565b73ffffffffffffffffffffffffffffffffffffffff1614611a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a30906130a7565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611a5e611ccd565b73ffffffffffffffffffffffffffffffffffffffff16611a7c6110ea565b73ffffffffffffffffffffffffffffffffffffffff1614611ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac9906130a7565b60405180910390fd5b611adb81612635565b50565b611ae6611ccd565b73ffffffffffffffffffffffffffffffffffffffff16611b046110ea565b73ffffffffffffffffffffffffffffffffffffffff1614611b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b51906130a7565b60405180910390fd5b80600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611bba611ccd565b73ffffffffffffffffffffffffffffffffffffffff16611bd86110ea565b73ffffffffffffffffffffffffffffffffffffffff1614611c2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c25906130a7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c93906133c8565b60405180910390fd5b611ca58161224d565b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3990613456565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da7906134e4565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e8a91906128cf565b60405180910390a3505050565b5f8111611ed9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed090613572565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611f77575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fad906135da565b60405180910390fd5b611fbe610d49565b600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561205c5750600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156120b157600760169054906101000a900460ff166120b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a790613642565b60405180910390fd5b5b5f600760149054906101000a900460ff16806121135750600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806121645750600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612171575f90506121e3565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121e2576064600e54836121d59190613660565b6121df91906130f2565b90505b5b600760159054906101000a900460ff16801561220c5750600760149054906101000a900460ff16155b801561221757505f81115b156122315761222784308361263f565b61223081612400565b5b612247848483856122429190612ff7565b61263f565b50505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015612353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234a906136eb565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff168260405161237890613736565b5f6040518083038185875af1925050503d805f81146123b2576040519150601f19603f3d011682016040523d82523d5f602084013e6123b7565b606091505b50509050806123fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f2906137ba565b60405180910390fd5b505050565b600760149054906101000a900460ff16612632576001600760146101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561244b5761244a612c17565b5b6040519080825280602002602001820160405280156124795781602001602082028036833780820191505090505b50905030815f815181106124905761248f6132e4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612500576124ff6132e4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125663060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cd4565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8460095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016125e99594939291906138c8565b5f604051808303815f87803b158015612600575f80fd5b505af1158015612612573d5f803e3d5ffd5b50505050505f600760146101000a81548160ff0219169083151502179055505b50565b80600e8190555050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a490613990565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361271b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271290613a1e565b60405180910390fd5b6127268383836128b2565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156127a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a090613aac565b60405180910390fd5b81816127b59190612ff7565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612840919061302a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128a491906128cf565b60405180910390a350505050565b505050565b5f819050919050565b6128c9816128b7565b82525050565b5f6020820190506128e25f8301846128c0565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561291f578082015181840152602081019050612904565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612944826128e8565b61294e81856128f2565b935061295e818560208601612902565b6129678161292a565b840191505092915050565b5f6020820190508181035f83015261298a818461293a565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6129cc826129a3565b9050919050565b6129dc816129c2565b81146129e6575f80fd5b50565b5f813590506129f7816129d3565b92915050565b612a06816128b7565b8114612a10575f80fd5b50565b5f81359050612a21816129fd565b92915050565b5f8060408385031215612a3d57612a3c61299b565b5b5f612a4a858286016129e9565b9250506020612a5b85828601612a13565b9150509250929050565b5f8115159050919050565b612a7981612a65565b82525050565b5f602082019050612a925f830184612a70565b92915050565b612aa1816129c2565b82525050565b5f602082019050612aba5f830184612a98565b92915050565b5f805f60608486031215612ad757612ad661299b565b5b5f612ae4868287016129e9565b9350506020612af5868287016129e9565b9250506040612b0686828701612a13565b9150509250925092565b5f60ff82169050919050565b612b2581612b10565b82525050565b5f602082019050612b3e5f830184612b1c565b92915050565b5f612b4e826129c2565b9050919050565b612b5e81612b44565b8114612b68575f80fd5b50565b5f81359050612b7981612b55565b92915050565b5f8060408385031215612b9557612b9461299b565b5b5f612ba285828601612b6b565b9250506020612bb3858286016129e9565b9150509250929050565b5f60208284031215612bd257612bd161299b565b5b5f612bdf84828501612a13565b91505092915050565b5f60208284031215612bfd57612bfc61299b565b5b5f612c0a848285016129e9565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612c4d8261292a565b810181811067ffffffffffffffff82111715612c6c57612c6b612c17565b5b80604052505050565b5f612c7e612992565b9050612c8a8282612c44565b919050565b5f67ffffffffffffffff821115612ca957612ca8612c17565b5b602082029050602081019050919050565b5f80fd5b5f612cd0612ccb84612c8f565b612c75565b90508083825260208201905060208402830185811115612cf357612cf2612cba565b5b835b81811015612d1c5780612d0888826129e9565b845260208401935050602081019050612cf5565b5050509392505050565b5f82601f830112612d3a57612d39612c13565b5b8135612d4a848260208601612cbe565b91505092915050565b5f60208284031215612d6857612d6761299b565b5b5f82013567ffffffffffffffff811115612d8557612d8461299f565b5b612d9184828501612d26565b91505092915050565b5f8060408385031215612db057612daf61299b565b5b5f612dbd858286016129e9565b9250506020612dce858286016129e9565b9150509250929050565b612de181612a65565b8114612deb575f80fd5b50565b5f81359050612dfc81612dd8565b92915050565b5f60208284031215612e1757612e1661299b565b5b5f612e2484828501612dee565b91505092915050565b5f8060408385031215612e4357612e4261299b565b5b5f612e50858286016129e9565b9250506020612e6185828601612dee565b9150509250929050565b5f819050919050565b5f612e8e612e89612e84846129a3565b612e6b565b6129a3565b9050919050565b5f612e9f82612e74565b9050919050565b5f612eb082612e95565b9050919050565b612ec081612ea6565b82525050565b5f602082019050612ed95f830184612eb7565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612f2357607f821691505b602082108103612f3657612f35612edf565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612f966028836128f2565b9150612fa182612f3c565b604082019050919050565b5f6020820190508181035f830152612fc381612f8a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613001826128b7565b915061300c836128b7565b925082820390508181111561302457613023612fca565b5b92915050565b5f613034826128b7565b915061303f836128b7565b925082820190508082111561305757613056612fca565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6130916020836128f2565b915061309c8261305d565b602082019050919050565b5f6020820190508181035f8301526130be81613085565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6130fc826128b7565b9150613107836128b7565b925082613117576131166130c5565b5b828204905092915050565b7f54726164696e6720616c726561647920616374697665000000000000000000005f82015250565b5f6131566016836128f2565b915061316182613122565b602082019050919050565b5f6020820190508181035f8301526131838161314a565b9050919050565b5f60408201905061319d5f830185612a98565b6131aa60208301846128c0565b9392505050565b5f815190506131bf81612dd8565b92915050565b5f602082840312156131da576131d961299b565b5b5f6131e7848285016131b1565b91505092915050565b5f815190506131fe816129d3565b92915050565b5f602082840312156132195761321861299b565b5b5f613226848285016131f0565b91505092915050565b5f6040820190506132425f830185612a98565b61324f6020830184612a98565b9392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6132b06025836128f2565b91506132bb82613256565b604082019050919050565b5f6020820190508181035f8301526132dd816132a4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61331b826128b7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361334d5761334c612fca565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6133b26026836128f2565b91506133bd82613358565b604082019050919050565b5f6020820190508181035f8301526133df816133a6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134406024836128f2565b915061344b826133e6565b604082019050919050565b5f6020820190508181035f83015261346d81613434565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134ce6022836128f2565b91506134d982613474565b604082019050919050565b5f6020820190508181035f8301526134fb816134c2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61355c6029836128f2565b915061356782613502565b604082019050919050565b5f6020820190508181035f83015261358981613550565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e73000000000000005f82015250565b5f6135c46019836128f2565b91506135cf82613590565b602082019050919050565b5f6020820190508181035f8301526135f1816135b8565b9050919050565b7f54726164696e67206e6f742061637469766520796574000000000000000000005f82015250565b5f61362c6016836128f2565b9150613637826135f8565b602082019050919050565b5f6020820190508181035f83015261365981613620565b9050919050565b5f61366a826128b7565b9150613675836128b7565b9250828202613683816128b7565b9150828204841483151761369a57613699612fca565b5b5092915050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f6136d5601d836128f2565b91506136e0826136a1565b602082019050919050565b5f6020820190508181035f830152613702816136c9565b9050919050565b5f81905092915050565b50565b5f6137215f83613709565b915061372c82613713565b5f82019050919050565b5f61374082613716565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f6137a4603a836128f2565b91506137af8261374a565b604082019050919050565b5f6020820190508181035f8301526137d181613798565b9050919050565b5f819050919050565b5f6137fb6137f66137f1846137d8565b612e6b565b6128b7565b9050919050565b61380b816137e1565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613843816129c2565b82525050565b5f613854838361383a565b60208301905092915050565b5f602082019050919050565b5f61387682613811565b613880818561381b565b935061388b8361382b565b805f5b838110156138bb5781516138a28882613849565b97506138ad83613860565b92505060018101905061388e565b5085935050505092915050565b5f60a0820190506138db5f8301886128c0565b6138e86020830187613802565b81810360408301526138fa818661386c565b90506139096060830185612a98565b61391660808301846128c0565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61397a6025836128f2565b915061398582613920565b604082019050919050565b5f6020820190508181035f8301526139a78161396e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613a086023836128f2565b9150613a13826139ae565b604082019050919050565b5f6020820190508181035f830152613a35816139fc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613a966026836128f2565b9150613aa182613a3c565b604082019050919050565b5f6020820190508181035f830152613ac381613a8a565b905091905056fea2646970667358221220138f43a2a7e0d10468eadf3f80a251bca1e8440d430e897c22e4b3f350e1d89464736f6c63430008140033

Deployed Bytecode Sourcemap

7443:5620:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7677:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1697:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2611:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7872:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2018:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8041:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2788:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1917:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3218:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12172:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7959:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7642:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7997:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11070:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8907:753;;;;;;;;;;;;;:::i;:::-;;7612:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2134:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6539:94;;;;;;;;;;;;;:::i;:::-;;7714:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11190:174;;;;;;;;;;;;;:::i;:::-;;12636:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6316:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7796:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11596:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1805:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12787:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12059:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3441:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7556:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2269:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11472:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12908:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12318:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8080:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2452:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10969:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11951:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12494:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6641:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7528:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7677:28;;;;:::o;1697:100::-;1751:13;1784:5;1777:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1697:100;:::o;2611:169::-;2694:4;2711:39;2720:12;:10;:12::i;:::-;2734:7;2743:6;2711:8;:39::i;:::-;2768:4;2761:11;;2611:169;;;;:::o;7872:78::-;;;;;;;;;;;;;:::o;2018:108::-;2079:7;2106:12;;2099:19;;2018:108;:::o;8041:30::-;;;;:::o;2788:422::-;2894:4;2911:36;2921:6;2929:9;2940:6;2911:9;:36::i;:::-;2960:24;2987:11;:19;2999:6;2987:19;;;;;;;;;;;;;;;:33;3007:12;:10;:12::i;:::-;2987:33;;;;;;;;;;;;;;;;2960:60;;3059:6;3039:16;:26;;3031:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3121:57;3130:6;3138:12;:10;:12::i;:::-;3171:6;3152:16;:25;;;;:::i;:::-;3121:8;:57::i;:::-;3198:4;3191:11;;;2788:422;;;;;:::o;1917:93::-;1975:5;2000:2;1993:9;;1917:93;:::o;3218:215::-;3306:4;3323:80;3332:12;:10;:12::i;:::-;3346:7;3392:10;3355:11;:25;3367:12;:10;:12::i;:::-;3355:25;;;;;;;;;;;;;;;:34;3381:7;3355:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;3323:8;:80::i;:::-;3421:4;3414:11;;3218:215;;;;:::o;12172:138::-;6462:12;:10;:12::i;:::-;6451:23;;:7;:5;:7::i;:::-;:23;;;6443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12272:7:::1;12263:6;;:16;;;;;;;;;;;;;;;;;;12297:5;12290:4;;:12;;;;;;;;;;;;;;;;;;12172:138:::0;;:::o;7959:31::-;;;;:::o;7642:26::-;;;;;;;;;;;;;:::o;7997:35::-;;;;:::o;11070:112::-;6462:12;:10;:12::i;:::-;6451:23;;:7;:5;:7::i;:::-;:23;;;6443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11164:10:::1;11147:14;:27;;;;11070:112:::0;:::o;8907:753::-;8953:16;8972:10;;8953:29;;8995:19;9032:16;;9017:12;:31;;;;:::i;:::-;8995:53;;9061:33;9111:14;;9097:11;:28;;;;:::i;:::-;9061:64;;9170:1;9142:25;:29;:63;;;;;9203:2;9175:25;:30;9142:63;9138:515;;;9254:8;9226:25;:36;9222:326;;;9305:25;9294:8;:36;;;;:::i;:::-;9283:47;;9361:25;9349:37;;;;;:::i;:::-;;;9418:8;9405:10;:21;;;;9222:326;;;9486:12;9467:16;:31;;;;9530:2;9517:10;:15;;;;9222:326;9138:515;;;9599:12;9580:16;:31;;;;9639:2;9626:10;:15;;;;9138:515;8942:718;;;8907:753::o;7612:23::-;;;;;;;;;;;;;:::o;2134:127::-;2208:7;2235:9;:18;2245:7;2235:18;;;;;;;;;;;;;;;;2228:25;;2134:127;;;:::o;6539:94::-;6462:12;:10;:12::i;:::-;6451:23;;:7;:5;:7::i;:::-;:23;;;6443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6604:21:::1;6622:1;6604:9;:21::i;:::-;6539:94::o:0;7714:75::-;;;;;;;;;;;;;:::o;11190:174::-;6462:12;:10;:12::i;:::-;6451:23;;:7;:5;:7::i;:::-;:23;;;6443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11254:14:::1;;;;;;;;;;;11253:15;11245:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11323:4;11306:14;;:21;;;;;;;;;;;;;;;;;;11352:4;11338:11;;:18;;;;;;;;;;;;;;;;;;11190:174::o:0;12636:143::-;6462:12;:10;:12::i;:::-;6451:23;;:7;:5;:7::i;:::-;:23;;;6443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12732:12:::1;12725:29;;;12755:7;:5;:7::i;:::-;12764:6;12725:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12636:143:::0;;:::o;6316:87::-;6362:7;6389:6;;;;;;;;;;;6382:13;;6316:87;:::o;7796:69::-;;;;;;;;;;;;;:::o;11596:347::-;6462:12;:10;:12::i;:::-;6451:23;;:7;:5;:7::i;:::-;:23;;;6443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11694:9:::1;11673:18;;:30;;;;;;;;;;;;;;;;;;11714:15;11740:42;11714:69;;11794:13;11819:7;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11810:38;;;11857:4;11864:18;;;;;;;;;;;11810:73;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11794:89;;11905:7;11896:6;;:16;;;;;;;;;;;;;;;;;;11930:5;11923:4;;:12;;;;;;;;;;;;;;;;;;11662:281;;11596:347:::0;:::o;1805:104::-;1861:13;1894:7;1887:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1805:104;:::o;12787:113::-;6462:12;:10;:12::i;:::-;6451:23;;:7;:5;:7::i;:::-;:23;;;6443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12855:37:::1;12882:9;12863:7;:5;:7::i;:::-;12855:26;;;;:37;;;;:::i;:::-;12787:113:::0;:::o;12059:105::-;6462:12;:10;:12::i;:::-;6451:23;;:7;:5;:7::i;:::-;:23;;;6443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12147:9:::1;12135;;:21;;;;;;;;;;;;;;;;;;12059:105:::0;:::o;3441:377::-;3534:4;3551:24;3578:11;:25;3590:12;:10;:12::i;:::-;3578:25;;;;;;;;;;;;;;;:34;3604:7;3578:34;;;;;;;;;;;;;;;;3551:61;;3651:15;3631:16;:35;;3623:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3719:67;3728:12;:10;:12::i;:::-;3742:7;3770:15;3751:16;:34;;;;:::i;:::-;3719:8;:67::i;:::-;3806:4;3799:11;;;3441:377;;;;:::o;7556:19::-;;;;;;;;;;;;;:::o;2269:175::-;2355:4;2372:42;2382:12;:10;:12::i;:::-;2396:9;2407:6;2372:9;:42::i;:::-;2432:4;2425:11;;2269:175;;;;:::o;11472:115::-;6462:12;:10;:12::i;:::-;6451:23;;:7;:5;:7::i;:::-;:23;;;6443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11570:9:::1;11552:15;;:27;;;;;;;;;;;;;;;;;;11472:115:::0;:::o;12908:97::-;6462:12;:10;:12::i;:::-;6451:23;;:7;:5;:7::i;:::-;:23;;;6443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12974:23:::1;12990:6;12974:15;:23::i;:::-;12908:97:::0;:::o;12318:168::-;6462:12;:10;:12::i;:::-;6451:23;;:7;:5;:7::i;:::-;:23;;;6443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12393:6:::1;12388:91;12409:6;:13;12405:1;:17;12388:91;;;12463:4;12444:5;:16;12450:6;12457:1;12450:9;;;;;;;;:::i;:::-;;;;;;;;12444:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12424:3;;;;;:::i;:::-;;;;12388:91;;;;12318:168:::0;:::o;8080:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2452:151::-;2541:7;2568:11;:18;2580:5;2568:18;;;;;;;;;;;;;;;:27;2587:7;2568:27;;;;;;;;;;;;;;;;2561:34;;2452:151;;;;:::o;10969:93::-;6462:12;:10;:12::i;:::-;6451:23;;:7;:5;:7::i;:::-;:23;;;6443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11049:5:::1;11035:11;;:19;;;;;;;;;;;;;;;;;;10969:93:::0;:::o;11951:100::-;6462:12;:10;:12::i;:::-;6451:23;;:7;:5;:7::i;:::-;:23;;;6443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12021:22:::1;12035:7;12021:13;:22::i;:::-;11951:100:::0;:::o;12494:134::-;6462:12;:10;:12::i;:::-;6451:23;;:7;:5;:7::i;:::-;:23;;;6443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12615:5:::1;12586:16;:26;12603:8;12586:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12494:134:::0;;:::o;6641:192::-;6462:12;:10;:12::i;:::-;6451:23;;:7;:5;:7::i;:::-;:23;;;6443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6750:1:::1;6730:22;;:8;:22;;::::0;6722:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6806:19;6816:8;6806:9;:19::i;:::-;6641:192:::0;:::o;7528:21::-;;;;;;;;;;;;;:::o;144:98::-;197:7;224:10;217:17;;144:98;:::o;5286:346::-;5405:1;5388:19;;:5;:19;;;5380:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5486:1;5467:21;;:7;:21;;;5459:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5570:6;5540:11;:18;5552:5;5540:18;;;;;;;;;;;;;;;:27;5559:7;5540:27;;;;;;;;;;;;;;;:36;;;;5608:7;5592:32;;5601:5;5592:32;;;5617:6;5592:32;;;;;;:::i;:::-;;;;;;;;5286:346;;;:::o;9668:871::-;9784:1;9775:6;:10;9767:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9851:5;:13;9857:6;9851:13;;;;;;;;;;;;;;;;;;;;;;;;;9850:14;:35;;;;;9869:5;:16;9875:9;9869:16;;;;;;;;;;;;;;;;;;;;;;;;;9868:17;9850:35;9842:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9928:18;:16;:18::i;:::-;9964:16;:24;9981:6;9964:24;;;;;;;;;;;;;;;;;;;;;;;;;9963:25;:57;;;;;9993:16;:27;10010:9;9993:27;;;;;;;;;;;;;;;;;;;;;;;;;9992:28;9963:57;9959:139;;;10045:14;;;;;;;;;;;10037:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9959:139;10110:11;10138:8;;;;;;;;;;;:36;;;;10150:16;:24;10167:6;10150:24;;;;;;;;;;;;;;;;;;;;;;;;;10138:36;:67;;;;10178:16;:27;10195:9;10178:27;;;;;;;;;;;;;;;;;;;;;;;;;10138:67;10134:179;;;10213:1;10207:7;;10134:179;;;10262:4;;;;;;;;;;;10249:17;;:9;:17;;;10245:56;;10298:3;10284:10;;10275:6;:19;;;;:::i;:::-;10274:27;;;;:::i;:::-;10268:33;;10245:56;10134:179;10329:11;;;;;;;;;;;:24;;;;;10345:8;;;;;;;;;;;10344:9;10329:24;:35;;;;;10363:1;10357:3;:7;10329:35;10325:146;;;10381:43;10397:6;10413:4;10420:3;10381:15;:43::i;:::-;10439:20;10455:3;10439:15;:20::i;:::-;10325:146;10483:48;10499:6;10507:9;10527:3;10518:6;:12;;;;:::i;:::-;10483:15;:48::i;:::-;9756:783;9668:871;;;:::o;6841:173::-;6897:16;6916:6;;;;;;;;;;;6897:25;;6942:8;6933:6;;:17;;;;;;;;;;;;;;;;;;6997:8;6966:40;;6987:8;6966:40;;;;;;;;;;;;6886:128;6841:173;:::o;5761:317::-;5876:6;5851:21;:31;;5843:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5930:12;5948:9;:14;;5970:6;5948:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5929:52;;;6000:7;5992:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;5832:246;5761:317;;:::o;10547:414::-;8216:8;;;;;;;;;;;8211:104;;8252:4;8241:8;;:15;;;;;;;;;;;;;;;;;;10619:21:::1;10657:1;10643:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10619:40;;10688:4;10670;10675:1;10670:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10714:18;;;;;;;;;;;10704:4;10709:1;10704:7;;;;;;;;:::i;:::-;;;;;;;:28;;;;;;;;;::::0;::::1;10745:53;10762:4;10777:6;;;;;;;;;;;10786:11;10745:8;:53::i;:::-;10837:6;;;;;;;;;;;:60;;;10898:11;10911:1;10914:4;10920:15;;;;;;;;;;;10937;10837:116;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10608:353;8298:5:::0;8287:8;;:16;;;;;;;;;;;;;;;;;;8211:104;10547:414;:::o;11372:92::-;11447:9;11434:10;:22;;;;11372:92;:::o;3826:604::-;3950:1;3932:20;;:6;:20;;;3924:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4034:1;4013:23;;:9;:23;;;4005:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4089:47;4110:6;4118:9;4129:6;4089:20;:47::i;:::-;4149:21;4173:9;:17;4183:6;4173:17;;;;;;;;;;;;;;;;4149:41;;4226:6;4209:13;:23;;4201:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4322:6;4306:13;:22;;;;:::i;:::-;4286:9;:17;4296:6;4286:17;;;;;;;;;;;;;;;:42;;;;4363:6;4339:9;:20;4349:9;4339:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4404:9;4387:35;;4396:6;4387:35;;;4415:6;4387:35;;;;;;:::i;:::-;;;;;;;;3913:517;3826:604;;;:::o;5640:91::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:75::-;1817:6;1850:2;1844:9;1834:19;;1784:75;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:619::-;4227:6;4235;4243;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4545:2;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4516:118;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4150:619;;;;;:::o;4775:86::-;4810:7;4850:4;4843:5;4839:16;4828:27;;4775:86;;;:::o;4867:112::-;4950:22;4966:5;4950:22;:::i;:::-;4945:3;4938:35;4867:112;;:::o;4985:214::-;5074:4;5112:2;5101:9;5097:18;5089:26;;5125:67;5189:1;5178:9;5174:17;5165:6;5125:67;:::i;:::-;4985:214;;;;:::o;5205:111::-;5257:7;5286:24;5304:5;5286:24;:::i;:::-;5275:35;;5205:111;;;:::o;5322:152::-;5410:39;5443:5;5410:39;:::i;:::-;5403:5;5400:50;5390:78;;5464:1;5461;5454:12;5390:78;5322:152;:::o;5480:169::-;5541:5;5579:6;5566:20;5557:29;;5595:48;5637:5;5595:48;:::i;:::-;5480:169;;;;:::o;5655:504::-;5738:6;5746;5795:2;5783:9;5774:7;5770:23;5766:32;5763:119;;;5801:79;;:::i;:::-;5763:119;5921:1;5946:68;6006:7;5997:6;5986:9;5982:22;5946:68;:::i;:::-;5936:78;;5892:132;6063:2;6089:53;6134:7;6125:6;6114:9;6110:22;6089:53;:::i;:::-;6079:63;;6034:118;5655:504;;;;;:::o;6165:329::-;6224:6;6273:2;6261:9;6252:7;6248:23;6244:32;6241:119;;;6279:79;;:::i;:::-;6241:119;6399:1;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6370:117;6165:329;;;;:::o;6500:::-;6559:6;6608:2;6596:9;6587:7;6583:23;6579:32;6576:119;;;6614:79;;:::i;:::-;6576:119;6734:1;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6705:117;6500:329;;;;:::o;6835:117::-;6944:1;6941;6934:12;6958:180;7006:77;7003:1;6996:88;7103:4;7100:1;7093:15;7127:4;7124:1;7117:15;7144:281;7227:27;7249:4;7227:27;:::i;:::-;7219:6;7215:40;7357:6;7345:10;7342:22;7321:18;7309:10;7306:34;7303:62;7300:88;;;7368:18;;:::i;:::-;7300:88;7408:10;7404:2;7397:22;7187:238;7144:281;;:::o;7431:129::-;7465:6;7492:20;;:::i;:::-;7482:30;;7521:33;7549:4;7541:6;7521:33;:::i;:::-;7431:129;;;:::o;7566:311::-;7643:4;7733:18;7725:6;7722:30;7719:56;;;7755:18;;:::i;:::-;7719:56;7805:4;7797:6;7793:17;7785:25;;7865:4;7859;7855:15;7847:23;;7566:311;;;:::o;7883:117::-;7992:1;7989;7982:12;8023:710;8119:5;8144:81;8160:64;8217:6;8160:64;:::i;:::-;8144:81;:::i;:::-;8135:90;;8245:5;8274:6;8267:5;8260:21;8308:4;8301:5;8297:16;8290:23;;8361:4;8353:6;8349:17;8341:6;8337:30;8390:3;8382:6;8379:15;8376:122;;;8409:79;;:::i;:::-;8376:122;8524:6;8507:220;8541:6;8536:3;8533:15;8507:220;;;8616:3;8645:37;8678:3;8666:10;8645:37;:::i;:::-;8640:3;8633:50;8712:4;8707:3;8703:14;8696:21;;8583:144;8567:4;8562:3;8558:14;8551:21;;8507:220;;;8511:21;8125:608;;8023:710;;;;;:::o;8756:370::-;8827:5;8876:3;8869:4;8861:6;8857:17;8853:27;8843:122;;8884:79;;:::i;:::-;8843:122;9001:6;8988:20;9026:94;9116:3;9108:6;9101:4;9093:6;9089:17;9026:94;:::i;:::-;9017:103;;8833:293;8756:370;;;;:::o;9132:539::-;9216:6;9265:2;9253:9;9244:7;9240:23;9236:32;9233:119;;;9271:79;;:::i;:::-;9233:119;9419:1;9408:9;9404:17;9391:31;9449:18;9441:6;9438:30;9435:117;;;9471:79;;:::i;:::-;9435:117;9576:78;9646:7;9637:6;9626:9;9622:22;9576:78;:::i;:::-;9566:88;;9362:302;9132:539;;;;:::o;9677:474::-;9745:6;9753;9802:2;9790:9;9781:7;9777:23;9773:32;9770:119;;;9808:79;;:::i;:::-;9770:119;9928:1;9953:53;9998:7;9989:6;9978:9;9974:22;9953:53;:::i;:::-;9943:63;;9899:117;10055:2;10081:53;10126:7;10117:6;10106:9;10102:22;10081:53;:::i;:::-;10071:63;;10026:118;9677:474;;;;;:::o;10157:116::-;10227:21;10242:5;10227:21;:::i;:::-;10220:5;10217:32;10207:60;;10263:1;10260;10253:12;10207:60;10157:116;:::o;10279:133::-;10322:5;10360:6;10347:20;10338:29;;10376:30;10400:5;10376:30;:::i;:::-;10279:133;;;;:::o;10418:323::-;10474:6;10523:2;10511:9;10502:7;10498:23;10494:32;10491:119;;;10529:79;;:::i;:::-;10491:119;10649:1;10674:50;10716:7;10707:6;10696:9;10692:22;10674:50;:::i;:::-;10664:60;;10620:114;10418:323;;;;:::o;10747:468::-;10812:6;10820;10869:2;10857:9;10848:7;10844:23;10840:32;10837:119;;;10875:79;;:::i;:::-;10837:119;10995:1;11020:53;11065:7;11056:6;11045:9;11041:22;11020:53;:::i;:::-;11010:63;;10966:117;11122:2;11148:50;11190:7;11181:6;11170:9;11166:22;11148:50;:::i;:::-;11138:60;;11093:115;10747:468;;;;;:::o;11221:60::-;11249:3;11270:5;11263:12;;11221:60;;;:::o;11287:142::-;11337:9;11370:53;11388:34;11397:24;11415:5;11397:24;:::i;:::-;11388:34;:::i;:::-;11370:53;:::i;:::-;11357:66;;11287:142;;;:::o;11435:126::-;11485:9;11518:37;11549:5;11518:37;:::i;:::-;11505:50;;11435:126;;;:::o;11567:141::-;11632:9;11665:37;11696:5;11665:37;:::i;:::-;11652:50;;11567:141;;;:::o;11714:161::-;11816:52;11862:5;11816:52;:::i;:::-;11811:3;11804:65;11714:161;;:::o;11881:252::-;11989:4;12027:2;12016:9;12012:18;12004:26;;12040:86;12123:1;12112:9;12108:17;12099:6;12040:86;:::i;:::-;11881:252;;;;:::o;12139:180::-;12187:77;12184:1;12177:88;12284:4;12281:1;12274:15;12308:4;12305:1;12298:15;12325:320;12369:6;12406:1;12400:4;12396:12;12386:22;;12453:1;12447:4;12443:12;12474:18;12464:81;;12530:4;12522:6;12518:17;12508:27;;12464:81;12592:2;12584:6;12581:14;12561:18;12558:38;12555:84;;12611:18;;:::i;:::-;12555:84;12376:269;12325:320;;;:::o;12651:227::-;12791:34;12787:1;12779:6;12775:14;12768:58;12860:10;12855:2;12847:6;12843:15;12836:35;12651:227;:::o;12884:366::-;13026:3;13047:67;13111:2;13106:3;13047:67;:::i;:::-;13040:74;;13123:93;13212:3;13123:93;:::i;:::-;13241:2;13236:3;13232:12;13225:19;;12884:366;;;:::o;13256:419::-;13422:4;13460:2;13449:9;13445:18;13437:26;;13509:9;13503:4;13499:20;13495:1;13484:9;13480:17;13473:47;13537:131;13663:4;13537:131;:::i;:::-;13529:139;;13256:419;;;:::o;13681:180::-;13729:77;13726:1;13719:88;13826:4;13823:1;13816:15;13850:4;13847:1;13840:15;13867:194;13907:4;13927:20;13945:1;13927:20;:::i;:::-;13922:25;;13961:20;13979:1;13961:20;:::i;:::-;13956:25;;14005:1;14002;13998:9;13990:17;;14029:1;14023:4;14020:11;14017:37;;;14034:18;;:::i;:::-;14017:37;13867:194;;;;:::o;14067:191::-;14107:3;14126:20;14144:1;14126:20;:::i;:::-;14121:25;;14160:20;14178:1;14160:20;:::i;:::-;14155:25;;14203:1;14200;14196:9;14189:16;;14224:3;14221:1;14218:10;14215:36;;;14231:18;;:::i;:::-;14215:36;14067:191;;;;:::o;14264:182::-;14404:34;14400:1;14392:6;14388:14;14381:58;14264:182;:::o;14452:366::-;14594:3;14615:67;14679:2;14674:3;14615:67;:::i;:::-;14608:74;;14691:93;14780:3;14691:93;:::i;:::-;14809:2;14804:3;14800:12;14793:19;;14452:366;;;:::o;14824:419::-;14990:4;15028:2;15017:9;15013:18;15005:26;;15077:9;15071:4;15067:20;15063:1;15052:9;15048:17;15041:47;15105:131;15231:4;15105:131;:::i;:::-;15097:139;;14824:419;;;:::o;15249:180::-;15297:77;15294:1;15287:88;15394:4;15391:1;15384:15;15418:4;15415:1;15408:15;15435:185;15475:1;15492:20;15510:1;15492:20;:::i;:::-;15487:25;;15526:20;15544:1;15526:20;:::i;:::-;15521:25;;15565:1;15555:35;;15570:18;;:::i;:::-;15555:35;15612:1;15609;15605:9;15600:14;;15435:185;;;;:::o;15626:172::-;15766:24;15762:1;15754:6;15750:14;15743:48;15626:172;:::o;15804:366::-;15946:3;15967:67;16031:2;16026:3;15967:67;:::i;:::-;15960:74;;16043:93;16132:3;16043:93;:::i;:::-;16161:2;16156:3;16152:12;16145:19;;15804:366;;;:::o;16176:419::-;16342:4;16380:2;16369:9;16365:18;16357:26;;16429:9;16423:4;16419:20;16415:1;16404:9;16400:17;16393:47;16457:131;16583:4;16457:131;:::i;:::-;16449:139;;16176:419;;;:::o;16601:332::-;16722:4;16760:2;16749:9;16745:18;16737:26;;16773:71;16841:1;16830:9;16826:17;16817:6;16773:71;:::i;:::-;16854:72;16922:2;16911:9;16907:18;16898:6;16854:72;:::i;:::-;16601:332;;;;;:::o;16939:137::-;16993:5;17024:6;17018:13;17009:22;;17040:30;17064:5;17040:30;:::i;:::-;16939:137;;;;:::o;17082:345::-;17149:6;17198:2;17186:9;17177:7;17173:23;17169:32;17166:119;;;17204:79;;:::i;:::-;17166:119;17324:1;17349:61;17402:7;17393:6;17382:9;17378:22;17349:61;:::i;:::-;17339:71;;17295:125;17082:345;;;;:::o;17433:143::-;17490:5;17521:6;17515:13;17506:22;;17537:33;17564:5;17537:33;:::i;:::-;17433:143;;;;:::o;17582:351::-;17652:6;17701:2;17689:9;17680:7;17676:23;17672:32;17669:119;;;17707:79;;:::i;:::-;17669:119;17827:1;17852:64;17908:7;17899:6;17888:9;17884:22;17852:64;:::i;:::-;17842:74;;17798:128;17582:351;;;;:::o;17939:332::-;18060:4;18098:2;18087:9;18083:18;18075:26;;18111:71;18179:1;18168:9;18164:17;18155:6;18111:71;:::i;:::-;18192:72;18260:2;18249:9;18245:18;18236:6;18192:72;:::i;:::-;17939:332;;;;;:::o;18277:224::-;18417:34;18413:1;18405:6;18401:14;18394:58;18486:7;18481:2;18473:6;18469:15;18462:32;18277:224;:::o;18507:366::-;18649:3;18670:67;18734:2;18729:3;18670:67;:::i;:::-;18663:74;;18746:93;18835:3;18746:93;:::i;:::-;18864:2;18859:3;18855:12;18848:19;;18507:366;;;:::o;18879:419::-;19045:4;19083:2;19072:9;19068:18;19060:26;;19132:9;19126:4;19122:20;19118:1;19107:9;19103:17;19096:47;19160:131;19286:4;19160:131;:::i;:::-;19152:139;;18879:419;;;:::o;19304:180::-;19352:77;19349:1;19342:88;19449:4;19446:1;19439:15;19473:4;19470:1;19463:15;19490:233;19529:3;19552:24;19570:5;19552:24;:::i;:::-;19543:33;;19598:66;19591:5;19588:77;19585:103;;19668:18;;:::i;:::-;19585:103;19715:1;19708:5;19704:13;19697:20;;19490:233;;;:::o;19729:225::-;19869:34;19865:1;19857:6;19853:14;19846:58;19938:8;19933:2;19925:6;19921:15;19914:33;19729:225;:::o;19960:366::-;20102:3;20123:67;20187:2;20182:3;20123:67;:::i;:::-;20116:74;;20199:93;20288:3;20199:93;:::i;:::-;20317:2;20312:3;20308:12;20301:19;;19960:366;;;:::o;20332:419::-;20498:4;20536:2;20525:9;20521:18;20513:26;;20585:9;20579:4;20575:20;20571:1;20560:9;20556:17;20549:47;20613:131;20739:4;20613:131;:::i;:::-;20605:139;;20332:419;;;:::o;20757:223::-;20897:34;20893:1;20885:6;20881:14;20874:58;20966:6;20961:2;20953:6;20949:15;20942:31;20757:223;:::o;20986:366::-;21128:3;21149:67;21213:2;21208:3;21149:67;:::i;:::-;21142:74;;21225:93;21314:3;21225:93;:::i;:::-;21343:2;21338:3;21334:12;21327:19;;20986:366;;;:::o;21358:419::-;21524:4;21562:2;21551:9;21547:18;21539:26;;21611:9;21605:4;21601:20;21597:1;21586:9;21582:17;21575:47;21639:131;21765:4;21639:131;:::i;:::-;21631:139;;21358:419;;;:::o;21783:221::-;21923:34;21919:1;21911:6;21907:14;21900:58;21992:4;21987:2;21979:6;21975:15;21968:29;21783:221;:::o;22010:366::-;22152:3;22173:67;22237:2;22232:3;22173:67;:::i;:::-;22166:74;;22249:93;22338:3;22249:93;:::i;:::-;22367:2;22362:3;22358:12;22351:19;;22010:366;;;:::o;22382:419::-;22548:4;22586:2;22575:9;22571:18;22563:26;;22635:9;22629:4;22625:20;22621:1;22610:9;22606:17;22599:47;22663:131;22789:4;22663:131;:::i;:::-;22655:139;;22382:419;;;:::o;22807:228::-;22947:34;22943:1;22935:6;22931:14;22924:58;23016:11;23011:2;23003:6;22999:15;22992:36;22807:228;:::o;23041:366::-;23183:3;23204:67;23268:2;23263:3;23204:67;:::i;:::-;23197:74;;23280:93;23369:3;23280:93;:::i;:::-;23398:2;23393:3;23389:12;23382:19;;23041:366;;;:::o;23413:419::-;23579:4;23617:2;23606:9;23602:18;23594:26;;23666:9;23660:4;23656:20;23652:1;23641:9;23637:17;23630:47;23694:131;23820:4;23694:131;:::i;:::-;23686:139;;23413:419;;;:::o;23838:175::-;23978:27;23974:1;23966:6;23962:14;23955:51;23838:175;:::o;24019:366::-;24161:3;24182:67;24246:2;24241:3;24182:67;:::i;:::-;24175:74;;24258:93;24347:3;24258:93;:::i;:::-;24376:2;24371:3;24367:12;24360:19;;24019:366;;;:::o;24391:419::-;24557:4;24595:2;24584:9;24580:18;24572:26;;24644:9;24638:4;24634:20;24630:1;24619:9;24615:17;24608:47;24672:131;24798:4;24672:131;:::i;:::-;24664:139;;24391:419;;;:::o;24816:172::-;24956:24;24952:1;24944:6;24940:14;24933:48;24816:172;:::o;24994:366::-;25136:3;25157:67;25221:2;25216:3;25157:67;:::i;:::-;25150:74;;25233:93;25322:3;25233:93;:::i;:::-;25351:2;25346:3;25342:12;25335:19;;24994:366;;;:::o;25366:419::-;25532:4;25570:2;25559:9;25555:18;25547:26;;25619:9;25613:4;25609:20;25605:1;25594:9;25590:17;25583:47;25647:131;25773:4;25647:131;:::i;:::-;25639:139;;25366:419;;;:::o;25791:410::-;25831:7;25854:20;25872:1;25854:20;:::i;:::-;25849:25;;25888:20;25906:1;25888:20;:::i;:::-;25883:25;;25943:1;25940;25936:9;25965:30;25983:11;25965:30;:::i;:::-;25954:41;;26144:1;26135:7;26131:15;26128:1;26125:22;26105:1;26098:9;26078:83;26055:139;;26174:18;;:::i;:::-;26055:139;25839:362;25791:410;;;;:::o;26207:179::-;26347:31;26343:1;26335:6;26331:14;26324:55;26207:179;:::o;26392:366::-;26534:3;26555:67;26619:2;26614:3;26555:67;:::i;:::-;26548:74;;26631:93;26720:3;26631:93;:::i;:::-;26749:2;26744:3;26740:12;26733:19;;26392:366;;;:::o;26764:419::-;26930:4;26968:2;26957:9;26953:18;26945:26;;27017:9;27011:4;27007:20;27003:1;26992:9;26988:17;26981:47;27045:131;27171:4;27045:131;:::i;:::-;27037:139;;26764:419;;;:::o;27189:147::-;27290:11;27327:3;27312:18;;27189:147;;;;:::o;27342:114::-;;:::o;27462:398::-;27621:3;27642:83;27723:1;27718:3;27642:83;:::i;:::-;27635:90;;27734:93;27823:3;27734:93;:::i;:::-;27852:1;27847:3;27843:11;27836:18;;27462:398;;;:::o;27866:379::-;28050:3;28072:147;28215:3;28072:147;:::i;:::-;28065:154;;28236:3;28229:10;;27866:379;;;:::o;28251:245::-;28391:34;28387:1;28379:6;28375:14;28368:58;28460:28;28455:2;28447:6;28443:15;28436:53;28251:245;:::o;28502:366::-;28644:3;28665:67;28729:2;28724:3;28665:67;:::i;:::-;28658:74;;28741:93;28830:3;28741:93;:::i;:::-;28859:2;28854:3;28850:12;28843:19;;28502:366;;;:::o;28874:419::-;29040:4;29078:2;29067:9;29063:18;29055:26;;29127:9;29121:4;29117:20;29113:1;29102:9;29098:17;29091:47;29155:131;29281:4;29155:131;:::i;:::-;29147:139;;28874:419;;;:::o;29299:85::-;29344:7;29373:5;29362:16;;29299:85;;;:::o;29390:158::-;29448:9;29481:61;29499:42;29508:32;29534:5;29508:32;:::i;:::-;29499:42;:::i;:::-;29481:61;:::i;:::-;29468:74;;29390:158;;;:::o;29554:147::-;29649:45;29688:5;29649:45;:::i;:::-;29644:3;29637:58;29554:147;;:::o;29707:114::-;29774:6;29808:5;29802:12;29792:22;;29707:114;;;:::o;29827:184::-;29926:11;29960:6;29955:3;29948:19;30000:4;29995:3;29991:14;29976:29;;29827:184;;;;:::o;30017:132::-;30084:4;30107:3;30099:11;;30137:4;30132:3;30128:14;30120:22;;30017:132;;;:::o;30155:108::-;30232:24;30250:5;30232:24;:::i;:::-;30227:3;30220:37;30155:108;;:::o;30269:179::-;30338:10;30359:46;30401:3;30393:6;30359:46;:::i;:::-;30437:4;30432:3;30428:14;30414:28;;30269:179;;;;:::o;30454:113::-;30524:4;30556;30551:3;30547:14;30539:22;;30454:113;;;:::o;30603:732::-;30722:3;30751:54;30799:5;30751:54;:::i;:::-;30821:86;30900:6;30895:3;30821:86;:::i;:::-;30814:93;;30931:56;30981:5;30931:56;:::i;:::-;31010:7;31041:1;31026:284;31051:6;31048:1;31045:13;31026:284;;;31127:6;31121:13;31154:63;31213:3;31198:13;31154:63;:::i;:::-;31147:70;;31240:60;31293:6;31240:60;:::i;:::-;31230:70;;31086:224;31073:1;31070;31066:9;31061:14;;31026:284;;;31030:14;31326:3;31319:10;;30727:608;;;30603:732;;;;:::o;31341:831::-;31604:4;31642:3;31631:9;31627:19;31619:27;;31656:71;31724:1;31713:9;31709:17;31700:6;31656:71;:::i;:::-;31737:80;31813:2;31802:9;31798:18;31789:6;31737:80;:::i;:::-;31864:9;31858:4;31854:20;31849:2;31838:9;31834:18;31827:48;31892:108;31995:4;31986:6;31892:108;:::i;:::-;31884:116;;32010:72;32078:2;32067:9;32063:18;32054:6;32010:72;:::i;:::-;32092:73;32160:3;32149:9;32145:19;32136:6;32092:73;:::i;:::-;31341:831;;;;;;;;:::o;32178:224::-;32318:34;32314:1;32306:6;32302:14;32295:58;32387:7;32382:2;32374:6;32370:15;32363:32;32178:224;:::o;32408:366::-;32550:3;32571:67;32635:2;32630:3;32571:67;:::i;:::-;32564:74;;32647:93;32736:3;32647:93;:::i;:::-;32765:2;32760:3;32756:12;32749:19;;32408:366;;;:::o;32780:419::-;32946:4;32984:2;32973:9;32969:18;32961:26;;33033:9;33027:4;33023:20;33019:1;33008:9;33004:17;32997:47;33061:131;33187:4;33061:131;:::i;:::-;33053:139;;32780:419;;;:::o;33205:222::-;33345:34;33341:1;33333:6;33329:14;33322:58;33414:5;33409:2;33401:6;33397:15;33390:30;33205:222;:::o;33433:366::-;33575:3;33596:67;33660:2;33655:3;33596:67;:::i;:::-;33589:74;;33672:93;33761:3;33672:93;:::i;:::-;33790:2;33785:3;33781:12;33774:19;;33433:366;;;:::o;33805:419::-;33971:4;34009:2;33998:9;33994:18;33986:26;;34058:9;34052:4;34048:20;34044:1;34033:9;34029:17;34022:47;34086:131;34212:4;34086:131;:::i;:::-;34078:139;;33805:419;;;:::o;34230:225::-;34370:34;34366:1;34358:6;34354:14;34347:58;34439:8;34434:2;34426:6;34422:15;34415:33;34230:225;:::o;34461:366::-;34603:3;34624:67;34688:2;34683:3;34624:67;:::i;:::-;34617:74;;34700:93;34789:3;34700:93;:::i;:::-;34818:2;34813:3;34809:12;34802:19;;34461:366;;;:::o;34833:419::-;34999:4;35037:2;35026:9;35022:18;35014:26;;35086:9;35080:4;35076:20;35072:1;35061:9;35057:17;35050:47;35114:131;35240:4;35114:131;:::i;:::-;35106:139;;34833:419;;;:::o

Swarm Source

ipfs://138f43a2a7e0d10468eadf3f80a251bca1e8440d430e897c22e4b3f350e1d894
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.