ETH Price: $3,476.71 (-1.17%)
Gas: 5 Gwei

Token

A Wojak Wish (10000X)
 

Overview

Max Total Supply

1,000,000,000 10000X

Holders

12

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
31,868,991.949561529 10000X

Value
$0.00
0x5b09fecf444ac76b6b9f13b86617a0ce6216e4f9
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:
AWojakWish

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

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

// Telegram : https://t.me/AWojakWish2023


/*

We all want that as first play for new year, let's make it happen !
Everyone in this space is an Wojak 💚

Tokenomics:  1,000,000 Supply
LP Pool: 70% // Burnt 30%

Tax - 1% / 1%

*/


// SPDX-License-Identifier: MIT

pragma solidity ^0.8.10;

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {return 0;}
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

    function decimals() external view returns (uint8);

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

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

    function getOwner() external view returns (address);

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

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

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

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

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

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

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

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        TSN[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal TSN;

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

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

    modifier TSNY() {
        require(isTSNY(msg.sender), "!APPROVED"); _;
    }

    function isTSNY(address adr) public view returns (bool) {
        return TSN[adr];
    }

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

contract AWojakWish is Ownable, IERC20 {
    using SafeMath for uint256;

    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;

    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    uint8 constant private _decimals = 9;

    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply * 4 / 100;
    uint256 public _walletMax = _totalSupply * 5 /100;

    string constant private _name = "A Wojak Wish";
    string constant private _symbol = "10000X";

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

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;
 
    uint256 public Lfee = 0;
    uint256 public Mfee = 1;
    uint256 public RFee = 0;
    uint256 public Tfee = 0;

    uint256 public totalFee = 0;
    uint256 public totalFeeIfSelling = 0;

    bool public takeBuyFee = true;
    bool public takeSellFee = true;
    bool public takeTransferFee = true;

    address private lpWallet;
    address private projectAddress;
    address private devWallet;
    address private nativeWallet;

    DexRouter public router;
    address public pair;
    mapping(address => bool) public isPair;

    uint256 public launchedAt;

    bool public tradingOpen = true;
    bool private inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = _totalSupply * 3 / 1000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }


    constructor() {
        router = DexRouter(routerAddress);
        pair = DexFactory(router.factory()).createPair(router.WETH(), address(this));
        isPair[pair] = true;
        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD] = true;
        isFeeExempt[nativeWallet] = true;
        isFeeExempt[routerAddress] = true;

        isTxLimitExempt[nativeWallet] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[routerAddress] = true;

        lpWallet = 0x0C4e9599FdDDd24FF72bF1D95ccB4229085F9aC5;
        projectAddress = 0x0C4e9599FdDDd24FF72bF1D95ccB4229085F9aC5;
        devWallet = 0x0C4e9599FdDDd24FF72bF1D95ccB4229085F9aC5;
        nativeWallet = msg.sender;
         
        isFeeExempt[projectAddress] = true;
        totalFee = Lfee.add(Mfee).add(Tfee).add(RFee);
        totalFeeIfSelling = totalFee;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    function name() external pure override returns (string memory) {return _name;}

    function symbol() external pure override returns (string memory) {return _symbol;}

    function decimals() external pure override returns (uint8) {return _decimals;}

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

    function getOwner() external view override returns (address) {return owner();}

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

    function allowance(address holder, address spender) external view override returns (uint256) {return _allowances[holder][spender];}

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);}
        if(!TSN[sender] && !TSN[recipient]){
            require(tradingOpen, "");
        }
        if (isPair[recipient] && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();}
        if (!launched() && isPair[recipient]) {
            require(_balances[sender] > 0, "");
            launch();
        }

        //Exchange tokens
         _balances[sender] = _balances[sender].sub(amount, "");

        if (!isTxLimitExempt[recipient]) {
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? extractFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

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

    function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint feeApplicable = 0;
        uint nativeAmount = 0;
        if (isPair[recipient] && takeSellFee) {
            feeApplicable = totalFeeIfSelling.sub(Tfee);        
        }
        if (isPair[sender] && takeBuyFee) {
            feeApplicable = totalFee.sub(Tfee);        
        }
        if (!isPair[sender] && !isPair[recipient]){
            if (takeTransferFee){
                feeApplicable = totalFeeIfSelling.sub(Tfee); 
            }
            else{
                feeApplicable = 0;
            }
        }
        if(feeApplicable > 0 && Tfee >0){
            nativeAmount = amount.mul(Tfee).div(100);
            _balances[nativeWallet] = _balances[nativeWallet].add(nativeAmount);
            emit Transfer(sender, nativeWallet, nativeAmount);
        }
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount).sub(nativeAmount);
    }

    function marketingAndLiquidity() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(Lfee).div(totalFee.sub(Tfee)).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = totalFee.sub(Tfee).sub(Lfee.div(2));

        uint256 amountETHLiquidity = amountETH.mul(Lfee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(Mfee).div(totalETHFee);
        uint256 amountETHDev = amountETH.mul(RFee).div(totalETHFee);
        
        (bool tmpSuccess1,) = payable(projectAddress).call{value : amountETHMarketing, gas : 30000}("");
        tmpSuccess1 = false;

        (tmpSuccess1,) = payable(devWallet).call{value : amountETHDev, gas : 30000}("");
        tmpSuccess1 = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value : amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                lpWallet,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
    }

    function RedT(uint256 newLiqFee, uint256 newMfee, uint256 newBetFee, uint256 newNativeFee, uint256 extra) public TSNY{
        Lfee = newLiqFee;
        Mfee = newMfee;
        RFee = newBetFee;
        Tfee = newNativeFee;
        totalFee = Lfee.add(Mfee).add(RFee).add(Tfee);
        totalFeeIfSelling = totalFee + extra;
    }

    function removeERC20(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        require(tokenAddress != address(this), "Cant remove the native token");
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function removeEther(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"Lfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Mfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMfee","type":"uint256"},{"internalType":"uint256","name":"newBetFee","type":"uint256"},{"internalType":"uint256","name":"newNativeFee","type":"uint256"},{"internalType":"uint256","name":"extra","type":"uint256"}],"name":"RedT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Tfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isTSNY","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"pure","type":"function"},{"inputs":[],"name":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200006991906200101b565b633b9aca006200007a91906200106c565b600355606460046003546200009091906200106c565b6200009c9190620010fc565b60045560646005600354620000b291906200106c565b620000be9190620010fc565b6005556000600a556001600b556000600c556000600d556000600e556000600f556001601060006101000a81548160ff0219169083151502179055506001601060016101000a81548160ff0219169083151502179055506001601060026101000a81548160ff0219169083151502179055506001601860006101000a81548160ff0219169083151502179055506001601860026101000a81548160ff0219169083151502179055506000601860036101000a81548160ff0219169083151502179055506103e8600380546200019491906200106c565b620001a09190620010fc565b601955348015620001b057600080fd5b506000620001c362000e1660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d091906200119e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000459573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047f91906200119e565b306040518363ffffffff1660e01b81526004016200049f929190620011e1565b6020604051808303816000875af1158015620004bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e591906200119e565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160166000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016009600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550730c4e9599fdddd24ff72bf1d95ccb4229085f9ac5601060036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730c4e9599fdddd24ff72bf1d95ccb4229085f9ac5601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730c4e9599fdddd24ff72bf1d95ccb4229085f9ac5601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000d51600c5462000d3d600d5462000d29600b54600a5462000e1e60201b620015ae1790919060201c565b62000e1e60201b620015ae1790919060201c565b62000e1e60201b620015ae1790919060201c565b600e81905550600e54600f81905550600354600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000e0891906200121f565b60405180910390a36200131c565b600033905090565b600080828462000e2f91906200123c565b90508381101562000e77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e6e90620012fa565b60405180910390fd5b8091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000f0f5780860481111562000ee75762000ee662000e81565b5b600185161562000ef75780820291505b808102905062000f078562000eb0565b945062000ec7565b94509492505050565b60008262000f2a576001905062000ffd565b8162000f3a576000905062000ffd565b816001811462000f53576002811462000f5e5762000f94565b600191505062000ffd565b60ff84111562000f735762000f7262000e81565b5b8360020a91508482111562000f8d5762000f8c62000e81565b5b5062000ffd565b5060208310610133831016604e8410600b841016171562000fce5782820a90508381111562000fc85762000fc762000e81565b5b62000ffd565b62000fdd848484600162000ebd565b9250905081840481111562000ff75762000ff662000e81565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620010288262001004565b915062001035836200100e565b9250620010647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f18565b905092915050565b6000620010798262001004565b9150620010868362001004565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620010c257620010c162000e81565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620011098262001004565b9150620011168362001004565b925082620011295762001128620010cd565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620011668262001139565b9050919050565b620011788162001159565b81146200118457600080fd5b50565b60008151905062001198816200116d565b92915050565b600060208284031215620011b757620011b662001134565b5b6000620011c78482850162001187565b91505092915050565b620011db8162001159565b82525050565b6000604082019050620011f86000830185620011d0565b620012076020830184620011d0565b9392505050565b620012198162001004565b82525050565b60006020820190506200123660008301846200120e565b92915050565b6000620012498262001004565b9150620012568362001004565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200128e576200128d62000e81565b5b828201905092915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000620012e2601b8362001299565b9150620012ef82620012aa565b602082019050919050565b600060208201905081810360008301526200131581620012d3565b9050919050565b61368c806200132c6000396000f3fe60806040526004361061023f5760003560e01c8063807c2d9c1161012e578063bf56b371116100ab578063dfc8fef41161006f578063dfc8fef4146108b6578063e5e31b13146108df578063f0ef821f1461091c578063f887ea4014610947578063ffb54a991461097257610246565b8063bf56b371146107e1578063c9567bf91461080c578063ca987b0e14610823578063da00097d1461084e578063dd62ed3e1461087957610246565b806395d89b41116100f257806395d89b41146106f8578063a535598914610723578063a8aa1b311461074e578063a9059cbb14610779578063b2891b5b146107b657610246565b8063807c2d9c146105fd5780638637b06914610628578063893d20e8146106655780638b42507f146106905780638da5cb5b146106cd57610246565b80634a74bb02116101bc5780637054093311610180578063705409331461052a57806370a0823114610555578063715018a614610592578063787a051b146105a95780637d1db4a5146105d257610246565b80634a74bb0214610441578063571ac8b01461046c5780635cf24234146104a9578063600fe671146104d45780636bde7801146104ff57610246565b806323b872dd1161020357806323b872dd146103345780632b112e49146103715780632d161dfd1461039c578063313ce567146103d95780633f4218e01461040457610246565b80630445b6671461024b57806306fdde0314610276578063095ea7b3146102a157806318160ddd146102de5780631df4ccfc1461030957610246565b3661024657005b600080fd5b34801561025757600080fd5b5061026061099d565b60405161026d9190612a93565b60405180910390f35b34801561028257600080fd5b5061028b6109a3565b6040516102989190612b47565b60405180910390f35b3480156102ad57600080fd5b506102c860048036038101906102c39190612bf8565b6109e0565b6040516102d59190612c53565b60405180910390f35b3480156102ea57600080fd5b506102f3610ad2565b6040516103009190612a93565b60405180910390f35b34801561031557600080fd5b5061031e610adc565b60405161032b9190612a93565b60405180910390f35b34801561034057600080fd5b5061035b60048036038101906103569190612c6e565b610ae2565b6040516103689190612c53565b60405180910390f35b34801561037d57600080fd5b50610386610ce2565b6040516103939190612a93565b60405180910390f35b3480156103a857600080fd5b506103c360048036038101906103be9190612cc1565b610d23565b6040516103d09190612c53565b60405180910390f35b3480156103e557600080fd5b506103ee610d79565b6040516103fb9190612d0a565b60405180910390f35b34801561041057600080fd5b5061042b60048036038101906104269190612cc1565b610d82565b6040516104389190612c53565b60405180910390f35b34801561044d57600080fd5b50610456610da2565b6040516104639190612c53565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190612cc1565b610db5565b6040516104a09190612c53565b60405180910390f35b3480156104b557600080fd5b506104be610de8565b6040516104cb9190612a93565b60405180910390f35b3480156104e057600080fd5b506104e9610dee565b6040516104f69190612a93565b60405180910390f35b34801561050b57600080fd5b50610514610df4565b6040516105219190612a93565b60405180910390f35b34801561053657600080fd5b5061053f610dfa565b60405161054c9190612c53565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190612cc1565b610e0d565b6040516105899190612a93565b60405180910390f35b34801561059e57600080fd5b506105a7610e56565b005b3480156105b557600080fd5b506105d060048036038101906105cb9190612d25565b610fa9565b005b3480156105de57600080fd5b506105e76110a5565b6040516105f49190612a93565b60405180910390f35b34801561060957600080fd5b506106126110ab565b60405161061f9190612a93565b60405180910390f35b34801561063457600080fd5b5061064f600480360381019061064a9190612bf8565b6110b1565b60405161065c9190612c53565b60405180910390f35b34801561067157600080fd5b5061067a61123d565b6040516106879190612d61565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b29190612cc1565b61124c565b6040516106c49190612c53565b60405180910390f35b3480156106d957600080fd5b506106e261126c565b6040516106ef9190612d61565b60405180910390f35b34801561070457600080fd5b5061070d611295565b60405161071a9190612b47565b60405180910390f35b34801561072f57600080fd5b506107386112d2565b6040516107459190612c53565b60405180910390f35b34801561075a57600080fd5b506107636112e5565b6040516107709190612d61565b60405180910390f35b34801561078557600080fd5b506107a0600480360381019061079b9190612bf8565b61130b565b6040516107ad9190612c53565b60405180910390f35b3480156107c257600080fd5b506107cb611320565b6040516107d89190612a93565b60405180910390f35b3480156107ed57600080fd5b506107f6611326565b6040516108039190612a93565b60405180910390f35b34801561081857600080fd5b5061082161132c565b005b34801561082f57600080fd5b506108386113de565b6040516108459190612a93565b60405180910390f35b34801561085a57600080fd5b506108636113e4565b6040516108709190612c53565b60405180910390f35b34801561088557600080fd5b506108a0600480360381019061089b9190612d7c565b6113f7565b6040516108ad9190612a93565b60405180910390f35b3480156108c257600080fd5b506108dd60048036038101906108d89190612dbc565b61147e565b005b3480156108eb57600080fd5b5061090660048036038101906109019190612cc1565b611542565b6040516109139190612c53565b60405180910390f35b34801561092857600080fd5b50610931611562565b60405161093e9190612c53565b60405180910390f35b34801561095357600080fd5b5061095c611575565b6040516109699190612e96565b60405180910390f35b34801561097e57600080fd5b5061098761159b565b6040516109949190612c53565b60405180910390f35b60195481565b60606040518060400160405280600c81526020017f4120576f6a616b20576973680000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ac09190612a93565b60405180910390a36001905092915050565b6000600354905090565b600e5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610cce57610c4d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461160c9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610cd9848484611670565b90509392505050565b6000610d1e610cf16000610e0d565b610d10610cff61dead610e0d565b600354611c0f90919063ffffffff16565b611c0f90919063ffffffff16565b905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006009905090565b60086020528060005260406000206000915054906101000a900460ff1681565b601860029054906101000a900460ff1681565b6000610de1827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6109e0565b9050919050565b600b5481565b600c5481565b600a5481565b601060019054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e5e611c59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee290612efd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fb1611c59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103590612efd565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc6064848461106b9190612f4c565b6110759190612fd5565b9081150290604051600060405180830381858888f193505050501580156110a0573d6000803e3d6000fd5b505050565b60045481565b60055481565b60006110bb611c59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113f90612efd565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae90613052565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016111f2929190613072565b6020604051808303816000875af1158015611211573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123591906130c7565b905092915050565b600061124761126c565b905090565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f3130303030580000000000000000000000000000000000000000000000000000815250905090565b601060029054906101000a900460ff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611318338484611670565b905092915050565b600d5481565b60175481565b611334611c59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b890612efd565b60405180910390fd5b6001601860006101000a81548160ff021916908315150217905550565b600f5481565b601860039054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61148733610d23565b6114c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bd90613140565b60405180910390fd5b84600a8190555083600b8190555082600c8190555081600d81905550611521600d54611513600c54611505600b54600a546115ae90919063ffffffff16565b6115ae90919063ffffffff16565b6115ae90919063ffffffff16565b600e8190555080600e546115359190613160565b600f819055505050505050565b60166020528060005260406000206000915054906101000a900460ff1681565b601060009054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860009054906101000a900460ff1681565b60008082846115bd9190613160565b905083811015611602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f990613202565b60405180910390fd5b8091505092915050565b6000838311158290611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164b9190612b47565b60405180910390fd5b50600083856116639190613222565b9050809150509392505050565b6000601860019054906101000a900460ff161561169957611692848484611c61565b9050611c08565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561173d5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561179257601860009054906101000a900460ff16611791576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117889061327c565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156117f85750601860019054906101000a900460ff16155b80156118105750601860029054906101000a900460ff165b801561185d5750601954600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561186b5761186a611e34565b5b611873612452565b1580156118c95750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611959576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611950576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119479061327c565b60405180910390fd5b61195861245f565b5b6119bc8260405180602001604052806000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461160c9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a9050506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611af05750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611afa5782611b06565b611b05858585612468565b5b9050611b5a81600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ae90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bfa9190612a93565b60405180910390a360019150505b9392505050565b6000611c5183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061160c565b905092915050565b600033905090565b6000611cec826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461160c9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d8182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ae90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e219190612a93565b60405180910390a3600190509392505050565b6001601860016101000a81548160ff0219169083151502179055506000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611ee56002611ed7611eb4600d54600e54611c0f90919063ffffffff16565b611ec9600a548761295290919063ffffffff16565b6129cd90919063ffffffff16565b6129cd90919063ffffffff16565b90506000611efc8284611c0f90919063ffffffff16565b90506000600267ffffffffffffffff811115611f1b57611f1a61329c565b5b604051908082528060200260200182016040528015611f495781602001602082028036833780820191505090505b5090503081600081518110611f6157611f606132cb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612008573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202c919061330f565b816001815181106120405761203f6132cb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120de959493929190613435565b600060405180830381600087803b1580156120f857600080fd5b505af115801561210c573d6000803e3d6000fd5b50505050600047905060006121556121306002600a546129cd90919063ffffffff16565b612147600d54600e54611c0f90919063ffffffff16565b611c0f90919063ffffffff16565b90506000612193600261218584612177600a548861295290919063ffffffff16565b6129cd90919063ffffffff16565b6129cd90919063ffffffff16565b905060006121be836121b0600b548761295290919063ffffffff16565b6129cd90919063ffffffff16565b905060006121e9846121db600c548861295290919063ffffffff16565b6129cd90919063ffffffff16565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051612237906134bd565b600060405180830381858888f193505050503d8060008114612275576040519150601f19603f3d011682016040523d82523d6000602084013e61227a565b606091505b5050905060009050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516122cc906134bd565b600060405180830381858888f193505050503d806000811461230a576040519150601f19603f3d011682016040523d82523d6000602084013e61230f565b606091505b50508091505060009050600089111561242b57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308c600080601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016123ab969594939291906134d2565b60606040518083038185885af11580156123c9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123ee9190613548565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848a60405161242292919061359b565b60405180910390a15b505050505050505050506000601860016101000a81548160ff021916908315150217905550565b6000806017541415905090565b43601781905550565b600080600090506000601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124d65750601060019054906101000a900460ff165b156124f5576124f2600d54600f54611c0f90919063ffffffff16565b91505b601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561255a5750601060009054906101000a900460ff165b1561257957612576600d54600e54611c0f90919063ffffffff16565b91505b601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561261d5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561265b57601060029054906101000a900460ff16156126555761264e600d54600f54611c0f90919063ffffffff16565b915061265a565b600091505b5b60008211801561266d57506000600d54115b156127fd5761269a606461268c600d548761295290919063ffffffff16565b6129cd90919063ffffffff16565b90506127108160066000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ae90919063ffffffff16565b60066000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127f49190612a93565b60405180910390a35b60006128256064612817858861295290919063ffffffff16565b6129cd90919063ffffffff16565b905061287981600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ae90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129199190612a93565b60405180910390a3612946826129388388611c0f90919063ffffffff16565b611c0f90919063ffffffff16565b93505050509392505050565b60008083141561296557600090506129c7565b600082846129739190612f4c565b90508284826129829190612fd5565b146129c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b990613636565b60405180910390fd5b809150505b92915050565b6000612a0f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a17565b905092915050565b60008083118290612a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a559190612b47565b60405180910390fd5b5060008385612a6d9190612fd5565b9050809150509392505050565b6000819050919050565b612a8d81612a7a565b82525050565b6000602082019050612aa86000830184612a84565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ae8578082015181840152602081019050612acd565b83811115612af7576000848401525b50505050565b6000601f19601f8301169050919050565b6000612b1982612aae565b612b238185612ab9565b9350612b33818560208601612aca565b612b3c81612afd565b840191505092915050565b60006020820190508181036000830152612b618184612b0e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b9982612b6e565b9050919050565b612ba981612b8e565b8114612bb457600080fd5b50565b600081359050612bc681612ba0565b92915050565b612bd581612a7a565b8114612be057600080fd5b50565b600081359050612bf281612bcc565b92915050565b60008060408385031215612c0f57612c0e612b69565b5b6000612c1d85828601612bb7565b9250506020612c2e85828601612be3565b9150509250929050565b60008115159050919050565b612c4d81612c38565b82525050565b6000602082019050612c686000830184612c44565b92915050565b600080600060608486031215612c8757612c86612b69565b5b6000612c9586828701612bb7565b9350506020612ca686828701612bb7565b9250506040612cb786828701612be3565b9150509250925092565b600060208284031215612cd757612cd6612b69565b5b6000612ce584828501612bb7565b91505092915050565b600060ff82169050919050565b612d0481612cee565b82525050565b6000602082019050612d1f6000830184612cfb565b92915050565b600060208284031215612d3b57612d3a612b69565b5b6000612d4984828501612be3565b91505092915050565b612d5b81612b8e565b82525050565b6000602082019050612d766000830184612d52565b92915050565b60008060408385031215612d9357612d92612b69565b5b6000612da185828601612bb7565b9250506020612db285828601612bb7565b9150509250929050565b600080600080600060a08688031215612dd857612dd7612b69565b5b6000612de688828901612be3565b9550506020612df788828901612be3565b9450506040612e0888828901612be3565b9350506060612e1988828901612be3565b9250506080612e2a88828901612be3565b9150509295509295909350565b6000819050919050565b6000612e5c612e57612e5284612b6e565b612e37565b612b6e565b9050919050565b6000612e6e82612e41565b9050919050565b6000612e8082612e63565b9050919050565b612e9081612e75565b82525050565b6000602082019050612eab6000830184612e87565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ee7602083612ab9565b9150612ef282612eb1565b602082019050919050565b60006020820190508181036000830152612f1681612eda565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f5782612a7a565b9150612f6283612a7a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f9b57612f9a612f1d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fe082612a7a565b9150612feb83612a7a565b925082612ffb57612ffa612fa6565b5b828204905092915050565b7f43616e742072656d6f766520746865206e617469766520746f6b656e00000000600082015250565b600061303c601c83612ab9565b915061304782613006565b602082019050919050565b6000602082019050818103600083015261306b8161302f565b9050919050565b60006040820190506130876000830185612d52565b6130946020830184612a84565b9392505050565b6130a481612c38565b81146130af57600080fd5b50565b6000815190506130c18161309b565b92915050565b6000602082840312156130dd576130dc612b69565b5b60006130eb848285016130b2565b91505092915050565b7f21415050524f5645440000000000000000000000000000000000000000000000600082015250565b600061312a600983612ab9565b9150613135826130f4565b602082019050919050565b600060208201905081810360008301526131598161311d565b9050919050565b600061316b82612a7a565b915061317683612a7a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131ab576131aa612f1d565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006131ec601b83612ab9565b91506131f7826131b6565b602082019050919050565b6000602082019050818103600083015261321b816131df565b9050919050565b600061322d82612a7a565b915061323883612a7a565b92508282101561324b5761324a612f1d565b5b828203905092915050565b50565b6000613266600083612ab9565b915061327182613256565b600082019050919050565b6000602082019050818103600083015261329581613259565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061330981612ba0565b92915050565b60006020828403121561332557613324612b69565b5b6000613333848285016132fa565b91505092915050565b6000819050919050565b600061336161335c6133578461333c565b612e37565b612a7a565b9050919050565b61337181613346565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133ac81612b8e565b82525050565b60006133be83836133a3565b60208301905092915050565b6000602082019050919050565b60006133e282613377565b6133ec8185613382565b93506133f783613393565b8060005b8381101561342857815161340f88826133b2565b975061341a836133ca565b9250506001810190506133fb565b5085935050505092915050565b600060a08201905061344a6000830188612a84565b6134576020830187613368565b818103604083015261346981866133d7565b90506134786060830185612d52565b6134856080830184612a84565b9695505050505050565b600081905092915050565b60006134a760008361348f565b91506134b282613256565b600082019050919050565b60006134c88261349a565b9150819050919050565b600060c0820190506134e76000830189612d52565b6134f46020830188612a84565b6135016040830187613368565b61350e6060830186613368565b61351b6080830185612d52565b61352860a0830184612a84565b979650505050505050565b60008151905061354281612bcc565b92915050565b60008060006060848603121561356157613560612b69565b5b600061356f86828701613533565b935050602061358086828701613533565b925050604061359186828701613533565b9150509250925092565b60006040820190506135b06000830185612a84565b6135bd6020830184612a84565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613620602183612ab9565b915061362b826135c4565b604082019050919050565b6000602082019050818103600083015261364f81613613565b905091905056fea2646970667358221220d7b82c2dbccecd16a8717ba56f0655c05e7119048cd7573c15a0ea4459e4e9ec64736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061023f5760003560e01c8063807c2d9c1161012e578063bf56b371116100ab578063dfc8fef41161006f578063dfc8fef4146108b6578063e5e31b13146108df578063f0ef821f1461091c578063f887ea4014610947578063ffb54a991461097257610246565b8063bf56b371146107e1578063c9567bf91461080c578063ca987b0e14610823578063da00097d1461084e578063dd62ed3e1461087957610246565b806395d89b41116100f257806395d89b41146106f8578063a535598914610723578063a8aa1b311461074e578063a9059cbb14610779578063b2891b5b146107b657610246565b8063807c2d9c146105fd5780638637b06914610628578063893d20e8146106655780638b42507f146106905780638da5cb5b146106cd57610246565b80634a74bb02116101bc5780637054093311610180578063705409331461052a57806370a0823114610555578063715018a614610592578063787a051b146105a95780637d1db4a5146105d257610246565b80634a74bb0214610441578063571ac8b01461046c5780635cf24234146104a9578063600fe671146104d45780636bde7801146104ff57610246565b806323b872dd1161020357806323b872dd146103345780632b112e49146103715780632d161dfd1461039c578063313ce567146103d95780633f4218e01461040457610246565b80630445b6671461024b57806306fdde0314610276578063095ea7b3146102a157806318160ddd146102de5780631df4ccfc1461030957610246565b3661024657005b600080fd5b34801561025757600080fd5b5061026061099d565b60405161026d9190612a93565b60405180910390f35b34801561028257600080fd5b5061028b6109a3565b6040516102989190612b47565b60405180910390f35b3480156102ad57600080fd5b506102c860048036038101906102c39190612bf8565b6109e0565b6040516102d59190612c53565b60405180910390f35b3480156102ea57600080fd5b506102f3610ad2565b6040516103009190612a93565b60405180910390f35b34801561031557600080fd5b5061031e610adc565b60405161032b9190612a93565b60405180910390f35b34801561034057600080fd5b5061035b60048036038101906103569190612c6e565b610ae2565b6040516103689190612c53565b60405180910390f35b34801561037d57600080fd5b50610386610ce2565b6040516103939190612a93565b60405180910390f35b3480156103a857600080fd5b506103c360048036038101906103be9190612cc1565b610d23565b6040516103d09190612c53565b60405180910390f35b3480156103e557600080fd5b506103ee610d79565b6040516103fb9190612d0a565b60405180910390f35b34801561041057600080fd5b5061042b60048036038101906104269190612cc1565b610d82565b6040516104389190612c53565b60405180910390f35b34801561044d57600080fd5b50610456610da2565b6040516104639190612c53565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190612cc1565b610db5565b6040516104a09190612c53565b60405180910390f35b3480156104b557600080fd5b506104be610de8565b6040516104cb9190612a93565b60405180910390f35b3480156104e057600080fd5b506104e9610dee565b6040516104f69190612a93565b60405180910390f35b34801561050b57600080fd5b50610514610df4565b6040516105219190612a93565b60405180910390f35b34801561053657600080fd5b5061053f610dfa565b60405161054c9190612c53565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190612cc1565b610e0d565b6040516105899190612a93565b60405180910390f35b34801561059e57600080fd5b506105a7610e56565b005b3480156105b557600080fd5b506105d060048036038101906105cb9190612d25565b610fa9565b005b3480156105de57600080fd5b506105e76110a5565b6040516105f49190612a93565b60405180910390f35b34801561060957600080fd5b506106126110ab565b60405161061f9190612a93565b60405180910390f35b34801561063457600080fd5b5061064f600480360381019061064a9190612bf8565b6110b1565b60405161065c9190612c53565b60405180910390f35b34801561067157600080fd5b5061067a61123d565b6040516106879190612d61565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b29190612cc1565b61124c565b6040516106c49190612c53565b60405180910390f35b3480156106d957600080fd5b506106e261126c565b6040516106ef9190612d61565b60405180910390f35b34801561070457600080fd5b5061070d611295565b60405161071a9190612b47565b60405180910390f35b34801561072f57600080fd5b506107386112d2565b6040516107459190612c53565b60405180910390f35b34801561075a57600080fd5b506107636112e5565b6040516107709190612d61565b60405180910390f35b34801561078557600080fd5b506107a0600480360381019061079b9190612bf8565b61130b565b6040516107ad9190612c53565b60405180910390f35b3480156107c257600080fd5b506107cb611320565b6040516107d89190612a93565b60405180910390f35b3480156107ed57600080fd5b506107f6611326565b6040516108039190612a93565b60405180910390f35b34801561081857600080fd5b5061082161132c565b005b34801561082f57600080fd5b506108386113de565b6040516108459190612a93565b60405180910390f35b34801561085a57600080fd5b506108636113e4565b6040516108709190612c53565b60405180910390f35b34801561088557600080fd5b506108a0600480360381019061089b9190612d7c565b6113f7565b6040516108ad9190612a93565b60405180910390f35b3480156108c257600080fd5b506108dd60048036038101906108d89190612dbc565b61147e565b005b3480156108eb57600080fd5b5061090660048036038101906109019190612cc1565b611542565b6040516109139190612c53565b60405180910390f35b34801561092857600080fd5b50610931611562565b60405161093e9190612c53565b60405180910390f35b34801561095357600080fd5b5061095c611575565b6040516109699190612e96565b60405180910390f35b34801561097e57600080fd5b5061098761159b565b6040516109949190612c53565b60405180910390f35b60195481565b60606040518060400160405280600c81526020017f4120576f6a616b20576973680000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ac09190612a93565b60405180910390a36001905092915050565b6000600354905090565b600e5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610cce57610c4d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461160c9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610cd9848484611670565b90509392505050565b6000610d1e610cf16000610e0d565b610d10610cff61dead610e0d565b600354611c0f90919063ffffffff16565b611c0f90919063ffffffff16565b905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006009905090565b60086020528060005260406000206000915054906101000a900460ff1681565b601860029054906101000a900460ff1681565b6000610de1827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6109e0565b9050919050565b600b5481565b600c5481565b600a5481565b601060019054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e5e611c59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee290612efd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fb1611c59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103590612efd565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc6064848461106b9190612f4c565b6110759190612fd5565b9081150290604051600060405180830381858888f193505050501580156110a0573d6000803e3d6000fd5b505050565b60045481565b60055481565b60006110bb611c59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113f90612efd565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae90613052565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016111f2929190613072565b6020604051808303816000875af1158015611211573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123591906130c7565b905092915050565b600061124761126c565b905090565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f3130303030580000000000000000000000000000000000000000000000000000815250905090565b601060029054906101000a900460ff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611318338484611670565b905092915050565b600d5481565b60175481565b611334611c59565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b890612efd565b60405180910390fd5b6001601860006101000a81548160ff021916908315150217905550565b600f5481565b601860039054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61148733610d23565b6114c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bd90613140565b60405180910390fd5b84600a8190555083600b8190555082600c8190555081600d81905550611521600d54611513600c54611505600b54600a546115ae90919063ffffffff16565b6115ae90919063ffffffff16565b6115ae90919063ffffffff16565b600e8190555080600e546115359190613160565b600f819055505050505050565b60166020528060005260406000206000915054906101000a900460ff1681565b601060009054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860009054906101000a900460ff1681565b60008082846115bd9190613160565b905083811015611602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f990613202565b60405180910390fd5b8091505092915050565b6000838311158290611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164b9190612b47565b60405180910390fd5b50600083856116639190613222565b9050809150509392505050565b6000601860019054906101000a900460ff161561169957611692848484611c61565b9050611c08565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561173d5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561179257601860009054906101000a900460ff16611791576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117889061327c565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156117f85750601860019054906101000a900460ff16155b80156118105750601860029054906101000a900460ff165b801561185d5750601954600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561186b5761186a611e34565b5b611873612452565b1580156118c95750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611959576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611950576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119479061327c565b60405180910390fd5b61195861245f565b5b6119bc8260405180602001604052806000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461160c9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a9050506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611af05750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611afa5782611b06565b611b05858585612468565b5b9050611b5a81600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ae90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bfa9190612a93565b60405180910390a360019150505b9392505050565b6000611c5183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061160c565b905092915050565b600033905090565b6000611cec826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461160c9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d8182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ae90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e219190612a93565b60405180910390a3600190509392505050565b6001601860016101000a81548160ff0219169083151502179055506000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611ee56002611ed7611eb4600d54600e54611c0f90919063ffffffff16565b611ec9600a548761295290919063ffffffff16565b6129cd90919063ffffffff16565b6129cd90919063ffffffff16565b90506000611efc8284611c0f90919063ffffffff16565b90506000600267ffffffffffffffff811115611f1b57611f1a61329c565b5b604051908082528060200260200182016040528015611f495781602001602082028036833780820191505090505b5090503081600081518110611f6157611f606132cb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612008573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202c919061330f565b816001815181106120405761203f6132cb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120de959493929190613435565b600060405180830381600087803b1580156120f857600080fd5b505af115801561210c573d6000803e3d6000fd5b50505050600047905060006121556121306002600a546129cd90919063ffffffff16565b612147600d54600e54611c0f90919063ffffffff16565b611c0f90919063ffffffff16565b90506000612193600261218584612177600a548861295290919063ffffffff16565b6129cd90919063ffffffff16565b6129cd90919063ffffffff16565b905060006121be836121b0600b548761295290919063ffffffff16565b6129cd90919063ffffffff16565b905060006121e9846121db600c548861295290919063ffffffff16565b6129cd90919063ffffffff16565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051612237906134bd565b600060405180830381858888f193505050503d8060008114612275576040519150601f19603f3d011682016040523d82523d6000602084013e61227a565b606091505b5050905060009050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516122cc906134bd565b600060405180830381858888f193505050503d806000811461230a576040519150601f19603f3d011682016040523d82523d6000602084013e61230f565b606091505b50508091505060009050600089111561242b57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308c600080601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016123ab969594939291906134d2565b60606040518083038185885af11580156123c9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123ee9190613548565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848a60405161242292919061359b565b60405180910390a15b505050505050505050506000601860016101000a81548160ff021916908315150217905550565b6000806017541415905090565b43601781905550565b600080600090506000601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124d65750601060019054906101000a900460ff165b156124f5576124f2600d54600f54611c0f90919063ffffffff16565b91505b601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561255a5750601060009054906101000a900460ff165b1561257957612576600d54600e54611c0f90919063ffffffff16565b91505b601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561261d5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561265b57601060029054906101000a900460ff16156126555761264e600d54600f54611c0f90919063ffffffff16565b915061265a565b600091505b5b60008211801561266d57506000600d54115b156127fd5761269a606461268c600d548761295290919063ffffffff16565b6129cd90919063ffffffff16565b90506127108160066000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ae90919063ffffffff16565b60066000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127f49190612a93565b60405180910390a35b60006128256064612817858861295290919063ffffffff16565b6129cd90919063ffffffff16565b905061287981600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ae90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129199190612a93565b60405180910390a3612946826129388388611c0f90919063ffffffff16565b611c0f90919063ffffffff16565b93505050509392505050565b60008083141561296557600090506129c7565b600082846129739190612f4c565b90508284826129829190612fd5565b146129c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b990613636565b60405180910390fd5b809150505b92915050565b6000612a0f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a17565b905092915050565b60008083118290612a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a559190612b47565b60405180910390fd5b5060008385612a6d9190612fd5565b9050809150509392505050565b6000819050919050565b612a8d81612a7a565b82525050565b6000602082019050612aa86000830184612a84565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ae8578082015181840152602081019050612acd565b83811115612af7576000848401525b50505050565b6000601f19601f8301169050919050565b6000612b1982612aae565b612b238185612ab9565b9350612b33818560208601612aca565b612b3c81612afd565b840191505092915050565b60006020820190508181036000830152612b618184612b0e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b9982612b6e565b9050919050565b612ba981612b8e565b8114612bb457600080fd5b50565b600081359050612bc681612ba0565b92915050565b612bd581612a7a565b8114612be057600080fd5b50565b600081359050612bf281612bcc565b92915050565b60008060408385031215612c0f57612c0e612b69565b5b6000612c1d85828601612bb7565b9250506020612c2e85828601612be3565b9150509250929050565b60008115159050919050565b612c4d81612c38565b82525050565b6000602082019050612c686000830184612c44565b92915050565b600080600060608486031215612c8757612c86612b69565b5b6000612c9586828701612bb7565b9350506020612ca686828701612bb7565b9250506040612cb786828701612be3565b9150509250925092565b600060208284031215612cd757612cd6612b69565b5b6000612ce584828501612bb7565b91505092915050565b600060ff82169050919050565b612d0481612cee565b82525050565b6000602082019050612d1f6000830184612cfb565b92915050565b600060208284031215612d3b57612d3a612b69565b5b6000612d4984828501612be3565b91505092915050565b612d5b81612b8e565b82525050565b6000602082019050612d766000830184612d52565b92915050565b60008060408385031215612d9357612d92612b69565b5b6000612da185828601612bb7565b9250506020612db285828601612bb7565b9150509250929050565b600080600080600060a08688031215612dd857612dd7612b69565b5b6000612de688828901612be3565b9550506020612df788828901612be3565b9450506040612e0888828901612be3565b9350506060612e1988828901612be3565b9250506080612e2a88828901612be3565b9150509295509295909350565b6000819050919050565b6000612e5c612e57612e5284612b6e565b612e37565b612b6e565b9050919050565b6000612e6e82612e41565b9050919050565b6000612e8082612e63565b9050919050565b612e9081612e75565b82525050565b6000602082019050612eab6000830184612e87565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ee7602083612ab9565b9150612ef282612eb1565b602082019050919050565b60006020820190508181036000830152612f1681612eda565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f5782612a7a565b9150612f6283612a7a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f9b57612f9a612f1d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fe082612a7a565b9150612feb83612a7a565b925082612ffb57612ffa612fa6565b5b828204905092915050565b7f43616e742072656d6f766520746865206e617469766520746f6b656e00000000600082015250565b600061303c601c83612ab9565b915061304782613006565b602082019050919050565b6000602082019050818103600083015261306b8161302f565b9050919050565b60006040820190506130876000830185612d52565b6130946020830184612a84565b9392505050565b6130a481612c38565b81146130af57600080fd5b50565b6000815190506130c18161309b565b92915050565b6000602082840312156130dd576130dc612b69565b5b60006130eb848285016130b2565b91505092915050565b7f21415050524f5645440000000000000000000000000000000000000000000000600082015250565b600061312a600983612ab9565b9150613135826130f4565b602082019050919050565b600060208201905081810360008301526131598161311d565b9050919050565b600061316b82612a7a565b915061317683612a7a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131ab576131aa612f1d565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006131ec601b83612ab9565b91506131f7826131b6565b602082019050919050565b6000602082019050818103600083015261321b816131df565b9050919050565b600061322d82612a7a565b915061323883612a7a565b92508282101561324b5761324a612f1d565b5b828203905092915050565b50565b6000613266600083612ab9565b915061327182613256565b600082019050919050565b6000602082019050818103600083015261329581613259565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061330981612ba0565b92915050565b60006020828403121561332557613324612b69565b5b6000613333848285016132fa565b91505092915050565b6000819050919050565b600061336161335c6133578461333c565b612e37565b612a7a565b9050919050565b61337181613346565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133ac81612b8e565b82525050565b60006133be83836133a3565b60208301905092915050565b6000602082019050919050565b60006133e282613377565b6133ec8185613382565b93506133f783613393565b8060005b8381101561342857815161340f88826133b2565b975061341a836133ca565b9250506001810190506133fb565b5085935050505092915050565b600060a08201905061344a6000830188612a84565b6134576020830187613368565b818103604083015261346981866133d7565b90506134786060830185612d52565b6134856080830184612a84565b9695505050505050565b600081905092915050565b60006134a760008361348f565b91506134b282613256565b600082019050919050565b60006134c88261349a565b9150819050919050565b600060c0820190506134e76000830189612d52565b6134f46020830188612a84565b6135016040830187613368565b61350e6060830186613368565b61351b6080830185612d52565b61352860a0830184612a84565b979650505050505050565b60008151905061354281612bcc565b92915050565b60008060006060848603121561356157613560612b69565b5b600061356f86828701613533565b935050602061358086828701613533565b925050604061359186828701613533565b9150509250925092565b60006040820190506135b06000830185612a84565b6135bd6020830184612a84565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613620602183612ab9565b915061362b826135c4565b604082019050919050565b6000602082019050818103600083015261364f81613613565b905091905056fea2646970667358221220d7b82c2dbccecd16a8717ba56f0655c05e7119048cd7573c15a0ea4459e4e9ec64736f6c634300080a0033

Deployed Bytecode Sourcemap

5138:10239:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6800:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8349:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9191:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8611:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6157:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10308:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9041:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4885:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8525:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5928:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6699:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9415:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6065:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6095;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6035;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6272:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8791:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4983:148;;;;;;;;;;;;;:::i;:::-;;15171:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5579:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5638:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14908:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8705:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5978:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4585:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8435:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6309:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6519:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9806:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6125:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6592:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14478:77;;;;;;;;;;;;;:::i;:::-;;6191:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6746:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8902:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14563:337;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6545:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6236:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6489:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6626:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6800:54;;;;:::o;8349:78::-;8397:13;8420:5;;;;;;;;;;;;;;;;;8413:12;;8349:78;:::o;9191:216::-;9266:4;9318:6;9283:11;:23;9295:10;9283:23;;;;;;;;;;;;;;;:32;9307:7;9283:32;;;;;;;;;;;;;;;:41;;;;9361:7;9340:37;;9349:10;9340:37;;;9370:6;9340:37;;;;;;:::i;:::-;;;;;;;;9395:4;9388:11;;9191:216;;;;:::o;8611:86::-;8666:7;8683:12;;8676:19;;8611:86;:::o;6157:27::-;;;;:::o;10308:370::-;10408:4;10464:17;10429:11;:19;10441:6;10429:19;;;;;;;;;;;;;;;:31;10449:10;10429:31;;;;;;;;;;;;;;;;:52;10425:188;;10532:69;10568:6;10532:69;;;;;;;;;;;;;;;;;:11;:19;10544:6;10532:19;;;;;;;;;;;;;;;:31;10552:10;10532:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;10498:11;:19;10510:6;10498:19;;;;;;;;;;;;;;;:31;10518:10;10498:31;;;;;;;;;;;;;;;:103;;;;10425:188;10630:40;10644:6;10652:9;10663:6;10630:13;:40::i;:::-;10623:47;;10308:370;;;;;:::o;9041:142::-;9094:7;9121:54;9159:15;5332:42;9159:9;:15::i;:::-;9121:33;9138:15;5251:42;9138:9;:15::i;:::-;9121:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;9114:61;;9041:142;:::o;4885:90::-;4935:4;4959:3;:8;4963:3;4959:8;;;;;;;;;;;;;;;;;;;;;;;;;4952:15;;4885:90;;;:::o;8525:78::-;8577:5;5501:1;8585:16;;8525:78;:::o;5928:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;6699:40::-;;;;;;;;;;;;;:::o;9415:122::-;9470:4;9494:35;9502:7;9511:17;9494:7;:35::i;:::-;9487:42;;9415:122;;;:::o;6065:23::-;;;;:::o;6095:::-;;;;:::o;6035:::-;;;;:::o;6272:30::-;;;;;;;;;;;;;:::o;8791:103::-;8857:7;8874:9;:18;8884:7;8874:18;;;;;;;;;;;;;;;;8867:25;;8791:103;;;:::o;4983:148::-;4722:12;:10;:12::i;:::-;4712:22;;:6;;;;;;;;;;:22;;;4704:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5090:1:::1;5053:40;;5074:6;::::0;::::1;;;;;;;;5053:40;;;;;;;;;;;;5121:1;5104:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4983:148::o:0;15171:201::-;4722:12;:10;:12::i;:::-;4712:22;;:6;;;;;;;;;;:22;;;4704:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15248:17:::1;15268:21;15248:41;;15308:10;15300:28;;:64;15360:3;15341:16;15329:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;15300:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15237:135;15171:201:::0;:::o;5579:52::-;;;;:::o;5638:49::-;;;;:::o;14908:255::-;14993:12;4722;:10;:12::i;:::-;4712:22;;:6;;;;;;;;;;:22;;;4704:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15050:4:::1;15026:29;;:12;:29;;;;15018:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15113:12;15106:29;;;15136:10;15148:6;15106:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15099:56;;14908:255:::0;;;;:::o;8705:78::-;8757:7;8774;:5;:7::i;:::-;8767:14;;8705:78;:::o;5978:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;4585:79::-;4623:7;4650:6;;;;;;;;;;;4643:13;;4585:79;:::o;8435:82::-;8485:13;8508:7;;;;;;;;;;;;;;;;;8501:14;;8435:82;:::o;6309:34::-;;;;;;;;;;;;;:::o;6519:19::-;;;;;;;;;;;;;:::o;9806:156::-;9886:4;9910:44;9924:10;9936:9;9947:6;9910:13;:44::i;:::-;9903:51;;9806:156;;;;:::o;6125:23::-;;;;:::o;6592:25::-;;;;:::o;14478:77::-;4722:12;:10;:12::i;:::-;4712:22;;:6;;;;;;;;;;:22;;;4704:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14543:4:::1;14529:11;;:18;;;;;;;;;;;;;;;;;;14478:77::o:0;6191:36::-;;;;:::o;6746:45::-;;;;;;;;;;;;;:::o;8902:131::-;8986:7;9003:11;:19;9015:6;9003:19;;;;;;;;;;;;;;;:28;9023:7;9003:28;;;;;;;;;;;;;;;;8996:35;;8902:131;;;;:::o;14563:337::-;4834:18;4841:10;4834:6;:18::i;:::-;4826:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;14698:9:::1;14691:4;:16;;;;14725:7;14718:4;:14;;;;14750:9;14743:4;:16;;;;14777:12;14770:4;:19;;;;14811:34;14840:4;;14811:24;14830:4;;14811:14;14820:4;;14811;;:8;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;:28;;:34;;;;:::i;:::-;14800:8;:45;;;;14887:5;14876:8;;:16;;;;:::i;:::-;14856:17;:36;;;;14563:337:::0;;;;;:::o;6545:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;6236:29::-;;;;;;;;;;;;;:::o;6489:23::-;;;;;;;;;;;;;:::o;6626:30::-;;;;;;;;;;;;;:::o;410:179::-;468:7;488:9;504:1;500;:5;;;;:::i;:::-;488:17;;529:1;524;:6;;516:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;580:1;573:8;;;410:179;;;;:::o;741:190::-;827:7;860:1;855;:6;;863:12;847:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;887:9;903:1;899;:5;;;;:::i;:::-;887:17;;922:1;915:8;;;741:190;;;;;:::o;10686:1000::-;10778:4;10799:16;;;;;;;;;;;10795:73;;;10825:41;10840:6;10848:9;10859:6;10825:14;:41::i;:::-;10818:48;;;;10795:73;10882:3;:11;10886:6;10882:11;;;;;;;;;;;;;;;;;;;;;;;;;10881:12;:31;;;;;10898:3;:14;10902:9;10898:14;;;;;;;;;;;;;;;;;;;;;;;;;10897:15;10881:31;10878:86;;;10936:11;;;;;;;;;;;10928:24;;;;;;;;;;;;:::i;:::-;;;;;;;;;10878:86;10978:6;:17;10985:9;10978:17;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;11000:16;;;;;;;;;;;10999:17;10978:38;:63;;;;;11020:21;;;;;;;;;;;10978:63;:108;;;;;11073:13;;11045:9;:24;11063:4;11045:24;;;;;;;;;;;;;;;;:41;;10978:108;10974:140;;;11089:23;:21;:23::i;:::-;10974:140;11129:10;:8;:10::i;:::-;11128:11;:32;;;;;11143:6;:17;11150:9;11143:17;;;;;;;;;;;;;;;;;;;;;;;;;11128:32;11124:122;;;11205:1;11185:9;:17;11195:6;11185:17;;;;;;;;;;;;;;;;:21;11177:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;11226:8;:6;:8::i;:::-;11124:122;11306:33;11328:6;11306:33;;;;;;;;;;;;:9;:17;11316:6;11306:17;;;;;;;;;;;;;;;;:21;;:33;;;;;:::i;:::-;11286:9;:17;11296:6;11286:17;;;;;;;;;;;;;;;:53;;;;11357:15;:26;11373:9;11357:26;;;;;;;;;;;;;;;;;;;;;;;;11409:19;11432:11;:19;11444:6;11432:19;;;;;;;;;;;;;;;;;;;;;;;;;11431:20;:47;;;;;11456:11;:22;11468:9;11456:22;;;;;;;;;;;;;;;;;;;;;;;;;11455:23;11431:47;:96;;11521:6;11431:96;;;11481:37;11492:6;11500:9;11511:6;11481:10;:37::i;:::-;11431:96;11409:118;;11561:37;11586:11;11561:9;:20;11571:9;11561:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;11538:9;:20;11548:9;11538:20;;;;;;;;;;;;;;;:60;;;;11633:9;11616:40;;11625:6;11616:40;;;11644:11;11616:40;;;;;;:::i;:::-;;;;;;;;11674:4;11667:11;;;10686:1000;;;;;;:::o;597:136::-;655:7;682:43;686:1;689;682:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;675:50;;597:136;;;;:::o;3947:115::-;4000:15;4043:10;4028:26;;3947:115;:::o;9970:330::-;10063:4;10100:53;10122:6;10100:53;;;;;;;;;;;;;;;;;:9;:17;10110:6;10100:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10080:9;:17;10090:6;10080:17;;;;;;;;;;;;;;;:73;;;;10187:32;10212:6;10187:9;:20;10197:9;10187:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10164:9;:20;10174:9;10164:20;;;;;;;;;;;;;;;:55;;;;10252:9;10235:35;;10244:6;10235:35;;;10263:6;10235:35;;;;;;:::i;:::-;;;;;;;;10288:4;10281:11;;9970:330;;;;;:::o;12875:1595::-;6978:4;6959:16;;:23;;;;;;;;;;;;;;;;;;12940::::1;12966:9;:24;12984:4;12966:24;;;;;;;;;;;;;;;;12940:50;;13001:23;13027:56;13081:1;13027:49;13057:18;13070:4;;13057:8;;:12;;:18;;;;:::i;:::-;13027:25;13047:4;;13027:15;:19;;:25;;;;:::i;:::-;:29;;:49;;;;:::i;:::-;:53;;:56;;;;:::i;:::-;13001:82;;13094:20;13117:36;13137:15;13117;:19;;:36;;;;:::i;:::-;13094:59;;13166:21;13204:1;13190:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13166:40;;13235:4;13217;13222:1;13217:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13261:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13251:4;13256:1;13251:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13287:6;;;;;;;;;;;:57;;;13359:12;13386:1;13402:4;13429;13449:15;13287:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13488:17;13508:21;13488:41;;13542:19;13564:35;13587:11;13596:1;13587:4;;:8;;:11;;;;:::i;:::-;13564:18;13577:4;;13564:8;;:12;;:18;;;;:::i;:::-;:22;;:35;;;;:::i;:::-;13542:57;;13612:26;13641:43;13682:1;13641:36;13665:11;13641:19;13655:4;;13641:9;:13;;:19;;;;:::i;:::-;:23;;:36;;;;:::i;:::-;:40;;:43;;;;:::i;:::-;13612:72;;13695:26;13724:36;13748:11;13724:19;13738:4;;13724:9;:13;;:19;;;;:::i;:::-;:23;;:36;;;;:::i;:::-;13695:65;;13771:20;13794:36;13818:11;13794:19;13808:4;;13794:9;:13;;:19;;;;:::i;:::-;:23;;:36;;;;:::i;:::-;13771:59;;13852:16;13881:14;;;;;;;;;;;13873:28;;13910:18;13936:5;13873:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13851:95;;;13971:5;13957:19;;14014:9;;;;;;;;;;;14006:23;;14038:12;14058:5;14006:62;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13989:79;;;;;14093:5;14079:19;;14133:1;14115:15;:19;14111:352;;;14151:6;;;;;;;;;;;:22;;;14182:18;14228:4;14252:15;14286:1;14306::::0;14326:8:::1;;;;;;;;;;;14353:15;14151:232;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14403:48;14415:18;14435:15;14403:48;;;;;;;:::i;:::-;;;;;;;;14111:352;12929:1541;;;;;;;;;;7024:5:::0;7005:16;;:24;;;;;;;;;;;;;;;;;;12875:1595::o;9545:90::-;9588:4;9626:1;9612:10;;:15;;9605:22;;9545:90;:::o;9643:71::-;9694:12;9681:10;:25;;;;9643:71::o;11694:1173::-;11783:7;11803:18;11824:1;11803:22;;11836:17;11872:6;:17;11879:9;11872:17;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;;;11893:11;;;;;;;;;;;11872:32;11868:116;;;11937:27;11959:4;;11937:17;;:21;;:27;;;;:::i;:::-;11921:43;;11868:116;11998:6;:14;12005:6;11998:14;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;;;12016:10;;;;;;;;;;;11998:28;11994:103;;;12059:18;12072:4;;12059:8;;:12;;:18;;;;:::i;:::-;12043:34;;11994:103;12112:6;:14;12119:6;12112:14;;;;;;;;;;;;;;;;;;;;;;;;;12111:15;:37;;;;;12131:6;:17;12138:9;12131:17;;;;;;;;;;;;;;;;;;;;;;;;;12130:18;12111:37;12107:237;;;12168:15;;;;;;;;;;;12164:169;;;12219:27;12241:4;;12219:17;;:21;;:27;;;;:::i;:::-;12203:43;;12164:169;;;12316:1;12300:17;;12164:169;12107:237;12373:1;12357:13;:17;:28;;;;;12384:1;12378:4;;:7;12357:28;12354:245;;;12416:25;12437:3;12416:16;12427:4;;12416:6;:10;;:16;;;;:::i;:::-;:20;;:25;;;;:::i;:::-;12401:40;;12482:41;12510:12;12482:9;:23;12492:12;;;;;;;;;;;12482:23;;;;;;;;;;;;;;;;:27;;:41;;;;:::i;:::-;12456:9;:23;12466:12;;;;;;;;;;;12456:23;;;;;;;;;;;;;;;:67;;;;12560:12;;;;;;;;;;;12543:44;;12552:6;12543:44;;;12574:12;12543:44;;;;;;:::i;:::-;;;;;;;;12354:245;12609:17;12629:34;12659:3;12629:25;12640:13;12629:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;12609:54;;12703:39;12732:9;12703;:24;12721:4;12703:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12676:9;:24;12694:4;12676:24;;;;;;;;;;;;;;;:66;;;;12783:4;12758:42;;12767:6;12758:42;;;12790:9;12758:42;;;;;;:::i;:::-;;;;;;;;12820:39;12846:12;12820:21;12831:9;12820:6;:10;;:21;;;;:::i;:::-;:25;;:39;;;;:::i;:::-;12813:46;;;;;11694:1173;;;;;:::o;939:222::-;997:7;1026:1;1021;:6;1017:23;;;1037:1;1030:8;;;;1017:23;1050:9;1066:1;1062;:5;;;;:::i;:::-;1050:17;;1095:1;1090;1086;:5;;;;:::i;:::-;:10;1078:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1152:1;1145:8;;;939:222;;;;;:::o;1169:132::-;1227:7;1254:39;1258:1;1261;1254:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1247:46;;1169:132;;;;:::o;1309:189::-;1395:7;1427:1;1423;:5;1430:12;1415:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1454:9;1470:1;1466;:5;;;;:::i;:::-;1454:17;;1489:1;1482:8;;;1309:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:119;;;4585:79;;:::i;:::-;4547:119;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4471:329;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:329::-;5295:6;5344:2;5332:9;5323:7;5319:23;5315:32;5312:119;;;5350:79;;:::i;:::-;5312:119;5470:1;5495:53;5540:7;5531:6;5520:9;5516:22;5495:53;:::i;:::-;5485:63;;5441:117;5236:329;;;;:::o;5571:118::-;5658:24;5676:5;5658:24;:::i;:::-;5653:3;5646:37;5571:118;;:::o;5695:222::-;5788:4;5826:2;5815:9;5811:18;5803:26;;5839:71;5907:1;5896:9;5892:17;5883:6;5839:71;:::i;:::-;5695:222;;;;:::o;5923:474::-;5991:6;5999;6048:2;6036:9;6027:7;6023:23;6019:32;6016:119;;;6054:79;;:::i;:::-;6016:119;6174:1;6199:53;6244:7;6235:6;6224:9;6220:22;6199:53;:::i;:::-;6189:63;;6145:117;6301:2;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6272:118;5923:474;;;;;:::o;6403:911::-;6498:6;6506;6514;6522;6530;6579:3;6567:9;6558:7;6554:23;6550:33;6547:120;;;6586:79;;:::i;:::-;6547:120;6706:1;6731:53;6776:7;6767:6;6756:9;6752:22;6731:53;:::i;:::-;6721:63;;6677:117;6833:2;6859:53;6904:7;6895:6;6884:9;6880:22;6859:53;:::i;:::-;6849:63;;6804:118;6961:2;6987:53;7032:7;7023:6;7012:9;7008:22;6987:53;:::i;:::-;6977:63;;6932:118;7089:2;7115:53;7160:7;7151:6;7140:9;7136:22;7115:53;:::i;:::-;7105:63;;7060:118;7217:3;7244:53;7289:7;7280:6;7269:9;7265:22;7244:53;:::i;:::-;7234:63;;7188:119;6403:911;;;;;;;;:::o;7320:60::-;7348:3;7369:5;7362:12;;7320:60;;;:::o;7386:142::-;7436:9;7469:53;7487:34;7496:24;7514:5;7496:24;:::i;:::-;7487:34;:::i;:::-;7469:53;:::i;:::-;7456:66;;7386:142;;;:::o;7534:126::-;7584:9;7617:37;7648:5;7617:37;:::i;:::-;7604:50;;7534:126;;;:::o;7666:143::-;7733:9;7766:37;7797:5;7766:37;:::i;:::-;7753:50;;7666:143;;;:::o;7815:165::-;7919:54;7967:5;7919:54;:::i;:::-;7914:3;7907:67;7815:165;;:::o;7986:256::-;8096:4;8134:2;8123:9;8119:18;8111:26;;8147:88;8232:1;8221:9;8217:17;8208:6;8147:88;:::i;:::-;7986:256;;;;:::o;8248:182::-;8388:34;8384:1;8376:6;8372:14;8365:58;8248:182;:::o;8436:366::-;8578:3;8599:67;8663:2;8658:3;8599:67;:::i;:::-;8592:74;;8675:93;8764:3;8675:93;:::i;:::-;8793:2;8788:3;8784:12;8777:19;;8436:366;;;:::o;8808:419::-;8974:4;9012:2;9001:9;8997:18;8989:26;;9061:9;9055:4;9051:20;9047:1;9036:9;9032:17;9025:47;9089:131;9215:4;9089:131;:::i;:::-;9081:139;;8808:419;;;:::o;9233:180::-;9281:77;9278:1;9271:88;9378:4;9375:1;9368:15;9402:4;9399:1;9392:15;9419:348;9459:7;9482:20;9500:1;9482:20;:::i;:::-;9477:25;;9516:20;9534:1;9516:20;:::i;:::-;9511:25;;9704:1;9636:66;9632:74;9629:1;9626:81;9621:1;9614:9;9607:17;9603:105;9600:131;;;9711:18;;:::i;:::-;9600:131;9759:1;9756;9752:9;9741:20;;9419:348;;;;:::o;9773:180::-;9821:77;9818:1;9811:88;9918:4;9915:1;9908:15;9942:4;9939:1;9932:15;9959:185;9999:1;10016:20;10034:1;10016:20;:::i;:::-;10011:25;;10050:20;10068:1;10050:20;:::i;:::-;10045:25;;10089:1;10079:35;;10094:18;;:::i;:::-;10079:35;10136:1;10133;10129:9;10124:14;;9959:185;;;;:::o;10150:178::-;10290:30;10286:1;10278:6;10274:14;10267:54;10150:178;:::o;10334:366::-;10476:3;10497:67;10561:2;10556:3;10497:67;:::i;:::-;10490:74;;10573:93;10662:3;10573:93;:::i;:::-;10691:2;10686:3;10682:12;10675:19;;10334:366;;;:::o;10706:419::-;10872:4;10910:2;10899:9;10895:18;10887:26;;10959:9;10953:4;10949:20;10945:1;10934:9;10930:17;10923:47;10987:131;11113:4;10987:131;:::i;:::-;10979:139;;10706:419;;;:::o;11131:332::-;11252:4;11290:2;11279:9;11275:18;11267:26;;11303:71;11371:1;11360:9;11356:17;11347:6;11303:71;:::i;:::-;11384:72;11452:2;11441:9;11437:18;11428:6;11384:72;:::i;:::-;11131:332;;;;;:::o;11469:116::-;11539:21;11554:5;11539:21;:::i;:::-;11532:5;11529:32;11519:60;;11575:1;11572;11565:12;11519:60;11469:116;:::o;11591:137::-;11645:5;11676:6;11670:13;11661:22;;11692:30;11716:5;11692:30;:::i;:::-;11591:137;;;;:::o;11734:345::-;11801:6;11850:2;11838:9;11829:7;11825:23;11821:32;11818:119;;;11856:79;;:::i;:::-;11818:119;11976:1;12001:61;12054:7;12045:6;12034:9;12030:22;12001:61;:::i;:::-;11991:71;;11947:125;11734:345;;;;:::o;12085:159::-;12225:11;12221:1;12213:6;12209:14;12202:35;12085:159;:::o;12250:365::-;12392:3;12413:66;12477:1;12472:3;12413:66;:::i;:::-;12406:73;;12488:93;12577:3;12488:93;:::i;:::-;12606:2;12601:3;12597:12;12590:19;;12250:365;;;:::o;12621:419::-;12787:4;12825:2;12814:9;12810:18;12802:26;;12874:9;12868:4;12864:20;12860:1;12849:9;12845:17;12838:47;12902:131;13028:4;12902:131;:::i;:::-;12894:139;;12621:419;;;:::o;13046:305::-;13086:3;13105:20;13123:1;13105:20;:::i;:::-;13100:25;;13139:20;13157:1;13139:20;:::i;:::-;13134:25;;13293:1;13225:66;13221:74;13218:1;13215:81;13212:107;;;13299:18;;:::i;:::-;13212:107;13343:1;13340;13336:9;13329:16;;13046:305;;;;:::o;13357:177::-;13497:29;13493:1;13485:6;13481:14;13474:53;13357:177;:::o;13540:366::-;13682:3;13703:67;13767:2;13762:3;13703:67;:::i;:::-;13696:74;;13779:93;13868:3;13779:93;:::i;:::-;13897:2;13892:3;13888:12;13881:19;;13540:366;;;:::o;13912:419::-;14078:4;14116:2;14105:9;14101:18;14093:26;;14165:9;14159:4;14155:20;14151:1;14140:9;14136:17;14129:47;14193:131;14319:4;14193:131;:::i;:::-;14185:139;;13912:419;;;:::o;14337:191::-;14377:4;14397:20;14415:1;14397:20;:::i;:::-;14392:25;;14431:20;14449:1;14431:20;:::i;:::-;14426:25;;14470:1;14467;14464:8;14461:34;;;14475:18;;:::i;:::-;14461:34;14520:1;14517;14513:9;14505:17;;14337:191;;;;:::o;14534:114::-;;:::o;14654:364::-;14796:3;14817:66;14881:1;14876:3;14817:66;:::i;:::-;14810:73;;14892:93;14981:3;14892:93;:::i;:::-;15010:1;15005:3;15001:11;14994:18;;14654:364;;;:::o;15024:419::-;15190:4;15228:2;15217:9;15213:18;15205:26;;15277:9;15271:4;15267:20;15263:1;15252:9;15248:17;15241:47;15305:131;15431:4;15305:131;:::i;:::-;15297:139;;15024:419;;;:::o;15449:180::-;15497:77;15494:1;15487:88;15594:4;15591:1;15584:15;15618:4;15615:1;15608:15;15635:180;15683:77;15680:1;15673:88;15780:4;15777:1;15770:15;15804:4;15801:1;15794:15;15821:143;15878:5;15909:6;15903:13;15894:22;;15925:33;15952:5;15925:33;:::i;:::-;15821:143;;;;:::o;15970:351::-;16040:6;16089:2;16077:9;16068:7;16064:23;16060:32;16057:119;;;16095:79;;:::i;:::-;16057:119;16215:1;16240:64;16296:7;16287:6;16276:9;16272:22;16240:64;:::i;:::-;16230:74;;16186:128;15970:351;;;;:::o;16327:85::-;16372:7;16401:5;16390:16;;16327:85;;;:::o;16418:158::-;16476:9;16509:61;16527:42;16536:32;16562:5;16536:32;:::i;:::-;16527:42;:::i;:::-;16509:61;:::i;:::-;16496:74;;16418:158;;;:::o;16582:147::-;16677:45;16716:5;16677:45;:::i;:::-;16672:3;16665:58;16582:147;;:::o;16735:114::-;16802:6;16836:5;16830:12;16820:22;;16735:114;;;:::o;16855:184::-;16954:11;16988:6;16983:3;16976:19;17028:4;17023:3;17019:14;17004:29;;16855:184;;;;:::o;17045:132::-;17112:4;17135:3;17127:11;;17165:4;17160:3;17156:14;17148:22;;17045:132;;;:::o;17183:108::-;17260:24;17278:5;17260:24;:::i;:::-;17255:3;17248:37;17183:108;;:::o;17297:179::-;17366:10;17387:46;17429:3;17421:6;17387:46;:::i;:::-;17465:4;17460:3;17456:14;17442:28;;17297:179;;;;:::o;17482:113::-;17552:4;17584;17579:3;17575:14;17567:22;;17482:113;;;:::o;17631:732::-;17750:3;17779:54;17827:5;17779:54;:::i;:::-;17849:86;17928:6;17923:3;17849:86;:::i;:::-;17842:93;;17959:56;18009:5;17959:56;:::i;:::-;18038:7;18069:1;18054:284;18079:6;18076:1;18073:13;18054:284;;;18155:6;18149:13;18182:63;18241:3;18226:13;18182:63;:::i;:::-;18175:70;;18268:60;18321:6;18268:60;:::i;:::-;18258:70;;18114:224;18101:1;18098;18094:9;18089:14;;18054:284;;;18058:14;18354:3;18347:10;;17755:608;;;17631:732;;;;:::o;18369:831::-;18632:4;18670:3;18659:9;18655:19;18647:27;;18684:71;18752:1;18741:9;18737:17;18728:6;18684:71;:::i;:::-;18765:80;18841:2;18830:9;18826:18;18817:6;18765:80;:::i;:::-;18892:9;18886:4;18882:20;18877:2;18866:9;18862:18;18855:48;18920:108;19023:4;19014:6;18920:108;:::i;:::-;18912:116;;19038:72;19106:2;19095:9;19091:18;19082:6;19038:72;:::i;:::-;19120:73;19188:3;19177:9;19173:19;19164:6;19120:73;:::i;:::-;18369:831;;;;;;;;:::o;19206:147::-;19307:11;19344:3;19329:18;;19206:147;;;;:::o;19359:398::-;19518:3;19539:83;19620:1;19615:3;19539:83;:::i;:::-;19532:90;;19631:93;19720:3;19631:93;:::i;:::-;19749:1;19744:3;19740:11;19733:18;;19359:398;;;:::o;19763:379::-;19947:3;19969:147;20112:3;19969:147;:::i;:::-;19962:154;;20133:3;20126:10;;19763:379;;;:::o;20148:807::-;20397:4;20435:3;20424:9;20420:19;20412:27;;20449:71;20517:1;20506:9;20502:17;20493:6;20449:71;:::i;:::-;20530:72;20598:2;20587:9;20583:18;20574:6;20530:72;:::i;:::-;20612:80;20688:2;20677:9;20673:18;20664:6;20612:80;:::i;:::-;20702;20778:2;20767:9;20763:18;20754:6;20702:80;:::i;:::-;20792:73;20860:3;20849:9;20845:19;20836:6;20792:73;:::i;:::-;20875;20943:3;20932:9;20928:19;20919:6;20875:73;:::i;:::-;20148:807;;;;;;;;;:::o;20961:143::-;21018:5;21049:6;21043:13;21034:22;;21065:33;21092:5;21065:33;:::i;:::-;20961:143;;;;:::o;21110:663::-;21198:6;21206;21214;21263:2;21251:9;21242:7;21238:23;21234:32;21231:119;;;21269:79;;:::i;:::-;21231:119;21389:1;21414:64;21470:7;21461:6;21450:9;21446:22;21414:64;:::i;:::-;21404:74;;21360:128;21527:2;21553:64;21609:7;21600:6;21589:9;21585:22;21553:64;:::i;:::-;21543:74;;21498:129;21666:2;21692:64;21748:7;21739:6;21728:9;21724:22;21692:64;:::i;:::-;21682:74;;21637:129;21110:663;;;;;:::o;21779:332::-;21900:4;21938:2;21927:9;21923:18;21915:26;;21951:71;22019:1;22008:9;22004:17;21995:6;21951:71;:::i;:::-;22032:72;22100:2;22089:9;22085:18;22076:6;22032:72;:::i;:::-;21779:332;;;;;:::o;22117:220::-;22257:34;22253:1;22245:6;22241:14;22234:58;22326:3;22321:2;22313:6;22309:15;22302:28;22117:220;:::o;22343:366::-;22485:3;22506:67;22570:2;22565:3;22506:67;:::i;:::-;22499:74;;22582:93;22671:3;22582:93;:::i;:::-;22700:2;22695:3;22691:12;22684:19;;22343:366;;;:::o;22715:419::-;22881:4;22919:2;22908:9;22904:18;22896:26;;22968:9;22962:4;22958:20;22954:1;22943:9;22939:17;22932:47;22996:131;23122:4;22996:131;:::i;:::-;22988:139;;22715:419;;;:::o

Swarm Source

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