ETH Price: $2,630.66 (-0.84%)

Token

Sweet Baby Jesus | t.me/SweetBabyJesus_token (SBJesus)
 

Overview

Max Total Supply

445,824,875,055,513,252.658966095 SBJesus

Holders

280

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Sweet Baby Jesus: SBJesus Token
Balance
277,521,688,881,459.275892739 SBJesus

Value
$0.00
0x628dc3372a33e63db4dda5fa554566afcc056026
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Sweet Baby Jesus, is a token created for restoring the faith in humanity and helping out its holders. The token has a mechanism of reflection and burning tokens inside the contract on every transaction and self adjusting the supply real time with a maximum buy limit 10% of the available supply.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SweetBabyJesus

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-08-21
*/

/**
 *Submitted for verification at Etherscan.io on 2021-08-22
*/

/**


// SPDX-License-Identifier: Unlicensed

/*

  SweetBabyJesus , The Saviour of the CryptoWorld !

  SweetBabyJesus was launched to change this world for the better .

  This token is made with love.

  Restoring faith in Humanity.

  t.me/SweetBabyJesus_token
    
   

*/

pragma solidity ^0.8.4;

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);
}
    
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

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

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

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

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

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

}

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 SweetBabyJesus is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 500000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _tBurnTotal;
    

    uint256 private _sburn1;
    uint256 private _reflection;
    uint256 private _supportingfee;
    uint256 private _burner;
    address payable private _teamWallet;
    address payable private _marketingWallet;

    mapping (address => bool) private _isBurner;
    
    string private constant _name = "Sweet Baby Jesus | t.me/SweetBabyJesus_token";
    string private constant _symbol = "SBJesus";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    bool private burnEnabled = true;
    bool private tradingOpen = false;
    bool private liquidityAdded = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor (address payable addr1, address payable addr2) {
        _teamWallet = addr1;
        _marketingWallet = addr2;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_teamWallet] = true;
        _isExcludedFromFee[_marketingWallet] = true;
        _sburn1 = 2;
        emit Transfer(address(0x000000000000000000000000000000000000dEaD), _msgSender(), _tTotal);
    }


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

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

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

    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

     function totalBurned() public view returns (uint256) {
        return _tBurnTotal;
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

   
    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function _approve(address owner, address spender, uint256 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, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(from != address(0x000000000000000000000000000000000000dEaD),"ERC20 : excluding from the dead wallet , just in case !");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(to != address(0x000000000000000000000000000000000000dEaD),"ERC20: the token burns every transaction, provided the burn is set by the community!, no neded to directly burn , or once the dead wallet comes to life it would start dumping on us! Lol!");
        require(amount > 0, "Transfer amount must be greater than zero");
        _reflection = 5;
        _supportingfee = 10;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                _reflection = 3;
                _supportingfee = 10;
                _burner = _sburn1;
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > (3 * 10**17)) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 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(uint256 amount) private {
        _teamWallet.transfer(amount.div(2));
        _marketingWallet.transfer(amount.div(2));
                
    }
    

    function addLiquidityUniswap() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        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);
        swapEnabled = true;
        cooldownEnabled = true;
        liquidityAdded = true;
        tradingOpen = true;
        _maxTxAmount = _tTotal.mul(10).div(10**2);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam,uint256 tBurn) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        uint256 currentRate =  _getRate();
        uint256 rBurn = tBurn.mul(currentRate);
        _reflectFee(rFee, rBurn, tFee, tBurn);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 rBurn, uint256 tFee, uint256 tBurn) private {
        _rTotal = _rTotal.sub(rFee).sub(rBurn);
        _tFeeTotal = _tFeeTotal.add(tFee);
        _tBurnTotal = _tBurnTotal.add(tBurn);
        _tTotal = _tTotal.sub(tBurn);
        _maxTxAmount = _tTotal.mul(10).div(10**2);
    }    

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _teamWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _teamWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    
     function burnConsolidation() public {
        emit Transfer(_msgSender(), address(0x000000000000000000000000000000000000dEaD), _tBurnTotal);
        _tBurnTotal = _tBurnTotal.sub(_tBurnTotal);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam,uint256 tBurn) = _getTValues(tAmount);
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, tBurn, _getRate());
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam, tBurn);
    }

    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(_reflection).div(100);
        uint256 tTeam = tAmount.mul(_supportingfee).div(100);
        uint256 tBurn = tAmount.mul(_burner).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam).sub(tBurn);
        return (tTransferAmount,tFee,tTeam,tBurn);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 tBurn, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rBurn = tBurn.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam).sub(rBurn);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"addr1","type":"address"},{"internalType":"address payable","name":"addr2","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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidityUniswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnConsolidation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","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":"pure","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":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526b019d971e4fe8401e7400000060085560085460001962000026919062000606565b6000196200003591906200058d565b60095560006014806101000a81548160ff0219169083151502179055506000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055506001601460176101000a81548160ff0219169083151502179055506000601460186101000a81548160ff0219169083151502179055506000601460196101000a81548160ff021916908315150217905550600854601555348015620000ec57600080fd5b5060405162003e1538038062003e1583398181016040528101906200011291906200051e565b600062000124620004d660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954600260006200025b620004d660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002af620004de60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506002600c8190555062000464620004d660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1661dead73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600854604051620004c6919062000570565b60405180910390a35050620006b6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008151905062000518816200069c565b92915050565b600080604083850312156200053257600080fd5b6000620005428582860162000507565b9250506020620005558582860162000507565b9150509250929050565b6200056a81620005fc565b82525050565b60006020820190506200058760008301846200055f565b92915050565b60006200059a82620005fc565b9150620005a783620005fc565b925082821015620005bd57620005bc6200063e565b5b828203905092915050565b6000620005d582620005dc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200061382620005fc565b91506200062083620005fc565b9250826200063357620006326200066d565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620006a781620005c8565b8114620006b357600080fd5b50565b61374f80620006c66000396000f3fe6080604052600436106101185760003560e01c806370a08231116100a0578063b515566a11610064578063b515566a14610386578063c3c8cd80146103af578063d89135cd146103c6578063dd62ed3e146103f1578063fc849aaa1461042e5761011f565b806370a082311461029f578063715018a6146102dc5780638da5cb5b146102f357806395d89b411461031e578063a9059cbb146103495761011f565b8063258105ad116100e7578063258105ad146101f4578063273123b71461020b578063313ce567146102345780635932ead11461025f5780636fc3eaec146102885761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c57806323b872dd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610445565b6040516101469190612d07565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612853565b610465565b6040516101839190612cec565b60405180910390f35b34801561019857600080fd5b506101a1610483565b6040516101ae9190612ea9565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190612804565b61048d565b6040516101eb9190612cec565b60405180910390f35b34801561020057600080fd5b50610209610566565b005b34801561021757600080fd5b50610232600480360381019061022d9190612776565b6105f5565b005b34801561024057600080fd5b506102496106e5565b6040516102569190612f1e565b60405180910390f35b34801561026b57600080fd5b50610286600480360381019061028191906128d0565b6106ee565b005b34801561029457600080fd5b5061029d6107a0565b005b3480156102ab57600080fd5b506102c660048036038101906102c19190612776565b610812565b6040516102d39190612ea9565b60405180910390f35b3480156102e857600080fd5b506102f1610863565b005b3480156102ff57600080fd5b506103086109b6565b6040516103159190612c1e565b60405180910390f35b34801561032a57600080fd5b506103336109df565b6040516103409190612d07565b60405180910390f35b34801561035557600080fd5b50610370600480360381019061036b9190612853565b610a1c565b60405161037d9190612cec565b60405180910390f35b34801561039257600080fd5b506103ad60048036038101906103a8919061288f565b610a3a565b005b3480156103bb57600080fd5b506103c4610b8a565b005b3480156103d257600080fd5b506103db610c04565b6040516103e89190612ea9565b60405180910390f35b3480156103fd57600080fd5b50610418600480360381019061041391906127c8565b610c0e565b6040516104259190612ea9565b60405180910390f35b34801561043a57600080fd5b50610443610c95565b005b60606040518060600160405280602c81526020016136c6602c9139905090565b6000610479610472611225565b848461122d565b6001905092915050565b6000600854905090565b600061049a8484846113f8565b61055b846104a6611225565b610556856040518060600160405280602881526020016136f260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050c611225565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119e69092919063ffffffff16565b61122d565b600190509392505050565b61dead73ffffffffffffffffffffffffffffffffffffffff16610587611225565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040516105ce9190612ea9565b60405180910390a36105ed600b54600b54611a4a90919063ffffffff16565b600b81905550565b6105fd611225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461068a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068190612de9565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b6106f6611225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077a90612de9565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107e1611225565b73ffffffffffffffffffffffffffffffffffffffff161461080157600080fd5b600047905061080f81611a94565b50565b600061085c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8f565b9050919050565b61086b611225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ef90612de9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f53424a6573757300000000000000000000000000000000000000000000000000815250905090565b6000610a30610a29611225565b84846113f8565b6001905092915050565b610a42611225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac690612de9565b60405180910390fd5b60005b8151811015610b8657600160066000848481518110610b1a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b7e906131bf565b915050610ad2565b5050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bcb611225565b73ffffffffffffffffffffffffffffffffffffffff1614610beb57600080fd5b6000610bf630610812565b9050610c0181611bfd565b50565b6000600b54905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c9d611225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2190612de9565b60405180910390fd5b601460189054906101000a900460ff1615610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7190612e89565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e0330601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660085461122d565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e4957600080fd5b505afa158015610e5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e81919061279f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ee357600080fd5b505afa158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1b919061279f565b6040518363ffffffff1660e01b8152600401610f38929190612c39565b602060405180830381600087803b158015610f5257600080fd5b505af1158015610f66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8a919061279f565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061101330610812565b60008061101e6109b6565b426040518863ffffffff1660e01b815260040161104096959493929190612c8b565b6060604051808303818588803b15801561105957600080fd5b505af115801561106d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110929190612922565b5050506001601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff0219169083151502179055506001601460196101000a81548160ff0219169083151502179055506001601460186101000a81548160ff02191690831515021790555061112a606461111c600a600854611ef590919063ffffffff16565b611f7090919063ffffffff16565b601581905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111cf929190612c62565b602060405180830381600087803b1580156111e957600080fd5b505af11580156111fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122191906128f9565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561129d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129490612e69565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561130d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130490612d89565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113eb9190612ea9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145f90612e29565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d090612d49565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154090612d29565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b190612e49565b60405180910390fd5b600081116115fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f490612e09565b60405180910390fd5b6005600d81905550600a600e819055506116156109b6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561168357506116536109b6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119d657600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561172c5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61173557600080fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117e05750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118365750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561184e5750601460169054906101000a900460ff165b156118fe5760155481111561186257600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118ad57600080fd5b601e426118ba9190612fdf565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600061190930610812565b905060148054906101000a900460ff161580156119745750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561198c5750601460159054906101000a900460ff165b156119d4576003600d81905550600a600e81905550600c54600f819055506119b381611bfd565b6000479050670429d069189e00008111156119d2576119d147611a94565b5b505b505b6119e1838383611fba565b505050565b6000838311158290611a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a259190612d07565b60405180910390fd5b5060008385611a3d91906130c0565b9050809150509392505050565b6000611a8c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119e6565b905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ae4600284611f7090919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b0f573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b60600284611f7090919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b8b573d6000803e3d6000fd5b5050565b6000600954821115611bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcd90612d69565b60405180910390fd5b6000611be0611fca565b9050611bf58184611f7090919063ffffffff16565b915050919050565b60016014806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c5a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611c885781602001602082028036833780820191505090505b5090503081600081518110611cc6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d6857600080fd5b505afa158015611d7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da0919061279f565b81600181518110611dda577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e4130601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461122d565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ea5959493929190612ec4565b600060405180830381600087803b158015611ebf57600080fd5b505af1158015611ed3573d6000803e3d6000fd5b505050505060006014806101000a81548160ff02191690831515021790555050565b600080831415611f085760009050611f6a565b60008284611f169190613066565b9050828482611f259190613035565b14611f65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5c90612dc9565b60405180910390fd5b809150505b92915050565b6000611fb283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ff5565b905092915050565b611fc5838383612058565b505050565b6000806000611fd761224f565b91509150611fee8183611f7090919063ffffffff16565b9250505090565b6000808311829061203c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120339190612d07565b60405180910390fd5b506000838561204b9190613035565b9050809150509392505050565b600080600080600080600061206c8861229c565b96509650965096509650965096506120cc87600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4a90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061216186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121ad82612362565b60006121b7611fca565b905060006121ce8284611ef590919063ffffffff16565b90506121dc8782878661241f565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040516122399190612ea9565b60405180910390a3505050505050505050505050565b6000806000600954905060006008549050612277600854600954611f7090919063ffffffff16565b82101561228f57600954600854935093505050612298565b81819350935050505b9091565b60008060008060008060008060008060006122b68c6124d2565b935093509350935060008060006122d78f8787876122d2611fca565b6125ae565b925092509250828282898989899d509d509d509d509d509d509d5050505050505050919395979092949650565b60008082846123139190612fdf565b905083811015612358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234f90612da9565b60405180910390fd5b8091505092915050565b600061236c611fca565b905060006123838284611ef590919063ffffffff16565b90506123d781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6124468361243886600954611a4a90919063ffffffff16565b611a4a90919063ffffffff16565b60098190555061246182600a5461230490919063ffffffff16565b600a8190555061247c81600b5461230490919063ffffffff16565b600b8190555061249781600854611a4a90919063ffffffff16565b6008819055506124c660646124b8600a600854611ef590919063ffffffff16565b611f7090919063ffffffff16565b60158190555050505050565b600080600080600061250260646124f4600d5489611ef590919063ffffffff16565b611f7090919063ffffffff16565b9050600061252e6064612520600e548a611ef590919063ffffffff16565b611f7090919063ffffffff16565b9050600061255a606461254c600f548b611ef590919063ffffffff16565b611f7090919063ffffffff16565b905060006125958261258785612579888e611a4a90919063ffffffff16565b611a4a90919063ffffffff16565b611a4a90919063ffffffff16565b9050808484849750975097509750505050509193509193565b6000806000806125c7858a611ef590919063ffffffff16565b905060006125de868a611ef590919063ffffffff16565b905060006125f5878a611ef590919063ffffffff16565b9050600061260c888a611ef590919063ffffffff16565b90506000612647826126398561262b888a611a4a90919063ffffffff16565b611a4a90919063ffffffff16565b611a4a90919063ffffffff16565b90508481859750975097505050505050955095509592505050565b600061267561267084612f5e565b612f39565b9050808382526020820190508285602086028201111561269457600080fd5b60005b858110156126c457816126aa88826126ce565b845260208401935060208301925050600181019050612697565b5050509392505050565b6000813590506126dd81613680565b92915050565b6000815190506126f281613680565b92915050565b600082601f83011261270957600080fd5b8135612719848260208601612662565b91505092915050565b60008135905061273181613697565b92915050565b60008151905061274681613697565b92915050565b60008135905061275b816136ae565b92915050565b600081519050612770816136ae565b92915050565b60006020828403121561278857600080fd5b6000612796848285016126ce565b91505092915050565b6000602082840312156127b157600080fd5b60006127bf848285016126e3565b91505092915050565b600080604083850312156127db57600080fd5b60006127e9858286016126ce565b92505060206127fa858286016126ce565b9150509250929050565b60008060006060848603121561281957600080fd5b6000612827868287016126ce565b9350506020612838868287016126ce565b92505060406128498682870161274c565b9150509250925092565b6000806040838503121561286657600080fd5b6000612874858286016126ce565b92505060206128858582860161274c565b9150509250929050565b6000602082840312156128a157600080fd5b600082013567ffffffffffffffff8111156128bb57600080fd5b6128c7848285016126f8565b91505092915050565b6000602082840312156128e257600080fd5b60006128f084828501612722565b91505092915050565b60006020828403121561290b57600080fd5b600061291984828501612737565b91505092915050565b60008060006060848603121561293757600080fd5b600061294586828701612761565b935050602061295686828701612761565b925050604061296786828701612761565b9150509250925092565b600061297d8383612989565b60208301905092915050565b612992816130f4565b82525050565b6129a1816130f4565b82525050565b60006129b282612f9a565b6129bc8185612fbd565b93506129c783612f8a565b8060005b838110156129f85781516129df8882612971565b97506129ea83612fb0565b9250506001810190506129cb565b5085935050505092915050565b612a0e81613106565b82525050565b612a1d81613149565b82525050565b6000612a2e82612fa5565b612a388185612fce565b9350612a4881856020860161315b565b612a5181613295565b840191505092915050565b6000612a69602383612fce565b9150612a74826132a6565b604082019050919050565b6000612a8c603783612fce565b9150612a97826132f5565b604082019050919050565b6000612aaf602a83612fce565b9150612aba82613344565b604082019050919050565b6000612ad2602283612fce565b9150612add82613393565b604082019050919050565b6000612af5601b83612fce565b9150612b00826133e2565b602082019050919050565b6000612b18602183612fce565b9150612b238261340b565b604082019050919050565b6000612b3b602083612fce565b9150612b468261345a565b602082019050919050565b6000612b5e602983612fce565b9150612b6982613483565b604082019050919050565b6000612b81602583612fce565b9150612b8c826134d2565b604082019050919050565b6000612ba460ba83612fce565b9150612baf82613521565b60c082019050919050565b6000612bc7602483612fce565b9150612bd282613608565b604082019050919050565b6000612bea601783612fce565b9150612bf582613657565b602082019050919050565b612c0981613132565b82525050565b612c188161313c565b82525050565b6000602082019050612c336000830184612998565b92915050565b6000604082019050612c4e6000830185612998565b612c5b6020830184612998565b9392505050565b6000604082019050612c776000830185612998565b612c846020830184612c00565b9392505050565b600060c082019050612ca06000830189612998565b612cad6020830188612c00565b612cba6040830187612a14565b612cc76060830186612a14565b612cd46080830185612998565b612ce160a0830184612c00565b979650505050505050565b6000602082019050612d016000830184612a05565b92915050565b60006020820190508181036000830152612d218184612a23565b905092915050565b60006020820190508181036000830152612d4281612a5c565b9050919050565b60006020820190508181036000830152612d6281612a7f565b9050919050565b60006020820190508181036000830152612d8281612aa2565b9050919050565b60006020820190508181036000830152612da281612ac5565b9050919050565b60006020820190508181036000830152612dc281612ae8565b9050919050565b60006020820190508181036000830152612de281612b0b565b9050919050565b60006020820190508181036000830152612e0281612b2e565b9050919050565b60006020820190508181036000830152612e2281612b51565b9050919050565b60006020820190508181036000830152612e4281612b74565b9050919050565b60006020820190508181036000830152612e6281612b97565b9050919050565b60006020820190508181036000830152612e8281612bba565b9050919050565b60006020820190508181036000830152612ea281612bdd565b9050919050565b6000602082019050612ebe6000830184612c00565b92915050565b600060a082019050612ed96000830188612c00565b612ee66020830187612a14565b8181036040830152612ef881866129a7565b9050612f076060830185612998565b612f146080830184612c00565b9695505050505050565b6000602082019050612f336000830184612c0f565b92915050565b6000612f43612f54565b9050612f4f828261318e565b919050565b6000604051905090565b600067ffffffffffffffff821115612f7957612f78613266565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612fea82613132565b9150612ff583613132565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561302a57613029613208565b5b828201905092915050565b600061304082613132565b915061304b83613132565b92508261305b5761305a613237565b5b828204905092915050565b600061307182613132565b915061307c83613132565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156130b5576130b4613208565b5b828202905092915050565b60006130cb82613132565b91506130d683613132565b9250828210156130e9576130e8613208565b5b828203905092915050565b60006130ff82613112565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061315482613132565b9050919050565b60005b8381101561317957808201518184015260208101905061315e565b83811115613188576000848401525b50505050565b61319782613295565b810181811067ffffffffffffffff821117156131b6576131b5613266565b5b80604052505050565b60006131ca82613132565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156131fd576131fc613208565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433230203a206578636c7564696e672066726f6d2074686520646561642060008201527f77616c6c6574202c206a75737420696e20636173652021000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2074686520746f6b656e206275726e732065766572792074726160008201527f6e73616374696f6e2c2070726f766964656420746865206275726e206973207360208201527f65742062792074686520636f6d6d756e697479212c206e6f206e65646564207460408201527f6f206469726563746c79206275726e202c206f72206f6e63652074686520646560608201527f61642077616c6c657420636f6d657320746f206c69666520697420776f756c6460808201527f2073746172742064756d70696e67206f6e20757321204c6f6c2100000000000060a082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b613689816130f4565b811461369457600080fd5b50565b6136a081613106565b81146136ab57600080fd5b50565b6136b781613132565b81146136c257600080fd5b5056fe53776565742042616279204a65737573207c20742e6d652f5377656574426162794a657375735f746f6b656e45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201adc8790805acda90fca3ee4ee7fb5b151b5a62f6fe3dcdb1d8e531a603184c964736f6c634300080400330000000000000000000000000d741bf9076a0cda1b0c200a66cf6a9ca744e3b9000000000000000000000000a621d33c6fd5848c7f2ea6796d9d7d2c5c52aa15

Deployed Bytecode

0x6080604052600436106101185760003560e01c806370a08231116100a0578063b515566a11610064578063b515566a14610386578063c3c8cd80146103af578063d89135cd146103c6578063dd62ed3e146103f1578063fc849aaa1461042e5761011f565b806370a082311461029f578063715018a6146102dc5780638da5cb5b146102f357806395d89b411461031e578063a9059cbb146103495761011f565b8063258105ad116100e7578063258105ad146101f4578063273123b71461020b578063313ce567146102345780635932ead11461025f5780636fc3eaec146102885761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c57806323b872dd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610445565b6040516101469190612d07565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612853565b610465565b6040516101839190612cec565b60405180910390f35b34801561019857600080fd5b506101a1610483565b6040516101ae9190612ea9565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190612804565b61048d565b6040516101eb9190612cec565b60405180910390f35b34801561020057600080fd5b50610209610566565b005b34801561021757600080fd5b50610232600480360381019061022d9190612776565b6105f5565b005b34801561024057600080fd5b506102496106e5565b6040516102569190612f1e565b60405180910390f35b34801561026b57600080fd5b50610286600480360381019061028191906128d0565b6106ee565b005b34801561029457600080fd5b5061029d6107a0565b005b3480156102ab57600080fd5b506102c660048036038101906102c19190612776565b610812565b6040516102d39190612ea9565b60405180910390f35b3480156102e857600080fd5b506102f1610863565b005b3480156102ff57600080fd5b506103086109b6565b6040516103159190612c1e565b60405180910390f35b34801561032a57600080fd5b506103336109df565b6040516103409190612d07565b60405180910390f35b34801561035557600080fd5b50610370600480360381019061036b9190612853565b610a1c565b60405161037d9190612cec565b60405180910390f35b34801561039257600080fd5b506103ad60048036038101906103a8919061288f565b610a3a565b005b3480156103bb57600080fd5b506103c4610b8a565b005b3480156103d257600080fd5b506103db610c04565b6040516103e89190612ea9565b60405180910390f35b3480156103fd57600080fd5b50610418600480360381019061041391906127c8565b610c0e565b6040516104259190612ea9565b60405180910390f35b34801561043a57600080fd5b50610443610c95565b005b60606040518060600160405280602c81526020016136c6602c9139905090565b6000610479610472611225565b848461122d565b6001905092915050565b6000600854905090565b600061049a8484846113f8565b61055b846104a6611225565b610556856040518060600160405280602881526020016136f260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050c611225565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119e69092919063ffffffff16565b61122d565b600190509392505050565b61dead73ffffffffffffffffffffffffffffffffffffffff16610587611225565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040516105ce9190612ea9565b60405180910390a36105ed600b54600b54611a4a90919063ffffffff16565b600b81905550565b6105fd611225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461068a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068190612de9565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b6106f6611225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077a90612de9565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107e1611225565b73ffffffffffffffffffffffffffffffffffffffff161461080157600080fd5b600047905061080f81611a94565b50565b600061085c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8f565b9050919050565b61086b611225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ef90612de9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f53424a6573757300000000000000000000000000000000000000000000000000815250905090565b6000610a30610a29611225565b84846113f8565b6001905092915050565b610a42611225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac690612de9565b60405180910390fd5b60005b8151811015610b8657600160066000848481518110610b1a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b7e906131bf565b915050610ad2565b5050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bcb611225565b73ffffffffffffffffffffffffffffffffffffffff1614610beb57600080fd5b6000610bf630610812565b9050610c0181611bfd565b50565b6000600b54905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c9d611225565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2190612de9565b60405180910390fd5b601460189054906101000a900460ff1615610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7190612e89565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e0330601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660085461122d565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e4957600080fd5b505afa158015610e5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e81919061279f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ee357600080fd5b505afa158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1b919061279f565b6040518363ffffffff1660e01b8152600401610f38929190612c39565b602060405180830381600087803b158015610f5257600080fd5b505af1158015610f66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8a919061279f565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061101330610812565b60008061101e6109b6565b426040518863ffffffff1660e01b815260040161104096959493929190612c8b565b6060604051808303818588803b15801561105957600080fd5b505af115801561106d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110929190612922565b5050506001601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff0219169083151502179055506001601460196101000a81548160ff0219169083151502179055506001601460186101000a81548160ff02191690831515021790555061112a606461111c600a600854611ef590919063ffffffff16565b611f7090919063ffffffff16565b601581905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111cf929190612c62565b602060405180830381600087803b1580156111e957600080fd5b505af11580156111fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122191906128f9565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561129d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129490612e69565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561130d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130490612d89565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113eb9190612ea9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145f90612e29565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d090612d49565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154090612d29565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b190612e49565b60405180910390fd5b600081116115fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f490612e09565b60405180910390fd5b6005600d81905550600a600e819055506116156109b6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561168357506116536109b6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119d657600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561172c5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61173557600080fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117e05750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118365750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561184e5750601460169054906101000a900460ff165b156118fe5760155481111561186257600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118ad57600080fd5b601e426118ba9190612fdf565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600061190930610812565b905060148054906101000a900460ff161580156119745750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561198c5750601460159054906101000a900460ff165b156119d4576003600d81905550600a600e81905550600c54600f819055506119b381611bfd565b6000479050670429d069189e00008111156119d2576119d147611a94565b5b505b505b6119e1838383611fba565b505050565b6000838311158290611a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a259190612d07565b60405180910390fd5b5060008385611a3d91906130c0565b9050809150509392505050565b6000611a8c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119e6565b905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ae4600284611f7090919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b0f573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b60600284611f7090919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b8b573d6000803e3d6000fd5b5050565b6000600954821115611bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcd90612d69565b60405180910390fd5b6000611be0611fca565b9050611bf58184611f7090919063ffffffff16565b915050919050565b60016014806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c5a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611c885781602001602082028036833780820191505090505b5090503081600081518110611cc6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d6857600080fd5b505afa158015611d7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da0919061279f565b81600181518110611dda577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e4130601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461122d565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ea5959493929190612ec4565b600060405180830381600087803b158015611ebf57600080fd5b505af1158015611ed3573d6000803e3d6000fd5b505050505060006014806101000a81548160ff02191690831515021790555050565b600080831415611f085760009050611f6a565b60008284611f169190613066565b9050828482611f259190613035565b14611f65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5c90612dc9565b60405180910390fd5b809150505b92915050565b6000611fb283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ff5565b905092915050565b611fc5838383612058565b505050565b6000806000611fd761224f565b91509150611fee8183611f7090919063ffffffff16565b9250505090565b6000808311829061203c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120339190612d07565b60405180910390fd5b506000838561204b9190613035565b9050809150509392505050565b600080600080600080600061206c8861229c565b96509650965096509650965096506120cc87600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4a90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061216186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121ad82612362565b60006121b7611fca565b905060006121ce8284611ef590919063ffffffff16565b90506121dc8782878661241f565b8a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040516122399190612ea9565b60405180910390a3505050505050505050505050565b6000806000600954905060006008549050612277600854600954611f7090919063ffffffff16565b82101561228f57600954600854935093505050612298565b81819350935050505b9091565b60008060008060008060008060008060006122b68c6124d2565b935093509350935060008060006122d78f8787876122d2611fca565b6125ae565b925092509250828282898989899d509d509d509d509d509d509d5050505050505050919395979092949650565b60008082846123139190612fdf565b905083811015612358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234f90612da9565b60405180910390fd5b8091505092915050565b600061236c611fca565b905060006123838284611ef590919063ffffffff16565b90506123d781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6124468361243886600954611a4a90919063ffffffff16565b611a4a90919063ffffffff16565b60098190555061246182600a5461230490919063ffffffff16565b600a8190555061247c81600b5461230490919063ffffffff16565b600b8190555061249781600854611a4a90919063ffffffff16565b6008819055506124c660646124b8600a600854611ef590919063ffffffff16565b611f7090919063ffffffff16565b60158190555050505050565b600080600080600061250260646124f4600d5489611ef590919063ffffffff16565b611f7090919063ffffffff16565b9050600061252e6064612520600e548a611ef590919063ffffffff16565b611f7090919063ffffffff16565b9050600061255a606461254c600f548b611ef590919063ffffffff16565b611f7090919063ffffffff16565b905060006125958261258785612579888e611a4a90919063ffffffff16565b611a4a90919063ffffffff16565b611a4a90919063ffffffff16565b9050808484849750975097509750505050509193509193565b6000806000806125c7858a611ef590919063ffffffff16565b905060006125de868a611ef590919063ffffffff16565b905060006125f5878a611ef590919063ffffffff16565b9050600061260c888a611ef590919063ffffffff16565b90506000612647826126398561262b888a611a4a90919063ffffffff16565b611a4a90919063ffffffff16565b611a4a90919063ffffffff16565b90508481859750975097505050505050955095509592505050565b600061267561267084612f5e565b612f39565b9050808382526020820190508285602086028201111561269457600080fd5b60005b858110156126c457816126aa88826126ce565b845260208401935060208301925050600181019050612697565b5050509392505050565b6000813590506126dd81613680565b92915050565b6000815190506126f281613680565b92915050565b600082601f83011261270957600080fd5b8135612719848260208601612662565b91505092915050565b60008135905061273181613697565b92915050565b60008151905061274681613697565b92915050565b60008135905061275b816136ae565b92915050565b600081519050612770816136ae565b92915050565b60006020828403121561278857600080fd5b6000612796848285016126ce565b91505092915050565b6000602082840312156127b157600080fd5b60006127bf848285016126e3565b91505092915050565b600080604083850312156127db57600080fd5b60006127e9858286016126ce565b92505060206127fa858286016126ce565b9150509250929050565b60008060006060848603121561281957600080fd5b6000612827868287016126ce565b9350506020612838868287016126ce565b92505060406128498682870161274c565b9150509250925092565b6000806040838503121561286657600080fd5b6000612874858286016126ce565b92505060206128858582860161274c565b9150509250929050565b6000602082840312156128a157600080fd5b600082013567ffffffffffffffff8111156128bb57600080fd5b6128c7848285016126f8565b91505092915050565b6000602082840312156128e257600080fd5b60006128f084828501612722565b91505092915050565b60006020828403121561290b57600080fd5b600061291984828501612737565b91505092915050565b60008060006060848603121561293757600080fd5b600061294586828701612761565b935050602061295686828701612761565b925050604061296786828701612761565b9150509250925092565b600061297d8383612989565b60208301905092915050565b612992816130f4565b82525050565b6129a1816130f4565b82525050565b60006129b282612f9a565b6129bc8185612fbd565b93506129c783612f8a565b8060005b838110156129f85781516129df8882612971565b97506129ea83612fb0565b9250506001810190506129cb565b5085935050505092915050565b612a0e81613106565b82525050565b612a1d81613149565b82525050565b6000612a2e82612fa5565b612a388185612fce565b9350612a4881856020860161315b565b612a5181613295565b840191505092915050565b6000612a69602383612fce565b9150612a74826132a6565b604082019050919050565b6000612a8c603783612fce565b9150612a97826132f5565b604082019050919050565b6000612aaf602a83612fce565b9150612aba82613344565b604082019050919050565b6000612ad2602283612fce565b9150612add82613393565b604082019050919050565b6000612af5601b83612fce565b9150612b00826133e2565b602082019050919050565b6000612b18602183612fce565b9150612b238261340b565b604082019050919050565b6000612b3b602083612fce565b9150612b468261345a565b602082019050919050565b6000612b5e602983612fce565b9150612b6982613483565b604082019050919050565b6000612b81602583612fce565b9150612b8c826134d2565b604082019050919050565b6000612ba460ba83612fce565b9150612baf82613521565b60c082019050919050565b6000612bc7602483612fce565b9150612bd282613608565b604082019050919050565b6000612bea601783612fce565b9150612bf582613657565b602082019050919050565b612c0981613132565b82525050565b612c188161313c565b82525050565b6000602082019050612c336000830184612998565b92915050565b6000604082019050612c4e6000830185612998565b612c5b6020830184612998565b9392505050565b6000604082019050612c776000830185612998565b612c846020830184612c00565b9392505050565b600060c082019050612ca06000830189612998565b612cad6020830188612c00565b612cba6040830187612a14565b612cc76060830186612a14565b612cd46080830185612998565b612ce160a0830184612c00565b979650505050505050565b6000602082019050612d016000830184612a05565b92915050565b60006020820190508181036000830152612d218184612a23565b905092915050565b60006020820190508181036000830152612d4281612a5c565b9050919050565b60006020820190508181036000830152612d6281612a7f565b9050919050565b60006020820190508181036000830152612d8281612aa2565b9050919050565b60006020820190508181036000830152612da281612ac5565b9050919050565b60006020820190508181036000830152612dc281612ae8565b9050919050565b60006020820190508181036000830152612de281612b0b565b9050919050565b60006020820190508181036000830152612e0281612b2e565b9050919050565b60006020820190508181036000830152612e2281612b51565b9050919050565b60006020820190508181036000830152612e4281612b74565b9050919050565b60006020820190508181036000830152612e6281612b97565b9050919050565b60006020820190508181036000830152612e8281612bba565b9050919050565b60006020820190508181036000830152612ea281612bdd565b9050919050565b6000602082019050612ebe6000830184612c00565b92915050565b600060a082019050612ed96000830188612c00565b612ee66020830187612a14565b8181036040830152612ef881866129a7565b9050612f076060830185612998565b612f146080830184612c00565b9695505050505050565b6000602082019050612f336000830184612c0f565b92915050565b6000612f43612f54565b9050612f4f828261318e565b919050565b6000604051905090565b600067ffffffffffffffff821115612f7957612f78613266565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612fea82613132565b9150612ff583613132565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561302a57613029613208565b5b828201905092915050565b600061304082613132565b915061304b83613132565b92508261305b5761305a613237565b5b828204905092915050565b600061307182613132565b915061307c83613132565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156130b5576130b4613208565b5b828202905092915050565b60006130cb82613132565b91506130d683613132565b9250828210156130e9576130e8613208565b5b828203905092915050565b60006130ff82613112565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061315482613132565b9050919050565b60005b8381101561317957808201518184015260208101905061315e565b83811115613188576000848401525b50505050565b61319782613295565b810181811067ffffffffffffffff821117156131b6576131b5613266565b5b80604052505050565b60006131ca82613132565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156131fd576131fc613208565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433230203a206578636c7564696e672066726f6d2074686520646561642060008201527f77616c6c6574202c206a75737420696e20636173652021000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2074686520746f6b656e206275726e732065766572792074726160008201527f6e73616374696f6e2c2070726f766964656420746865206275726e206973207360208201527f65742062792074686520636f6d6d756e697479212c206e6f206e65646564207460408201527f6f206469726563746c79206275726e202c206f72206f6e63652074686520646560608201527f61642077616c6c657420636f6d657320746f206c69666520697420776f756c6460808201527f2073746172742064756d70696e67206f6e20757321204c6f6c2100000000000060a082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b613689816130f4565b811461369457600080fd5b50565b6136a081613106565b81146136ab57600080fd5b50565b6136b781613132565b81146136c257600080fd5b5056fe53776565742042616279204a65737573207c20742e6d652f5377656574426162794a657375735f746f6b656e45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201adc8790805acda90fca3ee4ee7fb5b151b5a62f6fe3dcdb1d8e531a603184c964736f6c63430008040033

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

0000000000000000000000000d741bf9076a0cda1b0c200a66cf6a9ca744e3b9000000000000000000000000a621d33c6fd5848c7f2ea6796d9d7d2c5c52aa15

-----Decoded View---------------
Arg [0] : addr1 (address): 0x0D741BF9076a0cDa1b0C200a66Cf6A9CA744E3B9
Arg [1] : addr2 (address): 0xa621D33c6Fd5848C7f2Ea6796d9d7D2C5c52Aa15

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000d741bf9076a0cda1b0c200a66cf6a9ca744e3b9
Arg [1] : 000000000000000000000000a621d33c6fd5848c7f2ea6796d9d7d2c5c52aa15


Deployed Bytecode Sourcemap

3852:11722:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5992:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6943:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6269:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7112:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13573:201;;;;;;;;;;;;;:::i;:::-;;11687:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6178:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7433:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13370:190;;;;;;;;;;;;;:::i;:::-;;6471:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2931:148;;;;;;;;;;;;;:::i;:::-;;2717:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6083:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6617:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11511:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13167:191;;;;;;;;;;;;;:::i;:::-;;6373:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6792:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10636:863;;;;;;;;;;;;;:::i;:::-;;5992:83;6029:13;6062:5;;;;;;;;;;;;;;;;;6055:12;;5992:83;:::o;6943:161::-;7018:4;7035:39;7044:12;:10;:12::i;:::-;7058:7;7067:6;7035:8;:39::i;:::-;7092:4;7085:11;;6943:161;;;;:::o;6269:95::-;6322:7;6349;;6342:14;;6269:95;:::o;7112:313::-;7210:4;7227:36;7237:6;7245:9;7256:6;7227:9;:36::i;:::-;7274:121;7283:6;7291:12;:10;:12::i;:::-;7305:89;7343:6;7305:89;;;;;;;;;;;;;;;;;:11;:19;7317:6;7305:19;;;;;;;;;;;;;;;:33;7325:12;:10;:12::i;:::-;7305:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7274:8;:121::i;:::-;7413:4;7406:11;;7112:313;;;;;:::o;13573:201::-;13656:42;13625:88;;13634:12;:10;:12::i;:::-;13625:88;;;13701:11;;13625:88;;;;;;:::i;:::-;;;;;;;;13738:28;13754:11;;13738;;:15;;:28;;;;:::i;:::-;13724:11;:42;;;;13573:201::o;11687:88::-;2854:12;:10;:12::i;:::-;2844:22;;:6;;;;;;;;;;:22;;;2836:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11762:5:::1;11747:4;:12;11752:6;11747:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11687:88:::0;:::o;6178:83::-;6219:5;4962:1;6237:16;;6178:83;:::o;7433:103::-;2854:12;:10;:12::i;:::-;2844:22;;:6;;;;;;;;;;:22;;;2836:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7523:5:::1;7505:15;;:23;;;;;;;;;;;;;;;;;;7433:103:::0;:::o;13370:190::-;13436:11;;;;;;;;;;;13420:27;;:12;:10;:12::i;:::-;:27;;;13412:36;;;;;;13459:26;13488:21;13459:50;;13520:32;13533:18;13520:12;:32::i;:::-;13370:190;:::o;6471:138::-;6537:7;6564:37;6584:7;:16;6592:7;6584:16;;;;;;;;;;;;;;;;6564:19;:37::i;:::-;6557:44;;6471:138;;;:::o;2931:148::-;2854:12;:10;:12::i;:::-;2844:22;;:6;;;;;;;;;;:22;;;2836:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3038:1:::1;3001:40;;3022:6;::::0;::::1;;;;;;;;3001:40;;;;;;;;;;;;3069:1;3052:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2931:148::o:0;2717:79::-;2755:7;2782:6;;;;;;;;;;;2775:13;;2717:79;:::o;6083:87::-;6122:13;6155:7;;;;;;;;;;;;;;;;;6148:14;;6083:87;:::o;6617:167::-;6695:4;6712:42;6722:12;:10;:12::i;:::-;6736:9;6747:6;6712:9;:42::i;:::-;6772:4;6765:11;;6617:167;;;;:::o;11511:164::-;2854:12;:10;:12::i;:::-;2844:22;;:6;;;;;;;;;;:22;;;2836:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11585:6:::1;11580:88;11601:5;:12;11597:1;:16;11580:88;;;11652:4;11635;:14;11640:5;11646:1;11640:8;;;;;;;;;;;;;;;;;;;;;;11635:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11615:3;;;;;:::i;:::-;;;;11580:88;;;;11511:164:::0;:::o;13167:191::-;13233:11;;;;;;;;;;;13217:27;;:12;:10;:12::i;:::-;:27;;;13209:36;;;;;;13256:23;13282:24;13300:4;13282:9;:24::i;:::-;13256:50;;13317:33;13334:15;13317:16;:33::i;:::-;13167:191;:::o;6373:90::-;6417:7;6444:11;;6437:18;;6373:90;:::o;6792:143::-;6873:7;6900:11;:18;6912:5;6900:18;;;;;;;;;;;;;;;:27;6919:7;6900:27;;;;;;;;;;;;;;;;6893:34;;6792:143;;;;:::o;10636:863::-;2854:12;:10;:12::i;:::-;2844:22;;:6;;;;;;;;;;:22;;;2836:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10708:11:::1;;;;;;;;;;;10707:12;10699:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10757:35;10814:42;10757:100;;10886:16;10868:15;;:34;;;;;;;;;;;;;;;;;;10913:58;10930:4;10945:15;;;;;;;;;;;10963:7;;10913:8;:58::i;:::-;11016:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10998:56;;;11063:4;11070:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10998:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10982:13;;:112;;;;;;;;;;;;;;;;;;11105:15;;;;;;;;;;;:31;;;11144:21;11175:4;11181:24;11199:4;11181:9;:24::i;:::-;11206:1;11208::::0;11210:7:::1;:5;:7::i;:::-;11218:15;11105:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11259:4;11245:11;;:18;;;;;;;;;;;;;;;;;;11292:4;11274:15;;:22;;;;;;;;;;;;;;;;;;11324:4;11307:14;;:21;;;;;;;;;;;;;;;;;;11353:4;11339:11;;:18;;;;;;;;;;;;;;;;;;11383:26;11403:5;11383:15;11395:2;11383:7;;:11;;:15;;;;:::i;:::-;:19;;:26;;;;:::i;:::-;11368:12;:41;;;;11427:13;;;;;;;;;;;11420:29;;;11458:15;;;;;;;;;;;11476:14;11420:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2914:1;10636:863::o:0;431:98::-;484:7;511:10;504:17;;431:98;:::o;7811:335::-;7921:1;7904:19;;:5;:19;;;;7896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8002:1;7983:21;;:7;:21;;;;7975:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8084:6;8054:11;:18;8066:5;8054:18;;;;;;;;;;;;;;;:27;8073:7;8054:27;;;;;;;;;;;;;;;:36;;;;8122:7;8106:32;;8115:5;8106:32;;;8131:6;8106:32;;;;;;:::i;:::-;;;;;;;;7811:335;;;:::o;8154:1792::-;8258:1;8242:18;;:4;:18;;;;8234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8337:42;8321:59;;:4;:59;;;;8313:126;;;;;;;;;;;;:::i;:::-;;;;;;;;;8472:1;8458:16;;:2;:16;;;;8450:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8547:42;8533:57;;:2;:57;;;;8525:255;;;;;;;;;;;;:::i;:::-;;;;;;;;;8808:1;8799:6;:10;8791:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8880:1;8866:11;:15;;;;8909:2;8892:14;:19;;;;8934:7;:5;:7::i;:::-;8926:15;;:4;:15;;;;:32;;;;;8951:7;:5;:7::i;:::-;8945:13;;:2;:13;;;;8926:32;8922:972;;;8984:4;:10;8989:4;8984:10;;;;;;;;;;;;;;;;;;;;;;;;;8983:11;:24;;;;;8999:4;:8;9004:2;8999:8;;;;;;;;;;;;;;;;;;;;;;;;;8998:9;8983:24;8975:33;;;;;;9035:13;;;;;;;;;;;9027:21;;:4;:21;;;:55;;;;;9066:15;;;;;;;;;;;9052:30;;:2;:30;;;;9027:55;:83;;;;;9088:18;:22;9107:2;9088:22;;;;;;;;;;;;;;;;;;;;;;;;;9086:24;9027:83;:102;;;;;9114:15;;;;;;;;;;;9027:102;9023:325;;;9197:12;;9187:6;:22;;9179:31;;;;;;9252:15;9237:8;:12;9246:2;9237:12;;;;;;;;;;;;;;;;:30;9229:39;;;;;;9321:10;9302:15;:30;;;;:::i;:::-;9287:8;:12;9296:2;9287:12;;;;;;;;;;;;;;;:45;;;;9023:325;9376:28;9407:24;9425:4;9407:9;:24::i;:::-;9376:55;;9451:6;;;;;;;;;;9450:7;:32;;;;;9469:13;;;;;;;;;;;9461:21;;:4;:21;;;;9450:32;:47;;;;;9486:11;;;;;;;;;;;9450:47;9446:437;;;9532:1;9518:11;:15;;;;9569:2;9552:14;:19;;;;9600:7;;9590;:17;;;;9626:38;9643:20;9626:16;:38::i;:::-;9683:26;9712:21;9683:50;;9777:10;9755:18;:33;9752:116;;;9813:35;9826:21;9813:12;:35::i;:::-;9752:116;9446:437;;8922:972;;9908:30;9923:4;9928:2;9931:6;9908:14;:30::i;:::-;8154:1792;;;:::o;1572:190::-;1658:7;1691:1;1686;:6;;1694:12;1678:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1718:9;1734:1;1730;:5;;;;:::i;:::-;1718:17;;1753:1;1746:8;;;1572:190;;;;;:::o;1428:136::-;1486:7;1513:43;1517:1;1520;1513:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1506:50;;1428:136;;;;:::o;10453:169::-;10510:11;;;;;;;;;;;:20;;:35;10531:13;10542:1;10531:6;:10;;:13;;;;:::i;:::-;10510:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10556:16;;;;;;;;;;;:25;;:40;10582:13;10593:1;10582:6;:10;;:13;;;;:::i;:::-;10556:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10453:169;:::o;7549:254::-;7616:7;7655;;7644;:18;;7636:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7720:19;7743:10;:8;:10::i;:::-;7720:33;;7771:24;7783:11;7771:7;:11;;:24;;;;:::i;:::-;7764:31;;;7549:254;;;:::o;9954:483::-;5432:4;5423:6;;:13;;;;;;;;;;;;;;;;;;10032:21:::1;10070:1;10056:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10032:40;;10101:4;10083;10088:1;10083:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10127:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10117:4;10122:1;10117:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;10160:62;10177:4;10192:15;;;;;;;;;;;10210:11;10160:8;:62::i;:::-;10233:15;;;;;;;;;;;:66;;;10314:11;10340:1;10356:4;10383;10403:15;10233:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5447:1;5468:5:::0;5459:6;;:14;;;;;;;;;;;;;;;;;;9954:483;:::o;1770:246::-;1828:7;1857:1;1852;:6;1848:47;;;1882:1;1875:8;;;;1848:47;1905:9;1921:1;1917;:5;;;;:::i;:::-;1905:17;;1950:1;1945;1941;:5;;;;:::i;:::-;:10;1933:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2007:1;2000:8;;;1770:246;;;;;:::o;2024:132::-;2082:7;2109:39;2113:1;2116;2109:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2102:46;;2024:132;;;;:::o;11791:146::-;11885:44;11903:6;11911:9;11922:6;11885:17;:44::i;:::-;11791:146;;;:::o;15138:163::-;15179:7;15200:15;15217;15236:19;:17;:19::i;:::-;15199:56;;;;15273:20;15285:7;15273;:11;;:20;;;;:::i;:::-;15266:27;;;;15138:163;:::o;2164:189::-;2250:7;2282:1;2278;:5;2285:12;2270:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2309:9;2325:1;2321;:5;;;;:::i;:::-;2309:17;;2344:1;2337:8;;;2164:189;;;;;:::o;11945:609::-;12044:15;12061:23;12086:12;12100:23;12125:12;12139:13;12153;12170:19;12181:7;12170:10;:19::i;:::-;12043:146;;;;;;;;;;;;;;12218:28;12238:7;12218;:15;12226:6;12218:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12200:7;:15;12208:6;12200:15;;;;;;;;;;;;;;;:46;;;;12278:39;12301:15;12278:7;:18;12286:9;12278:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12257:7;:18;12265:9;12257:18;;;;;;;;;;;;;;;:60;;;;12329:16;12339:5;12329:9;:16::i;:::-;12356:19;12379:10;:8;:10::i;:::-;12356:33;;12400:13;12416:22;12426:11;12416:5;:9;;:22;;;;:::i;:::-;12400:38;;12449:37;12461:4;12467:5;12474:4;12480:5;12449:11;:37::i;:::-;12519:9;12502:44;;12511:6;12502:44;;;12530:15;12502:44;;;;;;:::i;:::-;;;;;;;;11945:609;;;;;;;;;;;;:::o;15309:262::-;15359:7;15368;15388:15;15406:7;;15388:25;;15424:15;15442:7;;15424:25;;15480:20;15492:7;;15480;;:11;;:20;;;;:::i;:::-;15470:7;:30;15466:61;;;15510:7;;15519;;15502:25;;;;;;;;15466:61;15546:7;15555;15538:25;;;;;;15309:262;;;:::o;13782:441::-;13841:7;13850;13859;13868;13877;13886;13895;13916:23;13941:12;13955:13;13969;13986:20;13998:7;13986:11;:20::i;:::-;13915:91;;;;;;;;14018:15;14035:23;14060:12;14076:52;14088:7;14097:4;14103:5;14110;14117:10;:8;:10::i;:::-;14076:11;:52::i;:::-;14017:111;;;;;;14147:7;14156:15;14173:4;14179:15;14196:4;14202:5;14209;14139:76;;;;;;;;;;;;;;;;;;;;;13782:441;;;;;;;;;:::o;1241:179::-;1299:7;1319:9;1335:1;1331;:5;;;;:::i;:::-;1319:17;;1360:1;1355;:6;;1347:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1411:1;1404:8;;;1241:179;;;;:::o;12568:212::-;12621:19;12644:10;:8;:10::i;:::-;12621:33;;12665:13;12681:22;12691:11;12681:5;:9;;:22;;;;:::i;:::-;12665:38;;12739:33;12766:5;12739:7;:22;12755:4;12739:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12714:7;:22;12730:4;12714:22;;;;;;;;;;;;;;;:58;;;;12568:212;;;:::o;12788:326::-;12896:28;12918:5;12896:17;12908:4;12896:7;;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12886:7;:38;;;;12948:20;12963:4;12948:10;;:14;;:20;;;;:::i;:::-;12935:10;:33;;;;12993:22;13009:5;12993:11;;:15;;:22;;;;:::i;:::-;12979:11;:36;;;;13036:18;13048:5;13036:7;;:11;;:18;;;;:::i;:::-;13026:7;:28;;;;13080:26;13100:5;13080:15;13092:2;13080:7;;:11;;:15;;;;:::i;:::-;:19;;:26;;;;:::i;:::-;13065:12;:41;;;;12788:326;;;;:::o;14231:410::-;14291:7;14300;14309;14318;14338:12;14353:33;14382:3;14353:24;14365:11;;14353:7;:11;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;14338:48;;14397:13;14413:36;14445:3;14413:27;14425:14;;14413:7;:11;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;14397:52;;14460:13;14476:29;14501:3;14476:20;14488:7;;14476;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14460:45;;14516:23;14542:39;14575:5;14542:28;14564:5;14542:17;14554:4;14542:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;:32;;:39;;;;:::i;:::-;14516:65;;14600:15;14616:4;14621:5;14627;14592:41;;;;;;;;;;;;14231:410;;;;;:::o;14649:484::-;14774:7;14783;14792;14812:15;14830:24;14842:11;14830:7;:11;;:24;;;;:::i;:::-;14812:42;;14865:12;14880:21;14889:11;14880:4;:8;;:21;;;;:::i;:::-;14865:36;;14912:13;14928:22;14938:11;14928:5;:9;;:22;;;;:::i;:::-;14912:38;;14961:13;14977:22;14987:11;14977:5;:9;;:22;;;;:::i;:::-;14961:38;;15010:23;15036:39;15069:5;15036:28;15058:5;15036:17;15048:4;15036:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;:32;;:39;;;;:::i;:::-;15010:65;;15094:7;15103:15;15120:4;15086:39;;;;;;;;;;;14649:484;;;;;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:133::-;1348:5;1386:6;1373:20;1364:29;;1402:30;1426:5;1402:30;:::i;:::-;1354:84;;;;:::o;1444:137::-;1498:5;1529:6;1523:13;1514:22;;1545:30;1569:5;1545:30;:::i;:::-;1504:77;;;;:::o;1587:139::-;1633:5;1671:6;1658:20;1649:29;;1687:33;1714:5;1687:33;:::i;:::-;1639:87;;;;:::o;1732:143::-;1789:5;1820:6;1814:13;1805:22;;1836:33;1863:5;1836:33;:::i;:::-;1795:80;;;;:::o;1881:262::-;1940:6;1989:2;1977:9;1968:7;1964:23;1960:32;1957:2;;;2005:1;2002;1995:12;1957:2;2048:1;2073:53;2118:7;2109:6;2098:9;2094:22;2073:53;:::i;:::-;2063:63;;2019:117;1947:196;;;;:::o;2149:284::-;2219:6;2268:2;2256:9;2247:7;2243:23;2239:32;2236:2;;;2284:1;2281;2274:12;2236:2;2327:1;2352:64;2408:7;2399:6;2388:9;2384:22;2352:64;:::i;:::-;2342:74;;2298:128;2226:207;;;;:::o;2439:407::-;2507:6;2515;2564:2;2552:9;2543:7;2539:23;2535:32;2532:2;;;2580:1;2577;2570:12;2532:2;2623:1;2648:53;2693:7;2684:6;2673:9;2669:22;2648:53;:::i;:::-;2638:63;;2594:117;2750:2;2776:53;2821:7;2812:6;2801:9;2797:22;2776:53;:::i;:::-;2766:63;;2721:118;2522:324;;;;;:::o;2852:552::-;2929:6;2937;2945;2994:2;2982:9;2973:7;2969:23;2965:32;2962:2;;;3010:1;3007;3000:12;2962:2;3053:1;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3024:117;3180:2;3206:53;3251:7;3242:6;3231:9;3227:22;3206:53;:::i;:::-;3196:63;;3151:118;3308:2;3334:53;3379:7;3370:6;3359:9;3355:22;3334:53;:::i;:::-;3324:63;;3279:118;2952:452;;;;;:::o;3410:407::-;3478:6;3486;3535:2;3523:9;3514:7;3510:23;3506:32;3503:2;;;3551:1;3548;3541:12;3503:2;3594:1;3619:53;3664:7;3655:6;3644:9;3640:22;3619:53;:::i;:::-;3609:63;;3565:117;3721:2;3747:53;3792:7;3783:6;3772:9;3768:22;3747:53;:::i;:::-;3737:63;;3692:118;3493:324;;;;;:::o;3823:405::-;3907:6;3956:2;3944:9;3935:7;3931:23;3927:32;3924:2;;;3972:1;3969;3962:12;3924:2;4043:1;4032:9;4028:17;4015:31;4073:18;4065:6;4062:30;4059:2;;;4105:1;4102;4095:12;4059:2;4133:78;4203:7;4194:6;4183:9;4179:22;4133:78;:::i;:::-;4123:88;;3986:235;3914:314;;;;:::o;4234:256::-;4290:6;4339:2;4327:9;4318:7;4314:23;4310:32;4307:2;;;4355:1;4352;4345:12;4307:2;4398:1;4423:50;4465:7;4456:6;4445:9;4441:22;4423:50;:::i;:::-;4413:60;;4369:114;4297:193;;;;:::o;4496:278::-;4563:6;4612:2;4600:9;4591:7;4587:23;4583:32;4580:2;;;4628:1;4625;4618:12;4580:2;4671:1;4696:61;4749:7;4740:6;4729:9;4725:22;4696:61;:::i;:::-;4686:71;;4642:125;4570:204;;;;:::o;4780:596::-;4868:6;4876;4884;4933:2;4921:9;4912:7;4908:23;4904:32;4901:2;;;4949:1;4946;4939:12;4901:2;4992:1;5017:64;5073:7;5064:6;5053:9;5049:22;5017:64;:::i;:::-;5007:74;;4963:128;5130:2;5156:64;5212:7;5203:6;5192:9;5188:22;5156:64;:::i;:::-;5146:74;;5101:129;5269:2;5295:64;5351:7;5342:6;5331:9;5327:22;5295:64;:::i;:::-;5285:74;;5240:129;4891:485;;;;;:::o;5382:179::-;5451:10;5472:46;5514:3;5506:6;5472:46;:::i;:::-;5550:4;5545:3;5541:14;5527:28;;5462:99;;;;:::o;5567:108::-;5644:24;5662:5;5644:24;:::i;:::-;5639:3;5632:37;5622:53;;:::o;5681:118::-;5768:24;5786:5;5768:24;:::i;:::-;5763:3;5756:37;5746:53;;:::o;5835:732::-;5954:3;5983:54;6031:5;5983:54;:::i;:::-;6053:86;6132:6;6127:3;6053:86;:::i;:::-;6046:93;;6163:56;6213:5;6163:56;:::i;:::-;6242:7;6273:1;6258:284;6283:6;6280:1;6277:13;6258:284;;;6359:6;6353:13;6386:63;6445:3;6430:13;6386:63;:::i;:::-;6379:70;;6472:60;6525:6;6472:60;:::i;:::-;6462:70;;6318:224;6305:1;6302;6298:9;6293:14;;6258:284;;;6262:14;6558:3;6551:10;;5959:608;;;;;;;:::o;6573:109::-;6654:21;6669:5;6654:21;:::i;:::-;6649:3;6642:34;6632:50;;:::o;6688:147::-;6783:45;6822:5;6783:45;:::i;:::-;6778:3;6771:58;6761:74;;:::o;6841:364::-;6929:3;6957:39;6990:5;6957:39;:::i;:::-;7012:71;7076:6;7071:3;7012:71;:::i;:::-;7005:78;;7092:52;7137:6;7132:3;7125:4;7118:5;7114:16;7092:52;:::i;:::-;7169:29;7191:6;7169:29;:::i;:::-;7164:3;7160:39;7153:46;;6933:272;;;;;:::o;7211:366::-;7353:3;7374:67;7438:2;7433:3;7374:67;:::i;:::-;7367:74;;7450:93;7539:3;7450:93;:::i;:::-;7568:2;7563:3;7559:12;7552:19;;7357:220;;;:::o;7583:366::-;7725:3;7746:67;7810:2;7805:3;7746:67;:::i;:::-;7739:74;;7822:93;7911:3;7822:93;:::i;:::-;7940:2;7935:3;7931:12;7924:19;;7729:220;;;:::o;7955:366::-;8097:3;8118:67;8182:2;8177:3;8118:67;:::i;:::-;8111:74;;8194:93;8283:3;8194:93;:::i;:::-;8312:2;8307:3;8303:12;8296:19;;8101:220;;;:::o;8327:366::-;8469:3;8490:67;8554:2;8549:3;8490:67;:::i;:::-;8483:74;;8566:93;8655:3;8566:93;:::i;:::-;8684:2;8679:3;8675:12;8668:19;;8473:220;;;:::o;8699:366::-;8841:3;8862:67;8926:2;8921:3;8862:67;:::i;:::-;8855:74;;8938:93;9027:3;8938:93;:::i;:::-;9056:2;9051:3;9047:12;9040:19;;8845:220;;;:::o;9071:366::-;9213:3;9234:67;9298:2;9293:3;9234:67;:::i;:::-;9227:74;;9310:93;9399:3;9310:93;:::i;:::-;9428:2;9423:3;9419:12;9412:19;;9217:220;;;:::o;9443:366::-;9585:3;9606:67;9670:2;9665:3;9606:67;:::i;:::-;9599:74;;9682:93;9771:3;9682:93;:::i;:::-;9800:2;9795:3;9791:12;9784:19;;9589:220;;;:::o;9815:366::-;9957:3;9978:67;10042:2;10037:3;9978:67;:::i;:::-;9971:74;;10054:93;10143:3;10054:93;:::i;:::-;10172:2;10167:3;10163:12;10156:19;;9961:220;;;:::o;10187:366::-;10329:3;10350:67;10414:2;10409:3;10350:67;:::i;:::-;10343:74;;10426:93;10515:3;10426:93;:::i;:::-;10544:2;10539:3;10535:12;10528:19;;10333:220;;;:::o;10559:368::-;10701:3;10722:68;10786:3;10781;10722:68;:::i;:::-;10715:75;;10799:93;10888:3;10799:93;:::i;:::-;10917:3;10912;10908:13;10901:20;;10705:222;;;:::o;10933:366::-;11075:3;11096:67;11160:2;11155:3;11096:67;:::i;:::-;11089:74;;11172:93;11261:3;11172:93;:::i;:::-;11290:2;11285:3;11281:12;11274:19;;11079:220;;;:::o;11305:366::-;11447:3;11468:67;11532:2;11527:3;11468:67;:::i;:::-;11461:74;;11544:93;11633:3;11544:93;:::i;:::-;11662:2;11657:3;11653:12;11646:19;;11451:220;;;:::o;11677:118::-;11764:24;11782:5;11764:24;:::i;:::-;11759:3;11752:37;11742:53;;:::o;11801:112::-;11884:22;11900:5;11884:22;:::i;:::-;11879:3;11872:35;11862:51;;:::o;11919:222::-;12012:4;12050:2;12039:9;12035:18;12027:26;;12063:71;12131:1;12120:9;12116:17;12107:6;12063:71;:::i;:::-;12017:124;;;;:::o;12147:332::-;12268:4;12306:2;12295:9;12291:18;12283:26;;12319:71;12387:1;12376:9;12372:17;12363:6;12319:71;:::i;:::-;12400:72;12468:2;12457:9;12453:18;12444:6;12400:72;:::i;:::-;12273:206;;;;;:::o;12485:332::-;12606:4;12644:2;12633:9;12629:18;12621:26;;12657:71;12725:1;12714:9;12710:17;12701:6;12657:71;:::i;:::-;12738:72;12806:2;12795:9;12791:18;12782:6;12738:72;:::i;:::-;12611:206;;;;;:::o;12823:807::-;13072:4;13110:3;13099:9;13095:19;13087:27;;13124:71;13192:1;13181:9;13177:17;13168:6;13124:71;:::i;:::-;13205:72;13273:2;13262:9;13258:18;13249:6;13205:72;:::i;:::-;13287:80;13363:2;13352:9;13348:18;13339:6;13287:80;:::i;:::-;13377;13453:2;13442:9;13438:18;13429:6;13377:80;:::i;:::-;13467:73;13535:3;13524:9;13520:19;13511:6;13467:73;:::i;:::-;13550;13618:3;13607:9;13603:19;13594:6;13550:73;:::i;:::-;13077:553;;;;;;;;;:::o;13636:210::-;13723:4;13761:2;13750:9;13746:18;13738:26;;13774:65;13836:1;13825:9;13821:17;13812:6;13774:65;:::i;:::-;13728:118;;;;:::o;13852:313::-;13965:4;14003:2;13992:9;13988:18;13980:26;;14052:9;14046:4;14042:20;14038:1;14027:9;14023:17;14016:47;14080:78;14153:4;14144:6;14080:78;:::i;:::-;14072:86;;13970:195;;;;:::o;14171:419::-;14337:4;14375:2;14364:9;14360:18;14352:26;;14424:9;14418:4;14414:20;14410:1;14399:9;14395:17;14388:47;14452:131;14578:4;14452:131;:::i;:::-;14444:139;;14342:248;;;:::o;14596:419::-;14762:4;14800:2;14789:9;14785:18;14777:26;;14849:9;14843:4;14839:20;14835:1;14824:9;14820:17;14813:47;14877:131;15003:4;14877:131;:::i;:::-;14869:139;;14767:248;;;:::o;15021:419::-;15187:4;15225:2;15214:9;15210:18;15202:26;;15274:9;15268:4;15264:20;15260:1;15249:9;15245:17;15238:47;15302:131;15428:4;15302:131;:::i;:::-;15294:139;;15192:248;;;:::o;15446:419::-;15612:4;15650:2;15639:9;15635:18;15627:26;;15699:9;15693:4;15689:20;15685:1;15674:9;15670:17;15663:47;15727:131;15853:4;15727:131;:::i;:::-;15719:139;;15617:248;;;:::o;15871:419::-;16037:4;16075:2;16064:9;16060:18;16052:26;;16124:9;16118:4;16114:20;16110:1;16099:9;16095:17;16088:47;16152:131;16278:4;16152:131;:::i;:::-;16144:139;;16042:248;;;:::o;16296:419::-;16462:4;16500:2;16489:9;16485:18;16477:26;;16549:9;16543:4;16539:20;16535:1;16524:9;16520:17;16513:47;16577:131;16703:4;16577:131;:::i;:::-;16569:139;;16467:248;;;:::o;16721:419::-;16887:4;16925:2;16914:9;16910:18;16902:26;;16974:9;16968:4;16964:20;16960:1;16949:9;16945:17;16938:47;17002:131;17128:4;17002:131;:::i;:::-;16994:139;;16892:248;;;:::o;17146:419::-;17312:4;17350:2;17339:9;17335:18;17327:26;;17399:9;17393:4;17389:20;17385:1;17374:9;17370:17;17363:47;17427:131;17553:4;17427:131;:::i;:::-;17419:139;;17317:248;;;:::o;17571:419::-;17737:4;17775:2;17764:9;17760:18;17752:26;;17824:9;17818:4;17814:20;17810:1;17799:9;17795:17;17788:47;17852:131;17978:4;17852:131;:::i;:::-;17844:139;;17742:248;;;:::o;17996:419::-;18162:4;18200:2;18189:9;18185:18;18177:26;;18249:9;18243:4;18239:20;18235:1;18224:9;18220:17;18213:47;18277:131;18403:4;18277:131;:::i;:::-;18269:139;;18167:248;;;:::o;18421:419::-;18587:4;18625:2;18614:9;18610:18;18602:26;;18674:9;18668:4;18664:20;18660:1;18649:9;18645:17;18638:47;18702:131;18828:4;18702:131;:::i;:::-;18694:139;;18592:248;;;:::o;18846:419::-;19012:4;19050:2;19039:9;19035:18;19027:26;;19099:9;19093:4;19089:20;19085:1;19074:9;19070:17;19063:47;19127:131;19253:4;19127:131;:::i;:::-;19119:139;;19017:248;;;:::o;19271:222::-;19364:4;19402:2;19391:9;19387:18;19379:26;;19415:71;19483:1;19472:9;19468:17;19459:6;19415:71;:::i;:::-;19369:124;;;;:::o;19499:831::-;19762:4;19800:3;19789:9;19785:19;19777:27;;19814:71;19882:1;19871:9;19867:17;19858:6;19814:71;:::i;:::-;19895:80;19971:2;19960:9;19956:18;19947:6;19895:80;:::i;:::-;20022:9;20016:4;20012:20;20007:2;19996:9;19992:18;19985:48;20050:108;20153:4;20144:6;20050:108;:::i;:::-;20042:116;;20168:72;20236:2;20225:9;20221:18;20212:6;20168:72;:::i;:::-;20250:73;20318:3;20307:9;20303:19;20294:6;20250:73;:::i;:::-;19767:563;;;;;;;;:::o;20336:214::-;20425:4;20463:2;20452:9;20448:18;20440:26;;20476:67;20540:1;20529:9;20525:17;20516:6;20476:67;:::i;:::-;20430:120;;;;:::o;20556:129::-;20590:6;20617:20;;:::i;:::-;20607:30;;20646:33;20674:4;20666:6;20646:33;:::i;:::-;20597:88;;;:::o;20691:75::-;20724:6;20757:2;20751:9;20741:19;;20731:35;:::o;20772:311::-;20849:4;20939:18;20931:6;20928:30;20925:2;;;20961:18;;:::i;:::-;20925:2;21011:4;21003:6;20999:17;20991:25;;21071:4;21065;21061:15;21053:23;;20854:229;;;:::o;21089:132::-;21156:4;21179:3;21171:11;;21209:4;21204:3;21200:14;21192:22;;21161:60;;;:::o;21227:114::-;21294:6;21328:5;21322:12;21312:22;;21301:40;;;:::o;21347:99::-;21399:6;21433:5;21427:12;21417:22;;21406:40;;;:::o;21452:113::-;21522:4;21554;21549:3;21545:14;21537:22;;21527:38;;;:::o;21571:184::-;21670:11;21704:6;21699:3;21692:19;21744:4;21739:3;21735:14;21720:29;;21682:73;;;;:::o;21761:169::-;21845:11;21879:6;21874:3;21867:19;21919:4;21914:3;21910:14;21895:29;;21857:73;;;;:::o;21936:305::-;21976:3;21995:20;22013:1;21995:20;:::i;:::-;21990:25;;22029:20;22047:1;22029:20;:::i;:::-;22024:25;;22183:1;22115:66;22111:74;22108:1;22105:81;22102:2;;;22189:18;;:::i;:::-;22102:2;22233:1;22230;22226:9;22219:16;;21980:261;;;;:::o;22247:185::-;22287:1;22304:20;22322:1;22304:20;:::i;:::-;22299:25;;22338:20;22356:1;22338:20;:::i;:::-;22333:25;;22377:1;22367:2;;22382:18;;:::i;:::-;22367:2;22424:1;22421;22417:9;22412:14;;22289:143;;;;:::o;22438:348::-;22478:7;22501:20;22519:1;22501:20;:::i;:::-;22496:25;;22535:20;22553:1;22535:20;:::i;:::-;22530:25;;22723:1;22655:66;22651:74;22648:1;22645:81;22640:1;22633:9;22626:17;22622:105;22619:2;;;22730:18;;:::i;:::-;22619:2;22778:1;22775;22771:9;22760:20;;22486:300;;;;:::o;22792:191::-;22832:4;22852:20;22870:1;22852:20;:::i;:::-;22847:25;;22886:20;22904:1;22886:20;:::i;:::-;22881:25;;22925:1;22922;22919:8;22916:2;;;22930:18;;:::i;:::-;22916:2;22975:1;22972;22968:9;22960:17;;22837:146;;;;:::o;22989:96::-;23026:7;23055:24;23073:5;23055:24;:::i;:::-;23044:35;;23034:51;;;:::o;23091:90::-;23125:7;23168:5;23161:13;23154:21;23143:32;;23133:48;;;:::o;23187:126::-;23224:7;23264:42;23257:5;23253:54;23242:65;;23232:81;;;:::o;23319:77::-;23356:7;23385:5;23374:16;;23364:32;;;:::o;23402:86::-;23437:7;23477:4;23470:5;23466:16;23455:27;;23445:43;;;:::o;23494:121::-;23552:9;23585:24;23603:5;23585:24;:::i;:::-;23572:37;;23562:53;;;:::o;23621:307::-;23689:1;23699:113;23713:6;23710:1;23707:13;23699:113;;;23798:1;23793:3;23789:11;23783:18;23779:1;23774:3;23770:11;23763:39;23735:2;23732:1;23728:10;23723:15;;23699:113;;;23830:6;23827:1;23824:13;23821:2;;;23910:1;23901:6;23896:3;23892:16;23885:27;23821:2;23670:258;;;;:::o;23934:281::-;24017:27;24039:4;24017:27;:::i;:::-;24009:6;24005:40;24147:6;24135:10;24132:22;24111:18;24099:10;24096:34;24093:62;24090:2;;;24158:18;;:::i;:::-;24090:2;24198:10;24194:2;24187:22;23977:238;;;:::o;24221:233::-;24260:3;24283:24;24301:5;24283:24;:::i;:::-;24274:33;;24329:66;24322:5;24319:77;24316:2;;;24399:18;;:::i;:::-;24316:2;24446:1;24439:5;24435:13;24428:20;;24264:190;;;:::o;24460:180::-;24508:77;24505:1;24498:88;24605:4;24602:1;24595:15;24629:4;24626:1;24619:15;24646:180;24694:77;24691:1;24684:88;24791:4;24788:1;24781:15;24815:4;24812:1;24805:15;24832:180;24880:77;24877:1;24870:88;24977:4;24974:1;24967:15;25001:4;24998:1;24991:15;25018:102;25059:6;25110:2;25106:7;25101:2;25094:5;25090:14;25086:28;25076:38;;25066:54;;;:::o;25126:222::-;25266:34;25262:1;25254:6;25250:14;25243:58;25335:5;25330:2;25322:6;25318:15;25311:30;25232:116;:::o;25354:242::-;25494:34;25490:1;25482:6;25478:14;25471:58;25563:25;25558:2;25550:6;25546:15;25539:50;25460:136;:::o;25602:229::-;25742:34;25738:1;25730:6;25726:14;25719:58;25811:12;25806:2;25798:6;25794:15;25787:37;25708:123;:::o;25837:221::-;25977:34;25973:1;25965:6;25961:14;25954:58;26046:4;26041:2;26033:6;26029:15;26022:29;25943:115;:::o;26064:177::-;26204:29;26200:1;26192:6;26188:14;26181:53;26170:71;:::o;26247:220::-;26387:34;26383:1;26375:6;26371:14;26364:58;26456:3;26451:2;26443:6;26439:15;26432:28;26353:114;:::o;26473:182::-;26613:34;26609:1;26601:6;26597:14;26590:58;26579:76;:::o;26661:228::-;26801:34;26797:1;26789:6;26785:14;26778:58;26870:11;26865:2;26857:6;26853:15;26846:36;26767:122;:::o;26895:224::-;27035:34;27031:1;27023:6;27019:14;27012:58;27104:7;27099:2;27091:6;27087:15;27080:32;27001:118;:::o;27125:523::-;27265:34;27261:1;27253:6;27249:14;27242:58;27334:34;27329:2;27321:6;27317:15;27310:59;27403:34;27398:2;27390:6;27386:15;27379:59;27472:34;27467:2;27459:6;27455:15;27448:59;27542:34;27536:3;27528:6;27524:16;27517:60;27612:28;27606:3;27598:6;27594:16;27587:54;27231:417;:::o;27654:223::-;27794:34;27790:1;27782:6;27778:14;27771:58;27863:6;27858:2;27850:6;27846:15;27839:31;27760:117;:::o;27883:173::-;28023:25;28019:1;28011:6;28007:14;28000:49;27989:67;:::o;28062:122::-;28135:24;28153:5;28135:24;:::i;:::-;28128:5;28125:35;28115:2;;28174:1;28171;28164:12;28115:2;28105:79;:::o;28190:116::-;28260:21;28275:5;28260:21;:::i;:::-;28253:5;28250:32;28240:2;;28296:1;28293;28286:12;28240:2;28230:76;:::o;28312:122::-;28385:24;28403:5;28385:24;:::i;:::-;28378:5;28375:35;28365:2;;28424:1;28421;28414:12;28365:2;28355:79;:::o

Swarm Source

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