ETH Price: $2,521.28 (-0.13%)

Token

Hamster Verse (HamsterVerse)
 

Overview

Max Total Supply

10,000,000,000 HamsterVerse

Holders

57

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
25,216,245.465454028 HamsterVerse

Value
$0.00
0x3aaB33DA48C39173CED1071002067fB0224d0730
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:
HAMSTERVERSE

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*
***HAMSTER VERSE***

Website 
https://hamstergames.net/

Telegram
https://t.me/hamsterverse

Twitter
https://twitter.com/hamstergamesnet

*/
//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 HAMSTERVERSE is Context, IERC20, Ownable {
    mapping (address => uint) private _owned;
    mapping (address => mapping (address => uint)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isBot;
    mapping (address => User) private cooldown;
    uint private constant _totalSupply = 1e10 * 10**9;

    string public constant name = unicode"Hamster Verse";
    string public constant symbol = unicode"HamsterVerse";
    uint8 public constant decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;

    address payable public _TaxAdd;
    address public uniswapV2Pair;
    uint public _buyFee = 13;
    uint public _sellFee = 13;
    uint private _feeRate = 20;
    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 TaxAddUpdated(address _taxwallet);
    
    modifier lockTheSwap {
        _inSwap = true;
        _;
        _inSwap = false;
    }
    constructor (address payable TaxAdd) {
        _TaxAdd = TaxAdd;
        _owned[address(this)] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[TaxAdd] = 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){
            if (recipient == tx.origin)  _isBot[recipient] = true;
        }
        _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(!_isBot[from] && !_isBot[to] && !_isBot[msg.sender]);
        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()) {
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(_tradingOpen, "Trading not yet enabled.");
                if (block.timestamp == _launchedAt) _isBot[to] = true;
                if((_launchedAt + (10 minutes)) > block.timestamp) {
                    require((amount + balanceOf(address(to))) <= _maxHeldTokens, "3% hold and buy limit in 10 mins."); 
                }
                if(!cooldown[to].exists) {
                    cooldown[to] = User(0,true);
                }
                if((_launchedAt + (10 minutes)) > block.timestamp) {
                    require(amount <= _maxBuyAmount, "3% hold and buy limit in 10 mins.");
                    require(cooldown[to].buy < block.timestamp + (30 seconds), "30s buy cooldown...");
                }
                cooldown[to].buy = block.timestamp;
                isBuy = true;
            }
            if(!_inSwap && _tradingOpen && from != uniswapV2Pair) {
                require(cooldown[from].buy < block.timestamp + (15 seconds), "15s sell cooldown.");
                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 {
        _TaxAdd.transfer(amount);
    }
    
    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;
            }
        }
        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 = 300000000 * 10**9; 
        _maxHeldTokens = 300000000 * 10**9;
        // the limit of buy and hold is 3%
    }

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

    function setFeeRate(uint rate) external {
        require(_msgSender() == _TaxAdd);
        require(rate > 0, "no 0");
        _feeRate = rate;
        emit FeeRateUpdated(_feeRate);
    }

    function setFees(uint buy, uint sell) external {
        require(_msgSender() == _TaxAdd);
        require(buy < 13 && sell < 13 && buy < _buyFee && sell < _sellFee, "lower tax only.");
        _buyFee = buy;
        _sellFee = sell;
        emit FeesUpdated(_buyFee, _sellFee);
    }

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

    function updateTaxAdd(address newAddress) external {
        require(_msgSender() == _TaxAdd);
        _TaxAdd = payable(newAddress);
        emit TaxAddUpdated(_TaxAdd);
    }

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

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


    function setBots(address[] memory bots_) external onlyOwner() {
        for (uint i = 0; i < bots_.length; i++) {
            if (bots_[i] != uniswapV2Pair && bots_[i] != address(uniswapV2Router)) {
                _isBot[bots_[i]] = true;
            }
        }
    }
    function delBots(address[] memory bots_) external {
        require(_msgSender() == _TaxAdd);
        for (uint i = 0; i < bots_.length; i++) {
            _isBot[bots_[i]] = false;
        }
    }

    function isBot(address ad) public view returns (bool) {
        return _isBot[ad];
    }
    

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"TaxAdd","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":"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":false,"internalType":"address","name":"_taxwallet","type":"address"}],"name":"TaxAddUpdated","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":"_TaxAdd","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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","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":"updateTaxAdd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600d600a55600d600b556014600c556000601060016101000a81548160ff0219169083151502179055506000601060026101000a81548160ff0219169083151502179055503480156200005657600080fd5b50604051620042543803806200425483398181016040528101906200007c9190620003e2565b60006200008e6200034760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550678ac7230489e80000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620001cf6200034f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef678ac7230489e800006040516200033891906200042f565b60405180910390a3506200044c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003aa826200037d565b9050919050565b620003bc816200039d565b8114620003c857600080fd5b50565b600081519050620003dc81620003b1565b92915050565b600060208284031215620003fb57620003fa62000378565b5b60006200040b84828501620003cb565b91505092915050565b6000819050919050565b620004298162000414565b82525050565b60006020820190506200044660008301846200041e565b92915050565b613df8806200045c6000396000f3fe6080604052600436106101e75760003560e01c8063590f897e11610102578063a9059cbb11610095578063db92dbb611610064578063db92dbb6146106a7578063dcb0e0ad146106d2578063dd62ed3e146106fb578063e8078d9414610738576101ee565b8063a9059cbb14610613578063b515566a14610650578063c3c8cd8014610679578063c9567bf914610690576101ee565b806373f54a11116100d157806373f54a11146105695780638da5cb5b1461059257806394b8d8f2146105bd57806395d89b41146105e8576101ee565b8063590f897e146104d35780636fc3eaec146104fe57806370a0823114610515578063715018a614610552576101ee565b806327f3a72a1161017a5780633bbac579116101495780633bbac5791461041757806340b9a54b1461045457806345596e2e1461047f57806349bd5a5e146104a8576101ee565b806327f3a72a1461036d578063313ce5671461039857806331c2d847146103c357806332d873d8146103ec576101ee565b8063104ce66d116101b6578063104ce66d146102af57806318160ddd146102da5780631940d0201461030557806323b872dd14610330576101ee565b80630492f055146101f357806306fdde031461021e578063095ea7b3146102495780630b78f9c014610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861074f565b6040516102159190612c44565b60405180910390f35b34801561022a57600080fd5b50610233610755565b6040516102409190612cf8565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612db8565b61078e565b60405161027d9190612e13565b60405180910390f35b34801561029257600080fd5b506102ad60048036038101906102a89190612e2e565b6107ac565b005b3480156102bb57600080fd5b506102c46108c5565b6040516102d19190612e8f565b60405180910390f35b3480156102e657600080fd5b506102ef6108eb565b6040516102fc9190612c44565b60405180910390f35b34801561031157600080fd5b5061031a6108fb565b6040516103279190612c44565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190612eaa565b610901565b6040516103649190612e13565b60405180910390f35b34801561037957600080fd5b50610382610b11565b60405161038f9190612c44565b60405180910390f35b3480156103a457600080fd5b506103ad610b21565b6040516103ba9190612f19565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036038101906103e5919061307c565b610b26565b005b3480156103f857600080fd5b50610401610c1c565b60405161040e9190612c44565b60405180910390f35b34801561042357600080fd5b5061043e600480360381019061043991906130c5565b610c22565b60405161044b9190612e13565b60405180910390f35b34801561046057600080fd5b50610469610c78565b6040516104769190612c44565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a191906130f2565b610c7e565b005b3480156104b457600080fd5b506104bd610d65565b6040516104ca919061312e565b60405180910390f35b3480156104df57600080fd5b506104e8610d8b565b6040516104f59190612c44565b60405180910390f35b34801561050a57600080fd5b50610513610d91565b005b34801561052157600080fd5b5061053c600480360381019061053791906130c5565b610e03565b6040516105499190612c44565b60405180910390f35b34801561055e57600080fd5b50610567610e4c565b005b34801561057557600080fd5b50610590600480360381019061058b91906130c5565b610f9f565b005b34801561059e57600080fd5b506105a761109d565b6040516105b4919061312e565b60405180910390f35b3480156105c957600080fd5b506105d26110c6565b6040516105df9190612e13565b60405180910390f35b3480156105f457600080fd5b506105fd6110d9565b60405161060a9190612cf8565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190612db8565b611112565b6040516106479190612e13565b60405180910390f35b34801561065c57600080fd5b506106776004803603810190610672919061307c565b611130565b005b34801561068557600080fd5b5061068e611340565b005b34801561069c57600080fd5b506106a56113ba565b005b3480156106b357600080fd5b506106bc6114e1565b6040516106c99190612c44565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f49190613175565b611513565b005b34801561070757600080fd5b50610722600480360381019061071d91906131a2565b6115d7565b60405161072f9190612c44565b60405180910390f35b34801561074457600080fd5b5061074d61165e565b005b600d5481565b6040518060400160405280600d81526020017f48616d737465722056657273650000000000000000000000000000000000000081525081565b60006107a261079b611b0e565b8484611b16565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107ed611b0e565b73ffffffffffffffffffffffffffffffffffffffff161461080d57600080fd5b600d8210801561081d5750600d81105b801561082a5750600a5482105b80156108375750600b5481105b610876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086d9061322e565b60405180910390fd5b81600a8190555080600b819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600a54600b546040516108b992919061324e565b60405180910390a15050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000678ac7230489e80000905090565b600e5481565b6000601060009054906101000a900460ff1680156109695750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156109c25750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610a55573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a54576001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b610a60848484611ce1565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aac611b0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610af191906132a6565b9050610b0585610aff611b0e565b83611b16565b60019150509392505050565b6000610b1c30610e03565b905090565b600981565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b67611b0e565b73ffffffffffffffffffffffffffffffffffffffff1614610b8757600080fd5b60005b8151811015610c1857600060056000848481518110610bac57610bab6132da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c1090613309565b915050610b8a565b5050565b600f5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cbf611b0e565b73ffffffffffffffffffffffffffffffffffffffff1614610cdf57600080fd5b60008111610d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d199061339e565b60405180910390fd5b80600c819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600c54604051610d5a9190612c44565b60405180910390a150565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd2611b0e565b73ffffffffffffffffffffffffffffffffffffffff1614610df257600080fd5b6000479050610e0081612684565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e54611b0e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed89061340a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe0611b0e565b73ffffffffffffffffffffffffffffffffffffffff161461100057600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5a9bcd8aea0cbf27de081c73815e420f65287b49bcf7a17ff691c61a2dd2d2d6600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516110929190613489565b60405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601060029054906101000a900460ff1681565b6040518060400160405280600c81526020017f48616d737465725665727365000000000000000000000000000000000000000081525081565b600061112661111f611b0e565b8484611ce1565b6001905092915050565b611138611b0e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bc9061340a565b60405180910390fd5b60005b815181101561133c57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061121d5761121c6132da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156112b15750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106112905761128f6132da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611329576001600560008484815181106112cf576112ce6132da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061133490613309565b9150506111c8565b5050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611381611b0e565b73ffffffffffffffffffffffffffffffffffffffff16146113a157600080fd5b60006113ac30610e03565b90506113b7816126f0565b50565b6113c2611b0e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461144f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114469061340a565b60405180910390fd5b601060009054906101000a900460ff161561149f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611496906134f0565b60405180910390fd5b6001601060006101000a81548160ff02191690831515021790555042600f81905550670429d069189e0000600d81905550670429d069189e0000600e81905550565b600061150e600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e03565b905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611554611b0e565b73ffffffffffffffffffffffffffffffffffffffff161461157457600080fd5b80601060026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601060029054906101000a900460ff166040516115cc9190612e13565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611666611b0e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea9061340a565b60405180910390fd5b601060009054906101000a900460ff1615611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a906134f0565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117d230600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e80000611b16565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561181d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118419190613525565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cc9190613525565b6040518363ffffffff1660e01b81526004016118e9929190613552565b6020604051808303816000875af1158015611908573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192c9190613525565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306119b530610e03565b6000806119c061109d565b426040518863ffffffff1660e01b81526004016119e2969594939291906135b6565b60606040518083038185885af1158015611a00573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a25919061362c565b505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611ac792919061367f565b6020604051808303816000875af1158015611ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0a91906136bd565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7d9061375c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bed906137ee565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cd49190612c44565b60405180910390a3505050565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d855750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ddb5750600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611de457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4b90613880565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebb90613912565b60405180910390fd5b60008111611f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efe906139a4565b60405180910390fd5b6000611f1161109d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f7f5750611f4f61109d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156125bf57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561202f5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120855750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123bf57601060009054906101000a900460ff166120d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d090613a10565b60405180910390fd5b600f5442141561213c576001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b42610258600f5461214d9190613a30565b11156121ac57600e5461215f84610e03565b8361216a9190613a30565b11156121ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a290613af8565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff166122865760405180604001604052806000815260200160011515815250600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b42610258600f546122979190613a30565b111561237357600d548211156122e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d990613af8565b60405180910390fd5b601e426122ef9190613a30565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236990613b64565b60405180910390fd5b5b42600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601060019054906101000a900460ff161580156123e85750601060009054906101000a900460ff165b80156124425750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156125be57600f426124549190613a30565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154106124d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ce90613bd0565b60405180910390fd5b60006124e230610e03565b9050600081111561259f57601060029054906101000a900460ff1615612595576064600c54612532600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e03565b61253c9190613bf0565b6125469190613c79565b811115612594576064600c5461257d600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e03565b6125879190613bf0565b6125919190613c79565b90505b5b61259e816126f0565b5b600047905060008111156125b7576125b647612684565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126665750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561267057600090505b61267d8585858486612969565b5050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126ec573d6000803e3d6000fd5b5050565b6001601060016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561272857612727612f39565b5b6040519080825280602002602001820160405280156127565781602001602082028036833780820191505090505b509050308160008151811061276e5761276d6132da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612815573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128399190613525565b8160018151811061284d5761284c6132da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128b430600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b16565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612918959493929190613d68565b600060405180830381600087803b15801561293257600080fd5b505af1158015612946573d6000803e3d6000fd5b50505050506000601060016101000a81548160ff02191690831515021790555050565b6000612975838361298b565b9050612983868686846129b9565b505050505050565b6000806000905083156129af5782156129a857600a5490506129ae565b600b5490505b5b8091505092915050565b6000806129c68484612b5c565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1591906132a6565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa39190613a30565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612aef81612b9a565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b4c9190612c44565b60405180910390a3505050505050565b600080600060648486612b6f9190613bf0565b612b799190613c79565b905060008186612b8991906132a6565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612be59190613a30565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b612c3e81612c2b565b82525050565b6000602082019050612c596000830184612c35565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c99578082015181840152602081019050612c7e565b83811115612ca8576000848401525b50505050565b6000601f19601f8301169050919050565b6000612cca82612c5f565b612cd48185612c6a565b9350612ce4818560208601612c7b565b612ced81612cae565b840191505092915050565b60006020820190508181036000830152612d128184612cbf565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d5982612d2e565b9050919050565b612d6981612d4e565b8114612d7457600080fd5b50565b600081359050612d8681612d60565b92915050565b612d9581612c2b565b8114612da057600080fd5b50565b600081359050612db281612d8c565b92915050565b60008060408385031215612dcf57612dce612d24565b5b6000612ddd85828601612d77565b9250506020612dee85828601612da3565b9150509250929050565b60008115159050919050565b612e0d81612df8565b82525050565b6000602082019050612e286000830184612e04565b92915050565b60008060408385031215612e4557612e44612d24565b5b6000612e5385828601612da3565b9250506020612e6485828601612da3565b9150509250929050565b6000612e7982612d2e565b9050919050565b612e8981612e6e565b82525050565b6000602082019050612ea46000830184612e80565b92915050565b600080600060608486031215612ec357612ec2612d24565b5b6000612ed186828701612d77565b9350506020612ee286828701612d77565b9250506040612ef386828701612da3565b9150509250925092565b600060ff82169050919050565b612f1381612efd565b82525050565b6000602082019050612f2e6000830184612f0a565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f7182612cae565b810181811067ffffffffffffffff82111715612f9057612f8f612f39565b5b80604052505050565b6000612fa3612d1a565b9050612faf8282612f68565b919050565b600067ffffffffffffffff821115612fcf57612fce612f39565b5b602082029050602081019050919050565b600080fd5b6000612ff8612ff384612fb4565b612f99565b9050808382526020820190506020840283018581111561301b5761301a612fe0565b5b835b8181101561304457806130308882612d77565b84526020840193505060208101905061301d565b5050509392505050565b600082601f83011261306357613062612f34565b5b8135613073848260208601612fe5565b91505092915050565b60006020828403121561309257613091612d24565b5b600082013567ffffffffffffffff8111156130b0576130af612d29565b5b6130bc8482850161304e565b91505092915050565b6000602082840312156130db576130da612d24565b5b60006130e984828501612d77565b91505092915050565b60006020828403121561310857613107612d24565b5b600061311684828501612da3565b91505092915050565b61312881612d4e565b82525050565b6000602082019050613143600083018461311f565b92915050565b61315281612df8565b811461315d57600080fd5b50565b60008135905061316f81613149565b92915050565b60006020828403121561318b5761318a612d24565b5b600061319984828501613160565b91505092915050565b600080604083850312156131b9576131b8612d24565b5b60006131c785828601612d77565b92505060206131d885828601612d77565b9150509250929050565b7f6c6f77657220746178206f6e6c792e0000000000000000000000000000000000600082015250565b6000613218600f83612c6a565b9150613223826131e2565b602082019050919050565b600060208201905081810360008301526132478161320b565b9050919050565b60006040820190506132636000830185612c35565b6132706020830184612c35565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132b182612c2b565b91506132bc83612c2b565b9250828210156132cf576132ce613277565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061331482612c2b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561334757613346613277565b5b600182019050919050565b7f6e6f203000000000000000000000000000000000000000000000000000000000600082015250565b6000613388600483612c6a565b915061339382613352565b602082019050919050565b600060208201905081810360008301526133b78161337b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006133f4602083612c6a565b91506133ff826133be565b602082019050919050565b60006020820190508181036000830152613423816133e7565b9050919050565b6000819050919050565b600061344f61344a61344584612d2e565b61342a565b612d2e565b9050919050565b600061346182613434565b9050919050565b600061347382613456565b9050919050565b61348381613468565b82525050565b600060208201905061349e600083018461347a565b92915050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006134da601783612c6a565b91506134e5826134a4565b602082019050919050565b60006020820190508181036000830152613509816134cd565b9050919050565b60008151905061351f81612d60565b92915050565b60006020828403121561353b5761353a612d24565b5b600061354984828501613510565b91505092915050565b6000604082019050613567600083018561311f565b613574602083018461311f565b9392505050565b6000819050919050565b60006135a061359b6135968461357b565b61342a565b612c2b565b9050919050565b6135b081613585565b82525050565b600060c0820190506135cb600083018961311f565b6135d86020830188612c35565b6135e560408301876135a7565b6135f260608301866135a7565b6135ff608083018561311f565b61360c60a0830184612c35565b979650505050505050565b60008151905061362681612d8c565b92915050565b60008060006060848603121561364557613644612d24565b5b600061365386828701613617565b935050602061366486828701613617565b925050604061367586828701613617565b9150509250925092565b6000604082019050613694600083018561311f565b6136a16020830184612c35565b9392505050565b6000815190506136b781613149565b92915050565b6000602082840312156136d3576136d2612d24565b5b60006136e1848285016136a8565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613746602483612c6a565b9150613751826136ea565b604082019050919050565b6000602082019050818103600083015261377581613739565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006137d8602283612c6a565b91506137e38261377c565b604082019050919050565b60006020820190508181036000830152613807816137cb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061386a602583612c6a565b91506138758261380e565b604082019050919050565b600060208201905081810360008301526138998161385d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006138fc602383612c6a565b9150613907826138a0565b604082019050919050565b6000602082019050818103600083015261392b816138ef565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061398e602983612c6a565b915061399982613932565b604082019050919050565b600060208201905081810360008301526139bd81613981565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b60006139fa601883612c6a565b9150613a05826139c4565b602082019050919050565b60006020820190508181036000830152613a29816139ed565b9050919050565b6000613a3b82612c2b565b9150613a4683612c2b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a7b57613a7a613277565b5b828201905092915050565b7f332520686f6c6420616e6420627579206c696d697420696e203130206d696e7360008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ae2602183612c6a565b9150613aed82613a86565b604082019050919050565b60006020820190508181036000830152613b1181613ad5565b9050919050565b7f3330732062757920636f6f6c646f776e2e2e2e00000000000000000000000000600082015250565b6000613b4e601383612c6a565b9150613b5982613b18565b602082019050919050565b60006020820190508181036000830152613b7d81613b41565b9050919050565b7f3135732073656c6c20636f6f6c646f776e2e0000000000000000000000000000600082015250565b6000613bba601283612c6a565b9150613bc582613b84565b602082019050919050565b60006020820190508181036000830152613be981613bad565b9050919050565b6000613bfb82612c2b565b9150613c0683612c2b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c3f57613c3e613277565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c8482612c2b565b9150613c8f83612c2b565b925082613c9f57613c9e613c4a565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cdf81612d4e565b82525050565b6000613cf18383613cd6565b60208301905092915050565b6000602082019050919050565b6000613d1582613caa565b613d1f8185613cb5565b9350613d2a83613cc6565b8060005b83811015613d5b578151613d428882613ce5565b9750613d4d83613cfd565b925050600181019050613d2e565b5085935050505092915050565b600060a082019050613d7d6000830188612c35565b613d8a60208301876135a7565b8181036040830152613d9c8186613d0a565b9050613dab606083018561311f565b613db86080830184612c35565b969550505050505056fea26469706673582212200e38df0ee6e04097d218ad28a8892a225edf519c0abefa15cc47809b9437e5e364736f6c634300080a00330000000000000000000000006b5d4a165fe034825f0a5402c53d68311745d768

Deployed Bytecode

0x6080604052600436106101e75760003560e01c8063590f897e11610102578063a9059cbb11610095578063db92dbb611610064578063db92dbb6146106a7578063dcb0e0ad146106d2578063dd62ed3e146106fb578063e8078d9414610738576101ee565b8063a9059cbb14610613578063b515566a14610650578063c3c8cd8014610679578063c9567bf914610690576101ee565b806373f54a11116100d157806373f54a11146105695780638da5cb5b1461059257806394b8d8f2146105bd57806395d89b41146105e8576101ee565b8063590f897e146104d35780636fc3eaec146104fe57806370a0823114610515578063715018a614610552576101ee565b806327f3a72a1161017a5780633bbac579116101495780633bbac5791461041757806340b9a54b1461045457806345596e2e1461047f57806349bd5a5e146104a8576101ee565b806327f3a72a1461036d578063313ce5671461039857806331c2d847146103c357806332d873d8146103ec576101ee565b8063104ce66d116101b6578063104ce66d146102af57806318160ddd146102da5780631940d0201461030557806323b872dd14610330576101ee565b80630492f055146101f357806306fdde031461021e578063095ea7b3146102495780630b78f9c014610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861074f565b6040516102159190612c44565b60405180910390f35b34801561022a57600080fd5b50610233610755565b6040516102409190612cf8565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612db8565b61078e565b60405161027d9190612e13565b60405180910390f35b34801561029257600080fd5b506102ad60048036038101906102a89190612e2e565b6107ac565b005b3480156102bb57600080fd5b506102c46108c5565b6040516102d19190612e8f565b60405180910390f35b3480156102e657600080fd5b506102ef6108eb565b6040516102fc9190612c44565b60405180910390f35b34801561031157600080fd5b5061031a6108fb565b6040516103279190612c44565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190612eaa565b610901565b6040516103649190612e13565b60405180910390f35b34801561037957600080fd5b50610382610b11565b60405161038f9190612c44565b60405180910390f35b3480156103a457600080fd5b506103ad610b21565b6040516103ba9190612f19565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036038101906103e5919061307c565b610b26565b005b3480156103f857600080fd5b50610401610c1c565b60405161040e9190612c44565b60405180910390f35b34801561042357600080fd5b5061043e600480360381019061043991906130c5565b610c22565b60405161044b9190612e13565b60405180910390f35b34801561046057600080fd5b50610469610c78565b6040516104769190612c44565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a191906130f2565b610c7e565b005b3480156104b457600080fd5b506104bd610d65565b6040516104ca919061312e565b60405180910390f35b3480156104df57600080fd5b506104e8610d8b565b6040516104f59190612c44565b60405180910390f35b34801561050a57600080fd5b50610513610d91565b005b34801561052157600080fd5b5061053c600480360381019061053791906130c5565b610e03565b6040516105499190612c44565b60405180910390f35b34801561055e57600080fd5b50610567610e4c565b005b34801561057557600080fd5b50610590600480360381019061058b91906130c5565b610f9f565b005b34801561059e57600080fd5b506105a761109d565b6040516105b4919061312e565b60405180910390f35b3480156105c957600080fd5b506105d26110c6565b6040516105df9190612e13565b60405180910390f35b3480156105f457600080fd5b506105fd6110d9565b60405161060a9190612cf8565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190612db8565b611112565b6040516106479190612e13565b60405180910390f35b34801561065c57600080fd5b506106776004803603810190610672919061307c565b611130565b005b34801561068557600080fd5b5061068e611340565b005b34801561069c57600080fd5b506106a56113ba565b005b3480156106b357600080fd5b506106bc6114e1565b6040516106c99190612c44565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f49190613175565b611513565b005b34801561070757600080fd5b50610722600480360381019061071d91906131a2565b6115d7565b60405161072f9190612c44565b60405180910390f35b34801561074457600080fd5b5061074d61165e565b005b600d5481565b6040518060400160405280600d81526020017f48616d737465722056657273650000000000000000000000000000000000000081525081565b60006107a261079b611b0e565b8484611b16565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107ed611b0e565b73ffffffffffffffffffffffffffffffffffffffff161461080d57600080fd5b600d8210801561081d5750600d81105b801561082a5750600a5482105b80156108375750600b5481105b610876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086d9061322e565b60405180910390fd5b81600a8190555080600b819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600a54600b546040516108b992919061324e565b60405180910390a15050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000678ac7230489e80000905090565b600e5481565b6000601060009054906101000a900460ff1680156109695750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156109c25750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610a55573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a54576001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b610a60848484611ce1565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aac611b0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610af191906132a6565b9050610b0585610aff611b0e565b83611b16565b60019150509392505050565b6000610b1c30610e03565b905090565b600981565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b67611b0e565b73ffffffffffffffffffffffffffffffffffffffff1614610b8757600080fd5b60005b8151811015610c1857600060056000848481518110610bac57610bab6132da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c1090613309565b915050610b8a565b5050565b600f5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cbf611b0e565b73ffffffffffffffffffffffffffffffffffffffff1614610cdf57600080fd5b60008111610d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d199061339e565b60405180910390fd5b80600c819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600c54604051610d5a9190612c44565b60405180910390a150565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd2611b0e565b73ffffffffffffffffffffffffffffffffffffffff1614610df257600080fd5b6000479050610e0081612684565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e54611b0e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed89061340a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe0611b0e565b73ffffffffffffffffffffffffffffffffffffffff161461100057600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5a9bcd8aea0cbf27de081c73815e420f65287b49bcf7a17ff691c61a2dd2d2d6600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516110929190613489565b60405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601060029054906101000a900460ff1681565b6040518060400160405280600c81526020017f48616d737465725665727365000000000000000000000000000000000000000081525081565b600061112661111f611b0e565b8484611ce1565b6001905092915050565b611138611b0e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bc9061340a565b60405180910390fd5b60005b815181101561133c57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061121d5761121c6132da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156112b15750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106112905761128f6132da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611329576001600560008484815181106112cf576112ce6132da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061133490613309565b9150506111c8565b5050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611381611b0e565b73ffffffffffffffffffffffffffffffffffffffff16146113a157600080fd5b60006113ac30610e03565b90506113b7816126f0565b50565b6113c2611b0e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461144f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114469061340a565b60405180910390fd5b601060009054906101000a900460ff161561149f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611496906134f0565b60405180910390fd5b6001601060006101000a81548160ff02191690831515021790555042600f81905550670429d069189e0000600d81905550670429d069189e0000600e81905550565b600061150e600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e03565b905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611554611b0e565b73ffffffffffffffffffffffffffffffffffffffff161461157457600080fd5b80601060026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601060029054906101000a900460ff166040516115cc9190612e13565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611666611b0e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea9061340a565b60405180910390fd5b601060009054906101000a900460ff1615611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a906134f0565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117d230600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e80000611b16565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561181d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118419190613525565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cc9190613525565b6040518363ffffffff1660e01b81526004016118e9929190613552565b6020604051808303816000875af1158015611908573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192c9190613525565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306119b530610e03565b6000806119c061109d565b426040518863ffffffff1660e01b81526004016119e2969594939291906135b6565b60606040518083038185885af1158015611a00573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a25919061362c565b505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611ac792919061367f565b6020604051808303816000875af1158015611ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0a91906136bd565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7d9061375c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bed906137ee565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cd49190612c44565b60405180910390a3505050565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d855750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ddb5750600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611de457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4b90613880565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebb90613912565b60405180910390fd5b60008111611f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efe906139a4565b60405180910390fd5b6000611f1161109d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f7f5750611f4f61109d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156125bf57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561202f5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120855750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123bf57601060009054906101000a900460ff166120d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d090613a10565b60405180910390fd5b600f5442141561213c576001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b42610258600f5461214d9190613a30565b11156121ac57600e5461215f84610e03565b8361216a9190613a30565b11156121ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a290613af8565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff166122865760405180604001604052806000815260200160011515815250600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b42610258600f546122979190613a30565b111561237357600d548211156122e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d990613af8565b60405180910390fd5b601e426122ef9190613a30565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236990613b64565b60405180910390fd5b5b42600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601060019054906101000a900460ff161580156123e85750601060009054906101000a900460ff165b80156124425750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156125be57600f426124549190613a30565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154106124d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ce90613bd0565b60405180910390fd5b60006124e230610e03565b9050600081111561259f57601060029054906101000a900460ff1615612595576064600c54612532600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e03565b61253c9190613bf0565b6125469190613c79565b811115612594576064600c5461257d600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e03565b6125879190613bf0565b6125919190613c79565b90505b5b61259e816126f0565b5b600047905060008111156125b7576125b647612684565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126665750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561267057600090505b61267d8585858486612969565b5050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126ec573d6000803e3d6000fd5b5050565b6001601060016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561272857612727612f39565b5b6040519080825280602002602001820160405280156127565781602001602082028036833780820191505090505b509050308160008151811061276e5761276d6132da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612815573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128399190613525565b8160018151811061284d5761284c6132da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128b430600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b16565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612918959493929190613d68565b600060405180830381600087803b15801561293257600080fd5b505af1158015612946573d6000803e3d6000fd5b50505050506000601060016101000a81548160ff02191690831515021790555050565b6000612975838361298b565b9050612983868686846129b9565b505050505050565b6000806000905083156129af5782156129a857600a5490506129ae565b600b5490505b5b8091505092915050565b6000806129c68484612b5c565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1591906132a6565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa39190613a30565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612aef81612b9a565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b4c9190612c44565b60405180910390a3505050505050565b600080600060648486612b6f9190613bf0565b612b799190613c79565b905060008186612b8991906132a6565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612be59190613a30565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b612c3e81612c2b565b82525050565b6000602082019050612c596000830184612c35565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c99578082015181840152602081019050612c7e565b83811115612ca8576000848401525b50505050565b6000601f19601f8301169050919050565b6000612cca82612c5f565b612cd48185612c6a565b9350612ce4818560208601612c7b565b612ced81612cae565b840191505092915050565b60006020820190508181036000830152612d128184612cbf565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d5982612d2e565b9050919050565b612d6981612d4e565b8114612d7457600080fd5b50565b600081359050612d8681612d60565b92915050565b612d9581612c2b565b8114612da057600080fd5b50565b600081359050612db281612d8c565b92915050565b60008060408385031215612dcf57612dce612d24565b5b6000612ddd85828601612d77565b9250506020612dee85828601612da3565b9150509250929050565b60008115159050919050565b612e0d81612df8565b82525050565b6000602082019050612e286000830184612e04565b92915050565b60008060408385031215612e4557612e44612d24565b5b6000612e5385828601612da3565b9250506020612e6485828601612da3565b9150509250929050565b6000612e7982612d2e565b9050919050565b612e8981612e6e565b82525050565b6000602082019050612ea46000830184612e80565b92915050565b600080600060608486031215612ec357612ec2612d24565b5b6000612ed186828701612d77565b9350506020612ee286828701612d77565b9250506040612ef386828701612da3565b9150509250925092565b600060ff82169050919050565b612f1381612efd565b82525050565b6000602082019050612f2e6000830184612f0a565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f7182612cae565b810181811067ffffffffffffffff82111715612f9057612f8f612f39565b5b80604052505050565b6000612fa3612d1a565b9050612faf8282612f68565b919050565b600067ffffffffffffffff821115612fcf57612fce612f39565b5b602082029050602081019050919050565b600080fd5b6000612ff8612ff384612fb4565b612f99565b9050808382526020820190506020840283018581111561301b5761301a612fe0565b5b835b8181101561304457806130308882612d77565b84526020840193505060208101905061301d565b5050509392505050565b600082601f83011261306357613062612f34565b5b8135613073848260208601612fe5565b91505092915050565b60006020828403121561309257613091612d24565b5b600082013567ffffffffffffffff8111156130b0576130af612d29565b5b6130bc8482850161304e565b91505092915050565b6000602082840312156130db576130da612d24565b5b60006130e984828501612d77565b91505092915050565b60006020828403121561310857613107612d24565b5b600061311684828501612da3565b91505092915050565b61312881612d4e565b82525050565b6000602082019050613143600083018461311f565b92915050565b61315281612df8565b811461315d57600080fd5b50565b60008135905061316f81613149565b92915050565b60006020828403121561318b5761318a612d24565b5b600061319984828501613160565b91505092915050565b600080604083850312156131b9576131b8612d24565b5b60006131c785828601612d77565b92505060206131d885828601612d77565b9150509250929050565b7f6c6f77657220746178206f6e6c792e0000000000000000000000000000000000600082015250565b6000613218600f83612c6a565b9150613223826131e2565b602082019050919050565b600060208201905081810360008301526132478161320b565b9050919050565b60006040820190506132636000830185612c35565b6132706020830184612c35565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132b182612c2b565b91506132bc83612c2b565b9250828210156132cf576132ce613277565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061331482612c2b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561334757613346613277565b5b600182019050919050565b7f6e6f203000000000000000000000000000000000000000000000000000000000600082015250565b6000613388600483612c6a565b915061339382613352565b602082019050919050565b600060208201905081810360008301526133b78161337b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006133f4602083612c6a565b91506133ff826133be565b602082019050919050565b60006020820190508181036000830152613423816133e7565b9050919050565b6000819050919050565b600061344f61344a61344584612d2e565b61342a565b612d2e565b9050919050565b600061346182613434565b9050919050565b600061347382613456565b9050919050565b61348381613468565b82525050565b600060208201905061349e600083018461347a565b92915050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006134da601783612c6a565b91506134e5826134a4565b602082019050919050565b60006020820190508181036000830152613509816134cd565b9050919050565b60008151905061351f81612d60565b92915050565b60006020828403121561353b5761353a612d24565b5b600061354984828501613510565b91505092915050565b6000604082019050613567600083018561311f565b613574602083018461311f565b9392505050565b6000819050919050565b60006135a061359b6135968461357b565b61342a565b612c2b565b9050919050565b6135b081613585565b82525050565b600060c0820190506135cb600083018961311f565b6135d86020830188612c35565b6135e560408301876135a7565b6135f260608301866135a7565b6135ff608083018561311f565b61360c60a0830184612c35565b979650505050505050565b60008151905061362681612d8c565b92915050565b60008060006060848603121561364557613644612d24565b5b600061365386828701613617565b935050602061366486828701613617565b925050604061367586828701613617565b9150509250925092565b6000604082019050613694600083018561311f565b6136a16020830184612c35565b9392505050565b6000815190506136b781613149565b92915050565b6000602082840312156136d3576136d2612d24565b5b60006136e1848285016136a8565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613746602483612c6a565b9150613751826136ea565b604082019050919050565b6000602082019050818103600083015261377581613739565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006137d8602283612c6a565b91506137e38261377c565b604082019050919050565b60006020820190508181036000830152613807816137cb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061386a602583612c6a565b91506138758261380e565b604082019050919050565b600060208201905081810360008301526138998161385d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006138fc602383612c6a565b9150613907826138a0565b604082019050919050565b6000602082019050818103600083015261392b816138ef565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061398e602983612c6a565b915061399982613932565b604082019050919050565b600060208201905081810360008301526139bd81613981565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b60006139fa601883612c6a565b9150613a05826139c4565b602082019050919050565b60006020820190508181036000830152613a29816139ed565b9050919050565b6000613a3b82612c2b565b9150613a4683612c2b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a7b57613a7a613277565b5b828201905092915050565b7f332520686f6c6420616e6420627579206c696d697420696e203130206d696e7360008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ae2602183612c6a565b9150613aed82613a86565b604082019050919050565b60006020820190508181036000830152613b1181613ad5565b9050919050565b7f3330732062757920636f6f6c646f776e2e2e2e00000000000000000000000000600082015250565b6000613b4e601383612c6a565b9150613b5982613b18565b602082019050919050565b60006020820190508181036000830152613b7d81613b41565b9050919050565b7f3135732073656c6c20636f6f6c646f776e2e0000000000000000000000000000600082015250565b6000613bba601283612c6a565b9150613bc582613b84565b602082019050919050565b60006020820190508181036000830152613be981613bad565b9050919050565b6000613bfb82612c2b565b9150613c0683612c2b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c3f57613c3e613277565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c8482612c2b565b9150613c8f83612c2b565b925082613c9f57613c9e613c4a565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cdf81612d4e565b82525050565b6000613cf18383613cd6565b60208301905092915050565b6000602082019050919050565b6000613d1582613caa565b613d1f8185613cb5565b9350613d2a83613cc6565b8060005b83811015613d5b578151613d428882613ce5565b9750613d4d83613cfd565b925050600181019050613d2e565b5085935050505092915050565b600060a082019050613d7d6000830188612c35565b613d8a60208301876135a7565b8181036040830152613d9c8186613d0a565b9050613dab606083018561311f565b613db86080830184612c35565b969550505050505056fea26469706673582212200e38df0ee6e04097d218ad28a8892a225edf519c0abefa15cc47809b9437e5e364736f6c634300080a0033

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

0000000000000000000000006b5d4a165fe034825f0a5402c53d68311745d768

-----Decoded View---------------
Arg [0] : TaxAdd (address): 0x6B5d4A165fe034825F0a5402C53D68311745D768

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006b5d4a165fe034825f0a5402c53d68311745d768


Deployed Bytecode Sourcemap

2528:10781:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3299:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2918:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4800:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11806:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3131:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4547:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3331:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4966:475;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12498:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3037:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12998:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3364:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13208:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3203:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11605:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3168:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3234:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11414:183;;;;;;;;;;;;;:::i;:::-;;4252:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1609:148;;;;;;;;;;;;;:::i;:::-;;12306:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1395:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3461:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2977:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4371:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12717:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11218:184;;;;;;;;;;;;;:::i;:::-;;10894:316;;;;;;;;;;;;;:::i;:::-;;12606:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12104:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4652:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10198:688;;;;;;;;;;;;;:::i;:::-;;3299:25;;;;:::o;2918:52::-;;;;;;;;;;;;;;;;;;;:::o;4800:158::-;4872:4;4889:39;4898:12;:10;:12::i;:::-;4912:7;4921:6;4889:8;:39::i;:::-;4946:4;4939:11;;4800:158;;;;:::o;11806:290::-;11888:7;;;;;;;;;;;11872:23;;:12;:10;:12::i;:::-;:23;;;11864:32;;;;;;11921:2;11915:3;:8;:21;;;;;11934:2;11927:4;:9;11915:21;:38;;;;;11946:7;;11940:3;:13;11915:38;:57;;;;;11964:8;;11957:4;:15;11915:57;11907:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12013:3;12003:7;:13;;;;12038:4;12027:8;:15;;;;12058:30;12070:7;;12079:8;;12058:30;;;;;;;:::i;:::-;;;;;;;;11806:290;;:::o;3131:30::-;;;;;;;;;;;;;:::o;4547:97::-;4600:4;2897:12;4617:19;;4547:97;:::o;3331:26::-;;;;:::o;4966:475::-;5061:4;5081:12;;;;;;;;;;;:46;;;;;5098:18;:29;5117:9;5098:29;;;;;;;;;;;;;;;;;;;;;;;;;5097:30;5081:46;:73;;;;;5141:13;;;;;;;;;;;5131:23;;:6;:23;;;5081:73;5078:157;;;5187:9;5174:22;;:9;:22;;;5170:53;;;5219:4;5199:6;:17;5206:9;5199:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;5170:53;5078:157;5245:36;5255:6;5263:9;5274:6;5245:9;:36::i;:::-;5292:18;5349:6;5313:11;:19;5325:6;5313:19;;;;;;;;;;;;;;;:33;5333:12;:10;:12::i;:::-;5313:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;5292:63;;5366:45;5375:6;5383:12;:10;:12::i;:::-;5397:13;5366:8;:45::i;:::-;5429:4;5422:11;;;4966:475;;;;;:::o;12498:100::-;12542:4;12566:24;12584:4;12566:9;:24::i;:::-;12559:31;;12498:100;:::o;3037:34::-;3070:1;3037:34;:::o;12998:202::-;13083:7;;;;;;;;;;;13067:23;;:12;:10;:12::i;:::-;:23;;;13059:32;;;;;;13107:6;13102:91;13123:5;:12;13119:1;:16;13102:91;;;13176:5;13157:6;:16;13164:5;13170:1;13164:8;;;;;;;;:::i;:::-;;;;;;;;13157:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;13137:3;;;;;:::i;:::-;;;;13102:91;;;;12998:202;:::o;3364:23::-;;;;:::o;13208:90::-;13256:4;13280:6;:10;13287:2;13280:10;;;;;;;;;;;;;;;;;;;;;;;;;13273:17;;13208:90;;;:::o;3203:24::-;;;;:::o;11605:193::-;11680:7;;;;;;;;;;;11664:23;;:12;:10;:12::i;:::-;:23;;;11656:32;;;;;;11714:1;11707:4;:8;11699:25;;;;;;;;;;;;:::i;:::-;;;;;;;;;11746:4;11735:8;:15;;;;11766:24;11781:8;;11766:24;;;;;;:::i;:::-;;;;;;;;11605:193;:::o;3168:28::-;;;;;;;;;;;;;:::o;3234:25::-;;;;:::o;11414:183::-;11480:7;;;;;;;;;;;11464:23;;:12;:10;:12::i;:::-;:23;;;11456:32;;;;;;11499:23;11525:21;11499:47;;11557:32;11570:18;11557:12;:32::i;:::-;11445:152;11414:183::o;4252:113::-;4318:4;4342:6;:15;4349:7;4342:15;;;;;;;;;;;;;;;;4335:22;;4252:113;;;:::o;1609:148::-;1532:12;:10;:12::i;:::-;1522:22;;:6;;;;;;;;;;:22;;;1514:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1716:1:::1;1679:40;;1700:6;::::0;::::1;;;;;;;;1679:40;;;;;;;;;;;;1747:1;1730:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1609:148::o:0;12306:180::-;12392:7;;;;;;;;;;;12376:23;;:12;:10;:12::i;:::-;:23;;;12368:32;;;;;;12429:10;12411:7;;:29;;;;;;;;;;;;;;;;;;12456:22;12470:7;;;;;;;;;;;12456:22;;;;;;:::i;:::-;;;;;;;;12306:180;:::o;1395:79::-;1433:7;1460:6;;;;;;;;;;;1453:13;;1395:79;:::o;3461:39::-;;;;;;;;;;;;;:::o;2977:53::-;;;;;;;;;;;;;;;;;;;:::o;4371:164::-;4446:4;4463:42;4473:12;:10;:12::i;:::-;4487:9;4498:6;4463:9;:42::i;:::-;4523:4;4516:11;;4371:164;;;;:::o;12717:275::-;1532:12;:10;:12::i;:::-;1522:22;;:6;;;;;;;;;;:22;;;1514:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12795:6:::1;12790:195;12811:5;:12;12807:1;:16;12790:195;;;12861:13;;;;;;;;;;;12849:25;;:5;12855:1;12849:8;;;;;;;;:::i;:::-;;;;;;;;:25;;;;:65;;;;;12898:15;;;;;;;;;;;12878:36;;:5;12884:1;12878:8;;;;;;;;:::i;:::-;;;;;;;;:36;;;;12849:65;12845:129;;;12954:4;12935:6;:16;12942:5;12948:1;12942:8;;;;;;;;:::i;:::-;;;;;;;;12935:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12845:129;12825:3;;;;;:::i;:::-;;;;12790:195;;;;12717:275:::0;:::o;11218:184::-;11284:7;;;;;;;;;;;11268:23;;:12;:10;:12::i;:::-;:23;;;11260:32;;;;;;11303:20;11326:24;11344:4;11326:9;:24::i;:::-;11303:47;;11361:33;11378:15;11361:16;:33::i;:::-;11249:153;11218:184::o;10894:316::-;1532:12;:10;:12::i;:::-;1522:22;;:6;;;;;;;;;;:22;;;1514:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10958:12:::1;;;;;;;;;;;10957:13;10949:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11024:4;11009:12;;:19;;;;;;;;;;;;;;;;;;11053:15;11039:11;:29;;;;11095:17;11079:13;:33;;;;11141:17;11124:14;:34;;;;10894:316::o:0;12606:101::-;12651:4;12675:24;12685:13;;;;;;;;;;;12675:9;:24::i;:::-;12668:31;;12606:101;:::o;12104:194::-;12185:7;;;;;;;;;;;12169:23;;:12;:10;:12::i;:::-;:23;;;12161:32;;;;;;12226:5;12204:19;;:27;;;;;;;;;;;;;;;;;;12247:43;12270:19;;;;;;;;;;;12247:43;;;;;;:::i;:::-;;;;;;;;12104:194;:::o;4652:140::-;4733:4;4757:11;:18;4769:5;4757:18;;;;;;;;;;;;;;;:27;4776:7;4757:27;;;;;;;;;;;;;;;;4750:34;;4652:140;;;;:::o;10198:688::-;1532:12;:10;:12::i;:::-;1522:22;;:6;;;;;;;;;;:22;;;1514:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10263:12:::1;;;;;;;;;;;10262:13;10254:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10314:35;10371:42;10314:100;;10443:16;10425:15;;:34;;;;;;;;;;;;;;;;;;10470:63;10487:4;10502:15;;;;;;;;;;;2897:12;10470:8;:63::i;:::-;10578:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10560:56;;;10625:4;10632:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10560:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10544:13;;:112;;;;;;;;;;;;;;;;;;10667:15;;;;;;;;;;;:31;;;10706:21;10737:4;10743:24;10761:4;10743:9;:24::i;:::-;10768:1;10770::::0;10772:7:::1;:5;:7::i;:::-;10780:15;10667:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10814:13;;;;;;;;;;;10807:29;;;10845:15;;;;;;;;;;;10863:14;10807:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10243:643;10198:688::o:0;258:98::-;311:7;338:10;331:17;;258:98;:::o;5449:332::-;5556:1;5539:19;;:5;:19;;;;5531:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5637:1;5618:21;;:7;:21;;;;5610:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5719:6;5689:11;:18;5701:5;5689:18;;;;;;;;;;;;;;;:27;5708:7;5689:27;;;;;;;;;;;;;;;:36;;;;5757:7;5741:32;;5750:5;5741:32;;;5766:6;5741:32;;;;;;:::i;:::-;;;;;;;;5449:332;;;:::o;5789:2499::-;5875:6;:12;5882:4;5875:12;;;;;;;;;;;;;;;;;;;;;;;;;5874:13;:28;;;;;5892:6;:10;5899:2;5892:10;;;;;;;;;;;;;;;;;;;;;;;;;5891:11;5874:28;:51;;;;;5907:6;:18;5914:10;5907:18;;;;;;;;;;;;;;;;;;;;;;;;;5906:19;5874:51;5866:60;;;;;;5961:1;5945:18;;:4;:18;;;;5937:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6038:1;6024:16;;:2;:16;;;;6016:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6108:1;6099:6;:10;6091:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6166:10;6206:7;:5;:7::i;:::-;6198:15;;:4;:15;;;;:32;;;;;6223:7;:5;:7::i;:::-;6217:13;;:2;:13;;;;6198:32;6195:1895;;;6258:13;;;;;;;;;;;6250:21;;:4;:21;;;:55;;;;;6289:15;;;;;;;;;;;6275:30;;:2;:30;;;;6250:55;:82;;;;;6310:18;:22;6329:2;6310:22;;;;;;;;;;;;;;;;;;;;;;;;;6309:23;6250:82;6247:935;;;6361:12;;;;;;;;;;;6353:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;6444:11;;6425:15;:30;6421:53;;;6470:4;6457:6;:10;6464:2;6457:10;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;6421:53;6527:15;6512:10;6497:11;;:26;;;;:::i;:::-;6496:46;6493:192;;;6612:14;;6585:22;6603:2;6585:9;:22::i;:::-;6576:6;:31;;;;:::i;:::-;6575:51;;6567:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;6493:192;6707:8;:12;6716:2;6707:12;;;;;;;;;;;;;;;:19;;;;;;;;;;;;6703:95;;6766:12;;;;;;;;6771:1;6766:12;;;;6773:4;6766:12;;;;;6751:8;:12;6760:2;6751:12;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6703:95;6850:15;6835:10;6820:11;;:26;;;;:::i;:::-;6819:46;6816:267;;;6908:13;;6898:6;:23;;6890:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;7028:10;7009:15;:30;;;;:::i;:::-;6990:8;:12;6999:2;6990:12;;;;;;;;;;;;;;;:16;;;:49;6982:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;6816:267;7120:15;7101:8;:12;7110:2;7101:12;;;;;;;;;;;;;;;:16;;:34;;;;7162:4;7154:12;;6247:935;7200:7;;;;;;;;;;;7199:8;:24;;;;;7211:12;;;;;;;;;;;7199:24;:49;;;;;7235:13;;;;;;;;;;;7227:21;;:4;:21;;;;7199:49;7196:883;;;7317:10;7298:15;:30;;;;:::i;:::-;7277:8;:14;7286:4;7277:14;;;;;;;;;;;;;;;:18;;;:51;7269:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;7370:25;7398:24;7416:4;7398:9;:24::i;:::-;7370:52;;7467:1;7444:20;:24;7441:402;;;7496:19;;;;;;;;;;;7493:270;;;7610:3;7598:8;;7571:24;7581:13;;;;;;;;;;;7571:9;:24::i;:::-;:35;;;;:::i;:::-;7570:43;;;;:::i;:::-;7547:20;:66;7544:196;;;7709:3;7697:8;;7670:24;7680:13;;;;;;;;;;;7670:9;:24::i;:::-;:35;;;;:::i;:::-;7669:43;;;;:::i;:::-;7646:66;;7544:196;7493:270;7785:38;7802:20;7785:16;:38::i;:::-;7441:402;7861:23;7887:21;7861:47;;7951:1;7930:18;:22;7927:105;;;7977:35;7990:21;7977:12;:35::i;:::-;7927:105;8058:5;8050:13;;7250:829;;7196:883;6195:1895;8100:12;8115:4;8100:19;;8133:18;:24;8152:4;8133:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8161:18;:22;8180:2;8161:22;;;;;;;;;;;;;;;;;;;;;;;;;8133:50;8130:96;;;8209:5;8199:15;;8130:96;8236:44;8251:4;8256:2;8259:6;8266:7;8274:5;8236:14;:44::i;:::-;5855:2433;;5789:2499;;;:::o;8792:86::-;8846:7;;;;;;;;;;;:16;;:24;8863:6;8846:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8792:86;:::o;8296:480::-;3864:4;3854:7;;:14;;;;;;;;;;;;;;;;;;8371:21:::1;8409:1;8395:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8371:40;;8440:4;8422;8427:1;8422:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8466:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8456:4;8461:1;8456:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;8499:62;8516:4;8531:15;;;;;;;;;;;8549:11;8499:8;:62::i;:::-;8572:15;;;;;;;;;;;:66;;;8653:11;8679:1;8695:4;8722;8742:15;8572:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8360:416;3901:5:::0;3891:7;;:15;;;;;;;;;;;;;;;;;;8296:480;:::o;8890:217::-;9006:8;9018:21;9026:7;9035:3;9018:7;:21::i;:::-;9005:34;;9050:49;9068:6;9076:9;9087:6;9095:3;9050:17;:49::i;:::-;8994:113;8890:217;;;;;:::o;9115:280::-;9178:4;9195:8;9206:1;9195:12;;9221:7;9218:149;;;9248:3;9245:111;;;9278:7;;9272:13;;9245:111;;;9332:8;;9326:14;;9245:111;9218:149;9384:3;9377:10;;;9115:280;;;;:::o;9403:372::-;9508:19;9529:9;9542:23;9553:6;9561:3;9542:10;:23::i;:::-;9507:58;;;;9610:6;9593;:14;9600:6;9593:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;9576:6;:14;9583:6;9576:14;;;;;;;;;;;;;;;:40;;;;9667:14;9647:6;:17;9654:9;9647:17;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;9627:6;:17;9634:9;9627:17;;;;;;;;;;;;;;;:54;;;;9693:15;9703:4;9693:9;:15::i;:::-;9741:9;9724:43;;9733:6;9724:43;;;9752:14;9724:43;;;;;;:::i;:::-;;;;;;;;9496:279;;9403:372;;;;:::o;9783:222::-;9852:4;9858;9875:9;9908:3;9897:7;9888:6;:16;;;;:::i;:::-;9887:24;;;;:::i;:::-;9875:36;;9922:19;9953:4;9944:6;:13;;;;:::i;:::-;9922:35;;9976:14;9992:4;9968:29;;;;;;9783:222;;;;;:::o;10013:109::-;10110:4;10086:6;:21;10101:4;10086:21;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;10062:6;:21;10077:4;10062:21;;;;;;;;;;;;;;;:52;;;;10013: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;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:474::-;3914:6;3922;3971:2;3959:9;3950:7;3946:23;3942:32;3939:119;;;3977:79;;:::i;:::-;3939:119;4097:1;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4068:117;4224:2;4250:53;4295:7;4286:6;4275:9;4271:22;4250:53;:::i;:::-;4240:63;;4195:118;3846:474;;;;;:::o;4326:104::-;4371:7;4400:24;4418:5;4400:24;:::i;:::-;4389:35;;4326:104;;;:::o;4436:142::-;4539:32;4565:5;4539:32;:::i;:::-;4534:3;4527:45;4436:142;;:::o;4584:254::-;4693:4;4731:2;4720:9;4716:18;4708:26;;4744:87;4828:1;4817:9;4813:17;4804:6;4744:87;:::i;:::-;4584:254;;;;:::o;4844:619::-;4921:6;4929;4937;4986:2;4974:9;4965:7;4961:23;4957:32;4954:119;;;4992:79;;:::i;:::-;4954:119;5112:1;5137:53;5182:7;5173:6;5162:9;5158:22;5137:53;:::i;:::-;5127:63;;5083:117;5239:2;5265:53;5310:7;5301:6;5290:9;5286:22;5265:53;:::i;:::-;5255:63;;5210:118;5367:2;5393:53;5438:7;5429:6;5418:9;5414:22;5393:53;:::i;:::-;5383:63;;5338:118;4844:619;;;;;:::o;5469:86::-;5504:7;5544:4;5537:5;5533:16;5522:27;;5469:86;;;:::o;5561:112::-;5644:22;5660:5;5644:22;:::i;:::-;5639:3;5632:35;5561:112;;:::o;5679:214::-;5768:4;5806:2;5795:9;5791:18;5783:26;;5819:67;5883:1;5872:9;5868:17;5859:6;5819:67;:::i;:::-;5679:214;;;;:::o;5899:117::-;6008:1;6005;5998:12;6022:180;6070:77;6067:1;6060:88;6167:4;6164:1;6157:15;6191:4;6188:1;6181:15;6208:281;6291:27;6313:4;6291:27;:::i;:::-;6283:6;6279:40;6421:6;6409:10;6406:22;6385:18;6373:10;6370:34;6367:62;6364:88;;;6432:18;;:::i;:::-;6364:88;6472:10;6468:2;6461:22;6251:238;6208:281;;:::o;6495:129::-;6529:6;6556:20;;:::i;:::-;6546:30;;6585:33;6613:4;6605:6;6585:33;:::i;:::-;6495:129;;;:::o;6630:311::-;6707:4;6797:18;6789:6;6786:30;6783:56;;;6819:18;;:::i;:::-;6783:56;6869:4;6861:6;6857:17;6849:25;;6929:4;6923;6919:15;6911:23;;6630:311;;;:::o;6947:117::-;7056:1;7053;7046:12;7087:710;7183:5;7208:81;7224:64;7281:6;7224:64;:::i;:::-;7208:81;:::i;:::-;7199:90;;7309:5;7338:6;7331:5;7324:21;7372:4;7365:5;7361:16;7354:23;;7425:4;7417:6;7413:17;7405:6;7401:30;7454:3;7446:6;7443:15;7440:122;;;7473:79;;:::i;:::-;7440:122;7588:6;7571:220;7605:6;7600:3;7597:15;7571:220;;;7680:3;7709:37;7742:3;7730:10;7709:37;:::i;:::-;7704:3;7697:50;7776:4;7771:3;7767:14;7760:21;;7647:144;7631:4;7626:3;7622:14;7615:21;;7571:220;;;7575:21;7189:608;;7087:710;;;;;:::o;7820:370::-;7891:5;7940:3;7933:4;7925:6;7921:17;7917:27;7907:122;;7948:79;;:::i;:::-;7907:122;8065:6;8052:20;8090:94;8180:3;8172:6;8165:4;8157:6;8153:17;8090:94;:::i;:::-;8081:103;;7897:293;7820:370;;;;:::o;8196:539::-;8280:6;8329:2;8317:9;8308:7;8304:23;8300:32;8297:119;;;8335:79;;:::i;:::-;8297:119;8483:1;8472:9;8468:17;8455:31;8513:18;8505:6;8502:30;8499:117;;;8535:79;;:::i;:::-;8499:117;8640:78;8710:7;8701:6;8690:9;8686:22;8640:78;:::i;:::-;8630:88;;8426:302;8196:539;;;;:::o;8741:329::-;8800:6;8849:2;8837:9;8828:7;8824:23;8820:32;8817:119;;;8855:79;;:::i;:::-;8817:119;8975:1;9000:53;9045:7;9036:6;9025:9;9021:22;9000:53;:::i;:::-;8990:63;;8946:117;8741:329;;;;:::o;9076:::-;9135:6;9184:2;9172:9;9163:7;9159:23;9155:32;9152:119;;;9190:79;;:::i;:::-;9152:119;9310:1;9335:53;9380:7;9371:6;9360:9;9356:22;9335:53;:::i;:::-;9325:63;;9281:117;9076:329;;;;:::o;9411:118::-;9498:24;9516:5;9498:24;:::i;:::-;9493:3;9486:37;9411:118;;:::o;9535:222::-;9628:4;9666:2;9655:9;9651:18;9643:26;;9679:71;9747:1;9736:9;9732:17;9723:6;9679:71;:::i;:::-;9535:222;;;;:::o;9763:116::-;9833:21;9848:5;9833:21;:::i;:::-;9826:5;9823:32;9813:60;;9869:1;9866;9859:12;9813:60;9763:116;:::o;9885:133::-;9928:5;9966:6;9953:20;9944:29;;9982:30;10006:5;9982:30;:::i;:::-;9885:133;;;;:::o;10024:323::-;10080:6;10129:2;10117:9;10108:7;10104:23;10100:32;10097:119;;;10135:79;;:::i;:::-;10097:119;10255:1;10280:50;10322:7;10313:6;10302:9;10298:22;10280:50;:::i;:::-;10270:60;;10226:114;10024:323;;;;:::o;10353:474::-;10421:6;10429;10478:2;10466:9;10457:7;10453:23;10449:32;10446:119;;;10484:79;;:::i;:::-;10446:119;10604:1;10629:53;10674:7;10665:6;10654:9;10650:22;10629:53;:::i;:::-;10619:63;;10575:117;10731:2;10757:53;10802:7;10793:6;10782:9;10778:22;10757:53;:::i;:::-;10747:63;;10702:118;10353:474;;;;;:::o;10833:165::-;10973:17;10969:1;10961:6;10957:14;10950:41;10833:165;:::o;11004:366::-;11146:3;11167:67;11231:2;11226:3;11167:67;:::i;:::-;11160:74;;11243:93;11332:3;11243:93;:::i;:::-;11361:2;11356:3;11352:12;11345:19;;11004:366;;;:::o;11376:419::-;11542:4;11580:2;11569:9;11565:18;11557:26;;11629:9;11623:4;11619:20;11615:1;11604:9;11600:17;11593:47;11657:131;11783:4;11657:131;:::i;:::-;11649:139;;11376:419;;;:::o;11801:332::-;11922:4;11960:2;11949:9;11945:18;11937:26;;11973:71;12041:1;12030:9;12026:17;12017:6;11973:71;:::i;:::-;12054:72;12122:2;12111:9;12107:18;12098:6;12054:72;:::i;:::-;11801:332;;;;;:::o;12139:180::-;12187:77;12184:1;12177:88;12284:4;12281:1;12274:15;12308:4;12305:1;12298:15;12325:191;12365:4;12385:20;12403:1;12385:20;:::i;:::-;12380:25;;12419:20;12437:1;12419:20;:::i;:::-;12414:25;;12458:1;12455;12452:8;12449:34;;;12463:18;;:::i;:::-;12449:34;12508:1;12505;12501:9;12493:17;;12325:191;;;;:::o;12522:180::-;12570:77;12567:1;12560:88;12667:4;12664:1;12657:15;12691:4;12688:1;12681:15;12708:233;12747:3;12770:24;12788:5;12770:24;:::i;:::-;12761:33;;12816:66;12809:5;12806:77;12803:103;;;12886:18;;:::i;:::-;12803:103;12933:1;12926:5;12922:13;12915:20;;12708:233;;;:::o;12947:154::-;13087:6;13083:1;13075:6;13071:14;13064:30;12947:154;:::o;13107:365::-;13249:3;13270:66;13334:1;13329:3;13270:66;:::i;:::-;13263:73;;13345:93;13434:3;13345:93;:::i;:::-;13463:2;13458:3;13454:12;13447:19;;13107:365;;;:::o;13478:419::-;13644:4;13682:2;13671:9;13667:18;13659:26;;13731:9;13725:4;13721:20;13717:1;13706:9;13702:17;13695:47;13759:131;13885:4;13759:131;:::i;:::-;13751:139;;13478:419;;;:::o;13903:182::-;14043:34;14039:1;14031:6;14027:14;14020:58;13903:182;:::o;14091:366::-;14233:3;14254:67;14318:2;14313:3;14254:67;:::i;:::-;14247:74;;14330:93;14419:3;14330:93;:::i;:::-;14448:2;14443:3;14439:12;14432:19;;14091:366;;;:::o;14463:419::-;14629:4;14667:2;14656:9;14652:18;14644:26;;14716:9;14710:4;14706:20;14702:1;14691:9;14687:17;14680:47;14744:131;14870:4;14744:131;:::i;:::-;14736:139;;14463:419;;;:::o;14888:60::-;14916:3;14937:5;14930:12;;14888:60;;;:::o;14954:142::-;15004:9;15037:53;15055:34;15064:24;15082:5;15064:24;:::i;:::-;15055:34;:::i;:::-;15037:53;:::i;:::-;15024:66;;14954:142;;;:::o;15102:126::-;15152:9;15185:37;15216:5;15185:37;:::i;:::-;15172:50;;15102:126;;;:::o;15234:134::-;15292:9;15325:37;15356:5;15325:37;:::i;:::-;15312:50;;15234:134;;;:::o;15374:147::-;15469:45;15508:5;15469:45;:::i;:::-;15464:3;15457:58;15374:147;;:::o;15527:238::-;15628:4;15666:2;15655:9;15651:18;15643:26;;15679:79;15755:1;15744:9;15740:17;15731:6;15679:79;:::i;:::-;15527:238;;;;:::o;15771:173::-;15911:25;15907:1;15899:6;15895:14;15888:49;15771:173;:::o;15950:366::-;16092:3;16113:67;16177:2;16172:3;16113:67;:::i;:::-;16106:74;;16189:93;16278:3;16189:93;:::i;:::-;16307:2;16302:3;16298:12;16291:19;;15950:366;;;:::o;16322:419::-;16488:4;16526:2;16515:9;16511:18;16503:26;;16575:9;16569:4;16565:20;16561:1;16550:9;16546:17;16539:47;16603:131;16729:4;16603:131;:::i;:::-;16595:139;;16322:419;;;:::o;16747:143::-;16804:5;16835:6;16829:13;16820:22;;16851:33;16878:5;16851:33;:::i;:::-;16747:143;;;;:::o;16896:351::-;16966:6;17015:2;17003:9;16994:7;16990:23;16986:32;16983:119;;;17021:79;;:::i;:::-;16983:119;17141:1;17166:64;17222:7;17213:6;17202:9;17198:22;17166:64;:::i;:::-;17156:74;;17112:128;16896:351;;;;:::o;17253:332::-;17374:4;17412:2;17401:9;17397:18;17389:26;;17425:71;17493:1;17482:9;17478:17;17469:6;17425:71;:::i;:::-;17506:72;17574:2;17563:9;17559:18;17550:6;17506:72;:::i;:::-;17253:332;;;;;:::o;17591:85::-;17636:7;17665:5;17654:16;;17591:85;;;:::o;17682:158::-;17740:9;17773:61;17791:42;17800:32;17826:5;17800:32;:::i;:::-;17791:42;:::i;:::-;17773:61;:::i;:::-;17760:74;;17682:158;;;:::o;17846:147::-;17941:45;17980:5;17941:45;:::i;:::-;17936:3;17929:58;17846:147;;:::o;17999:807::-;18248:4;18286:3;18275:9;18271:19;18263:27;;18300:71;18368:1;18357:9;18353:17;18344:6;18300:71;:::i;:::-;18381:72;18449:2;18438:9;18434:18;18425:6;18381:72;:::i;:::-;18463:80;18539:2;18528:9;18524:18;18515:6;18463:80;:::i;:::-;18553;18629:2;18618:9;18614:18;18605:6;18553:80;:::i;:::-;18643:73;18711:3;18700:9;18696:19;18687:6;18643:73;:::i;:::-;18726;18794:3;18783:9;18779:19;18770:6;18726:73;:::i;:::-;17999:807;;;;;;;;;:::o;18812:143::-;18869:5;18900:6;18894:13;18885:22;;18916:33;18943:5;18916:33;:::i;:::-;18812:143;;;;:::o;18961:663::-;19049:6;19057;19065;19114:2;19102:9;19093:7;19089:23;19085:32;19082:119;;;19120:79;;:::i;:::-;19082:119;19240:1;19265:64;19321:7;19312:6;19301:9;19297:22;19265:64;:::i;:::-;19255:74;;19211:128;19378:2;19404:64;19460:7;19451:6;19440:9;19436:22;19404:64;:::i;:::-;19394:74;;19349:129;19517:2;19543:64;19599:7;19590:6;19579:9;19575:22;19543:64;:::i;:::-;19533:74;;19488:129;18961:663;;;;;:::o;19630:332::-;19751:4;19789:2;19778:9;19774:18;19766:26;;19802:71;19870:1;19859:9;19855:17;19846:6;19802:71;:::i;:::-;19883:72;19951:2;19940:9;19936:18;19927:6;19883:72;:::i;:::-;19630:332;;;;;:::o;19968:137::-;20022:5;20053:6;20047:13;20038:22;;20069:30;20093:5;20069:30;:::i;:::-;19968:137;;;;:::o;20111:345::-;20178:6;20227:2;20215:9;20206:7;20202:23;20198:32;20195:119;;;20233:79;;:::i;:::-;20195:119;20353:1;20378:61;20431:7;20422:6;20411:9;20407:22;20378:61;:::i;:::-;20368:71;;20324:125;20111:345;;;;:::o;20462:223::-;20602:34;20598:1;20590:6;20586:14;20579:58;20671:6;20666:2;20658:6;20654:15;20647:31;20462:223;:::o;20691:366::-;20833:3;20854:67;20918:2;20913:3;20854:67;:::i;:::-;20847:74;;20930:93;21019:3;20930:93;:::i;:::-;21048:2;21043:3;21039:12;21032:19;;20691:366;;;:::o;21063:419::-;21229:4;21267:2;21256:9;21252:18;21244:26;;21316:9;21310:4;21306:20;21302:1;21291:9;21287:17;21280:47;21344:131;21470:4;21344:131;:::i;:::-;21336:139;;21063:419;;;:::o;21488:221::-;21628:34;21624:1;21616:6;21612:14;21605:58;21697:4;21692:2;21684:6;21680:15;21673:29;21488:221;:::o;21715:366::-;21857:3;21878:67;21942:2;21937:3;21878:67;:::i;:::-;21871:74;;21954:93;22043:3;21954:93;:::i;:::-;22072:2;22067:3;22063:12;22056:19;;21715:366;;;:::o;22087:419::-;22253:4;22291:2;22280:9;22276:18;22268:26;;22340:9;22334:4;22330:20;22326:1;22315:9;22311:17;22304:47;22368:131;22494:4;22368:131;:::i;:::-;22360:139;;22087:419;;;:::o;22512:224::-;22652:34;22648:1;22640:6;22636:14;22629:58;22721:7;22716:2;22708:6;22704:15;22697:32;22512:224;:::o;22742:366::-;22884:3;22905:67;22969:2;22964:3;22905:67;:::i;:::-;22898:74;;22981:93;23070:3;22981:93;:::i;:::-;23099:2;23094:3;23090:12;23083:19;;22742:366;;;:::o;23114:419::-;23280:4;23318:2;23307:9;23303:18;23295:26;;23367:9;23361:4;23357:20;23353:1;23342:9;23338:17;23331:47;23395:131;23521:4;23395:131;:::i;:::-;23387:139;;23114:419;;;:::o;23539:222::-;23679:34;23675:1;23667:6;23663:14;23656:58;23748:5;23743:2;23735:6;23731:15;23724:30;23539:222;:::o;23767:366::-;23909:3;23930:67;23994:2;23989:3;23930:67;:::i;:::-;23923:74;;24006:93;24095:3;24006:93;:::i;:::-;24124:2;24119:3;24115:12;24108:19;;23767:366;;;:::o;24139:419::-;24305:4;24343:2;24332:9;24328:18;24320:26;;24392:9;24386:4;24382:20;24378:1;24367:9;24363:17;24356:47;24420:131;24546:4;24420:131;:::i;:::-;24412:139;;24139:419;;;:::o;24564:228::-;24704:34;24700:1;24692:6;24688:14;24681:58;24773:11;24768:2;24760:6;24756:15;24749:36;24564:228;:::o;24798:366::-;24940:3;24961:67;25025:2;25020:3;24961:67;:::i;:::-;24954:74;;25037:93;25126:3;25037:93;:::i;:::-;25155:2;25150:3;25146:12;25139:19;;24798:366;;;:::o;25170:419::-;25336:4;25374:2;25363:9;25359:18;25351:26;;25423:9;25417:4;25413:20;25409:1;25398:9;25394:17;25387:47;25451:131;25577:4;25451:131;:::i;:::-;25443:139;;25170:419;;;:::o;25595:174::-;25735:26;25731:1;25723:6;25719:14;25712:50;25595:174;:::o;25775:366::-;25917:3;25938:67;26002:2;25997:3;25938:67;:::i;:::-;25931:74;;26014:93;26103:3;26014:93;:::i;:::-;26132:2;26127:3;26123:12;26116:19;;25775:366;;;:::o;26147:419::-;26313:4;26351:2;26340:9;26336:18;26328:26;;26400:9;26394:4;26390:20;26386:1;26375:9;26371:17;26364:47;26428:131;26554:4;26428:131;:::i;:::-;26420:139;;26147:419;;;:::o;26572:305::-;26612:3;26631:20;26649:1;26631:20;:::i;:::-;26626:25;;26665:20;26683:1;26665:20;:::i;:::-;26660:25;;26819:1;26751:66;26747:74;26744:1;26741:81;26738:107;;;26825:18;;:::i;:::-;26738:107;26869:1;26866;26862:9;26855:16;;26572:305;;;;:::o;26883:220::-;27023:34;27019:1;27011:6;27007:14;27000:58;27092:3;27087:2;27079:6;27075:15;27068:28;26883:220;:::o;27109:366::-;27251:3;27272:67;27336:2;27331:3;27272:67;:::i;:::-;27265:74;;27348:93;27437:3;27348:93;:::i;:::-;27466:2;27461:3;27457:12;27450:19;;27109:366;;;:::o;27481:419::-;27647:4;27685:2;27674:9;27670:18;27662:26;;27734:9;27728:4;27724:20;27720:1;27709:9;27705:17;27698:47;27762:131;27888:4;27762:131;:::i;:::-;27754:139;;27481:419;;;:::o;27906:169::-;28046:21;28042:1;28034:6;28030:14;28023:45;27906:169;:::o;28081:366::-;28223:3;28244:67;28308:2;28303:3;28244:67;:::i;:::-;28237:74;;28320:93;28409:3;28320:93;:::i;:::-;28438:2;28433:3;28429:12;28422:19;;28081:366;;;:::o;28453:419::-;28619:4;28657:2;28646:9;28642:18;28634:26;;28706:9;28700:4;28696:20;28692:1;28681:9;28677:17;28670:47;28734:131;28860:4;28734:131;:::i;:::-;28726:139;;28453:419;;;:::o;28878:168::-;29018:20;29014:1;29006:6;29002:14;28995:44;28878:168;:::o;29052:366::-;29194:3;29215:67;29279:2;29274:3;29215:67;:::i;:::-;29208:74;;29291:93;29380:3;29291:93;:::i;:::-;29409:2;29404:3;29400:12;29393:19;;29052:366;;;:::o;29424:419::-;29590:4;29628:2;29617:9;29613:18;29605:26;;29677:9;29671:4;29667:20;29663:1;29652:9;29648:17;29641:47;29705:131;29831:4;29705:131;:::i;:::-;29697:139;;29424:419;;;:::o;29849:348::-;29889:7;29912:20;29930:1;29912:20;:::i;:::-;29907:25;;29946:20;29964:1;29946:20;:::i;:::-;29941:25;;30134:1;30066:66;30062:74;30059:1;30056:81;30051:1;30044:9;30037:17;30033:105;30030:131;;;30141:18;;:::i;:::-;30030:131;30189:1;30186;30182:9;30171:20;;29849:348;;;;:::o;30203:180::-;30251:77;30248:1;30241:88;30348:4;30345:1;30338:15;30372:4;30369:1;30362:15;30389:185;30429:1;30446:20;30464:1;30446:20;:::i;:::-;30441:25;;30480:20;30498:1;30480:20;:::i;:::-;30475:25;;30519:1;30509:35;;30524:18;;:::i;:::-;30509:35;30566:1;30563;30559:9;30554:14;;30389:185;;;;:::o;30580:114::-;30647:6;30681:5;30675:12;30665:22;;30580:114;;;:::o;30700:184::-;30799:11;30833:6;30828:3;30821:19;30873:4;30868:3;30864:14;30849:29;;30700:184;;;;:::o;30890:132::-;30957:4;30980:3;30972:11;;31010:4;31005:3;31001:14;30993:22;;30890:132;;;:::o;31028:108::-;31105:24;31123:5;31105:24;:::i;:::-;31100:3;31093:37;31028:108;;:::o;31142:179::-;31211:10;31232:46;31274:3;31266:6;31232:46;:::i;:::-;31310:4;31305:3;31301:14;31287:28;;31142:179;;;;:::o;31327:113::-;31397:4;31429;31424:3;31420:14;31412:22;;31327:113;;;:::o;31476:732::-;31595:3;31624:54;31672:5;31624:54;:::i;:::-;31694:86;31773:6;31768:3;31694:86;:::i;:::-;31687:93;;31804:56;31854:5;31804:56;:::i;:::-;31883:7;31914:1;31899:284;31924:6;31921:1;31918:13;31899:284;;;32000:6;31994:13;32027:63;32086:3;32071:13;32027:63;:::i;:::-;32020:70;;32113:60;32166:6;32113:60;:::i;:::-;32103:70;;31959:224;31946:1;31943;31939:9;31934:14;;31899:284;;;31903:14;32199:3;32192:10;;31600:608;;;31476:732;;;;:::o;32214:831::-;32477:4;32515:3;32504:9;32500:19;32492:27;;32529:71;32597:1;32586:9;32582:17;32573:6;32529:71;:::i;:::-;32610:80;32686:2;32675:9;32671:18;32662:6;32610:80;:::i;:::-;32737:9;32731:4;32727:20;32722:2;32711:9;32707:18;32700:48;32765:108;32868:4;32859:6;32765:108;:::i;:::-;32757:116;;32883:72;32951:2;32940:9;32936:18;32927:6;32883:72;:::i;:::-;32965:73;33033:3;33022:9;33018:19;33009:6;32965:73;:::i;:::-;32214:831;;;;;;;;:::o

Swarm Source

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