ETH Price: $2,377.35 (+0.38%)

Token

Floki prophecy ($Floki prophecy)
 

Overview

Max Total Supply

10,000,000 $Floki prophecy

Holders

39

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
kongbtc.eth
Balance
200 $Floki prophecy

Value
$0.00
0x9D9167849Eb0946656FF85Ff9E40a7B0B7a30549
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:
Flokiprophecy

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-23
*/

// SPDX-License-Identifier: MIT
// Telegram: https://t.me/FlokiProphecy_Portal
// Twitter:  

pragma solidity 0.8.18;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

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) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

    function 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 to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(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");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

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

        _afterTokenTransfer(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 _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}


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

contract Flokiprophecy is ERC20, Ownable{
    using Address for address payable;
        
    mapping (address user => bool status) public isExcludedFromFees;
    mapping (address user => bool status) public isBlacklisted;
    mapping (address user => uint256 timestamp) public lastTrade;
    
    IRouter public router;
    address public pair;
    address private marketingWallet = 0x332ef12ad78589B2eC842a1384363A68420424d6;

    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;
    
    uint256 public swapThreshold = 50000 * 10**9;
    uint256 public maxWallet = 1000000 * 10**9;
    uint256 public maxTx = 1000000 * 10**9;
    uint256 public delay;
    
    struct Taxes {
        uint256 buy;
        uint256 sell;
        uint256 transfer;
    }

    Taxes public taxes = Taxes(5,10,0);

    modifier mutexLock() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
  
    constructor(address _router) ERC20("Floki prophecy", "$Floki prophecy") {
        _mint(msg.sender, 10000000 * 10 ** 9);

        router = IRouter(_router);
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());


        isExcludedFromFees[address(this)] = true;
        isExcludedFromFees[msg.sender] = true;
        isExcludedFromFees[marketingWallet] = true;

        _approve(address(this), address(router), type(uint256).max);
    }

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

    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");

        if (swapping || isExcludedFromFees[sender] || isExcludedFromFees[recipient]) {
            super._transfer(sender, recipient, amount);
            return;
        }

        else{
            require(tradingEnabled, "Trading not enabled");
            require(!isBlacklisted[sender] && !isBlacklisted[recipient], "Blacklisted address");
            if(sender != pair) {
                require(lastTrade[sender] + delay <= block.timestamp, "WAIT PLEASE");
                lastTrade[sender] = block.timestamp;
            }
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWallet, "Wallet limit exceeded");
                require(lastTrade[recipient] + delay <= block.timestamp, "WAIT PLEASE");
                lastTrade[recipient] = block.timestamp;
            }
        }
        
        uint256 fees;

        if(recipient == pair) fees = amount * taxes.sell / 100;
        else if(sender == pair) fees = amount * taxes.buy / 100;
        else fees = amount * taxes.transfer / 100; 

        if (swapEnabled && sender != pair && !swapping) swapFees();

        super._transfer(sender, recipient, amount - fees);
        if(fees > 0){
            super._transfer(sender, address(this), fees);
        }
    }

function swapFees() private mutexLock {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {
            uint256 initialBalance = address(this).balance;
            swapTokensForEth(swapThreshold);
            uint256 deltaBalance = address(this).balance - initialBalance;
            payable(marketingWallet).sendValue(deltaBalance);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

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

    function setSwapTreshhold(uint256 amount) external onlyOwner {
        swapThreshold = amount * 10**9;
    }
    
    function setTaxes(uint256 _buyTax, uint256 _sellTax, uint256 _transferTax) external onlyOwner {
        require(_buyTax <= 69 && _sellTax <= 69 && _transferTax <= 69, "Taxes too high");
        taxes = Taxes (_buyTax, _sellTax, _transferTax); 
    }
    
    function setRouterAndPair(address newRouter, address newPair) external onlyOwner{
        router = IRouter(newRouter);
        pair = newPair;
        _approve(address(this), address(newRouter), type(uint256).max);
    }
    
    function ClaimRevenueShare() external onlyOwner{
        tradingEnabled = true;
        swapEnabled = true;
        taxes.transfer = 69;
    }
 
    function removeLimits() external onlyOwner{
        maxTx = totalSupply();
        maxWallet = totalSupply();
        taxes.transfer = 0;
    }

    function setDelay(uint256 time) external onlyOwner{
        delay = time;
    }

    function setLimits(uint256 _maxTx, uint256 _maxWallet) external onlyOwner{
        maxTx = _maxTx * 10**9;
        maxWallet = _maxWallet * 10**9;
    }
    
    function setMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }

    function setIsExcludedFromFees(address _address, bool state) external onlyOwner {
        isExcludedFromFees[_address] = state;
    }
    
    function bulkIsExcludedFromFees(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            isExcludedFromFees[accounts[i]] = state;
        }
    }

    function setBlacklist(address[] memory accounts, bool status) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            isBlacklisted[accounts[i]] = status;
        }
    }

    function rescueETH(uint256 weiAmount) external{
        payable(marketingWallet).sendValue(weiAmount);
    }
    
    function rescueERC20(address tokenAdd, uint256 amount) external{
        IERC20(tokenAdd).transfer(marketingWallet, amount);
    }

    // fallbacks
    receive() external payable {}

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[],"name":"ClaimRevenueShare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"address","name":"user","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"lastTrade","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","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":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"setDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTx","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"setRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"},{"internalType":"uint256","name":"_transferTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","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":"taxes","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273332ef12ad78589b2ec842a1384363a68420424d6600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550652d79883d2000600c5566038d7ea4c68000600d5566038d7ea4c68000600e55604051806060016040528060058152602001600a8152602001600081525060106000820151816000015560208201518160010155604082015181600201555050348015620000c657600080fd5b506040516200483c3803806200483c8339818101604052810190620000ec9190620009e7565b6040518060400160405280600e81526020017f466c6f6b692070726f70686563790000000000000000000000000000000000008152506040518060400160405280600f81526020017f24466c6f6b692070726f70686563790000000000000000000000000000000000815250816003908162000169919062000c93565b5080600490816200017b919062000c93565b5050506200019e620001926200056760201b60201c565b6200056f60201b60201c565b620001b733662386f26fc100006200063560201b60201c565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000266573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028c9190620009e7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000316573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033c9190620009e7565b6040518363ffffffff1660e01b81526004016200035b92919062000d8b565b6020604051808303816000875af11580156200037b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a19190620009e7565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200056030600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620007a260201b60201c565b5062001003565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200069e9062000e19565b60405180910390fd5b620006bb600083836200097360201b60201c565b8060026000828254620006cf919062000e6a565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000782919062000eb6565b60405180910390a36200079e600083836200097860201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000814576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200080b9062000f49565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000886576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200087d9062000fe1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000966919062000eb6565b60405180910390a3505050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009af8262000982565b9050919050565b620009c181620009a2565b8114620009cd57600080fd5b50565b600081519050620009e181620009b6565b92915050565b60006020828403121562000a0057620009ff6200097d565b5b600062000a1084828501620009d0565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a9b57607f821691505b60208210810362000ab15762000ab062000a53565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000b1b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000adc565b62000b27868362000adc565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000b7462000b6e62000b688462000b3f565b62000b49565b62000b3f565b9050919050565b6000819050919050565b62000b908362000b53565b62000ba862000b9f8262000b7b565b84845462000ae9565b825550505050565b600090565b62000bbf62000bb0565b62000bcc81848462000b85565b505050565b5b8181101562000bf45762000be860008262000bb5565b60018101905062000bd2565b5050565b601f82111562000c435762000c0d8162000ab7565b62000c188462000acc565b8101602085101562000c28578190505b62000c4062000c378562000acc565b83018262000bd1565b50505b505050565b600082821c905092915050565b600062000c686000198460080262000c48565b1980831691505092915050565b600062000c83838362000c55565b9150826002028217905092915050565b62000c9e8262000a19565b67ffffffffffffffff81111562000cba5762000cb962000a24565b5b62000cc6825462000a82565b62000cd382828562000bf8565b600060209050601f83116001811462000d0b576000841562000cf6578287015190505b62000d02858262000c75565b86555062000d72565b601f19841662000d1b8662000ab7565b60005b8281101562000d455784890151825560018201915060208501945060208101905062000d1e565b8683101562000d65578489015162000d61601f89168262000c55565b8355505b6001600288020188555050505b505050505050565b62000d8581620009a2565b82525050565b600060408201905062000da2600083018562000d7a565b62000db1602083018462000d7a565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e01601f8362000db8565b915062000e0e8262000dc9565b602082019050919050565b6000602082019050818103600083015262000e348162000df2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000e778262000b3f565b915062000e848362000b3f565b925082820190508082111562000e9f5762000e9e62000e3b565b5b92915050565b62000eb08162000b3f565b82525050565b600060208201905062000ecd600083018462000ea5565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000f3160248362000db8565b915062000f3e8262000ed3565b604082019050919050565b6000602082019050818103600083015262000f648162000f22565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000fc960228362000db8565b915062000fd68262000f6b565b604082019050919050565b6000602082019050818103600083015262000ffc8162000fba565b9050919050565b61382980620010136000396000f3fe60806040526004361061023f5760003560e01c80638cd4426d1161012e578063c26d7be0116100ab578063e9dae5ed1161006f578063e9dae5ed1461087e578063f2fde38b146108a7578063f887ea40146108d0578063f8b45b05146108fb578063fe575a871461092657610246565b8063c26d7be014610789578063c4590d3f146107c6578063dd62ed3e146107ef578063e01af92c1461082c578063e177246e1461085557610246565b8063a8aa1b31116100f2578063a8aa1b31146106a6578063a8f43a60146106d1578063a9059cbb146106fa578063adf1869314610737578063b5d7ab9a1461076057610246565b80638cd4426d146105c15780638da5cb5b146105ea57806395d89b41146106155780639e252f0014610640578063a457c2d71461066957610246565b80634ada218b116101bc57806370a082311161018057806370a08231146104fe578063715018a61461053b578063728f8eea146105525780637437681e1461057f578063751039fc146105aa57610246565b80634ada218b146104175780634fbee193146104425780635d098b381461047f5780636a42b8f8146104a85780636ddd1713146104d357610246565b806323b872dd1161020357806323b872dd14610332578063255f40b61461036f578063313ce5671461039857806339509351146103c35780634a9696531461040057610246565b80630445b6671461024b57806306fdde0314610276578063095ea7b3146102a15780630e85d1e3146102de57806318160ddd1461030757610246565b3661024657005b600080fd5b34801561025757600080fd5b50610260610963565b60405161026d919061246b565b60405180910390f35b34801561028257600080fd5b5061028b610969565b6040516102989190612516565b60405180910390f35b3480156102ad57600080fd5b506102c860048036038101906102c391906125d6565b6109fb565b6040516102d59190612631565b60405180910390f35b3480156102ea57600080fd5b50610305600480360381019061030091906127c0565b610a1e565b005b34801561031357600080fd5b5061031c610abb565b604051610329919061246b565b60405180910390f35b34801561033e57600080fd5b506103596004803603810190610354919061281c565b610ac5565b6040516103669190612631565b60405180910390f35b34801561037b57600080fd5b506103966004803603810190610391919061286f565b610af4565b005b3480156103a457600080fd5b506103ad610bad565b6040516103ba91906128cb565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036038101906103e591906125d6565b610bb6565b6040516103f79190612631565b60405180910390f35b34801561040c57600080fd5b50610415610bed565b005b34801561042357600080fd5b5061042c610c38565b6040516104399190612631565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906128e6565b610c4b565b6040516104769190612631565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a191906128e6565b610c6b565b005b3480156104b457600080fd5b506104bd610cb7565b6040516104ca919061246b565b60405180910390f35b3480156104df57600080fd5b506104e8610cbd565b6040516104f59190612631565b60405180910390f35b34801561050a57600080fd5b50610525600480360381019061052091906128e6565b610cd0565b604051610532919061246b565b60405180910390f35b34801561054757600080fd5b50610550610d18565b005b34801561055e57600080fd5b50610567610d2c565b60405161057693929190612913565b60405180910390f35b34801561058b57600080fd5b50610594610d44565b6040516105a1919061246b565b60405180910390f35b3480156105b657600080fd5b506105bf610d4a565b005b3480156105cd57600080fd5b506105e860048036038101906105e391906125d6565b610d7b565b005b3480156105f657600080fd5b506105ff610e20565b60405161060c9190612959565b60405180910390f35b34801561062157600080fd5b5061062a610e4a565b6040516106379190612516565b60405180910390f35b34801561064c57600080fd5b5061066760048036038101906106629190612974565b610edc565b005b34801561067557600080fd5b50610690600480360381019061068b91906125d6565b610f2a565b60405161069d9190612631565b60405180910390f35b3480156106b257600080fd5b506106bb610fa1565b6040516106c89190612959565b60405180910390f35b3480156106dd57600080fd5b506106f860048036038101906106f391906127c0565b610fc7565b005b34801561070657600080fd5b50610721600480360381019061071c91906125d6565b611064565b60405161072e9190612631565b60405180910390f35b34801561074357600080fd5b5061075e600480360381019061075991906129a1565b611087565b005b34801561076c57600080fd5b5061078760048036038101906107829190612974565b6110ea565b005b34801561079557600080fd5b506107b060048036038101906107ab91906128e6565b61110b565b6040516107bd919061246b565b60405180910390f35b3480156107d257600080fd5b506107ed60048036038101906107e891906129e1565b611123565b005b3480156107fb57600080fd5b506108166004803603810190610811919061286f565b61115b565b604051610823919061246b565b60405180910390f35b34801561083857600080fd5b50610853600480360381019061084e9190612a21565b6111e2565b005b34801561086157600080fd5b5061087c60048036038101906108779190612974565b611207565b005b34801561088a57600080fd5b506108a560048036038101906108a09190612a4e565b611219565b005b3480156108b357600080fd5b506108ce60048036038101906108c991906128e6565b6112c2565b005b3480156108dc57600080fd5b506108e5611345565b6040516108f29190612b00565b60405180910390f35b34801561090757600080fd5b5061091061136b565b60405161091d919061246b565b60405180910390f35b34801561093257600080fd5b5061094d600480360381019061094891906128e6565b611371565b60405161095a9190612631565b60405180910390f35b600c5481565b60606003805461097890612b4a565b80601f01602080910402602001604051908101604052809291908181526020018280546109a490612b4a565b80156109f15780601f106109c6576101008083540402835291602001916109f1565b820191906000526020600020905b8154815290600101906020018083116109d457829003601f168201915b5050505050905090565b600080610a06611391565b9050610a13818585611399565b600191505092915050565b610a26611562565b60005b8251811015610ab6578160076000858481518110610a4a57610a49612b7b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610aae90612bd9565b915050610a29565b505050565b6000600254905090565b600080610ad0611391565b9050610add8582856115e0565b610ae885858561166c565b60019150509392505050565b610afc611562565b81600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ba930837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611399565b5050565b60006009905090565b600080610bc1611391565b9050610be2818585610bd3858961115b565b610bdd9190612c21565b611399565b600191505092915050565b610bf5611562565b6001600b60166101000a81548160ff0219169083151502179055506001600b60156101000a81548160ff0219169083151502179055506045601060020181905550565b600b60169054906101000a900460ff1681565b60066020528060005260406000206000915054906101000a900460ff1681565b610c73611562565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b600b60159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d20611562565b610d2a6000611d30565b565b60108060000154908060010154908060020154905083565b600e5481565b610d52611562565b610d5a610abb565b600e81905550610d68610abb565b600d819055506000601060020181905550565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610dd8929190612c55565b6020604051808303816000875af1158015610df7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1b9190612c93565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610e5990612b4a565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8590612b4a565b8015610ed25780601f10610ea757610100808354040283529160200191610ed2565b820191906000526020600020905b815481529060010190602001808311610eb557829003601f168201915b5050505050905090565b610f2781600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611df690919063ffffffff16565b50565b600080610f35611391565b90506000610f43828661115b565b905083811015610f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7f90612d32565b60405180910390fd5b610f958286868403611399565b60019250505092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fcf611562565b60005b825181101561105f578160066000858481518110610ff357610ff2612b7b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061105790612bd9565b915050610fd2565b505050565b60008061106f611391565b905061107c81858561166c565b600191505092915050565b61108f611562565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6110f2611562565b633b9aca00816111029190612d52565b600c8190555050565b60086020528060005260406000206000915090505481565b61112b611562565b633b9aca008261113b9190612d52565b600e81905550633b9aca00816111519190612d52565b600d819055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111ea611562565b80600b60156101000a81548160ff02191690831515021790555050565b61120f611562565b80600f8190555050565b611221611562565b60458311158015611233575060458211155b8015611240575060458111155b61127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127690612de0565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506010600082015181600001556020820151816001015560408201518160020155905050505050565b6112ca611562565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133090612e72565b60405180910390fd5b61134281611d30565b50565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60076020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ff90612f04565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146e90612f96565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611555919061246b565b60405180910390a3505050565b61156a611391565b73ffffffffffffffffffffffffffffffffffffffff16611588610e20565b73ffffffffffffffffffffffffffffffffffffffff16146115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d590613002565b60405180910390fd5b565b60006115ec848461115b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116665781811015611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f9061306e565b60405180910390fd5b6116658484848403611399565b5b50505050565b600081116116af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a690613100565b60405180910390fd5b600b60149054906101000a900460ff16806117135750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117675750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561177c57611777838383611eea565b611d2b565b600b60169054906101000a900460ff166117cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c29061316c565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561186f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6118ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a5906131d8565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119d75742600f54600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119519190612c21565b1115611992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198990613244565b60405180910390fd5b42600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b5857600d5481611a3984610cd0565b611a439190612c21565b1115611a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7b906132b0565b60405180910390fd5b42600f54600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ad29190612c21565b1115611b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0a90613244565b60405180910390fd5b42600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bd357606460106001015483611bc29190612d52565b611bcc91906132ff565b9050611c6d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c4c57606460106000015483611c3b9190612d52565b611c4591906132ff565b9050611c6c565b606460106002015483611c5f9190612d52565b611c6991906132ff565b90505b5b600b60159054906101000a900460ff168015611cd75750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611cf05750600b60149054906101000a900460ff16155b15611cfe57611cfd612160565b5b611d1484848385611d0f9190613330565b611eea565b6000811115611d2957611d28843083611eea565b5b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015611e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e30906133b0565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051611e5f90613401565b60006040518083038185875af1925050503d8060008114611e9c576040519150601f19603f3d011682016040523d82523d6000602084013e611ea1565b606091505b5050905080611ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edc90613488565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f509061351a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbf906135ac565b60405180910390fd5b611fd3838383612232565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612059576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120509061363e565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612147919061246b565b60405180910390a361215a848484612237565b50505050565b600b60149054906101000a900460ff16612230576001600b60146101000a81548160ff021916908315150217905550600061219a30610cd0565b9050600c5481106122135760004790506121b5600c5461223c565b600081476121c39190613330565b905061221081600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611df690919063ffffffff16565b50505b506000600b60146101000a81548160ff0219169083151502179055505b565b505050565b505050565b6000600267ffffffffffffffff81111561225957612258612651565b5b6040519080825280602002602001820160405280156122875781602001602082028036833780820191505090505b509050308160008151811061229f5761229e612b7b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612346573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236a9190613673565b8160018151811061237e5761237d612b7b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161241c959493929190613799565b600060405180830381600087803b15801561243657600080fd5b505af115801561244a573d6000803e3d6000fd5b505050505050565b6000819050919050565b61246581612452565b82525050565b6000602082019050612480600083018461245c565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124c05780820151818401526020810190506124a5565b60008484015250505050565b6000601f19601f8301169050919050565b60006124e882612486565b6124f28185612491565b93506125028185602086016124a2565b61250b816124cc565b840191505092915050565b6000602082019050818103600083015261253081846124dd565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125778261254c565b9050919050565b6125878161256c565b811461259257600080fd5b50565b6000813590506125a48161257e565b92915050565b6125b381612452565b81146125be57600080fd5b50565b6000813590506125d0816125aa565b92915050565b600080604083850312156125ed576125ec612542565b5b60006125fb85828601612595565b925050602061260c858286016125c1565b9150509250929050565b60008115159050919050565b61262b81612616565b82525050565b60006020820190506126466000830184612622565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612689826124cc565b810181811067ffffffffffffffff821117156126a8576126a7612651565b5b80604052505050565b60006126bb612538565b90506126c78282612680565b919050565b600067ffffffffffffffff8211156126e7576126e6612651565b5b602082029050602081019050919050565b600080fd5b600061271061270b846126cc565b6126b1565b90508083825260208201905060208402830185811115612733576127326126f8565b5b835b8181101561275c57806127488882612595565b845260208401935050602081019050612735565b5050509392505050565b600082601f83011261277b5761277a61264c565b5b813561278b8482602086016126fd565b91505092915050565b61279d81612616565b81146127a857600080fd5b50565b6000813590506127ba81612794565b92915050565b600080604083850312156127d7576127d6612542565b5b600083013567ffffffffffffffff8111156127f5576127f4612547565b5b61280185828601612766565b9250506020612812858286016127ab565b9150509250929050565b60008060006060848603121561283557612834612542565b5b600061284386828701612595565b935050602061285486828701612595565b9250506040612865868287016125c1565b9150509250925092565b6000806040838503121561288657612885612542565b5b600061289485828601612595565b92505060206128a585828601612595565b9150509250929050565b600060ff82169050919050565b6128c5816128af565b82525050565b60006020820190506128e060008301846128bc565b92915050565b6000602082840312156128fc576128fb612542565b5b600061290a84828501612595565b91505092915050565b6000606082019050612928600083018661245c565b612935602083018561245c565b612942604083018461245c565b949350505050565b6129538161256c565b82525050565b600060208201905061296e600083018461294a565b92915050565b60006020828403121561298a57612989612542565b5b6000612998848285016125c1565b91505092915050565b600080604083850312156129b8576129b7612542565b5b60006129c685828601612595565b92505060206129d7858286016127ab565b9150509250929050565b600080604083850312156129f8576129f7612542565b5b6000612a06858286016125c1565b9250506020612a17858286016125c1565b9150509250929050565b600060208284031215612a3757612a36612542565b5b6000612a45848285016127ab565b91505092915050565b600080600060608486031215612a6757612a66612542565b5b6000612a75868287016125c1565b9350506020612a86868287016125c1565b9250506040612a97868287016125c1565b9150509250925092565b6000819050919050565b6000612ac6612ac1612abc8461254c565b612aa1565b61254c565b9050919050565b6000612ad882612aab565b9050919050565b6000612aea82612acd565b9050919050565b612afa81612adf565b82525050565b6000602082019050612b156000830184612af1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b6257607f821691505b602082108103612b7557612b74612b1b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612be482612452565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c1657612c15612baa565b5b600182019050919050565b6000612c2c82612452565b9150612c3783612452565b9250828201905080821115612c4f57612c4e612baa565b5b92915050565b6000604082019050612c6a600083018561294a565b612c77602083018461245c565b9392505050565b600081519050612c8d81612794565b92915050565b600060208284031215612ca957612ca8612542565b5b6000612cb784828501612c7e565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612d1c602583612491565b9150612d2782612cc0565b604082019050919050565b60006020820190508181036000830152612d4b81612d0f565b9050919050565b6000612d5d82612452565b9150612d6883612452565b9250828202612d7681612452565b91508282048414831517612d8d57612d8c612baa565b5b5092915050565b7f546178657320746f6f2068696768000000000000000000000000000000000000600082015250565b6000612dca600e83612491565b9150612dd582612d94565b602082019050919050565b60006020820190508181036000830152612df981612dbd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612e5c602683612491565b9150612e6782612e00565b604082019050919050565b60006020820190508181036000830152612e8b81612e4f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612eee602483612491565b9150612ef982612e92565b604082019050919050565b60006020820190508181036000830152612f1d81612ee1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f80602283612491565b9150612f8b82612f24565b604082019050919050565b60006020820190508181036000830152612faf81612f73565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612fec602083612491565b9150612ff782612fb6565b602082019050919050565b6000602082019050818103600083015261301b81612fdf565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613058601d83612491565b915061306382613022565b602082019050919050565b600060208201905081810360008301526130878161304b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130ea602983612491565b91506130f58261308e565b604082019050919050565b60006020820190508181036000830152613119816130dd565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000613156601383612491565b915061316182613120565b602082019050919050565b6000602082019050818103600083015261318581613149565b9050919050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b60006131c2601383612491565b91506131cd8261318c565b602082019050919050565b600060208201905081810360008301526131f1816131b5565b9050919050565b7f5741495420504c45415345000000000000000000000000000000000000000000600082015250565b600061322e600b83612491565b9150613239826131f8565b602082019050919050565b6000602082019050818103600083015261325d81613221565b9050919050565b7f57616c6c6574206c696d69742065786365656465640000000000000000000000600082015250565b600061329a601583612491565b91506132a582613264565b602082019050919050565b600060208201905081810360008301526132c98161328d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061330a82612452565b915061331583612452565b925082613325576133246132d0565b5b828204905092915050565b600061333b82612452565b915061334683612452565b925082820390508181111561335e5761335d612baa565b5b92915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061339a601d83612491565b91506133a582613364565b602082019050919050565b600060208201905081810360008301526133c98161338d565b9050919050565b600081905092915050565b50565b60006133eb6000836133d0565b91506133f6826133db565b600082019050919050565b600061340c826133de565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613472603a83612491565b915061347d82613416565b604082019050919050565b600060208201905081810360008301526134a181613465565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613504602583612491565b915061350f826134a8565b604082019050919050565b60006020820190508181036000830152613533816134f7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613596602383612491565b91506135a18261353a565b604082019050919050565b600060208201905081810360008301526135c581613589565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613628602683612491565b9150613633826135cc565b604082019050919050565b600060208201905081810360008301526136578161361b565b9050919050565b60008151905061366d8161257e565b92915050565b60006020828403121561368957613688612542565b5b60006136978482850161365e565b91505092915050565b6000819050919050565b60006136c56136c06136bb846136a0565b612aa1565b612452565b9050919050565b6136d5816136aa565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137108161256c565b82525050565b60006137228383613707565b60208301905092915050565b6000602082019050919050565b6000613746826136db565b61375081856136e6565b935061375b836136f7565b8060005b8381101561378c5781516137738882613716565b975061377e8361372e565b92505060018101905061375f565b5085935050505092915050565b600060a0820190506137ae600083018861245c565b6137bb60208301876136cc565b81810360408301526137cd818661373b565b90506137dc606083018561294a565b6137e9608083018461245c565b969550505050505056fea26469706673582212206269b6400b4d04263649193e04841872691e62594ba852b7f3a572f9f0962ab164736f6c634300081200330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x60806040526004361061023f5760003560e01c80638cd4426d1161012e578063c26d7be0116100ab578063e9dae5ed1161006f578063e9dae5ed1461087e578063f2fde38b146108a7578063f887ea40146108d0578063f8b45b05146108fb578063fe575a871461092657610246565b8063c26d7be014610789578063c4590d3f146107c6578063dd62ed3e146107ef578063e01af92c1461082c578063e177246e1461085557610246565b8063a8aa1b31116100f2578063a8aa1b31146106a6578063a8f43a60146106d1578063a9059cbb146106fa578063adf1869314610737578063b5d7ab9a1461076057610246565b80638cd4426d146105c15780638da5cb5b146105ea57806395d89b41146106155780639e252f0014610640578063a457c2d71461066957610246565b80634ada218b116101bc57806370a082311161018057806370a08231146104fe578063715018a61461053b578063728f8eea146105525780637437681e1461057f578063751039fc146105aa57610246565b80634ada218b146104175780634fbee193146104425780635d098b381461047f5780636a42b8f8146104a85780636ddd1713146104d357610246565b806323b872dd1161020357806323b872dd14610332578063255f40b61461036f578063313ce5671461039857806339509351146103c35780634a9696531461040057610246565b80630445b6671461024b57806306fdde0314610276578063095ea7b3146102a15780630e85d1e3146102de57806318160ddd1461030757610246565b3661024657005b600080fd5b34801561025757600080fd5b50610260610963565b60405161026d919061246b565b60405180910390f35b34801561028257600080fd5b5061028b610969565b6040516102989190612516565b60405180910390f35b3480156102ad57600080fd5b506102c860048036038101906102c391906125d6565b6109fb565b6040516102d59190612631565b60405180910390f35b3480156102ea57600080fd5b50610305600480360381019061030091906127c0565b610a1e565b005b34801561031357600080fd5b5061031c610abb565b604051610329919061246b565b60405180910390f35b34801561033e57600080fd5b506103596004803603810190610354919061281c565b610ac5565b6040516103669190612631565b60405180910390f35b34801561037b57600080fd5b506103966004803603810190610391919061286f565b610af4565b005b3480156103a457600080fd5b506103ad610bad565b6040516103ba91906128cb565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036038101906103e591906125d6565b610bb6565b6040516103f79190612631565b60405180910390f35b34801561040c57600080fd5b50610415610bed565b005b34801561042357600080fd5b5061042c610c38565b6040516104399190612631565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906128e6565b610c4b565b6040516104769190612631565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a191906128e6565b610c6b565b005b3480156104b457600080fd5b506104bd610cb7565b6040516104ca919061246b565b60405180910390f35b3480156104df57600080fd5b506104e8610cbd565b6040516104f59190612631565b60405180910390f35b34801561050a57600080fd5b50610525600480360381019061052091906128e6565b610cd0565b604051610532919061246b565b60405180910390f35b34801561054757600080fd5b50610550610d18565b005b34801561055e57600080fd5b50610567610d2c565b60405161057693929190612913565b60405180910390f35b34801561058b57600080fd5b50610594610d44565b6040516105a1919061246b565b60405180910390f35b3480156105b657600080fd5b506105bf610d4a565b005b3480156105cd57600080fd5b506105e860048036038101906105e391906125d6565b610d7b565b005b3480156105f657600080fd5b506105ff610e20565b60405161060c9190612959565b60405180910390f35b34801561062157600080fd5b5061062a610e4a565b6040516106379190612516565b60405180910390f35b34801561064c57600080fd5b5061066760048036038101906106629190612974565b610edc565b005b34801561067557600080fd5b50610690600480360381019061068b91906125d6565b610f2a565b60405161069d9190612631565b60405180910390f35b3480156106b257600080fd5b506106bb610fa1565b6040516106c89190612959565b60405180910390f35b3480156106dd57600080fd5b506106f860048036038101906106f391906127c0565b610fc7565b005b34801561070657600080fd5b50610721600480360381019061071c91906125d6565b611064565b60405161072e9190612631565b60405180910390f35b34801561074357600080fd5b5061075e600480360381019061075991906129a1565b611087565b005b34801561076c57600080fd5b5061078760048036038101906107829190612974565b6110ea565b005b34801561079557600080fd5b506107b060048036038101906107ab91906128e6565b61110b565b6040516107bd919061246b565b60405180910390f35b3480156107d257600080fd5b506107ed60048036038101906107e891906129e1565b611123565b005b3480156107fb57600080fd5b506108166004803603810190610811919061286f565b61115b565b604051610823919061246b565b60405180910390f35b34801561083857600080fd5b50610853600480360381019061084e9190612a21565b6111e2565b005b34801561086157600080fd5b5061087c60048036038101906108779190612974565b611207565b005b34801561088a57600080fd5b506108a560048036038101906108a09190612a4e565b611219565b005b3480156108b357600080fd5b506108ce60048036038101906108c991906128e6565b6112c2565b005b3480156108dc57600080fd5b506108e5611345565b6040516108f29190612b00565b60405180910390f35b34801561090757600080fd5b5061091061136b565b60405161091d919061246b565b60405180910390f35b34801561093257600080fd5b5061094d600480360381019061094891906128e6565b611371565b60405161095a9190612631565b60405180910390f35b600c5481565b60606003805461097890612b4a565b80601f01602080910402602001604051908101604052809291908181526020018280546109a490612b4a565b80156109f15780601f106109c6576101008083540402835291602001916109f1565b820191906000526020600020905b8154815290600101906020018083116109d457829003601f168201915b5050505050905090565b600080610a06611391565b9050610a13818585611399565b600191505092915050565b610a26611562565b60005b8251811015610ab6578160076000858481518110610a4a57610a49612b7b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610aae90612bd9565b915050610a29565b505050565b6000600254905090565b600080610ad0611391565b9050610add8582856115e0565b610ae885858561166c565b60019150509392505050565b610afc611562565b81600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ba930837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611399565b5050565b60006009905090565b600080610bc1611391565b9050610be2818585610bd3858961115b565b610bdd9190612c21565b611399565b600191505092915050565b610bf5611562565b6001600b60166101000a81548160ff0219169083151502179055506001600b60156101000a81548160ff0219169083151502179055506045601060020181905550565b600b60169054906101000a900460ff1681565b60066020528060005260406000206000915054906101000a900460ff1681565b610c73611562565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b600b60159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d20611562565b610d2a6000611d30565b565b60108060000154908060010154908060020154905083565b600e5481565b610d52611562565b610d5a610abb565b600e81905550610d68610abb565b600d819055506000601060020181905550565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610dd8929190612c55565b6020604051808303816000875af1158015610df7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1b9190612c93565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610e5990612b4a565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8590612b4a565b8015610ed25780601f10610ea757610100808354040283529160200191610ed2565b820191906000526020600020905b815481529060010190602001808311610eb557829003601f168201915b5050505050905090565b610f2781600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611df690919063ffffffff16565b50565b600080610f35611391565b90506000610f43828661115b565b905083811015610f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7f90612d32565b60405180910390fd5b610f958286868403611399565b60019250505092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fcf611562565b60005b825181101561105f578160066000858481518110610ff357610ff2612b7b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061105790612bd9565b915050610fd2565b505050565b60008061106f611391565b905061107c81858561166c565b600191505092915050565b61108f611562565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6110f2611562565b633b9aca00816111029190612d52565b600c8190555050565b60086020528060005260406000206000915090505481565b61112b611562565b633b9aca008261113b9190612d52565b600e81905550633b9aca00816111519190612d52565b600d819055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111ea611562565b80600b60156101000a81548160ff02191690831515021790555050565b61120f611562565b80600f8190555050565b611221611562565b60458311158015611233575060458211155b8015611240575060458111155b61127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127690612de0565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506010600082015181600001556020820151816001015560408201518160020155905050505050565b6112ca611562565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133090612e72565b60405180910390fd5b61134281611d30565b50565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60076020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ff90612f04565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146e90612f96565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611555919061246b565b60405180910390a3505050565b61156a611391565b73ffffffffffffffffffffffffffffffffffffffff16611588610e20565b73ffffffffffffffffffffffffffffffffffffffff16146115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d590613002565b60405180910390fd5b565b60006115ec848461115b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116665781811015611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f9061306e565b60405180910390fd5b6116658484848403611399565b5b50505050565b600081116116af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a690613100565b60405180910390fd5b600b60149054906101000a900460ff16806117135750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117675750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561177c57611777838383611eea565b611d2b565b600b60169054906101000a900460ff166117cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c29061316c565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561186f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6118ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a5906131d8565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119d75742600f54600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119519190612c21565b1115611992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198990613244565b60405180910390fd5b42600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b5857600d5481611a3984610cd0565b611a439190612c21565b1115611a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7b906132b0565b60405180910390fd5b42600f54600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ad29190612c21565b1115611b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0a90613244565b60405180910390fd5b42600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bd357606460106001015483611bc29190612d52565b611bcc91906132ff565b9050611c6d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c4c57606460106000015483611c3b9190612d52565b611c4591906132ff565b9050611c6c565b606460106002015483611c5f9190612d52565b611c6991906132ff565b90505b5b600b60159054906101000a900460ff168015611cd75750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611cf05750600b60149054906101000a900460ff16155b15611cfe57611cfd612160565b5b611d1484848385611d0f9190613330565b611eea565b6000811115611d2957611d28843083611eea565b5b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015611e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e30906133b0565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051611e5f90613401565b60006040518083038185875af1925050503d8060008114611e9c576040519150601f19603f3d011682016040523d82523d6000602084013e611ea1565b606091505b5050905080611ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edc90613488565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f509061351a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbf906135ac565b60405180910390fd5b611fd3838383612232565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612059576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120509061363e565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612147919061246b565b60405180910390a361215a848484612237565b50505050565b600b60149054906101000a900460ff16612230576001600b60146101000a81548160ff021916908315150217905550600061219a30610cd0565b9050600c5481106122135760004790506121b5600c5461223c565b600081476121c39190613330565b905061221081600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611df690919063ffffffff16565b50505b506000600b60146101000a81548160ff0219169083151502179055505b565b505050565b505050565b6000600267ffffffffffffffff81111561225957612258612651565b5b6040519080825280602002602001820160405280156122875781602001602082028036833780820191505090505b509050308160008151811061229f5761229e612b7b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612346573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236a9190613673565b8160018151811061237e5761237d612b7b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161241c959493929190613799565b600060405180830381600087803b15801561243657600080fd5b505af115801561244a573d6000803e3d6000fd5b505050505050565b6000819050919050565b61246581612452565b82525050565b6000602082019050612480600083018461245c565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124c05780820151818401526020810190506124a5565b60008484015250505050565b6000601f19601f8301169050919050565b60006124e882612486565b6124f28185612491565b93506125028185602086016124a2565b61250b816124cc565b840191505092915050565b6000602082019050818103600083015261253081846124dd565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125778261254c565b9050919050565b6125878161256c565b811461259257600080fd5b50565b6000813590506125a48161257e565b92915050565b6125b381612452565b81146125be57600080fd5b50565b6000813590506125d0816125aa565b92915050565b600080604083850312156125ed576125ec612542565b5b60006125fb85828601612595565b925050602061260c858286016125c1565b9150509250929050565b60008115159050919050565b61262b81612616565b82525050565b60006020820190506126466000830184612622565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612689826124cc565b810181811067ffffffffffffffff821117156126a8576126a7612651565b5b80604052505050565b60006126bb612538565b90506126c78282612680565b919050565b600067ffffffffffffffff8211156126e7576126e6612651565b5b602082029050602081019050919050565b600080fd5b600061271061270b846126cc565b6126b1565b90508083825260208201905060208402830185811115612733576127326126f8565b5b835b8181101561275c57806127488882612595565b845260208401935050602081019050612735565b5050509392505050565b600082601f83011261277b5761277a61264c565b5b813561278b8482602086016126fd565b91505092915050565b61279d81612616565b81146127a857600080fd5b50565b6000813590506127ba81612794565b92915050565b600080604083850312156127d7576127d6612542565b5b600083013567ffffffffffffffff8111156127f5576127f4612547565b5b61280185828601612766565b9250506020612812858286016127ab565b9150509250929050565b60008060006060848603121561283557612834612542565b5b600061284386828701612595565b935050602061285486828701612595565b9250506040612865868287016125c1565b9150509250925092565b6000806040838503121561288657612885612542565b5b600061289485828601612595565b92505060206128a585828601612595565b9150509250929050565b600060ff82169050919050565b6128c5816128af565b82525050565b60006020820190506128e060008301846128bc565b92915050565b6000602082840312156128fc576128fb612542565b5b600061290a84828501612595565b91505092915050565b6000606082019050612928600083018661245c565b612935602083018561245c565b612942604083018461245c565b949350505050565b6129538161256c565b82525050565b600060208201905061296e600083018461294a565b92915050565b60006020828403121561298a57612989612542565b5b6000612998848285016125c1565b91505092915050565b600080604083850312156129b8576129b7612542565b5b60006129c685828601612595565b92505060206129d7858286016127ab565b9150509250929050565b600080604083850312156129f8576129f7612542565b5b6000612a06858286016125c1565b9250506020612a17858286016125c1565b9150509250929050565b600060208284031215612a3757612a36612542565b5b6000612a45848285016127ab565b91505092915050565b600080600060608486031215612a6757612a66612542565b5b6000612a75868287016125c1565b9350506020612a86868287016125c1565b9250506040612a97868287016125c1565b9150509250925092565b6000819050919050565b6000612ac6612ac1612abc8461254c565b612aa1565b61254c565b9050919050565b6000612ad882612aab565b9050919050565b6000612aea82612acd565b9050919050565b612afa81612adf565b82525050565b6000602082019050612b156000830184612af1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b6257607f821691505b602082108103612b7557612b74612b1b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612be482612452565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c1657612c15612baa565b5b600182019050919050565b6000612c2c82612452565b9150612c3783612452565b9250828201905080821115612c4f57612c4e612baa565b5b92915050565b6000604082019050612c6a600083018561294a565b612c77602083018461245c565b9392505050565b600081519050612c8d81612794565b92915050565b600060208284031215612ca957612ca8612542565b5b6000612cb784828501612c7e565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612d1c602583612491565b9150612d2782612cc0565b604082019050919050565b60006020820190508181036000830152612d4b81612d0f565b9050919050565b6000612d5d82612452565b9150612d6883612452565b9250828202612d7681612452565b91508282048414831517612d8d57612d8c612baa565b5b5092915050565b7f546178657320746f6f2068696768000000000000000000000000000000000000600082015250565b6000612dca600e83612491565b9150612dd582612d94565b602082019050919050565b60006020820190508181036000830152612df981612dbd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612e5c602683612491565b9150612e6782612e00565b604082019050919050565b60006020820190508181036000830152612e8b81612e4f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612eee602483612491565b9150612ef982612e92565b604082019050919050565b60006020820190508181036000830152612f1d81612ee1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f80602283612491565b9150612f8b82612f24565b604082019050919050565b60006020820190508181036000830152612faf81612f73565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612fec602083612491565b9150612ff782612fb6565b602082019050919050565b6000602082019050818103600083015261301b81612fdf565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613058601d83612491565b915061306382613022565b602082019050919050565b600060208201905081810360008301526130878161304b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130ea602983612491565b91506130f58261308e565b604082019050919050565b60006020820190508181036000830152613119816130dd565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000613156601383612491565b915061316182613120565b602082019050919050565b6000602082019050818103600083015261318581613149565b9050919050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b60006131c2601383612491565b91506131cd8261318c565b602082019050919050565b600060208201905081810360008301526131f1816131b5565b9050919050565b7f5741495420504c45415345000000000000000000000000000000000000000000600082015250565b600061322e600b83612491565b9150613239826131f8565b602082019050919050565b6000602082019050818103600083015261325d81613221565b9050919050565b7f57616c6c6574206c696d69742065786365656465640000000000000000000000600082015250565b600061329a601583612491565b91506132a582613264565b602082019050919050565b600060208201905081810360008301526132c98161328d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061330a82612452565b915061331583612452565b925082613325576133246132d0565b5b828204905092915050565b600061333b82612452565b915061334683612452565b925082820390508181111561335e5761335d612baa565b5b92915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061339a601d83612491565b91506133a582613364565b602082019050919050565b600060208201905081810360008301526133c98161338d565b9050919050565b600081905092915050565b50565b60006133eb6000836133d0565b91506133f6826133db565b600082019050919050565b600061340c826133de565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613472603a83612491565b915061347d82613416565b604082019050919050565b600060208201905081810360008301526134a181613465565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613504602583612491565b915061350f826134a8565b604082019050919050565b60006020820190508181036000830152613533816134f7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613596602383612491565b91506135a18261353a565b604082019050919050565b600060208201905081810360008301526135c581613589565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613628602683612491565b9150613633826135cc565b604082019050919050565b600060208201905081810360008301526136578161361b565b9050919050565b60008151905061366d8161257e565b92915050565b60006020828403121561368957613688612542565b5b60006136978482850161365e565b91505092915050565b6000819050919050565b60006136c56136c06136bb846136a0565b612aa1565b612452565b9050919050565b6136d5816136aa565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137108161256c565b82525050565b60006137228383613707565b60208301905092915050565b6000602082019050919050565b6000613746826136db565b61375081856136e6565b935061375b836136f7565b8060005b8381101561378c5781516137738882613716565b975061377e8361372e565b92505060018101905061375f565b5085935050505092915050565b600060a0820190506137ae600083018861245c565b6137bb60208301876136cc565b81810360408301526137cd818661373b565b90506137dc606083018561294a565b6137e9608083018461245c565b969550505050505056fea26469706673582212206269b6400b4d04263649193e04841872691e62594ba852b7f3a572f9f0962ab164736f6c63430008120033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

8550:6115:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9091:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2764:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3696:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14139:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3085:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3905:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12846:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10053:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4208:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13082:146;;;;;;;;;;;;;:::i;:::-;;9052:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8647:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13648:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9236:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9022:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3201:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;920:103;;;;;;;;;;;;;:::i;:::-;;9370:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;9191:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13237:147;;;;;;;;;;;;;:::i;:::-;;14473:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;685:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2872:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14351:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4454:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8883:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13914:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3336:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13767:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12460:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8782:60;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13481:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3537:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12357:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13392:81;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12582:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1031:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8855:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9142:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8717:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9091:44;;;;:::o;2764:100::-;2818:13;2851:5;2844:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2764:100;:::o;3696:201::-;3779:4;3796:13;3812:12;:10;:12::i;:::-;3796:28;;3835:32;3844:5;3851:7;3860:6;3835:8;:32::i;:::-;3885:4;3878:11;;;3696:201;;;;:::o;14139:204::-;644:13;:11;:13::i;:::-;14234:9:::1;14230:106;14253:8;:15;14249:1;:19;14230:106;;;14318:6;14289:13;:26;14303:8;14312:1;14303:11;;;;;;;;:::i;:::-;;;;;;;;14289:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;14270:3;;;;;:::i;:::-;;;;14230:106;;;;14139:204:::0;;:::o;3085:108::-;3146:7;3173:12;;3166:19;;3085:108;:::o;3905:295::-;4036:4;4053:15;4071:12;:10;:12::i;:::-;4053:30;;4094:38;4110:4;4116:7;4125:6;4094:15;:38::i;:::-;4143:27;4153:4;4159:2;4163:6;4143:9;:27::i;:::-;4188:4;4181:11;;;3905:295;;;;;:::o;12846:224::-;644:13;:11;:13::i;:::-;12954:9:::1;12937:6;;:27;;;;;;;;;;;;;;;;;;12982:7;12975:4;;:14;;;;;;;;;;;;;;;;;;13000:62;13017:4;13032:9;13044:17;13000:8;:62::i;:::-;12846:224:::0;;:::o;10053:92::-;10111:5;10136:1;10129:8;;10053:92;:::o;4208:238::-;4296:4;4313:13;4329:12;:10;:12::i;:::-;4313:28;;4352:64;4361:5;4368:7;4405:10;4377:25;4387:5;4394:7;4377:9;:25::i;:::-;:38;;;;:::i;:::-;4352:8;:64::i;:::-;4434:4;4427:11;;;4208:238;;;;:::o;13082:146::-;644:13;:11;:13::i;:::-;13157:4:::1;13140:14;;:21;;;;;;;;;;;;;;;;;;13186:4;13172:11;;:18;;;;;;;;;;;;;;;;;;13218:2;13201:5;:14;;:19;;;;13082:146::o:0;9052:26::-;;;;;;;;;;;;;:::o;8647:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;13648:111::-;644:13;:11;:13::i;:::-;13742:9:::1;13724:15;;:27;;;;;;;;;;;;;;;;;;13648:111:::0;:::o;9236:20::-;;;;:::o;9022:23::-;;;;;;;;;;;;;:::o;3201:127::-;3275:7;3302:9;:18;3312:7;3302:18;;;;;;;;;;;;;;;;3295:25;;3201:127;;;:::o;920:103::-;644:13;:11;:13::i;:::-;985:30:::1;1012:1;985:18;:30::i;:::-;920:103::o:0;9370:34::-;;;;;;;;;;;;;;;;;;;:::o;9191:38::-;;;;:::o;13237:147::-;644:13;:11;:13::i;:::-;13298::::1;:11;:13::i;:::-;13290:5;:21;;;;13334:13;:11;:13::i;:::-;13322:9;:25;;;;13375:1;13358:5;:14;;:18;;;;13237:147::o:0;14473:132::-;14554:8;14547:25;;;14573:15;;;;;;;;;;;14590:6;14547:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14473:132;;:::o;685:87::-;731:7;758:6;;;;;;;;;;;751:13;;685:87;:::o;2872:104::-;2928:13;2961:7;2954:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2872:104;:::o;14351:110::-;14408:45;14443:9;14416:15;;;;;;;;;;;14408:34;;;;:45;;;;:::i;:::-;14351:110;:::o;4454:436::-;4547:4;4564:13;4580:12;:10;:12::i;:::-;4564:28;;4603:24;4630:25;4640:5;4647:7;4630:9;:25::i;:::-;4603:52;;4694:15;4674:16;:35;;4666:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4787:60;4796:5;4803:7;4831:15;4812:16;:34;4787:8;:60::i;:::-;4878:4;4871:11;;;;4454:436;;;;:::o;8883:19::-;;;;;;;;;;;;;:::o;13914:217::-;644:13;:11;:13::i;:::-;14018:9:::1;14014:110;14037:8;:15;14033:1;:19;14014:110;;;14107:5;14073:18;:31;14092:8;14101:1;14092:11;;;;;;;;:::i;:::-;;;;;;;;14073:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;14054:3;;;;;:::i;:::-;;;;14014:110;;;;13914:217:::0;;:::o;3336:193::-;3415:4;3432:13;3448:12;:10;:12::i;:::-;3432:28;;3471;3481:5;3488:2;3492:6;3471:9;:28::i;:::-;3517:4;3510:11;;;3336:193;;;;:::o;13767:135::-;644:13;:11;:13::i;:::-;13889:5:::1;13858:18;:28;13877:8;13858:28;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;13767:135:::0;;:::o;12460:110::-;644:13;:11;:13::i;:::-;12557:5:::1;12548:6;:14;;;;:::i;:::-;12532:13;:30;;;;12460:110:::0;:::o;8782:60::-;;;;;;;;;;;;;;;;;:::o;13481:155::-;644:13;:11;:13::i;:::-;13582:5:::1;13573:6;:14;;;;:::i;:::-;13565:5;:22;;;;13623:5;13610:10;:18;;;;:::i;:::-;13598:9;:30;;;;13481:155:::0;;:::o;3537:151::-;3626:7;3653:11;:18;3665:5;3653:18;;;;;;;;;;;;;;;:27;3672:7;3653:27;;;;;;;;;;;;;;;;3646:34;;3537:151;;;;:::o;12357:95::-;644:13;:11;:13::i;:::-;12438:6:::1;12424:11;;:20;;;;;;;;;;;;;;;;;;12357:95:::0;:::o;13392:81::-;644:13;:11;:13::i;:::-;13461:4:::1;13453:5;:12;;;;13392:81:::0;:::o;12582:252::-;644:13;:11;:13::i;:::-;12706:2:::1;12695:7;:13;;:31;;;;;12724:2;12712:8;:14;;12695:31;:53;;;;;12746:2;12730:12;:18;;12695:53;12687:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;12786:39;;;;;;;;12793:7;12786:39;;;;12802:8;12786:39;;;;12812:12;12786:39;;::::0;12778:5:::1;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;12582:252:::0;;;:::o;1031:201::-;644:13;:11;:13::i;:::-;1140:1:::1;1120:22;;:8;:22;;::::0;1112:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1196:28;1215:8;1196:18;:28::i;:::-;1031:201:::0;:::o;8855:21::-;;;;;;;;;;;;;:::o;9142:42::-;;;;:::o;8717:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;158:98::-;211:7;238:10;231:17;;158:98;:::o;6627:380::-;6780:1;6763:19;;:5;:19;;;6755:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6861:1;6842:21;;:7;:21;;;6834:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6945:6;6915:11;:18;6927:5;6915:18;;;;;;;;;;;;;;;:27;6934:7;6915:27;;;;;;;;;;;;;;;:36;;;;6983:7;6967:32;;6976:5;6967:32;;;6992:6;6967:32;;;;;;:::i;:::-;;;;;;;;6627:380;;;:::o;780:132::-;855:12;:10;:12::i;:::-;844:23;;:7;:5;:7::i;:::-;:23;;;836:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;780:132::o;7015:453::-;7150:24;7177:25;7187:5;7194:7;7177:9;:25::i;:::-;7150:52;;7237:17;7217:16;:37;7213:248;;7299:6;7279:16;:26;;7271:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7383:51;7392:5;7399:7;7427:6;7408:16;:25;7383:8;:51::i;:::-;7213:248;7139:329;7015:453;;;:::o;10153:1465::-;10269:1;10260:6;:10;10252:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10333:8;;;;;;;;;;;:38;;;;10345:18;:26;10364:6;10345:26;;;;;;;;;;;;;;;;;;;;;;;;;10333:38;:71;;;;10375:18;:29;10394:9;10375:29;;;;;;;;;;;;;;;;;;;;;;;;;10333:71;10329:837;;;10421:42;10437:6;10445:9;10456:6;10421:15;:42::i;:::-;10478:7;;10329:837;10535:14;;;;;;;;;;;10527:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;10597:13;:21;10611:6;10597:21;;;;;;;;;;;;;;;;;;;;;;;;;10596:22;:51;;;;;10623:13;:24;10637:9;10623:24;;;;;;;;;;;;;;;;;;;;;;;;;10622:25;10596:51;10588:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;10699:4;;;;;;;;;;;10689:14;;:6;:14;;;10686:176;;10761:15;10752:5;;10732:9;:17;10742:6;10732:17;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;:44;;10724:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10831:15;10811:9;:17;10821:6;10811:17;;;;;;;;;;;;;;;:35;;;;10686:176;10892:4;;;;;;;;;;;10879:17;;:9;:17;;;10876:279;;10957:9;;10947:6;10924:20;10934:9;10924;:20::i;:::-;:29;;;;:::i;:::-;:42;;10916:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;11051:15;11042:5;;11019:9;:20;11029:9;11019:20;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;:47;;11011:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11124:15;11101:9;:20;11111:9;11101:20;;;;;;;;;;;;;;;:38;;;;10876:279;11186:12;11227:4;;;;;;;;;;;11214:17;;:9;:17;;;11211:172;;11262:3;11249:5;:10;;;11240:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;11233:32;;11211:172;;;11294:4;;;;;;;;;;;11284:14;;:6;:14;;;11281:102;;11328:3;11316:5;:9;;;11307:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;11300:31;;11281:102;;;11380:3;11363:5;:14;;;11354:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;11347:36;;11281:102;11211:172;11401:11;;;;;;;;;;;:29;;;;;11426:4;;;;;;;;;;;11416:14;;:6;:14;;;;11401:29;:42;;;;;11435:8;;;;;;;;;;;11434:9;11401:42;11397:58;;;11445:10;:8;:10::i;:::-;11397:58;11468:49;11484:6;11492:9;11512:4;11503:6;:13;;;;:::i;:::-;11468:15;:49::i;:::-;11538:1;11531:4;:8;11528:83;;;11555:44;11571:6;11587:4;11594;11555:15;:44::i;:::-;11528:83;10241:1377;10153:1465;;;;:::o;1240:191::-;1314:16;1333:6;;;;;;;;;;;1314:25;;1359:8;1350:6;;:17;;;;;;;;;;;;;;;;;;1414:8;1383:40;;1404:8;1383:40;;;;;;;;;;;;1303:128;1240:191;:::o;8226:317::-;8341:6;8316:21;:31;;8308:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8395:12;8413:9;:14;;8435:6;8413:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8394:52;;;8465:7;8457:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;8297:246;8226:317;;:::o;4898:675::-;5045:1;5029:18;;:4;:18;;;5021:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5122:1;5108:16;;:2;:16;;;5100:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5177:38;5198:4;5204:2;5208:6;5177:20;:38::i;:::-;5228:19;5250:9;:15;5260:4;5250:15;;;;;;;;;;;;;;;;5228:37;;5299:6;5284:11;:21;;5276:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;5416:6;5402:11;:20;5384:9;:15;5394:4;5384:15;;;;;;;;;;;;;;;:38;;;;5454:6;5437:9;:13;5447:2;5437:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;5504:2;5489:26;;5498:4;5489:26;;;5508:6;5489:26;;;;;;:::i;:::-;;;;;;;;5528:37;5548:4;5554:2;5558:6;5528:19;:37::i;:::-;5010:563;4898:675;;;:::o;11622:413::-;9450:8;;;;;;;;;;;9445:104;;9486:4;9475:8;;:15;;;;;;;;;;;;;;;;;;11671:23:::1;11697:24;11715:4;11697:9;:24::i;:::-;11671:50;;11755:13;;11736:15;:32;11732:296;;11785:22;11810:21;11785:46;;11846:31;11863:13;;11846:16;:31::i;:::-;11892:20;11939:14;11915:21;:38;;;;:::i;:::-;11892:61;;11968:48;12003:12;11976:15;;;;;;;;;;;11968:34;;;;:48;;;;:::i;:::-;11770:258;;11732:296;11660:375;9532:5:::0;9521:8;;:16;;;;;;;;;;;;;;;;;;9445:104;11622:413::o;7476:125::-;;;;:::o;7607:124::-;;;;:::o;12043:306::-;12109:21;12147:1;12133:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12109:40;;12178:4;12160;12165:1;12160:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12204:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12194:4;12199:1;12194:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12230:6;;;;;;;;;;;:57;;;12288:11;12301:1;12304:4;12318;12325:15;12230:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12098:251;12043:306;:::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:117::-;3907:1;3904;3897:12;3921:180;3969:77;3966:1;3959:88;4066:4;4063:1;4056:15;4090:4;4087:1;4080:15;4107:281;4190:27;4212:4;4190:27;:::i;:::-;4182:6;4178:40;4320:6;4308:10;4305:22;4284:18;4272:10;4269:34;4266:62;4263:88;;;4331:18;;:::i;:::-;4263:88;4371:10;4367:2;4360:22;4150:238;4107:281;;:::o;4394:129::-;4428:6;4455:20;;:::i;:::-;4445:30;;4484:33;4512:4;4504:6;4484:33;:::i;:::-;4394:129;;;:::o;4529:311::-;4606:4;4696:18;4688:6;4685:30;4682:56;;;4718:18;;:::i;:::-;4682:56;4768:4;4760:6;4756:17;4748:25;;4828:4;4822;4818:15;4810:23;;4529:311;;;:::o;4846:117::-;4955:1;4952;4945:12;4986:710;5082:5;5107:81;5123:64;5180:6;5123:64;:::i;:::-;5107:81;:::i;:::-;5098:90;;5208:5;5237:6;5230:5;5223:21;5271:4;5264:5;5260:16;5253:23;;5324:4;5316:6;5312:17;5304:6;5300:30;5353:3;5345:6;5342:15;5339:122;;;5372:79;;:::i;:::-;5339:122;5487:6;5470:220;5504:6;5499:3;5496:15;5470:220;;;5579:3;5608:37;5641:3;5629:10;5608:37;:::i;:::-;5603:3;5596:50;5675:4;5670:3;5666:14;5659:21;;5546:144;5530:4;5525:3;5521:14;5514:21;;5470:220;;;5474:21;5088:608;;4986:710;;;;;:::o;5719:370::-;5790:5;5839:3;5832:4;5824:6;5820:17;5816:27;5806:122;;5847:79;;:::i;:::-;5806:122;5964:6;5951:20;5989:94;6079:3;6071:6;6064:4;6056:6;6052:17;5989:94;:::i;:::-;5980:103;;5796:293;5719:370;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:678::-;6446:6;6454;6503:2;6491:9;6482:7;6478:23;6474:32;6471:119;;;6509:79;;:::i;:::-;6471:119;6657:1;6646:9;6642:17;6629:31;6687:18;6679:6;6676:30;6673:117;;;6709:79;;:::i;:::-;6673:117;6814:78;6884:7;6875:6;6864:9;6860:22;6814:78;:::i;:::-;6804:88;;6600:302;6941:2;6967:50;7009:7;7000:6;6989:9;6985:22;6967:50;:::i;:::-;6957:60;;6912:115;6356:678;;;;;:::o;7040:619::-;7117:6;7125;7133;7182:2;7170:9;7161:7;7157:23;7153:32;7150:119;;;7188:79;;:::i;:::-;7150:119;7308:1;7333:53;7378:7;7369:6;7358:9;7354:22;7333:53;:::i;:::-;7323:63;;7279:117;7435:2;7461:53;7506:7;7497:6;7486:9;7482:22;7461:53;:::i;:::-;7451:63;;7406:118;7563:2;7589:53;7634:7;7625:6;7614:9;7610:22;7589:53;:::i;:::-;7579:63;;7534:118;7040:619;;;;;:::o;7665:474::-;7733:6;7741;7790:2;7778:9;7769:7;7765:23;7761:32;7758:119;;;7796:79;;:::i;:::-;7758:119;7916:1;7941:53;7986:7;7977:6;7966:9;7962:22;7941:53;:::i;:::-;7931:63;;7887:117;8043:2;8069:53;8114:7;8105:6;8094:9;8090:22;8069:53;:::i;:::-;8059:63;;8014:118;7665:474;;;;;:::o;8145:86::-;8180:7;8220:4;8213:5;8209:16;8198:27;;8145:86;;;:::o;8237:112::-;8320:22;8336:5;8320:22;:::i;:::-;8315:3;8308:35;8237:112;;:::o;8355:214::-;8444:4;8482:2;8471:9;8467:18;8459:26;;8495:67;8559:1;8548:9;8544:17;8535:6;8495:67;:::i;:::-;8355:214;;;;:::o;8575:329::-;8634:6;8683:2;8671:9;8662:7;8658:23;8654:32;8651:119;;;8689:79;;:::i;:::-;8651:119;8809:1;8834:53;8879:7;8870:6;8859:9;8855:22;8834:53;:::i;:::-;8824:63;;8780:117;8575:329;;;;:::o;8910:442::-;9059:4;9097:2;9086:9;9082:18;9074:26;;9110:71;9178:1;9167:9;9163:17;9154:6;9110:71;:::i;:::-;9191:72;9259:2;9248:9;9244:18;9235:6;9191:72;:::i;:::-;9273;9341:2;9330:9;9326:18;9317:6;9273:72;:::i;:::-;8910:442;;;;;;:::o;9358:118::-;9445:24;9463:5;9445:24;:::i;:::-;9440:3;9433:37;9358:118;;:::o;9482:222::-;9575:4;9613:2;9602:9;9598:18;9590:26;;9626:71;9694:1;9683:9;9679:17;9670:6;9626:71;:::i;:::-;9482:222;;;;:::o;9710:329::-;9769:6;9818:2;9806:9;9797:7;9793:23;9789:32;9786:119;;;9824:79;;:::i;:::-;9786:119;9944:1;9969:53;10014:7;10005:6;9994:9;9990:22;9969:53;:::i;:::-;9959:63;;9915:117;9710:329;;;;:::o;10045:468::-;10110:6;10118;10167:2;10155:9;10146:7;10142:23;10138:32;10135:119;;;10173:79;;:::i;:::-;10135:119;10293:1;10318:53;10363:7;10354:6;10343:9;10339:22;10318:53;:::i;:::-;10308:63;;10264:117;10420:2;10446:50;10488:7;10479:6;10468:9;10464:22;10446:50;:::i;:::-;10436:60;;10391:115;10045:468;;;;;:::o;10519:474::-;10587:6;10595;10644:2;10632:9;10623:7;10619:23;10615:32;10612:119;;;10650:79;;:::i;:::-;10612:119;10770:1;10795:53;10840:7;10831:6;10820:9;10816:22;10795:53;:::i;:::-;10785:63;;10741:117;10897:2;10923:53;10968:7;10959:6;10948:9;10944:22;10923:53;:::i;:::-;10913:63;;10868:118;10519:474;;;;;:::o;10999:323::-;11055:6;11104:2;11092:9;11083:7;11079:23;11075:32;11072:119;;;11110:79;;:::i;:::-;11072:119;11230:1;11255:50;11297:7;11288:6;11277:9;11273:22;11255:50;:::i;:::-;11245:60;;11201:114;10999:323;;;;:::o;11328:619::-;11405:6;11413;11421;11470:2;11458:9;11449:7;11445:23;11441:32;11438:119;;;11476:79;;:::i;:::-;11438:119;11596:1;11621:53;11666:7;11657:6;11646:9;11642:22;11621:53;:::i;:::-;11611:63;;11567:117;11723:2;11749:53;11794:7;11785:6;11774:9;11770:22;11749:53;:::i;:::-;11739:63;;11694:118;11851:2;11877:53;11922:7;11913:6;11902:9;11898:22;11877:53;:::i;:::-;11867:63;;11822:118;11328:619;;;;;:::o;11953:60::-;11981:3;12002:5;11995:12;;11953:60;;;:::o;12019:142::-;12069:9;12102:53;12120:34;12129:24;12147:5;12129:24;:::i;:::-;12120:34;:::i;:::-;12102:53;:::i;:::-;12089:66;;12019:142;;;:::o;12167:126::-;12217:9;12250:37;12281:5;12250:37;:::i;:::-;12237:50;;12167:126;;;:::o;12299:141::-;12364:9;12397:37;12428:5;12397:37;:::i;:::-;12384:50;;12299:141;;;:::o;12446:161::-;12548:52;12594:5;12548:52;:::i;:::-;12543:3;12536:65;12446:161;;:::o;12613:252::-;12721:4;12759:2;12748:9;12744:18;12736:26;;12772:86;12855:1;12844:9;12840:17;12831:6;12772:86;:::i;:::-;12613:252;;;;:::o;12871:180::-;12919:77;12916:1;12909:88;13016:4;13013:1;13006:15;13040:4;13037:1;13030:15;13057:320;13101:6;13138:1;13132:4;13128:12;13118:22;;13185:1;13179:4;13175:12;13206:18;13196:81;;13262:4;13254:6;13250:17;13240:27;;13196:81;13324:2;13316:6;13313:14;13293:18;13290:38;13287:84;;13343:18;;:::i;:::-;13287:84;13108:269;13057:320;;;:::o;13383:180::-;13431:77;13428:1;13421:88;13528:4;13525:1;13518:15;13552:4;13549:1;13542:15;13569:180;13617:77;13614:1;13607:88;13714:4;13711:1;13704:15;13738:4;13735:1;13728:15;13755:233;13794:3;13817:24;13835:5;13817:24;:::i;:::-;13808:33;;13863:66;13856:5;13853:77;13850:103;;13933:18;;:::i;:::-;13850:103;13980:1;13973:5;13969:13;13962:20;;13755:233;;;:::o;13994:191::-;14034:3;14053:20;14071:1;14053:20;:::i;:::-;14048:25;;14087:20;14105:1;14087:20;:::i;:::-;14082:25;;14130:1;14127;14123:9;14116:16;;14151:3;14148:1;14145:10;14142:36;;;14158:18;;:::i;:::-;14142:36;13994:191;;;;:::o;14191:332::-;14312:4;14350:2;14339:9;14335:18;14327:26;;14363:71;14431:1;14420:9;14416:17;14407:6;14363:71;:::i;:::-;14444:72;14512:2;14501:9;14497:18;14488:6;14444:72;:::i;:::-;14191:332;;;;;:::o;14529:137::-;14583:5;14614:6;14608:13;14599:22;;14630:30;14654:5;14630:30;:::i;:::-;14529:137;;;;:::o;14672:345::-;14739:6;14788:2;14776:9;14767:7;14763:23;14759:32;14756:119;;;14794:79;;:::i;:::-;14756:119;14914:1;14939:61;14992:7;14983:6;14972:9;14968:22;14939:61;:::i;:::-;14929:71;;14885:125;14672:345;;;;:::o;15023:224::-;15163:34;15159:1;15151:6;15147:14;15140:58;15232:7;15227:2;15219:6;15215:15;15208:32;15023:224;:::o;15253:366::-;15395:3;15416:67;15480:2;15475:3;15416:67;:::i;:::-;15409:74;;15492:93;15581:3;15492:93;:::i;:::-;15610:2;15605:3;15601:12;15594:19;;15253:366;;;:::o;15625:419::-;15791:4;15829:2;15818:9;15814:18;15806:26;;15878:9;15872:4;15868:20;15864:1;15853:9;15849:17;15842:47;15906:131;16032:4;15906:131;:::i;:::-;15898:139;;15625:419;;;:::o;16050:410::-;16090:7;16113:20;16131:1;16113:20;:::i;:::-;16108:25;;16147:20;16165:1;16147:20;:::i;:::-;16142:25;;16202:1;16199;16195:9;16224:30;16242:11;16224:30;:::i;:::-;16213:41;;16403:1;16394:7;16390:15;16387:1;16384:22;16364:1;16357:9;16337:83;16314:139;;16433:18;;:::i;:::-;16314:139;16098:362;16050:410;;;;:::o;16466:164::-;16606:16;16602:1;16594:6;16590:14;16583:40;16466:164;:::o;16636:366::-;16778:3;16799:67;16863:2;16858:3;16799:67;:::i;:::-;16792:74;;16875:93;16964:3;16875:93;:::i;:::-;16993:2;16988:3;16984:12;16977:19;;16636:366;;;:::o;17008:419::-;17174:4;17212:2;17201:9;17197:18;17189:26;;17261:9;17255:4;17251:20;17247:1;17236:9;17232:17;17225:47;17289:131;17415:4;17289:131;:::i;:::-;17281:139;;17008:419;;;:::o;17433:225::-;17573:34;17569:1;17561:6;17557:14;17550:58;17642:8;17637:2;17629:6;17625:15;17618:33;17433:225;:::o;17664:366::-;17806:3;17827:67;17891:2;17886:3;17827:67;:::i;:::-;17820:74;;17903:93;17992:3;17903:93;:::i;:::-;18021:2;18016:3;18012:12;18005:19;;17664:366;;;:::o;18036:419::-;18202:4;18240:2;18229:9;18225:18;18217:26;;18289:9;18283:4;18279:20;18275:1;18264:9;18260:17;18253:47;18317:131;18443:4;18317:131;:::i;:::-;18309:139;;18036:419;;;:::o;18461:223::-;18601:34;18597:1;18589:6;18585:14;18578:58;18670:6;18665:2;18657:6;18653:15;18646:31;18461:223;:::o;18690:366::-;18832:3;18853:67;18917:2;18912:3;18853:67;:::i;:::-;18846:74;;18929:93;19018:3;18929:93;:::i;:::-;19047:2;19042:3;19038:12;19031:19;;18690:366;;;:::o;19062:419::-;19228:4;19266:2;19255:9;19251:18;19243:26;;19315:9;19309:4;19305:20;19301:1;19290:9;19286:17;19279:47;19343:131;19469:4;19343:131;:::i;:::-;19335:139;;19062:419;;;:::o;19487:221::-;19627:34;19623:1;19615:6;19611:14;19604:58;19696:4;19691:2;19683:6;19679:15;19672:29;19487:221;:::o;19714:366::-;19856:3;19877:67;19941:2;19936:3;19877:67;:::i;:::-;19870:74;;19953:93;20042:3;19953:93;:::i;:::-;20071:2;20066:3;20062:12;20055:19;;19714:366;;;:::o;20086:419::-;20252:4;20290:2;20279:9;20275:18;20267:26;;20339:9;20333:4;20329:20;20325:1;20314:9;20310:17;20303:47;20367:131;20493:4;20367:131;:::i;:::-;20359:139;;20086:419;;;:::o;20511:182::-;20651:34;20647:1;20639:6;20635:14;20628:58;20511:182;:::o;20699:366::-;20841:3;20862:67;20926:2;20921:3;20862:67;:::i;:::-;20855:74;;20938:93;21027:3;20938:93;:::i;:::-;21056:2;21051:3;21047:12;21040:19;;20699:366;;;:::o;21071:419::-;21237:4;21275:2;21264:9;21260:18;21252:26;;21324:9;21318:4;21314:20;21310:1;21299:9;21295:17;21288:47;21352:131;21478:4;21352:131;:::i;:::-;21344:139;;21071:419;;;:::o;21496:179::-;21636:31;21632:1;21624:6;21620:14;21613:55;21496:179;:::o;21681:366::-;21823:3;21844:67;21908:2;21903:3;21844:67;:::i;:::-;21837:74;;21920:93;22009:3;21920:93;:::i;:::-;22038:2;22033:3;22029:12;22022:19;;21681:366;;;:::o;22053:419::-;22219:4;22257:2;22246:9;22242:18;22234:26;;22306:9;22300:4;22296:20;22292:1;22281:9;22277:17;22270:47;22334:131;22460:4;22334:131;:::i;:::-;22326:139;;22053:419;;;:::o;22478:228::-;22618:34;22614:1;22606:6;22602:14;22595:58;22687:11;22682:2;22674:6;22670:15;22663:36;22478:228;:::o;22712:366::-;22854:3;22875:67;22939:2;22934:3;22875:67;:::i;:::-;22868:74;;22951:93;23040:3;22951:93;:::i;:::-;23069:2;23064:3;23060:12;23053:19;;22712:366;;;:::o;23084:419::-;23250:4;23288:2;23277:9;23273:18;23265:26;;23337:9;23331:4;23327:20;23323:1;23312:9;23308:17;23301:47;23365:131;23491:4;23365:131;:::i;:::-;23357:139;;23084:419;;;:::o;23509:169::-;23649:21;23645:1;23637:6;23633:14;23626:45;23509:169;:::o;23684:366::-;23826:3;23847:67;23911:2;23906:3;23847:67;:::i;:::-;23840:74;;23923:93;24012:3;23923:93;:::i;:::-;24041:2;24036:3;24032:12;24025:19;;23684:366;;;:::o;24056:419::-;24222:4;24260:2;24249:9;24245:18;24237:26;;24309:9;24303:4;24299:20;24295:1;24284:9;24280:17;24273:47;24337:131;24463:4;24337:131;:::i;:::-;24329:139;;24056:419;;;:::o;24481:169::-;24621:21;24617:1;24609:6;24605:14;24598:45;24481:169;:::o;24656:366::-;24798:3;24819:67;24883:2;24878:3;24819:67;:::i;:::-;24812:74;;24895:93;24984:3;24895:93;:::i;:::-;25013:2;25008:3;25004:12;24997:19;;24656:366;;;:::o;25028:419::-;25194:4;25232:2;25221:9;25217:18;25209:26;;25281:9;25275:4;25271:20;25267:1;25256:9;25252:17;25245:47;25309:131;25435:4;25309:131;:::i;:::-;25301:139;;25028:419;;;:::o;25453:161::-;25593:13;25589:1;25581:6;25577:14;25570:37;25453:161;:::o;25620:366::-;25762:3;25783:67;25847:2;25842:3;25783:67;:::i;:::-;25776:74;;25859:93;25948:3;25859:93;:::i;:::-;25977:2;25972:3;25968:12;25961:19;;25620:366;;;:::o;25992:419::-;26158:4;26196:2;26185:9;26181:18;26173:26;;26245:9;26239:4;26235:20;26231:1;26220:9;26216:17;26209:47;26273:131;26399:4;26273:131;:::i;:::-;26265:139;;25992:419;;;:::o;26417:171::-;26557:23;26553:1;26545:6;26541:14;26534:47;26417:171;:::o;26594:366::-;26736:3;26757:67;26821:2;26816:3;26757:67;:::i;:::-;26750:74;;26833:93;26922:3;26833:93;:::i;:::-;26951:2;26946:3;26942:12;26935:19;;26594:366;;;:::o;26966:419::-;27132:4;27170:2;27159:9;27155:18;27147:26;;27219:9;27213:4;27209:20;27205:1;27194:9;27190:17;27183:47;27247:131;27373:4;27247:131;:::i;:::-;27239:139;;26966:419;;;:::o;27391:180::-;27439:77;27436:1;27429:88;27536:4;27533:1;27526:15;27560:4;27557:1;27550:15;27577:185;27617:1;27634:20;27652:1;27634:20;:::i;:::-;27629:25;;27668:20;27686:1;27668:20;:::i;:::-;27663:25;;27707:1;27697:35;;27712:18;;:::i;:::-;27697:35;27754:1;27751;27747:9;27742:14;;27577:185;;;;:::o;27768:194::-;27808:4;27828:20;27846:1;27828:20;:::i;:::-;27823:25;;27862:20;27880:1;27862:20;:::i;:::-;27857:25;;27906:1;27903;27899:9;27891:17;;27930:1;27924:4;27921:11;27918:37;;;27935:18;;:::i;:::-;27918:37;27768:194;;;;:::o;27968:179::-;28108:31;28104:1;28096:6;28092:14;28085:55;27968:179;:::o;28153:366::-;28295:3;28316:67;28380:2;28375:3;28316:67;:::i;:::-;28309:74;;28392:93;28481:3;28392:93;:::i;:::-;28510:2;28505:3;28501:12;28494:19;;28153:366;;;:::o;28525:419::-;28691:4;28729:2;28718:9;28714:18;28706:26;;28778:9;28772:4;28768:20;28764:1;28753:9;28749:17;28742:47;28806:131;28932:4;28806:131;:::i;:::-;28798:139;;28525:419;;;:::o;28950:147::-;29051:11;29088:3;29073:18;;28950:147;;;;:::o;29103:114::-;;:::o;29223:398::-;29382:3;29403:83;29484:1;29479:3;29403:83;:::i;:::-;29396:90;;29495:93;29584:3;29495:93;:::i;:::-;29613:1;29608:3;29604:11;29597:18;;29223:398;;;:::o;29627:379::-;29811:3;29833:147;29976:3;29833:147;:::i;:::-;29826:154;;29997:3;29990:10;;29627:379;;;:::o;30012:245::-;30152:34;30148:1;30140:6;30136:14;30129:58;30221:28;30216:2;30208:6;30204:15;30197:53;30012:245;:::o;30263:366::-;30405:3;30426:67;30490:2;30485:3;30426:67;:::i;:::-;30419:74;;30502:93;30591:3;30502:93;:::i;:::-;30620:2;30615:3;30611:12;30604:19;;30263:366;;;:::o;30635:419::-;30801:4;30839:2;30828:9;30824:18;30816:26;;30888:9;30882:4;30878:20;30874:1;30863:9;30859:17;30852:47;30916:131;31042:4;30916:131;:::i;:::-;30908:139;;30635:419;;;:::o;31060:224::-;31200:34;31196:1;31188:6;31184:14;31177:58;31269:7;31264:2;31256:6;31252:15;31245:32;31060:224;:::o;31290:366::-;31432:3;31453:67;31517:2;31512:3;31453:67;:::i;:::-;31446:74;;31529:93;31618:3;31529:93;:::i;:::-;31647:2;31642:3;31638:12;31631:19;;31290:366;;;:::o;31662:419::-;31828:4;31866:2;31855:9;31851:18;31843:26;;31915:9;31909:4;31905:20;31901:1;31890:9;31886:17;31879:47;31943:131;32069:4;31943:131;:::i;:::-;31935:139;;31662:419;;;:::o;32087:222::-;32227:34;32223:1;32215:6;32211:14;32204:58;32296:5;32291:2;32283:6;32279:15;32272:30;32087:222;:::o;32315:366::-;32457:3;32478:67;32542:2;32537:3;32478:67;:::i;:::-;32471:74;;32554:93;32643:3;32554:93;:::i;:::-;32672:2;32667:3;32663:12;32656:19;;32315:366;;;:::o;32687:419::-;32853:4;32891:2;32880:9;32876:18;32868:26;;32940:9;32934:4;32930:20;32926:1;32915:9;32911:17;32904:47;32968:131;33094:4;32968:131;:::i;:::-;32960:139;;32687:419;;;:::o;33112:225::-;33252:34;33248:1;33240:6;33236:14;33229:58;33321:8;33316:2;33308:6;33304:15;33297:33;33112:225;:::o;33343:366::-;33485:3;33506:67;33570:2;33565:3;33506:67;:::i;:::-;33499:74;;33582:93;33671:3;33582:93;:::i;:::-;33700:2;33695:3;33691:12;33684:19;;33343:366;;;:::o;33715:419::-;33881:4;33919:2;33908:9;33904:18;33896:26;;33968:9;33962:4;33958:20;33954:1;33943:9;33939:17;33932:47;33996:131;34122:4;33996:131;:::i;:::-;33988:139;;33715:419;;;:::o;34140:143::-;34197:5;34228:6;34222:13;34213:22;;34244:33;34271:5;34244:33;:::i;:::-;34140:143;;;;:::o;34289:351::-;34359:6;34408:2;34396:9;34387:7;34383:23;34379:32;34376:119;;;34414:79;;:::i;:::-;34376:119;34534:1;34559:64;34615:7;34606:6;34595:9;34591:22;34559:64;:::i;:::-;34549:74;;34505:128;34289:351;;;;:::o;34646:85::-;34691:7;34720:5;34709:16;;34646:85;;;:::o;34737:158::-;34795:9;34828:61;34846:42;34855:32;34881:5;34855:32;:::i;:::-;34846:42;:::i;:::-;34828:61;:::i;:::-;34815:74;;34737:158;;;:::o;34901:147::-;34996:45;35035:5;34996:45;:::i;:::-;34991:3;34984:58;34901:147;;:::o;35054:114::-;35121:6;35155:5;35149:12;35139:22;;35054:114;;;:::o;35174:184::-;35273:11;35307:6;35302:3;35295:19;35347:4;35342:3;35338:14;35323:29;;35174:184;;;;:::o;35364:132::-;35431:4;35454:3;35446:11;;35484:4;35479:3;35475:14;35467:22;;35364:132;;;:::o;35502:108::-;35579:24;35597:5;35579:24;:::i;:::-;35574:3;35567:37;35502:108;;:::o;35616:179::-;35685:10;35706:46;35748:3;35740:6;35706:46;:::i;:::-;35784:4;35779:3;35775:14;35761:28;;35616:179;;;;:::o;35801:113::-;35871:4;35903;35898:3;35894:14;35886:22;;35801:113;;;:::o;35950:732::-;36069:3;36098:54;36146:5;36098:54;:::i;:::-;36168:86;36247:6;36242:3;36168:86;:::i;:::-;36161:93;;36278:56;36328:5;36278:56;:::i;:::-;36357:7;36388:1;36373:284;36398:6;36395:1;36392:13;36373:284;;;36474:6;36468:13;36501:63;36560:3;36545:13;36501:63;:::i;:::-;36494:70;;36587:60;36640:6;36587:60;:::i;:::-;36577:70;;36433:224;36420:1;36417;36413:9;36408:14;;36373:284;;;36377:14;36673:3;36666:10;;36074:608;;;35950:732;;;;:::o;36688:831::-;36951:4;36989:3;36978:9;36974:19;36966:27;;37003:71;37071:1;37060:9;37056:17;37047:6;37003:71;:::i;:::-;37084:80;37160:2;37149:9;37145:18;37136:6;37084:80;:::i;:::-;37211:9;37205:4;37201:20;37196:2;37185:9;37181:18;37174:48;37239:108;37342:4;37333:6;37239:108;:::i;:::-;37231:116;;37357:72;37425:2;37414:9;37410:18;37401:6;37357:72;:::i;:::-;37439:73;37507:3;37496:9;37492:19;37483:6;37439:73;:::i;:::-;36688:831;;;;;;;;:::o

Swarm Source

ipfs://6269b6400b4d04263649193e04841872691e62594ba852b7f3a572f9f0962ab1
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.