ETH Price: $2,518.47 (+2.85%)
Gas: 0.71 Gwei

Token

NOCAP (NOCAP)
 

Overview

Max Total Supply

1,000,000,000,000 NOCAP

Holders

104

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
0x99966.eth
Balance
439,514,267.482944501 NOCAP

Value
$0.00
0x665084f8c21bff391bf38f290ad912b643ee6cd5
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:
NOCAP

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 2021-12-21
*/

/**

https://t.me/NoCapERC20

* No Honeypot.
* No Liquidity Pull.
* No Farming.
* No DAO.

$$\   $$\  $$$$$$\         $$$$$$\   $$$$$$\  $$$$$$$\  
$$$\  $$ |$$  __$$\       $$  __$$\ $$  __$$\ $$  __$$\ 
$$$$\ $$ |$$ /  $$ |      $$ /  \__|$$ /  $$ |$$ |  $$ |
$$ $$\$$ |$$ |  $$ |      $$ |      $$$$$$$$ |$$$$$$$  |
$$ \$$$$ |$$ |  $$ |      $$ |      $$  __$$ |$$  ____/ 
$$ |\$$$ |$$ |  $$ |      $$ |  $$\ $$ |  $$ |$$ |      
$$ | \$$ | $$$$$$  |      \$$$$$$  |$$ |  $$ |$$ |      
\__|  \__| \______/        \______/ \__|  \__|\__|      
                                                        
* TOKENOMICS
 * 1,000,000,000,000 token supply
 * FIRST TWO MINUTES: 5,000,000,000 max buy / 30-second buy cooldown (these limitations are lifted automatically two minutes post-launch)
 * 15-second cooldown to sell after a buy
 * 10% tax on buys and sells
 * Max wallet of 5% of total supply for first 12 hours
 * 15% fee on sells within first (1) hour post-launch
 * No team tokens, no presale

SPDX-License-Identifier: UNLICENSED 
*/
pragma solidity ^0.8.10;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract NOCAP is Context, IERC20, Ownable {
    mapping (address => uint) private _owned;
    mapping (address => mapping (address => uint)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => User) private cooldown;
    uint private constant _totalSupply = 1e12 * 10**9;

    string public constant name = unicode"NOCAP";
    string public constant symbol = unicode"NOCAP";
    uint8 public constant decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;

    address payable public _FeeAddress1;
    address payable public _FeeAddress2;
    address public uniswapV2Pair;
    uint public _buyFee = 10;
    uint public _sellFee = 10;
    uint private _feeRate = 15;
    uint public _maxBuyAmount;
    uint public _maxHeldTokens;
    uint public _launchedAt;
    bool private _tradingOpen;
    bool private _inSwap = false;
    bool public _useImpactFeeSetter = false;

    struct User {
        uint buy;
        bool exists;
    }

    event FeeMultiplierUpdated(uint _multiplier);
    event ImpactFeeSetterUpdated(bool _usefeesetter);
    event FeeRateUpdated(uint _rate);
    event FeesUpdated(uint _buy, uint _sell);
    event FeeAddress1Updated(address _feewallet1);
    event FeeAddress2Updated(address _feewallet2);
    
    modifier lockTheSwap {
        _inSwap = true;
        _;
        _inSwap = false;
    }
    constructor (address payable FeeAddress1, address payable FeeAddress2) {
        _FeeAddress1 = FeeAddress1;
        _FeeAddress2 = FeeAddress2;
        _owned[address(this)] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[FeeAddress1] = true;
        _isExcludedFromFee[FeeAddress2] = true;
        emit Transfer(address(0), address(this), _totalSupply);
    }

    function balanceOf(address account) public view override returns (uint) {
        return _owned[account];
    }
    function transfer(address recipient, uint amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    
    function totalSupply() public pure override returns (uint) {
        return _totalSupply;
    }

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

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

    function transferFrom(address sender, address recipient, uint amount) public override returns (bool) {
        if(_tradingOpen && !_isExcludedFromFee[recipient] && sender == uniswapV2Pair){
            require (recipient == tx.origin, "pls no bot");
        }
        _transfer(sender, recipient, amount);
        uint allowedAmount = _allowances[sender][_msgSender()] - amount;
        _approve(sender, _msgSender(), allowedAmount);
        return true;
    }

    function _approve(address owner, address spender, uint amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool isBuy = false;
        if(from != owner() && to != owner()) {
            // buy
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(_tradingOpen, "Trading not yet enabled.");
                require(block.timestamp != _launchedAt, "pls no snip");
                if((_launchedAt + (12 hours)) > block.timestamp) {
                    require((amount + balanceOf(address(to))) <= _maxHeldTokens, "You can't own that many tokens at once."); // 5%
                }
                if(!cooldown[to].exists) {
                    cooldown[to] = User(0,true);
                }
                if((_launchedAt + (120 seconds)) > block.timestamp) {
                    require(amount <= _maxBuyAmount, "Exceeds maximum buy amount.");
                    require(cooldown[to].buy < block.timestamp + (30 seconds), "Your buy cooldown has not expired.");
                }
                cooldown[to].buy = block.timestamp;
                isBuy = true;
            }
            // sell
            if(!_inSwap && _tradingOpen && from != uniswapV2Pair) {
                require(cooldown[from].buy < block.timestamp + (15 seconds), "Your sell cooldown has not expired.");
                uint contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > 0) {
                    if(_useImpactFeeSetter) {
                        if(contractTokenBalance > (balanceOf(uniswapV2Pair) * _feeRate) / 100) {
                            contractTokenBalance = (balanceOf(uniswapV2Pair) * _feeRate) / 100;
                        }
                    }
                    swapTokensForEth(contractTokenBalance);
                }
                uint contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                isBuy = false;
            }
        }
        bool takeFee = true;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
        _tokenTransfer(from,to,amount,takeFee,isBuy);
    }

    function swapTokensForEth(uint tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint amount) private {
        _FeeAddress1.transfer(amount / 2);
        _FeeAddress2.transfer(amount / 2);
    }
    
    function _tokenTransfer(address sender, address recipient, uint amount, bool takefee, bool buy) private {
        (uint fee) = _getFee(takefee, buy);
        _transferStandard(sender, recipient, amount, fee);
    }

    function _getFee(bool takefee, bool buy) private view returns (uint) {
        uint fee = 0;
        if(takefee) {
            if(buy) {
                fee = _buyFee;
            } else {
                fee = _sellFee;
                if(block.timestamp < _launchedAt + (1 hours)) {
                    fee += 5;
                }
            }
        }
        return fee;
    }

    function _transferStandard(address sender, address recipient, uint amount, uint fee) private {
        (uint transferAmount, uint team) = _getValues(amount, fee);
        _owned[sender] = _owned[sender] - amount;
        _owned[recipient] = _owned[recipient] + transferAmount; 
        _takeTeam(team);
        emit Transfer(sender, recipient, transferAmount);
    }

    function _getValues(uint amount, uint teamFee) private pure returns (uint, uint) {
        uint team = (amount * teamFee) / 100;
        uint transferAmount = amount - team;
        return (transferAmount, team);
    }

    function _takeTeam(uint team) private {
        _owned[address(this)] = _owned[address(this)] + team;
    }

    receive() external payable {}
    
    // external functions
    function addLiquidity() external onlyOwner() {
        require(!_tradingOpen, "Trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function openTrading() external onlyOwner() {
        require(!_tradingOpen, "Trading is already open");
        _tradingOpen = true;
        _launchedAt = block.timestamp;
        _maxBuyAmount = 5000000000 * 10**9; // .5%
        _maxHeldTokens = 50000000000 * 10**9; // 5%
    }

    function manualswap() external {
        require(_msgSender() == _FeeAddress1);
        uint contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _FeeAddress1);
        uint contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function setFeeRate(uint rate) external {
        require(_msgSender() == _FeeAddress1);
        require(rate > 0, "Rate can't be zero");
        // 100% is the common fee rate
        _feeRate = rate;
        emit FeeRateUpdated(_feeRate);
    }

    function setFees(uint buy, uint sell) external {
        require(_msgSender() == _FeeAddress1);
        require(buy < 10 && sell < 10 && buy < _buyFee && sell < _sellFee, "Don't be greedy.");
        _buyFee = buy;
        _sellFee = sell;
        emit FeesUpdated(_buyFee, _sellFee);
    }

    function toggleImpactFee(bool onoff) external {
        require(_msgSender() == _FeeAddress1);
        _useImpactFeeSetter = onoff;
        emit ImpactFeeSetterUpdated(_useImpactFeeSetter);
    }

    function updateFeeAddress1(address newAddress) external {
        require(_msgSender() == _FeeAddress1);
        _FeeAddress1 = payable(newAddress);
        emit FeeAddress1Updated(_FeeAddress1);
    }

    function updateFeeAddress2(address newAddress) external {
        require(_msgSender() == _FeeAddress2);
        _FeeAddress2 = payable(newAddress);
        emit FeeAddress2Updated(_FeeAddress2);
    }

    // view functions
    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"FeeAddress1","type":"address"},{"internalType":"address payable","name":"FeeAddress2","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_feewallet1","type":"address"}],"name":"FeeAddress1Updated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_feewallet2","type":"address"}],"name":"FeeAddress2Updated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"FeeMultiplierUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"FeeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_buy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"FeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_usefeesetter","type":"bool"}],"name":"ImpactFeeSetterUpdated","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":"_FeeAddress1","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_FeeAddress2","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxHeldTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_useImpactFeeSetter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountInPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"toggleImpactFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateFeeAddress1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateFeeAddress2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600a8055600a600b55600f600c556000601060016101000a81548160ff0219169083151502179055506000601060026101000a81548160ff0219169083151502179055503480156200005557600080fd5b5060405162003fc638038062003fc683398181016040528101906200007b91906200047d565b60006200008d620003e260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550683635c9adc5dea00000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016004600062000210620003ea60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620003d29190620004df565b60405180910390a35050620004fc565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004458262000418565b9050919050565b620004578162000438565b81146200046357600080fd5b50565b60008151905062000477816200044c565b92915050565b6000806040838503121562000497576200049662000413565b5b6000620004a78582860162000466565b9250506020620004ba8582860162000466565b9150509250929050565b6000819050919050565b620004d981620004c4565b82525050565b6000602082019050620004f66000830184620004ce565b92915050565b613aba806200050c6000396000f3fe6080604052600436106101dc5760003560e01c806349bd5a5e1161010257806395d89b4111610095578063db92dbb611610064578063db92dbb614610661578063dcb0e0ad1461068c578063dd62ed3e146106b5578063e8078d94146106f2576101e3565b806395d89b41146105cb578063a9059cbb146105f6578063c3c8cd8014610633578063c9567bf91461064a576101e3565b806370a08231116100d157806370a0823114610521578063715018a61461055e5780638da5cb5b1461057557806394b8d8f2146105a0576101e3565b806349bd5a5e1461048b57806350901617146104b6578063590f897e146104df5780636fc3eaec1461050a576101e3565b806323b872dd1161017a578063367c554411610149578063367c5544146103e15780633bed43551461040c57806340b9a54b1461043757806345596e2e14610462576101e3565b806323b872dd1461032357806327f3a72a14610360578063313ce5671461038b57806332d873d8146103b6576101e3565b8063095ea7b3116101b6578063095ea7b3146102675780630b78f9c0146102a457806318160ddd146102cd5780631940d020146102f8576101e3565b80630492f055146101e857806306fdde03146102135780630802d2f61461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610709565b60405161020a9190612930565b60405180910390f35b34801561021f57600080fd5b5061022861070f565b60405161023591906129e4565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612a69565b610748565b005b34801561027357600080fd5b5061028e60048036038101906102899190612ac2565b610846565b60405161029b9190612b1d565b60405180910390f35b3480156102b057600080fd5b506102cb60048036038101906102c69190612b38565b610864565b005b3480156102d957600080fd5b506102e261097d565b6040516102ef9190612930565b60405180910390f35b34801561030457600080fd5b5061030d61098e565b60405161031a9190612930565b60405180910390f35b34801561032f57600080fd5b5061034a60048036038101906103459190612b78565b610994565b6040516103579190612b1d565b60405180910390f35b34801561036c57600080fd5b50610375610b85565b6040516103829190612930565b60405180910390f35b34801561039757600080fd5b506103a0610b95565b6040516103ad9190612be7565b60405180910390f35b3480156103c257600080fd5b506103cb610b9a565b6040516103d89190612930565b60405180910390f35b3480156103ed57600080fd5b506103f6610ba0565b6040516104039190612c23565b60405180910390f35b34801561041857600080fd5b50610421610bc6565b60405161042e9190612c23565b60405180910390f35b34801561044357600080fd5b5061044c610bec565b6040516104599190612930565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190612c3e565b610bf2565b005b34801561049757600080fd5b506104a0610cd9565b6040516104ad9190612c7a565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190612a69565b610cff565b005b3480156104eb57600080fd5b506104f4610dfd565b6040516105019190612930565b60405180910390f35b34801561051657600080fd5b5061051f610e03565b005b34801561052d57600080fd5b5061054860048036038101906105439190612a69565b610e75565b6040516105559190612930565b60405180910390f35b34801561056a57600080fd5b50610573610ebe565b005b34801561058157600080fd5b5061058a611011565b6040516105979190612c7a565b60405180910390f35b3480156105ac57600080fd5b506105b561103a565b6040516105c29190612b1d565b60405180910390f35b3480156105d757600080fd5b506105e061104d565b6040516105ed91906129e4565b60405180910390f35b34801561060257600080fd5b5061061d60048036038101906106189190612ac2565b611086565b60405161062a9190612b1d565b60405180910390f35b34801561063f57600080fd5b506106486110a4565b005b34801561065657600080fd5b5061065f61111e565b005b34801561066d57600080fd5b50610676611246565b6040516106839190612930565b60405180910390f35b34801561069857600080fd5b506106b360048036038101906106ae9190612cc1565b611278565b005b3480156106c157600080fd5b506106dc60048036038101906106d79190612cee565b61133c565b6040516106e99190612930565b60405180910390f35b3480156106fe57600080fd5b506107076113c3565b005b600d5481565b6040518060400160405280600581526020017f4e4f43415000000000000000000000000000000000000000000000000000000081525081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610789611874565b73ffffffffffffffffffffffffffffffffffffffff16146107a957600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0e96f8986653644392af4a5daec8b04a389af0d497572173e63846ccd26c843c600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161083b9190612d8d565b60405180910390a150565b600061085a610853611874565b848461187c565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108a5611874565b73ffffffffffffffffffffffffffffffffffffffff16146108c557600080fd5b600a821080156108d55750600a81105b80156108e25750600a5482105b80156108ef5750600b5481105b61092e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092590612df4565b60405180910390fd5b81600a8190555080600b819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600a54600b54604051610971929190612e14565b60405180910390a15050565b6000683635c9adc5dea00000905090565b600e5481565b6000601060009054906101000a900460ff1680156109fc5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610a555750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610ac9573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abf90612e89565b60405180910390fd5b5b610ad4848484611a47565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b20611874565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b659190612ed8565b9050610b7985610b73611874565b8361187c565b60019150509392505050565b6000610b9030610e75565b905090565b600981565b600f5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c33611874565b73ffffffffffffffffffffffffffffffffffffffff1614610c5357600080fd5b60008111610c96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8d90612f58565b60405180910390fd5b80600c819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600c54604051610cce9190612930565b60405180910390a150565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d40611874565b73ffffffffffffffffffffffffffffffffffffffff1614610d6057600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f96511497113ddf59712b28350d7457b9c300ab227616bd3b451745a395a53014600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610df29190612d8d565b60405180910390a150565b600b5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e44611874565b73ffffffffffffffffffffffffffffffffffffffff1614610e6457600080fd5b6000479050610e72816122c8565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ec6611874565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a90612fc4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601060029054906101000a900460ff1681565b6040518060400160405280600581526020017f4e4f43415000000000000000000000000000000000000000000000000000000081525081565b600061109a611093611874565b8484611a47565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110e5611874565b73ffffffffffffffffffffffffffffffffffffffff161461110557600080fd5b600061111030610e75565b905061111b816123b5565b50565b611126611874565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa90612fc4565b60405180910390fd5b601060009054906101000a900460ff1615611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa90613030565b60405180910390fd5b6001601060006101000a81548160ff02191690831515021790555042600f81905550674563918244f40000600d819055506802b5e3af16b1880000600e81905550565b6000611273600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e75565b905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112b9611874565b73ffffffffffffffffffffffffffffffffffffffff16146112d957600080fd5b80601060026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601060029054906101000a900460ff166040516113319190612b1d565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113cb611874565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144f90612fc4565b60405180910390fd5b601060009054906101000a900460ff16156114a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149f90613030565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061153830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061187c565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611583573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a79190613065565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561160e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116329190613065565b6040518363ffffffff1660e01b815260040161164f929190613092565b6020604051808303816000875af115801561166e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116929190613065565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061171b30610e75565b600080611726611011565b426040518863ffffffff1660e01b8152600401611748969594939291906130f6565b60606040518083038185885af1158015611766573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061178b919061316c565b505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161182d9291906131bf565b6020604051808303816000875af115801561184c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187091906131fd565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e39061329c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561195c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119539061332e565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a3a9190612930565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae906133c0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1e90613452565b60405180910390fd5b60008111611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b61906134e4565b60405180910390fd5b6000611b74611011565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611be25750611bb2611011565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561220357600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c925750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ce85750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561200357601060009054906101000a900460ff16611d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3390613550565b60405180910390fd5b600f54421415611d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d78906135bc565b60405180910390fd5b4261a8c0600f54611d9291906135dc565b1115611df157600e54611da484610e75565b83611daf91906135dc565b1115611df0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de7906136a4565b60405180910390fd5b5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16611ecb5760405180604001604052806000815260200160011515815250600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b426078600f54611edb91906135dc565b1115611fb757600d54821115611f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1d90613710565b60405180910390fd5b601e42611f3391906135dc565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fad906137a2565b60405180910390fd5b5b42600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601060019054906101000a900460ff1615801561202c5750601060009054906101000a900460ff165b80156120865750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561220257600f4261209891906135dc565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541061211b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211290613834565b60405180910390fd5b600061212630610e75565b905060008111156121e357601060029054906101000a900460ff16156121d9576064600c54612176600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e75565b6121809190613854565b61218a91906138dd565b8111156121d8576064600c546121c1600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e75565b6121cb9190613854565b6121d591906138dd565b90505b5b6121e2816123b5565b5b600047905060008111156121fb576121fa476122c8565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122aa5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156122b457600090505b6122c1858585848661262e565b5050505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361231191906138dd565b9081150290604051600060405180830381858888f1935050505015801561233c573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361238691906138dd565b9081150290604051600060405180830381858888f193505050501580156123b1573d6000803e3d6000fd5b5050565b6001601060016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156123ed576123ec61390e565b5b60405190808252806020026020018201604052801561241b5781602001602082028036833780820191505090505b50905030816000815181106124335761243261393d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124fe9190613065565b816001815181106125125761251161393d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061257930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461187c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016125dd959493929190613a2a565b600060405180830381600087803b1580156125f757600080fd5b505af115801561260b573d6000803e3d6000fd5b50505050506000601060016101000a81548160ff02191690831515021790555050565b600061263a8383612650565b9050612648868686846126a5565b505050505050565b60008060009050831561269b57821561266d57600a54905061269a565b600b549050610e10600f5461268291906135dc565b4210156126995760058161269691906135dc565b90505b5b5b8091505092915050565b6000806126b28484612848565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127019190612ed8565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461278f91906135dc565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127db81612886565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128389190612930565b60405180910390a3505050505050565b60008060006064848661285b9190613854565b61286591906138dd565b9050600081866128759190612ed8565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d191906135dc565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b61292a81612917565b82525050565b60006020820190506129456000830184612921565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561298557808201518184015260208101905061296a565b83811115612994576000848401525b50505050565b6000601f19601f8301169050919050565b60006129b68261294b565b6129c08185612956565b93506129d0818560208601612967565b6129d98161299a565b840191505092915050565b600060208201905081810360008301526129fe81846129ab565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a3682612a0b565b9050919050565b612a4681612a2b565b8114612a5157600080fd5b50565b600081359050612a6381612a3d565b92915050565b600060208284031215612a7f57612a7e612a06565b5b6000612a8d84828501612a54565b91505092915050565b612a9f81612917565b8114612aaa57600080fd5b50565b600081359050612abc81612a96565b92915050565b60008060408385031215612ad957612ad8612a06565b5b6000612ae785828601612a54565b9250506020612af885828601612aad565b9150509250929050565b60008115159050919050565b612b1781612b02565b82525050565b6000602082019050612b326000830184612b0e565b92915050565b60008060408385031215612b4f57612b4e612a06565b5b6000612b5d85828601612aad565b9250506020612b6e85828601612aad565b9150509250929050565b600080600060608486031215612b9157612b90612a06565b5b6000612b9f86828701612a54565b9350506020612bb086828701612a54565b9250506040612bc186828701612aad565b9150509250925092565b600060ff82169050919050565b612be181612bcb565b82525050565b6000602082019050612bfc6000830184612bd8565b92915050565b6000612c0d82612a0b565b9050919050565b612c1d81612c02565b82525050565b6000602082019050612c386000830184612c14565b92915050565b600060208284031215612c5457612c53612a06565b5b6000612c6284828501612aad565b91505092915050565b612c7481612a2b565b82525050565b6000602082019050612c8f6000830184612c6b565b92915050565b612c9e81612b02565b8114612ca957600080fd5b50565b600081359050612cbb81612c95565b92915050565b600060208284031215612cd757612cd6612a06565b5b6000612ce584828501612cac565b91505092915050565b60008060408385031215612d0557612d04612a06565b5b6000612d1385828601612a54565b9250506020612d2485828601612a54565b9150509250929050565b6000819050919050565b6000612d53612d4e612d4984612a0b565b612d2e565b612a0b565b9050919050565b6000612d6582612d38565b9050919050565b6000612d7782612d5a565b9050919050565b612d8781612d6c565b82525050565b6000602082019050612da26000830184612d7e565b92915050565b7f446f6e2774206265206772656564792e00000000000000000000000000000000600082015250565b6000612dde601083612956565b9150612de982612da8565b602082019050919050565b60006020820190508181036000830152612e0d81612dd1565b9050919050565b6000604082019050612e296000830185612921565b612e366020830184612921565b9392505050565b7f706c73206e6f20626f7400000000000000000000000000000000000000000000600082015250565b6000612e73600a83612956565b9150612e7e82612e3d565b602082019050919050565b60006020820190508181036000830152612ea281612e66565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ee382612917565b9150612eee83612917565b925082821015612f0157612f00612ea9565b5b828203905092915050565b7f526174652063616e2774206265207a65726f0000000000000000000000000000600082015250565b6000612f42601283612956565b9150612f4d82612f0c565b602082019050919050565b60006020820190508181036000830152612f7181612f35565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612fae602083612956565b9150612fb982612f78565b602082019050919050565b60006020820190508181036000830152612fdd81612fa1565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061301a601783612956565b915061302582612fe4565b602082019050919050565b600060208201905081810360008301526130498161300d565b9050919050565b60008151905061305f81612a3d565b92915050565b60006020828403121561307b5761307a612a06565b5b600061308984828501613050565b91505092915050565b60006040820190506130a76000830185612c6b565b6130b46020830184612c6b565b9392505050565b6000819050919050565b60006130e06130db6130d6846130bb565b612d2e565b612917565b9050919050565b6130f0816130c5565b82525050565b600060c08201905061310b6000830189612c6b565b6131186020830188612921565b61312560408301876130e7565b61313260608301866130e7565b61313f6080830185612c6b565b61314c60a0830184612921565b979650505050505050565b60008151905061316681612a96565b92915050565b60008060006060848603121561318557613184612a06565b5b600061319386828701613157565b93505060206131a486828701613157565b92505060406131b586828701613157565b9150509250925092565b60006040820190506131d46000830185612c6b565b6131e16020830184612921565b9392505050565b6000815190506131f781612c95565b92915050565b60006020828403121561321357613212612a06565b5b6000613221848285016131e8565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613286602483612956565b91506132918261322a565b604082019050919050565b600060208201905081810360008301526132b581613279565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613318602283612956565b9150613323826132bc565b604082019050919050565b600060208201905081810360008301526133478161330b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133aa602583612956565b91506133b58261334e565b604082019050919050565b600060208201905081810360008301526133d98161339d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061343c602383612956565b9150613447826133e0565b604082019050919050565b6000602082019050818103600083015261346b8161342f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006134ce602983612956565b91506134d982613472565b604082019050919050565b600060208201905081810360008301526134fd816134c1565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b600061353a601883612956565b915061354582613504565b602082019050919050565b600060208201905081810360008301526135698161352d565b9050919050565b7f706c73206e6f20736e6970000000000000000000000000000000000000000000600082015250565b60006135a6600b83612956565b91506135b182613570565b602082019050919050565b600060208201905081810360008301526135d581613599565b9050919050565b60006135e782612917565b91506135f283612917565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561362757613626612ea9565b5b828201905092915050565b7f596f752063616e2774206f776e2074686174206d616e7920746f6b656e73206160008201527f74206f6e63652e00000000000000000000000000000000000000000000000000602082015250565b600061368e602783612956565b915061369982613632565b604082019050919050565b600060208201905081810360008301526136bd81613681565b9050919050565b7f45786365656473206d6178696d756d2062757920616d6f756e742e0000000000600082015250565b60006136fa601b83612956565b9150613705826136c4565b602082019050919050565b60006020820190508181036000830152613729816136ed565b9050919050565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b600061378c602283612956565b915061379782613730565b604082019050919050565b600060208201905081810360008301526137bb8161377f565b9050919050565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b600061381e602383612956565b9150613829826137c2565b604082019050919050565b6000602082019050818103600083015261384d81613811565b9050919050565b600061385f82612917565b915061386a83612917565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138a3576138a2612ea9565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138e882612917565b91506138f383612917565b925082613903576139026138ae565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139a181612a2b565b82525050565b60006139b38383613998565b60208301905092915050565b6000602082019050919050565b60006139d78261396c565b6139e18185613977565b93506139ec83613988565b8060005b83811015613a1d578151613a0488826139a7565b9750613a0f836139bf565b9250506001810190506139f0565b5085935050505092915050565b600060a082019050613a3f6000830188612921565b613a4c60208301876130e7565b8181036040830152613a5e81866139cc565b9050613a6d6060830185612c6b565b613a7a6080830184612921565b969550505050505056fea2646970667358221220135c7991ce9697f014801cd72374b26b719550bd5430df9cb065b502753bff5e64736f6c634300080a00330000000000000000000000004c23554df1fb8a4efda8387921be304a4aa7b016000000000000000000000000ea20bc126ae3b479b2ee31d6d0a966a9a85425ca

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c806349bd5a5e1161010257806395d89b4111610095578063db92dbb611610064578063db92dbb614610661578063dcb0e0ad1461068c578063dd62ed3e146106b5578063e8078d94146106f2576101e3565b806395d89b41146105cb578063a9059cbb146105f6578063c3c8cd8014610633578063c9567bf91461064a576101e3565b806370a08231116100d157806370a0823114610521578063715018a61461055e5780638da5cb5b1461057557806394b8d8f2146105a0576101e3565b806349bd5a5e1461048b57806350901617146104b6578063590f897e146104df5780636fc3eaec1461050a576101e3565b806323b872dd1161017a578063367c554411610149578063367c5544146103e15780633bed43551461040c57806340b9a54b1461043757806345596e2e14610462576101e3565b806323b872dd1461032357806327f3a72a14610360578063313ce5671461038b57806332d873d8146103b6576101e3565b8063095ea7b3116101b6578063095ea7b3146102675780630b78f9c0146102a457806318160ddd146102cd5780631940d020146102f8576101e3565b80630492f055146101e857806306fdde03146102135780630802d2f61461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610709565b60405161020a9190612930565b60405180910390f35b34801561021f57600080fd5b5061022861070f565b60405161023591906129e4565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612a69565b610748565b005b34801561027357600080fd5b5061028e60048036038101906102899190612ac2565b610846565b60405161029b9190612b1d565b60405180910390f35b3480156102b057600080fd5b506102cb60048036038101906102c69190612b38565b610864565b005b3480156102d957600080fd5b506102e261097d565b6040516102ef9190612930565b60405180910390f35b34801561030457600080fd5b5061030d61098e565b60405161031a9190612930565b60405180910390f35b34801561032f57600080fd5b5061034a60048036038101906103459190612b78565b610994565b6040516103579190612b1d565b60405180910390f35b34801561036c57600080fd5b50610375610b85565b6040516103829190612930565b60405180910390f35b34801561039757600080fd5b506103a0610b95565b6040516103ad9190612be7565b60405180910390f35b3480156103c257600080fd5b506103cb610b9a565b6040516103d89190612930565b60405180910390f35b3480156103ed57600080fd5b506103f6610ba0565b6040516104039190612c23565b60405180910390f35b34801561041857600080fd5b50610421610bc6565b60405161042e9190612c23565b60405180910390f35b34801561044357600080fd5b5061044c610bec565b6040516104599190612930565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190612c3e565b610bf2565b005b34801561049757600080fd5b506104a0610cd9565b6040516104ad9190612c7a565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190612a69565b610cff565b005b3480156104eb57600080fd5b506104f4610dfd565b6040516105019190612930565b60405180910390f35b34801561051657600080fd5b5061051f610e03565b005b34801561052d57600080fd5b5061054860048036038101906105439190612a69565b610e75565b6040516105559190612930565b60405180910390f35b34801561056a57600080fd5b50610573610ebe565b005b34801561058157600080fd5b5061058a611011565b6040516105979190612c7a565b60405180910390f35b3480156105ac57600080fd5b506105b561103a565b6040516105c29190612b1d565b60405180910390f35b3480156105d757600080fd5b506105e061104d565b6040516105ed91906129e4565b60405180910390f35b34801561060257600080fd5b5061061d60048036038101906106189190612ac2565b611086565b60405161062a9190612b1d565b60405180910390f35b34801561063f57600080fd5b506106486110a4565b005b34801561065657600080fd5b5061065f61111e565b005b34801561066d57600080fd5b50610676611246565b6040516106839190612930565b60405180910390f35b34801561069857600080fd5b506106b360048036038101906106ae9190612cc1565b611278565b005b3480156106c157600080fd5b506106dc60048036038101906106d79190612cee565b61133c565b6040516106e99190612930565b60405180910390f35b3480156106fe57600080fd5b506107076113c3565b005b600d5481565b6040518060400160405280600581526020017f4e4f43415000000000000000000000000000000000000000000000000000000081525081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610789611874565b73ffffffffffffffffffffffffffffffffffffffff16146107a957600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0e96f8986653644392af4a5daec8b04a389af0d497572173e63846ccd26c843c600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161083b9190612d8d565b60405180910390a150565b600061085a610853611874565b848461187c565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108a5611874565b73ffffffffffffffffffffffffffffffffffffffff16146108c557600080fd5b600a821080156108d55750600a81105b80156108e25750600a5482105b80156108ef5750600b5481105b61092e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092590612df4565b60405180910390fd5b81600a8190555080600b819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600a54600b54604051610971929190612e14565b60405180910390a15050565b6000683635c9adc5dea00000905090565b600e5481565b6000601060009054906101000a900460ff1680156109fc5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610a555750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610ac9573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abf90612e89565b60405180910390fd5b5b610ad4848484611a47565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b20611874565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b659190612ed8565b9050610b7985610b73611874565b8361187c565b60019150509392505050565b6000610b9030610e75565b905090565b600981565b600f5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c33611874565b73ffffffffffffffffffffffffffffffffffffffff1614610c5357600080fd5b60008111610c96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8d90612f58565b60405180910390fd5b80600c819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600c54604051610cce9190612930565b60405180910390a150565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d40611874565b73ffffffffffffffffffffffffffffffffffffffff1614610d6057600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f96511497113ddf59712b28350d7457b9c300ab227616bd3b451745a395a53014600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610df29190612d8d565b60405180910390a150565b600b5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e44611874565b73ffffffffffffffffffffffffffffffffffffffff1614610e6457600080fd5b6000479050610e72816122c8565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ec6611874565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a90612fc4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601060029054906101000a900460ff1681565b6040518060400160405280600581526020017f4e4f43415000000000000000000000000000000000000000000000000000000081525081565b600061109a611093611874565b8484611a47565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110e5611874565b73ffffffffffffffffffffffffffffffffffffffff161461110557600080fd5b600061111030610e75565b905061111b816123b5565b50565b611126611874565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa90612fc4565b60405180910390fd5b601060009054906101000a900460ff1615611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa90613030565b60405180910390fd5b6001601060006101000a81548160ff02191690831515021790555042600f81905550674563918244f40000600d819055506802b5e3af16b1880000600e81905550565b6000611273600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e75565b905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112b9611874565b73ffffffffffffffffffffffffffffffffffffffff16146112d957600080fd5b80601060026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601060029054906101000a900460ff166040516113319190612b1d565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113cb611874565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144f90612fc4565b60405180910390fd5b601060009054906101000a900460ff16156114a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149f90613030565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061153830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061187c565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611583573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a79190613065565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561160e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116329190613065565b6040518363ffffffff1660e01b815260040161164f929190613092565b6020604051808303816000875af115801561166e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116929190613065565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061171b30610e75565b600080611726611011565b426040518863ffffffff1660e01b8152600401611748969594939291906130f6565b60606040518083038185885af1158015611766573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061178b919061316c565b505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161182d9291906131bf565b6020604051808303816000875af115801561184c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187091906131fd565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e39061329c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561195c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119539061332e565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a3a9190612930565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae906133c0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1e90613452565b60405180910390fd5b60008111611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b61906134e4565b60405180910390fd5b6000611b74611011565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611be25750611bb2611011565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561220357600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c925750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ce85750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561200357601060009054906101000a900460ff16611d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3390613550565b60405180910390fd5b600f54421415611d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d78906135bc565b60405180910390fd5b4261a8c0600f54611d9291906135dc565b1115611df157600e54611da484610e75565b83611daf91906135dc565b1115611df0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de7906136a4565b60405180910390fd5b5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16611ecb5760405180604001604052806000815260200160011515815250600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b426078600f54611edb91906135dc565b1115611fb757600d54821115611f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1d90613710565b60405180910390fd5b601e42611f3391906135dc565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fad906137a2565b60405180910390fd5b5b42600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601060019054906101000a900460ff1615801561202c5750601060009054906101000a900460ff165b80156120865750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561220257600f4261209891906135dc565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541061211b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211290613834565b60405180910390fd5b600061212630610e75565b905060008111156121e357601060029054906101000a900460ff16156121d9576064600c54612176600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e75565b6121809190613854565b61218a91906138dd565b8111156121d8576064600c546121c1600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e75565b6121cb9190613854565b6121d591906138dd565b90505b5b6121e2816123b5565b5b600047905060008111156121fb576121fa476122c8565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122aa5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156122b457600090505b6122c1858585848661262e565b5050505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361231191906138dd565b9081150290604051600060405180830381858888f1935050505015801561233c573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361238691906138dd565b9081150290604051600060405180830381858888f193505050501580156123b1573d6000803e3d6000fd5b5050565b6001601060016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156123ed576123ec61390e565b5b60405190808252806020026020018201604052801561241b5781602001602082028036833780820191505090505b50905030816000815181106124335761243261393d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124fe9190613065565b816001815181106125125761251161393d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061257930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461187c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016125dd959493929190613a2a565b600060405180830381600087803b1580156125f757600080fd5b505af115801561260b573d6000803e3d6000fd5b50505050506000601060016101000a81548160ff02191690831515021790555050565b600061263a8383612650565b9050612648868686846126a5565b505050505050565b60008060009050831561269b57821561266d57600a54905061269a565b600b549050610e10600f5461268291906135dc565b4210156126995760058161269691906135dc565b90505b5b5b8091505092915050565b6000806126b28484612848565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127019190612ed8565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461278f91906135dc565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127db81612886565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128389190612930565b60405180910390a3505050505050565b60008060006064848661285b9190613854565b61286591906138dd565b9050600081866128759190612ed8565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d191906135dc565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b61292a81612917565b82525050565b60006020820190506129456000830184612921565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561298557808201518184015260208101905061296a565b83811115612994576000848401525b50505050565b6000601f19601f8301169050919050565b60006129b68261294b565b6129c08185612956565b93506129d0818560208601612967565b6129d98161299a565b840191505092915050565b600060208201905081810360008301526129fe81846129ab565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a3682612a0b565b9050919050565b612a4681612a2b565b8114612a5157600080fd5b50565b600081359050612a6381612a3d565b92915050565b600060208284031215612a7f57612a7e612a06565b5b6000612a8d84828501612a54565b91505092915050565b612a9f81612917565b8114612aaa57600080fd5b50565b600081359050612abc81612a96565b92915050565b60008060408385031215612ad957612ad8612a06565b5b6000612ae785828601612a54565b9250506020612af885828601612aad565b9150509250929050565b60008115159050919050565b612b1781612b02565b82525050565b6000602082019050612b326000830184612b0e565b92915050565b60008060408385031215612b4f57612b4e612a06565b5b6000612b5d85828601612aad565b9250506020612b6e85828601612aad565b9150509250929050565b600080600060608486031215612b9157612b90612a06565b5b6000612b9f86828701612a54565b9350506020612bb086828701612a54565b9250506040612bc186828701612aad565b9150509250925092565b600060ff82169050919050565b612be181612bcb565b82525050565b6000602082019050612bfc6000830184612bd8565b92915050565b6000612c0d82612a0b565b9050919050565b612c1d81612c02565b82525050565b6000602082019050612c386000830184612c14565b92915050565b600060208284031215612c5457612c53612a06565b5b6000612c6284828501612aad565b91505092915050565b612c7481612a2b565b82525050565b6000602082019050612c8f6000830184612c6b565b92915050565b612c9e81612b02565b8114612ca957600080fd5b50565b600081359050612cbb81612c95565b92915050565b600060208284031215612cd757612cd6612a06565b5b6000612ce584828501612cac565b91505092915050565b60008060408385031215612d0557612d04612a06565b5b6000612d1385828601612a54565b9250506020612d2485828601612a54565b9150509250929050565b6000819050919050565b6000612d53612d4e612d4984612a0b565b612d2e565b612a0b565b9050919050565b6000612d6582612d38565b9050919050565b6000612d7782612d5a565b9050919050565b612d8781612d6c565b82525050565b6000602082019050612da26000830184612d7e565b92915050565b7f446f6e2774206265206772656564792e00000000000000000000000000000000600082015250565b6000612dde601083612956565b9150612de982612da8565b602082019050919050565b60006020820190508181036000830152612e0d81612dd1565b9050919050565b6000604082019050612e296000830185612921565b612e366020830184612921565b9392505050565b7f706c73206e6f20626f7400000000000000000000000000000000000000000000600082015250565b6000612e73600a83612956565b9150612e7e82612e3d565b602082019050919050565b60006020820190508181036000830152612ea281612e66565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ee382612917565b9150612eee83612917565b925082821015612f0157612f00612ea9565b5b828203905092915050565b7f526174652063616e2774206265207a65726f0000000000000000000000000000600082015250565b6000612f42601283612956565b9150612f4d82612f0c565b602082019050919050565b60006020820190508181036000830152612f7181612f35565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612fae602083612956565b9150612fb982612f78565b602082019050919050565b60006020820190508181036000830152612fdd81612fa1565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061301a601783612956565b915061302582612fe4565b602082019050919050565b600060208201905081810360008301526130498161300d565b9050919050565b60008151905061305f81612a3d565b92915050565b60006020828403121561307b5761307a612a06565b5b600061308984828501613050565b91505092915050565b60006040820190506130a76000830185612c6b565b6130b46020830184612c6b565b9392505050565b6000819050919050565b60006130e06130db6130d6846130bb565b612d2e565b612917565b9050919050565b6130f0816130c5565b82525050565b600060c08201905061310b6000830189612c6b565b6131186020830188612921565b61312560408301876130e7565b61313260608301866130e7565b61313f6080830185612c6b565b61314c60a0830184612921565b979650505050505050565b60008151905061316681612a96565b92915050565b60008060006060848603121561318557613184612a06565b5b600061319386828701613157565b93505060206131a486828701613157565b92505060406131b586828701613157565b9150509250925092565b60006040820190506131d46000830185612c6b565b6131e16020830184612921565b9392505050565b6000815190506131f781612c95565b92915050565b60006020828403121561321357613212612a06565b5b6000613221848285016131e8565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613286602483612956565b91506132918261322a565b604082019050919050565b600060208201905081810360008301526132b581613279565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613318602283612956565b9150613323826132bc565b604082019050919050565b600060208201905081810360008301526133478161330b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133aa602583612956565b91506133b58261334e565b604082019050919050565b600060208201905081810360008301526133d98161339d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061343c602383612956565b9150613447826133e0565b604082019050919050565b6000602082019050818103600083015261346b8161342f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006134ce602983612956565b91506134d982613472565b604082019050919050565b600060208201905081810360008301526134fd816134c1565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b600061353a601883612956565b915061354582613504565b602082019050919050565b600060208201905081810360008301526135698161352d565b9050919050565b7f706c73206e6f20736e6970000000000000000000000000000000000000000000600082015250565b60006135a6600b83612956565b91506135b182613570565b602082019050919050565b600060208201905081810360008301526135d581613599565b9050919050565b60006135e782612917565b91506135f283612917565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561362757613626612ea9565b5b828201905092915050565b7f596f752063616e2774206f776e2074686174206d616e7920746f6b656e73206160008201527f74206f6e63652e00000000000000000000000000000000000000000000000000602082015250565b600061368e602783612956565b915061369982613632565b604082019050919050565b600060208201905081810360008301526136bd81613681565b9050919050565b7f45786365656473206d6178696d756d2062757920616d6f756e742e0000000000600082015250565b60006136fa601b83612956565b9150613705826136c4565b602082019050919050565b60006020820190508181036000830152613729816136ed565b9050919050565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b600061378c602283612956565b915061379782613730565b604082019050919050565b600060208201905081810360008301526137bb8161377f565b9050919050565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b600061381e602383612956565b9150613829826137c2565b604082019050919050565b6000602082019050818103600083015261384d81613811565b9050919050565b600061385f82612917565b915061386a83612917565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138a3576138a2612ea9565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138e882612917565b91506138f383612917565b925082613903576139026138ae565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139a181612a2b565b82525050565b60006139b38383613998565b60208301905092915050565b6000602082019050919050565b60006139d78261396c565b6139e18185613977565b93506139ec83613988565b8060005b83811015613a1d578151613a0488826139a7565b9750613a0f836139bf565b9250506001810190506139f0565b5085935050505092915050565b600060a082019050613a3f6000830188612921565b613a4c60208301876130e7565b8181036040830152613a5e81866139cc565b9050613a6d6060830185612c6b565b613a7a6080830184612921565b969550505050505056fea2646970667358221220135c7991ce9697f014801cd72374b26b719550bd5430df9cb065b502753bff5e64736f6c634300080a0033

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

0000000000000000000000004c23554df1fb8a4efda8387921be304a4aa7b016000000000000000000000000ea20bc126ae3b479b2ee31d6d0a966a9a85425ca

-----Decoded View---------------
Arg [0] : FeeAddress1 (address): 0x4c23554dF1fB8A4eFDa8387921be304A4aa7B016
Arg [1] : FeeAddress2 (address): 0xeA20BC126ae3B479B2EE31d6d0A966a9A85425Ca

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000004c23554df1fb8a4efda8387921be304a4aa7b016
Arg [1] : 000000000000000000000000ea20bc126ae3b479b2ee31d6d0a966a9a85425ca


Deployed Bytecode Sourcemap

3400:10829:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4149:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3736:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13568:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5843:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13057:296;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5590:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4181:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6009:468;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14017:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3840:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4214:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3976:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3934;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4053:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12797:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4018:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13781:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4084:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12601:188;;;;;;;;;;;;;:::i;:::-;;5295:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2481:148;;;;;;;;;;;;;:::i;:::-;;2267:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4311:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3787:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5414:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12400:189;;;;;;;;;;;;;:::i;:::-;;12105:287;;;;;;;;;;;;;:::i;:::-;;14125:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13361:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5695:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11409:688;;;;;;;;;;;;;:::i;:::-;;4149:25;;;;:::o;3736:44::-;;;;;;;;;;;;;;;;;;;:::o;13568:205::-;13659:12;;;;;;;;;;;13643:28;;:12;:10;:12::i;:::-;:28;;;13635:37;;;;;;13706:10;13683:12;;:34;;;;;;;;;;;;;;;;;;13733:32;13752:12;;;;;;;;;;;13733:32;;;;;;:::i;:::-;;;;;;;;13568:205;:::o;5843:158::-;5915:4;5932:39;5941:12;:10;:12::i;:::-;5955:7;5964:6;5932:8;:39::i;:::-;5989:4;5982:11;;5843:158;;;;:::o;13057:296::-;13139:12;;;;;;;;;;;13123:28;;:12;:10;:12::i;:::-;:28;;;13115:37;;;;;;13177:2;13171:3;:8;:21;;;;;13190:2;13183:4;:9;13171:21;:38;;;;;13202:7;;13196:3;:13;13171:38;:57;;;;;13220:8;;13213:4;:15;13171:57;13163:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;13270:3;13260:7;:13;;;;13295:4;13284:8;:15;;;;13315:30;13327:7;;13336:8;;13315:30;;;;;;;:::i;:::-;;;;;;;;13057:296;;:::o;5590:97::-;5643:4;3715:12;5660:19;;5590:97;:::o;4181:26::-;;;;:::o;6009:468::-;6104:4;6124:12;;;;;;;;;;;:46;;;;;6141:18;:29;6160:9;6141:29;;;;;;;;;;;;;;;;;;;;;;;;;6140:30;6124:46;:73;;;;;6184:13;;;;;;;;;;;6174:23;;:6;:23;;;6124:73;6121:150;;;6235:9;6222:22;;:9;:22;;;6213:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;6121:150;6281:36;6291:6;6299:9;6310:6;6281:9;:36::i;:::-;6328:18;6385:6;6349:11;:19;6361:6;6349:19;;;;;;;;;;;;;;;:33;6369:12;:10;:12::i;:::-;6349:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;6328:63;;6402:45;6411:6;6419:12;:10;:12::i;:::-;6433:13;6402:8;:45::i;:::-;6465:4;6458:11;;;6009:468;;;;;:::o;14017:100::-;14061:4;14085:24;14103:4;14085:9;:24::i;:::-;14078:31;;14017:100;:::o;3840:34::-;3873:1;3840:34;:::o;4214:23::-;;;;:::o;3976:35::-;;;;;;;;;;;;;:::o;3934:::-;;;;;;;;;;;;;:::o;4053:24::-;;;;:::o;12797:252::-;12872:12;;;;;;;;;;;12856:28;;:12;:10;:12::i;:::-;:28;;;12848:37;;;;;;12911:1;12904:4;:8;12896:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;12997:4;12986:8;:15;;;;13017:24;13032:8;;13017:24;;;;;;:::i;:::-;;;;;;;;12797:252;:::o;4018:28::-;;;;;;;;;;;;;:::o;13781:205::-;13872:12;;;;;;;;;;;13856:28;;:12;:10;:12::i;:::-;:28;;;13848:37;;;;;;13919:10;13896:12;;:34;;;;;;;;;;;;;;;;;;13946:32;13965:12;;;;;;;;;;;13946:32;;;;;;:::i;:::-;;;;;;;;13781:205;:::o;4084:25::-;;;;:::o;12601:188::-;12667:12;;;;;;;;;;;12651:28;;:12;:10;:12::i;:::-;:28;;;12643:37;;;;;;12691:23;12717:21;12691:47;;12749:32;12762:18;12749:12;:32::i;:::-;12632:157;12601:188::o;5295:113::-;5361:4;5385:6;:15;5392:7;5385:15;;;;;;;;;;;;;;;;5378:22;;5295:113;;;:::o;2481:148::-;2404:12;:10;:12::i;:::-;2394:22;;:6;;;;;;;;;;:22;;;2386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2588:1:::1;2551:40;;2572:6;::::0;::::1;;;;;;;;2551:40;;;;;;;;;;;;2619:1;2602:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2481:148::o:0;2267:79::-;2305:7;2332:6;;;;;;;;;;;2325:13;;2267:79;:::o;4311:39::-;;;;;;;;;;;;;:::o;3787:46::-;;;;;;;;;;;;;;;;;;;:::o;5414:164::-;5489:4;5506:42;5516:12;:10;:12::i;:::-;5530:9;5541:6;5506:9;:42::i;:::-;5566:4;5559:11;;5414:164;;;;:::o;12400:189::-;12466:12;;;;;;;;;;;12450:28;;:12;:10;:12::i;:::-;:28;;;12442:37;;;;;;12490:20;12513:24;12531:4;12513:9;:24::i;:::-;12490:47;;12548:33;12565:15;12548:16;:33::i;:::-;12431:158;12400:189::o;12105:287::-;2404:12;:10;:12::i;:::-;2394:22;;:6;;;;;;;;;;:22;;;2386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12169:12:::1;;;;;;;;;;;12168:13;12160:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;12235:4;12220:12;;:19;;;;;;;;;;;;;;;;;;12264:15;12250:11;:29;;;;12306:18;12290:13;:34;;;;12359:19;12342:14;:36;;;;12105:287::o:0;14125:101::-;14170:4;14194:24;14204:13;;;;;;;;;;;14194:9;:24::i;:::-;14187:31;;14125:101;:::o;13361:199::-;13442:12;;;;;;;;;;;13426:28;;:12;:10;:12::i;:::-;:28;;;13418:37;;;;;;13488:5;13466:19;;:27;;;;;;;;;;;;;;;;;;13509:43;13532:19;;;;;;;;;;;13509:43;;;;;;:::i;:::-;;;;;;;;13361:199;:::o;5695:140::-;5776:4;5800:11;:18;5812:5;5800:18;;;;;;;;;;;;;;;:27;5819:7;5800:27;;;;;;;;;;;;;;;;5793:34;;5695:140;;;;:::o;11409:688::-;2404:12;:10;:12::i;:::-;2394:22;;:6;;;;;;;;;;:22;;;2386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11474:12:::1;;;;;;;;;;;11473:13;11465:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11525:35;11582:42;11525:100;;11654:16;11636:15;;:34;;;;;;;;;;;;;;;;;;11681:63;11698:4;11713:15;;;;;;;;;;;3715:12;11681:8;:63::i;:::-;11789:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11771:56;;;11836:4;11843:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11771:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11755:13;;:112;;;;;;;;;;;;;;;;;;11878:15;;;;;;;;;;;:31;;;11917:21;11948:4;11954:24;11972:4;11954:9;:24::i;:::-;11979:1;11981::::0;11983:7:::1;:5;:7::i;:::-;11991:15;11878:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12025:13;;;;;;;;;;;12018:29;;;12056:15;;;;;;;;;;;12074:14;12018:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11454:643;11409:688::o:0;1130:98::-;1183:7;1210:10;1203:17;;1130:98;:::o;6485:332::-;6592:1;6575:19;;:5;:19;;;;6567:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6673:1;6654:21;;:7;:21;;;;6646:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6755:6;6725:11;:18;6737:5;6725:18;;;;;;;;;;;;;;;:27;6744:7;6725:27;;;;;;;;;;;;;;;:36;;;;6793:7;6777:32;;6786:5;6777:32;;;6802:6;6777:32;;;;;;:::i;:::-;;;;;;;;6485:332;;;:::o;6825:2506::-;6926:1;6910:18;;:4;:18;;;;6902:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7003:1;6989:16;;:2;:16;;;;6981:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7073:1;7064:6;:10;7056:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7131:10;7171:7;:5;:7::i;:::-;7163:15;;:4;:15;;;;:32;;;;;7188:7;:5;:7::i;:::-;7182:13;;:2;:13;;;;7163:32;7160:1973;;;7243:13;;;;;;;;;;;7235:21;;:4;:21;;;:55;;;;;7274:15;;;;;;;;;;;7260:30;;:2;:30;;;;7235:55;:82;;;;;7295:18;:22;7314:2;7295:22;;;;;;;;;;;;;;;;;;;;;;;;;7294:23;7235:82;7232:955;;;7346:12;;;;;;;;;;;7338:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;7433:11;;7414:15;:30;;7406:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;7511:15;7498:8;7483:11;;:24;;;;:::i;:::-;7482:44;7479:201;;;7596:14;;7569:22;7587:2;7569:9;:22::i;:::-;7560:6;:31;;;;:::i;:::-;7559:51;;7551:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;7479:201;7702:8;:12;7711:2;7702:12;;;;;;;;;;;;;;;:19;;;;;;;;;;;;7698:95;;7761:12;;;;;;;;7766:1;7761:12;;;;7768:4;7761:12;;;;;7746:8;:12;7755:2;7746:12;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7698:95;7846:15;7830:11;7815;;:27;;;;:::i;:::-;7814:47;7811:277;;;7904:13;;7894:6;:23;;7886:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8018:10;7999:15;:30;;;;:::i;:::-;7980:8;:12;7989:2;7980:12;;;;;;;;;;;;;;;:16;;;:49;7972:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;7811:277;8125:15;8106:8;:12;8115:2;8106:12;;;;;;;;;;;;;;;:16;;:34;;;;8167:4;8159:12;;7232:955;8226:7;;;;;;;;;;;8225:8;:24;;;;;8237:12;;;;;;;;;;;8225:24;:49;;;;;8261:13;;;;;;;;;;;8253:21;;:4;:21;;;;8225:49;8222:900;;;8343:10;8324:15;:30;;;;:::i;:::-;8303:8;:14;8312:4;8303:14;;;;;;;;;;;;;;;:18;;;:51;8295:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;8413:25;8441:24;8459:4;8441:9;:24::i;:::-;8413:52;;8510:1;8487:20;:24;8484:402;;;8539:19;;;;;;;;;;;8536:270;;;8653:3;8641:8;;8614:24;8624:13;;;;;;;;;;;8614:9;:24::i;:::-;:35;;;;:::i;:::-;8613:43;;;;:::i;:::-;8590:20;:66;8587:196;;;8752:3;8740:8;;8713:24;8723:13;;;;;;;;;;;8713:9;:24::i;:::-;:35;;;;:::i;:::-;8712:43;;;;:::i;:::-;8689:66;;8587:196;8536:270;8828:38;8845:20;8828:16;:38::i;:::-;8484:402;8904:23;8930:21;8904:47;;8994:1;8973:18;:22;8970:105;;;9020:35;9033:21;9020:12;:35::i;:::-;8970:105;9101:5;9093:13;;8276:846;;8222:900;7160:1973;9143:12;9158:4;9143:19;;9176:18;:24;9195:4;9176:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9204:18;:22;9223:2;9204:22;;;;;;;;;;;;;;;;;;;;;;;;;9176:50;9173:96;;;9252:5;9242:15;;9173:96;9279:44;9294:4;9299:2;9302:6;9309:7;9317:5;9279:14;:44::i;:::-;6891:2440;;6825:2506;;;:::o;9835:139::-;9889:12;;;;;;;;;;;:21;;:33;9920:1;9911:6;:10;;;;:::i;:::-;9889:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9933:12;;;;;;;;;;;:21;;:33;9964:1;9955:6;:10;;;;:::i;:::-;9933:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9835:139;:::o;9339:480::-;4772:4;4762:7;;:14;;;;;;;;;;;;;;;;;;9414:21:::1;9452:1;9438:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9414:40;;9483:4;9465;9470:1;9465:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9509:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9499:4;9504:1;9499:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9542:62;9559:4;9574:15;;;;;;;;;;;9592:11;9542:8;:62::i;:::-;9615:15;;;;;;;;;;;:66;;;9696:11;9722:1;9738:4;9765;9785:15;9615:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9403:416;4809:5:::0;4799:7;;:15;;;;;;;;;;;;;;;;;;9339:480;:::o;9986:217::-;10102:8;10114:21;10122:7;10131:3;10114:7;:21::i;:::-;10101:34;;10146:49;10164:6;10172:9;10183:6;10191:3;10146:17;:49::i;:::-;10090:113;9986:217;;;;;:::o;10211:395::-;10274:4;10291:8;10302:1;10291:12;;10317:7;10314:264;;;10344:3;10341:226;;;10374:7;;10368:13;;10341:226;;;10428:8;;10422:14;;10491:7;10476:11;;:23;;;;:::i;:::-;10458:15;:41;10455:97;;;10531:1;10524:8;;;;;:::i;:::-;;;10455:97;10341:226;10314:264;10595:3;10588:10;;;10211:395;;;;:::o;10614:372::-;10719:19;10740:9;10753:23;10764:6;10772:3;10753:10;:23::i;:::-;10718:58;;;;10821:6;10804;:14;10811:6;10804:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;10787:6;:14;10794:6;10787:14;;;;;;;;;;;;;;;:40;;;;10878:14;10858:6;:17;10865:9;10858:17;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;10838:6;:17;10845:9;10838:17;;;;;;;;;;;;;;;:54;;;;10904:15;10914:4;10904:9;:15::i;:::-;10952:9;10935:43;;10944:6;10935:43;;;10963:14;10935:43;;;;;;:::i;:::-;;;;;;;;10707:279;;10614:372;;;;:::o;10994:222::-;11063:4;11069;11086:9;11119:3;11108:7;11099:6;:16;;;;:::i;:::-;11098:24;;;;:::i;:::-;11086:36;;11133:19;11164:4;11155:6;:13;;;;:::i;:::-;11133:35;;11187:14;11203:4;11179:29;;;;;;10994:222;;;;;:::o;11224:109::-;11321:4;11297:6;:21;11312:4;11297:21;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;11273:6;:21;11288:4;11273:21;;;;;;;;;;;;;;;:52;;;;11224:109;:::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:329::-;2725:6;2774:2;2762:9;2753:7;2749:23;2745:32;2742:119;;;2780:79;;:::i;:::-;2742:119;2900:1;2925:53;2970:7;2961:6;2950:9;2946:22;2925:53;:::i;:::-;2915:63;;2871:117;2666:329;;;;:::o;3001:122::-;3074:24;3092:5;3074:24;:::i;:::-;3067:5;3064:35;3054:63;;3113:1;3110;3103:12;3054:63;3001:122;:::o;3129:139::-;3175:5;3213:6;3200:20;3191:29;;3229:33;3256:5;3229:33;:::i;:::-;3129:139;;;;:::o;3274:474::-;3342:6;3350;3399:2;3387:9;3378:7;3374:23;3370:32;3367:119;;;3405:79;;:::i;:::-;3367:119;3525:1;3550:53;3595:7;3586:6;3575:9;3571:22;3550:53;:::i;:::-;3540:63;;3496:117;3652:2;3678:53;3723:7;3714:6;3703:9;3699:22;3678:53;:::i;:::-;3668:63;;3623:118;3274:474;;;;;:::o;3754:90::-;3788:7;3831:5;3824:13;3817:21;3806:32;;3754:90;;;:::o;3850:109::-;3931:21;3946:5;3931:21;:::i;:::-;3926:3;3919:34;3850:109;;:::o;3965:210::-;4052:4;4090:2;4079:9;4075:18;4067:26;;4103:65;4165:1;4154:9;4150:17;4141:6;4103:65;:::i;:::-;3965:210;;;;:::o;4181:474::-;4249:6;4257;4306:2;4294:9;4285:7;4281:23;4277:32;4274:119;;;4312:79;;:::i;:::-;4274:119;4432:1;4457:53;4502:7;4493:6;4482:9;4478:22;4457:53;:::i;:::-;4447:63;;4403:117;4559:2;4585:53;4630:7;4621:6;4610:9;4606:22;4585:53;:::i;:::-;4575:63;;4530:118;4181:474;;;;;:::o;4661:619::-;4738:6;4746;4754;4803:2;4791:9;4782:7;4778:23;4774:32;4771:119;;;4809:79;;:::i;:::-;4771:119;4929:1;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4900:117;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;5184:2;5210:53;5255:7;5246:6;5235:9;5231:22;5210:53;:::i;:::-;5200:63;;5155:118;4661:619;;;;;:::o;5286:86::-;5321:7;5361:4;5354:5;5350:16;5339:27;;5286:86;;;:::o;5378:112::-;5461:22;5477:5;5461:22;:::i;:::-;5456:3;5449:35;5378:112;;:::o;5496:214::-;5585:4;5623:2;5612:9;5608:18;5600:26;;5636:67;5700:1;5689:9;5685:17;5676:6;5636:67;:::i;:::-;5496:214;;;;:::o;5716:104::-;5761:7;5790:24;5808:5;5790:24;:::i;:::-;5779:35;;5716:104;;;:::o;5826:142::-;5929:32;5955:5;5929:32;:::i;:::-;5924:3;5917:45;5826:142;;:::o;5974:254::-;6083:4;6121:2;6110:9;6106:18;6098:26;;6134:87;6218:1;6207:9;6203:17;6194:6;6134:87;:::i;:::-;5974:254;;;;:::o;6234:329::-;6293:6;6342:2;6330:9;6321:7;6317:23;6313:32;6310:119;;;6348:79;;:::i;:::-;6310:119;6468:1;6493:53;6538:7;6529:6;6518:9;6514:22;6493:53;:::i;:::-;6483:63;;6439:117;6234:329;;;;:::o;6569:118::-;6656:24;6674:5;6656:24;:::i;:::-;6651:3;6644:37;6569:118;;:::o;6693:222::-;6786:4;6824:2;6813:9;6809:18;6801:26;;6837:71;6905:1;6894:9;6890:17;6881:6;6837:71;:::i;:::-;6693:222;;;;:::o;6921:116::-;6991:21;7006:5;6991:21;:::i;:::-;6984:5;6981:32;6971:60;;7027:1;7024;7017:12;6971:60;6921:116;:::o;7043:133::-;7086:5;7124:6;7111:20;7102:29;;7140:30;7164:5;7140:30;:::i;:::-;7043:133;;;;:::o;7182:323::-;7238:6;7287:2;7275:9;7266:7;7262:23;7258:32;7255:119;;;7293:79;;:::i;:::-;7255:119;7413:1;7438:50;7480:7;7471:6;7460:9;7456:22;7438:50;:::i;:::-;7428:60;;7384:114;7182:323;;;;:::o;7511:474::-;7579:6;7587;7636:2;7624:9;7615:7;7611:23;7607:32;7604:119;;;7642:79;;:::i;:::-;7604:119;7762:1;7787:53;7832:7;7823:6;7812:9;7808:22;7787:53;:::i;:::-;7777:63;;7733:117;7889:2;7915:53;7960:7;7951:6;7940:9;7936:22;7915:53;:::i;:::-;7905:63;;7860:118;7511:474;;;;;:::o;7991:60::-;8019:3;8040:5;8033:12;;7991:60;;;:::o;8057:142::-;8107:9;8140:53;8158:34;8167:24;8185:5;8167:24;:::i;:::-;8158:34;:::i;:::-;8140:53;:::i;:::-;8127:66;;8057:142;;;:::o;8205:126::-;8255:9;8288:37;8319:5;8288:37;:::i;:::-;8275:50;;8205:126;;;:::o;8337:134::-;8395:9;8428:37;8459:5;8428:37;:::i;:::-;8415:50;;8337:134;;;:::o;8477:147::-;8572:45;8611:5;8572:45;:::i;:::-;8567:3;8560:58;8477:147;;:::o;8630:238::-;8731:4;8769:2;8758:9;8754:18;8746:26;;8782:79;8858:1;8847:9;8843:17;8834:6;8782:79;:::i;:::-;8630:238;;;;:::o;8874:166::-;9014:18;9010:1;9002:6;8998:14;8991:42;8874:166;:::o;9046:366::-;9188:3;9209:67;9273:2;9268:3;9209:67;:::i;:::-;9202:74;;9285:93;9374:3;9285:93;:::i;:::-;9403:2;9398:3;9394:12;9387:19;;9046:366;;;:::o;9418:419::-;9584:4;9622:2;9611:9;9607:18;9599:26;;9671:9;9665:4;9661:20;9657:1;9646:9;9642:17;9635:47;9699:131;9825:4;9699:131;:::i;:::-;9691:139;;9418:419;;;:::o;9843:332::-;9964:4;10002:2;9991:9;9987:18;9979:26;;10015:71;10083:1;10072:9;10068:17;10059:6;10015:71;:::i;:::-;10096:72;10164:2;10153:9;10149:18;10140:6;10096:72;:::i;:::-;9843:332;;;;;:::o;10181:160::-;10321:12;10317:1;10309:6;10305:14;10298:36;10181:160;:::o;10347:366::-;10489:3;10510:67;10574:2;10569:3;10510:67;:::i;:::-;10503:74;;10586:93;10675:3;10586:93;:::i;:::-;10704:2;10699:3;10695:12;10688:19;;10347:366;;;:::o;10719:419::-;10885:4;10923:2;10912:9;10908:18;10900:26;;10972:9;10966:4;10962:20;10958:1;10947:9;10943:17;10936:47;11000:131;11126:4;11000:131;:::i;:::-;10992:139;;10719:419;;;:::o;11144:180::-;11192:77;11189:1;11182:88;11289:4;11286:1;11279:15;11313:4;11310:1;11303:15;11330:191;11370:4;11390:20;11408:1;11390:20;:::i;:::-;11385:25;;11424:20;11442:1;11424:20;:::i;:::-;11419:25;;11463:1;11460;11457:8;11454:34;;;11468:18;;:::i;:::-;11454:34;11513:1;11510;11506:9;11498:17;;11330:191;;;;:::o;11527:168::-;11667:20;11663:1;11655:6;11651:14;11644:44;11527:168;:::o;11701:366::-;11843:3;11864:67;11928:2;11923:3;11864:67;:::i;:::-;11857:74;;11940:93;12029:3;11940:93;:::i;:::-;12058:2;12053:3;12049:12;12042:19;;11701:366;;;:::o;12073:419::-;12239:4;12277:2;12266:9;12262:18;12254:26;;12326:9;12320:4;12316:20;12312:1;12301:9;12297:17;12290:47;12354:131;12480:4;12354:131;:::i;:::-;12346:139;;12073:419;;;:::o;12498:182::-;12638:34;12634:1;12626:6;12622:14;12615:58;12498:182;:::o;12686:366::-;12828:3;12849:67;12913:2;12908:3;12849:67;:::i;:::-;12842:74;;12925:93;13014:3;12925:93;:::i;:::-;13043:2;13038:3;13034:12;13027:19;;12686:366;;;:::o;13058:419::-;13224:4;13262:2;13251:9;13247:18;13239:26;;13311:9;13305:4;13301:20;13297:1;13286:9;13282:17;13275:47;13339:131;13465:4;13339:131;:::i;:::-;13331:139;;13058:419;;;:::o;13483:173::-;13623:25;13619:1;13611:6;13607:14;13600:49;13483:173;:::o;13662:366::-;13804:3;13825:67;13889:2;13884:3;13825:67;:::i;:::-;13818:74;;13901:93;13990:3;13901:93;:::i;:::-;14019:2;14014:3;14010:12;14003:19;;13662:366;;;:::o;14034:419::-;14200:4;14238:2;14227:9;14223:18;14215:26;;14287:9;14281:4;14277:20;14273:1;14262:9;14258:17;14251:47;14315:131;14441:4;14315:131;:::i;:::-;14307:139;;14034:419;;;:::o;14459:143::-;14516:5;14547:6;14541:13;14532:22;;14563:33;14590:5;14563:33;:::i;:::-;14459:143;;;;:::o;14608:351::-;14678:6;14727:2;14715:9;14706:7;14702:23;14698:32;14695:119;;;14733:79;;:::i;:::-;14695:119;14853:1;14878:64;14934:7;14925:6;14914:9;14910:22;14878:64;:::i;:::-;14868:74;;14824:128;14608:351;;;;:::o;14965:332::-;15086:4;15124:2;15113:9;15109:18;15101:26;;15137:71;15205:1;15194:9;15190:17;15181:6;15137:71;:::i;:::-;15218:72;15286:2;15275:9;15271:18;15262:6;15218:72;:::i;:::-;14965:332;;;;;:::o;15303:85::-;15348:7;15377:5;15366:16;;15303:85;;;:::o;15394:158::-;15452:9;15485:61;15503:42;15512:32;15538:5;15512:32;:::i;:::-;15503:42;:::i;:::-;15485:61;:::i;:::-;15472:74;;15394:158;;;:::o;15558:147::-;15653:45;15692:5;15653:45;:::i;:::-;15648:3;15641:58;15558:147;;:::o;15711:807::-;15960:4;15998:3;15987:9;15983:19;15975:27;;16012:71;16080:1;16069:9;16065:17;16056:6;16012:71;:::i;:::-;16093:72;16161:2;16150:9;16146:18;16137:6;16093:72;:::i;:::-;16175:80;16251:2;16240:9;16236:18;16227:6;16175:80;:::i;:::-;16265;16341:2;16330:9;16326:18;16317:6;16265:80;:::i;:::-;16355:73;16423:3;16412:9;16408:19;16399:6;16355:73;:::i;:::-;16438;16506:3;16495:9;16491:19;16482:6;16438:73;:::i;:::-;15711:807;;;;;;;;;:::o;16524:143::-;16581:5;16612:6;16606:13;16597:22;;16628:33;16655:5;16628:33;:::i;:::-;16524:143;;;;:::o;16673:663::-;16761:6;16769;16777;16826:2;16814:9;16805:7;16801:23;16797:32;16794:119;;;16832:79;;:::i;:::-;16794:119;16952:1;16977:64;17033:7;17024:6;17013:9;17009:22;16977:64;:::i;:::-;16967:74;;16923:128;17090:2;17116:64;17172:7;17163:6;17152:9;17148:22;17116:64;:::i;:::-;17106:74;;17061:129;17229:2;17255:64;17311:7;17302:6;17291:9;17287:22;17255:64;:::i;:::-;17245:74;;17200:129;16673:663;;;;;:::o;17342:332::-;17463:4;17501:2;17490:9;17486:18;17478:26;;17514:71;17582:1;17571:9;17567:17;17558:6;17514:71;:::i;:::-;17595:72;17663:2;17652:9;17648:18;17639:6;17595:72;:::i;:::-;17342:332;;;;;:::o;17680:137::-;17734:5;17765:6;17759:13;17750:22;;17781:30;17805:5;17781:30;:::i;:::-;17680:137;;;;:::o;17823:345::-;17890:6;17939:2;17927:9;17918:7;17914:23;17910:32;17907:119;;;17945:79;;:::i;:::-;17907:119;18065:1;18090:61;18143:7;18134:6;18123:9;18119:22;18090:61;:::i;:::-;18080:71;;18036:125;17823:345;;;;:::o;18174:223::-;18314:34;18310:1;18302:6;18298:14;18291:58;18383:6;18378:2;18370:6;18366:15;18359:31;18174:223;:::o;18403:366::-;18545:3;18566:67;18630:2;18625:3;18566:67;:::i;:::-;18559:74;;18642:93;18731:3;18642:93;:::i;:::-;18760:2;18755:3;18751:12;18744:19;;18403:366;;;:::o;18775:419::-;18941:4;18979:2;18968:9;18964:18;18956:26;;19028:9;19022:4;19018:20;19014:1;19003:9;18999:17;18992:47;19056:131;19182:4;19056:131;:::i;:::-;19048:139;;18775:419;;;:::o;19200:221::-;19340:34;19336:1;19328:6;19324:14;19317:58;19409:4;19404:2;19396:6;19392:15;19385:29;19200:221;:::o;19427:366::-;19569:3;19590:67;19654:2;19649:3;19590:67;:::i;:::-;19583:74;;19666:93;19755:3;19666:93;:::i;:::-;19784:2;19779:3;19775:12;19768:19;;19427:366;;;:::o;19799:419::-;19965:4;20003:2;19992:9;19988:18;19980:26;;20052:9;20046:4;20042:20;20038:1;20027:9;20023:17;20016:47;20080:131;20206:4;20080:131;:::i;:::-;20072:139;;19799:419;;;:::o;20224:224::-;20364:34;20360:1;20352:6;20348:14;20341:58;20433:7;20428:2;20420:6;20416:15;20409:32;20224:224;:::o;20454:366::-;20596:3;20617:67;20681:2;20676:3;20617:67;:::i;:::-;20610:74;;20693:93;20782:3;20693:93;:::i;:::-;20811:2;20806:3;20802:12;20795:19;;20454:366;;;:::o;20826:419::-;20992:4;21030:2;21019:9;21015:18;21007:26;;21079:9;21073:4;21069:20;21065:1;21054:9;21050:17;21043:47;21107:131;21233:4;21107:131;:::i;:::-;21099:139;;20826:419;;;:::o;21251:222::-;21391:34;21387:1;21379:6;21375:14;21368:58;21460:5;21455:2;21447:6;21443:15;21436:30;21251:222;:::o;21479:366::-;21621:3;21642:67;21706:2;21701:3;21642:67;:::i;:::-;21635:74;;21718:93;21807:3;21718:93;:::i;:::-;21836:2;21831:3;21827:12;21820:19;;21479:366;;;:::o;21851:419::-;22017:4;22055:2;22044:9;22040:18;22032:26;;22104:9;22098:4;22094:20;22090:1;22079:9;22075:17;22068:47;22132:131;22258:4;22132:131;:::i;:::-;22124:139;;21851:419;;;:::o;22276:228::-;22416:34;22412:1;22404:6;22400:14;22393:58;22485:11;22480:2;22472:6;22468:15;22461:36;22276:228;:::o;22510:366::-;22652:3;22673:67;22737:2;22732:3;22673:67;:::i;:::-;22666:74;;22749:93;22838:3;22749:93;:::i;:::-;22867:2;22862:3;22858:12;22851:19;;22510:366;;;:::o;22882:419::-;23048:4;23086:2;23075:9;23071:18;23063:26;;23135:9;23129:4;23125:20;23121:1;23110:9;23106:17;23099:47;23163:131;23289:4;23163:131;:::i;:::-;23155:139;;22882:419;;;:::o;23307:174::-;23447:26;23443:1;23435:6;23431:14;23424:50;23307:174;:::o;23487:366::-;23629:3;23650:67;23714:2;23709:3;23650:67;:::i;:::-;23643:74;;23726:93;23815:3;23726:93;:::i;:::-;23844:2;23839:3;23835:12;23828:19;;23487:366;;;:::o;23859:419::-;24025:4;24063:2;24052:9;24048:18;24040:26;;24112:9;24106:4;24102:20;24098:1;24087:9;24083:17;24076:47;24140:131;24266:4;24140:131;:::i;:::-;24132:139;;23859:419;;;:::o;24284:161::-;24424:13;24420:1;24412:6;24408:14;24401:37;24284:161;:::o;24451:366::-;24593:3;24614:67;24678:2;24673:3;24614:67;:::i;:::-;24607:74;;24690:93;24779:3;24690:93;:::i;:::-;24808:2;24803:3;24799:12;24792:19;;24451:366;;;:::o;24823:419::-;24989:4;25027:2;25016:9;25012:18;25004:26;;25076:9;25070:4;25066:20;25062:1;25051:9;25047:17;25040:47;25104:131;25230:4;25104:131;:::i;:::-;25096:139;;24823:419;;;:::o;25248:305::-;25288:3;25307:20;25325:1;25307:20;:::i;:::-;25302:25;;25341:20;25359:1;25341:20;:::i;:::-;25336:25;;25495:1;25427:66;25423:74;25420:1;25417:81;25414:107;;;25501:18;;:::i;:::-;25414:107;25545:1;25542;25538:9;25531:16;;25248:305;;;;:::o;25559:226::-;25699:34;25695:1;25687:6;25683:14;25676:58;25768:9;25763:2;25755:6;25751:15;25744:34;25559:226;:::o;25791:366::-;25933:3;25954:67;26018:2;26013:3;25954:67;:::i;:::-;25947:74;;26030:93;26119:3;26030:93;:::i;:::-;26148:2;26143:3;26139:12;26132:19;;25791:366;;;:::o;26163:419::-;26329:4;26367:2;26356:9;26352:18;26344:26;;26416:9;26410:4;26406:20;26402:1;26391:9;26387:17;26380:47;26444:131;26570:4;26444:131;:::i;:::-;26436:139;;26163:419;;;:::o;26588:177::-;26728:29;26724:1;26716:6;26712:14;26705:53;26588:177;:::o;26771:366::-;26913:3;26934:67;26998:2;26993:3;26934:67;:::i;:::-;26927:74;;27010:93;27099:3;27010:93;:::i;:::-;27128:2;27123:3;27119:12;27112:19;;26771:366;;;:::o;27143:419::-;27309:4;27347:2;27336:9;27332:18;27324:26;;27396:9;27390:4;27386:20;27382:1;27371:9;27367:17;27360:47;27424:131;27550:4;27424:131;:::i;:::-;27416:139;;27143:419;;;:::o;27568:221::-;27708:34;27704:1;27696:6;27692:14;27685:58;27777:4;27772:2;27764:6;27760:15;27753:29;27568:221;:::o;27795:366::-;27937:3;27958:67;28022:2;28017:3;27958:67;:::i;:::-;27951:74;;28034:93;28123:3;28034:93;:::i;:::-;28152:2;28147:3;28143:12;28136:19;;27795:366;;;:::o;28167:419::-;28333:4;28371:2;28360:9;28356:18;28348:26;;28420:9;28414:4;28410:20;28406:1;28395:9;28391:17;28384:47;28448:131;28574:4;28448:131;:::i;:::-;28440:139;;28167:419;;;:::o;28592:222::-;28732:34;28728:1;28720:6;28716:14;28709:58;28801:5;28796:2;28788:6;28784:15;28777:30;28592:222;:::o;28820:366::-;28962:3;28983:67;29047:2;29042:3;28983:67;:::i;:::-;28976:74;;29059:93;29148:3;29059:93;:::i;:::-;29177:2;29172:3;29168:12;29161:19;;28820:366;;;:::o;29192:419::-;29358:4;29396:2;29385:9;29381:18;29373:26;;29445:9;29439:4;29435:20;29431:1;29420:9;29416:17;29409:47;29473:131;29599:4;29473:131;:::i;:::-;29465:139;;29192:419;;;:::o;29617:348::-;29657:7;29680:20;29698:1;29680:20;:::i;:::-;29675:25;;29714:20;29732:1;29714:20;:::i;:::-;29709:25;;29902:1;29834:66;29830:74;29827:1;29824:81;29819:1;29812:9;29805:17;29801:105;29798:131;;;29909:18;;:::i;:::-;29798:131;29957:1;29954;29950:9;29939:20;;29617:348;;;;:::o;29971:180::-;30019:77;30016:1;30009:88;30116:4;30113:1;30106:15;30140:4;30137:1;30130:15;30157:185;30197:1;30214:20;30232:1;30214:20;:::i;:::-;30209:25;;30248:20;30266:1;30248:20;:::i;:::-;30243:25;;30287:1;30277:35;;30292:18;;:::i;:::-;30277:35;30334:1;30331;30327:9;30322:14;;30157:185;;;;:::o;30348:180::-;30396:77;30393:1;30386:88;30493:4;30490:1;30483:15;30517:4;30514:1;30507:15;30534:180;30582:77;30579:1;30572:88;30679:4;30676:1;30669:15;30703:4;30700:1;30693:15;30720:114;30787:6;30821:5;30815:12;30805:22;;30720:114;;;:::o;30840:184::-;30939:11;30973:6;30968:3;30961:19;31013:4;31008:3;31004:14;30989:29;;30840:184;;;;:::o;31030:132::-;31097:4;31120:3;31112:11;;31150:4;31145:3;31141:14;31133:22;;31030:132;;;:::o;31168:108::-;31245:24;31263:5;31245:24;:::i;:::-;31240:3;31233:37;31168:108;;:::o;31282:179::-;31351:10;31372:46;31414:3;31406:6;31372:46;:::i;:::-;31450:4;31445:3;31441:14;31427:28;;31282:179;;;;:::o;31467:113::-;31537:4;31569;31564:3;31560:14;31552:22;;31467:113;;;:::o;31616:732::-;31735:3;31764:54;31812:5;31764:54;:::i;:::-;31834:86;31913:6;31908:3;31834:86;:::i;:::-;31827:93;;31944:56;31994:5;31944:56;:::i;:::-;32023:7;32054:1;32039:284;32064:6;32061:1;32058:13;32039:284;;;32140:6;32134:13;32167:63;32226:3;32211:13;32167:63;:::i;:::-;32160:70;;32253:60;32306:6;32253:60;:::i;:::-;32243:70;;32099:224;32086:1;32083;32079:9;32074:14;;32039:284;;;32043:14;32339:3;32332:10;;31740:608;;;31616:732;;;;:::o;32354:831::-;32617:4;32655:3;32644:9;32640:19;32632:27;;32669:71;32737:1;32726:9;32722:17;32713:6;32669:71;:::i;:::-;32750:80;32826:2;32815:9;32811:18;32802:6;32750:80;:::i;:::-;32877:9;32871:4;32867:20;32862:2;32851:9;32847:18;32840:48;32905:108;33008:4;32999:6;32905:108;:::i;:::-;32897:116;;33023:72;33091:2;33080:9;33076:18;33067:6;33023:72;:::i;:::-;33105:73;33173:3;33162:9;33158:19;33149:6;33105:73;:::i;:::-;32354:831;;;;;;;;:::o

Swarm Source

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