ETH Price: $3,474.39 (-0.50%)
Gas: 4.94 Gwei

Token

Camel Inu (CAMEL)
 

Overview

Max Total Supply

1,000,000,000 CAMEL

Holders

36

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,832,054.711239243 CAMEL

Value
$0.00
0x0069f94C6Ef196cf54b2f0746dE92D40a83D41A5
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
CAMEL

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-04
*/

/*
    Welcome to $CAMEL - Camel Inu

    Camel Inusymbolises patience, tolerance and endurance 🐪

    Straight out of the desert and from Qatar. We all know it's animal season, so we bring you Camel Inu, a community-driven project with quality tokens, join the community on Telegram.

    $CAMEL Autostaking
    The contract will distribute your rewards generally on a daily basis, but it is completely reliant on your current holding and daily volume.

    Smart anti-bot measurements 🔒

    https://www.camelinutoken.com/

    Portal: https://t.me/CamelInuEntry
*/

pragma solidity 0.8.8;
// SPDX-License-Identifier: UNLICENSED
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 CAMEL 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 constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private constant _name = "Camel Inu";
    string private constant _symbol = "CAMEL";
    uint8 private constant _decimals = 9;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _standardTax;
    address payable private _feeAddrWallet;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = 50000000 * 10**9;
    uint256 private _maxWalletSize = 50000000 * 10**9;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _standardTax = 5; // only active during launch to prevent bots

        emit Transfer(address(0), _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 pure override returns (uint256) {
        return _tTotal;
    }

    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(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");


        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 1;
            _feeAddr2 = _standardTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _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 setStandardTax(uint256 newTax) external onlyOwner{
      require(newTax<_standardTax);
      _standardTax=newTax;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }

    function openTrading() 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;

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    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) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        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 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


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

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        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":[],"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":[{"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setStandardTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006000196200001c919062000428565b6000196200002b91906200048f565b6008556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff02191690831515021790555066b1a2bc2ec5000060105566b1a2bc2ec50000601155348015620000a257600080fd5b506000620000b5620003be60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000163620003be60201b60201c565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460026000620001ba620003be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200020e620003c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005600c8190555062000349620003be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620003b09190620004db565b60405180910390a3620004f8565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200043582620003ef565b91506200044283620003ef565b925082620004555762000454620003f9565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200049c82620003ef565b9150620004a983620003ef565b925082821015620004bf57620004be62000460565b5b828203905092915050565b620004d581620003ef565b82525050565b6000602082019050620004f26000830184620004ca565b92915050565b61305280620005086000396000f3fe6080604052600436106101025760003560e01c8063715018a61161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b8063715018a614610286578063751039fc1461029d578063843f7be2146102b45780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b604051610130919061220b565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b91906122c6565b610418565b60405161016d9190612321565b60405180910390f35b34801561018257600080fd5b5061018b610436565b604051610198919061234b565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612366565b610446565b6040516101d59190612321565b60405180910390f35b3480156101ea57600080fd5b506101f361051f565b60405161020091906123d5565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b919061241c565b610528565b005b34801561023e57600080fd5b506102476105da565b005b34801561025557600080fd5b50610270600480360381019061026b9190612449565b61064c565b60405161027d919061234b565b60405180910390f35b34801561029257600080fd5b5061029b61069d565b005b3480156102a957600080fd5b506102b26107f0565b005b3480156102c057600080fd5b506102db60048036038101906102d69190612476565b6108a5565b005b3480156102e957600080fd5b506102f2610952565b6040516102ff91906124b2565b60405180910390f35b34801561031457600080fd5b5061031d61097b565b60405161032a919061220b565b60405180910390f35b34801561033f57600080fd5b5061035a600480360381019061035591906122c6565b6109b8565b6040516103679190612321565b60405180910390f35b34801561037c57600080fd5b506103856109d6565b005b34801561039357600080fd5b5061039c610a50565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906124cd565b610f9c565b6040516103d2919061234b565b60405180910390f35b60606040518060400160405280600981526020017f43616d656c20496e750000000000000000000000000000000000000000000000815250905090565b600061042c610425611023565b848461102b565b6001905092915050565b6000670de0b6b3a7640000905090565b60006104538484846111f6565b6105148461045f611023565b61050f85604051806060016040528060288152602001612ff560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c5611023565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116f99092919063ffffffff16565b61102b565b600190509392505050565b60006009905090565b610530611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b490612559565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061b611023565b73ffffffffffffffffffffffffffffffffffffffff161461063b57600080fd5b60004790506106498161175d565b50565b6000610696600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c9565b9050919050565b6106a5611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072990612559565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f8611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612559565b60405180910390fd5b670de0b6b3a7640000601081905550670de0b6b3a7640000601181905550565b6108ad611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093190612559565b60405180910390fd5b600c54811061094857600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f43414d454c000000000000000000000000000000000000000000000000000000815250905090565b60006109cc6109c5611023565b84846111f6565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a17611023565b73ffffffffffffffffffffffffffffffffffffffff1614610a3757600080fd5b6000610a423061064c565b9050610a4d81611837565b50565b610a58611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc90612559565b60405180910390fd5b600f60149054906101000a900460ff1615610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c906125c5565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc430600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a764000061102b565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c0a57600080fd5b505afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4291906125fa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca457600080fd5b505afa158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc91906125fa565b6040518363ffffffff1660e01b8152600401610cf9929190612627565b602060405180830381600087803b158015610d1357600080fd5b505af1158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b91906125fa565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dd43061064c565b600080610ddf610952565b426040518863ffffffff1660e01b8152600401610e0196959493929190612695565b6060604051808303818588803b158015610e1a57600080fd5b505af1158015610e2e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e53919061270b565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f4692919061275e565b602060405180830381600087803b158015610f6057600080fd5b505af1158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f98919061279c565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561109b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110929061283b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561110b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611102906128cd565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111e9919061234b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125d9061295f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cd906129f1565b60405180910390fd5b60008111611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090612a83565b60405180910390fd5b611321610952565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561138f575061135f610952565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116d857600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114385750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61144157600080fd5b6001600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114fd5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115535750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561156b5750600f60179054906101000a900460ff165b1561160e576010548111156115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac90612aef565b60405180910390fd5b601154816115c28461064c565b6115cc9190612b3e565b111561160d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160490612be0565b60405180910390fd5b5b60006116193061064c565b9050600f60159054906101000a900460ff161580156116865750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561169e5750600f60169054906101000a900460ff165b80156116aa5750600081115b156116d2576116b881611837565b600047905060008111156116d0576116cf4761175d565b5b505b506116e9565b6000600a819055506000600b819055505b6116f4838383611abf565b505050565b6000838311158290611741576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611738919061220b565b60405180910390fd5b50600083856117509190612c00565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156117c5573d6000803e3d6000fd5b5050565b6000600854821115611810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180790612ca6565b60405180910390fd5b600061181a611acf565b905061182f8184611afa90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561186f5761186e612cc6565b5b60405190808252806020026020018201604052801561189d5781602001602082028036833780820191505090505b50905030816000815181106118b5576118b4612cf5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561195757600080fd5b505afa15801561196b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198f91906125fa565b816001815181106119a3576119a2612cf5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a0a30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461102b565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a6e959493929190612de2565b600060405180830381600087803b158015611a8857600080fd5b505af1158015611a9c573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611aca838383611b44565b505050565b6000806000611adc611d0f565b91509150611af38183611afa90919063ffffffff16565b9250505090565b6000611b3c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d6e565b905092915050565b600080600080600080611b5687611dd1565b955095509550955095509550611bb486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c4985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c9581611ee1565b611c9f8483611f9e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cfc919061234b565b60405180910390a3505050505050505050565b600080600060085490506000670de0b6b3a76400009050611d43670de0b6b3a7640000600854611afa90919063ffffffff16565b821015611d6157600854670de0b6b3a7640000935093505050611d6a565b81819350935050505b9091565b60008083118290611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac919061220b565b60405180910390fd5b5060008385611dc49190612e6b565b9050809150509392505050565b6000806000806000806000806000611dee8a600a54600b54611fd8565b9250925092506000611dfe611acf565b90506000806000611e118e87878761206e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611e7b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116f9565b905092915050565b6000808284611e929190612b3e565b905083811015611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece90612ee8565b60405180910390fd5b8091505092915050565b6000611eeb611acf565b90506000611f0282846120f790919063ffffffff16565b9050611f5681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611fb382600854611e3990919063ffffffff16565b600881905550611fce81600954611e8390919063ffffffff16565b6009819055505050565b6000806000806120046064611ff6888a6120f790919063ffffffff16565b611afa90919063ffffffff16565b9050600061202e6064612020888b6120f790919063ffffffff16565b611afa90919063ffffffff16565b9050600061205782612049858c611e3990919063ffffffff16565b611e3990919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061208785896120f790919063ffffffff16565b9050600061209e86896120f790919063ffffffff16565b905060006120b587896120f790919063ffffffff16565b905060006120de826120d08587611e3990919063ffffffff16565b611e3990919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561210a576000905061216c565b600082846121189190612f08565b90508284826121279190612e6b565b14612167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215e90612fd4565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121ac578082015181840152602081019050612191565b838111156121bb576000848401525b50505050565b6000601f19601f8301169050919050565b60006121dd82612172565b6121e7818561217d565b93506121f781856020860161218e565b612200816121c1565b840191505092915050565b6000602082019050818103600083015261222581846121d2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061225d82612232565b9050919050565b61226d81612252565b811461227857600080fd5b50565b60008135905061228a81612264565b92915050565b6000819050919050565b6122a381612290565b81146122ae57600080fd5b50565b6000813590506122c08161229a565b92915050565b600080604083850312156122dd576122dc61222d565b5b60006122eb8582860161227b565b92505060206122fc858286016122b1565b9150509250929050565b60008115159050919050565b61231b81612306565b82525050565b60006020820190506123366000830184612312565b92915050565b61234581612290565b82525050565b6000602082019050612360600083018461233c565b92915050565b60008060006060848603121561237f5761237e61222d565b5b600061238d8682870161227b565b935050602061239e8682870161227b565b92505060406123af868287016122b1565b9150509250925092565b600060ff82169050919050565b6123cf816123b9565b82525050565b60006020820190506123ea60008301846123c6565b92915050565b6123f981612306565b811461240457600080fd5b50565b600081359050612416816123f0565b92915050565b6000602082840312156124325761243161222d565b5b600061244084828501612407565b91505092915050565b60006020828403121561245f5761245e61222d565b5b600061246d8482850161227b565b91505092915050565b60006020828403121561248c5761248b61222d565b5b600061249a848285016122b1565b91505092915050565b6124ac81612252565b82525050565b60006020820190506124c760008301846124a3565b92915050565b600080604083850312156124e4576124e361222d565b5b60006124f28582860161227b565b92505060206125038582860161227b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061254360208361217d565b915061254e8261250d565b602082019050919050565b6000602082019050818103600083015261257281612536565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006125af60178361217d565b91506125ba82612579565b602082019050919050565b600060208201905081810360008301526125de816125a2565b9050919050565b6000815190506125f481612264565b92915050565b6000602082840312156126105761260f61222d565b5b600061261e848285016125e5565b91505092915050565b600060408201905061263c60008301856124a3565b61264960208301846124a3565b9392505050565b6000819050919050565b6000819050919050565b600061267f61267a61267584612650565b61265a565b612290565b9050919050565b61268f81612664565b82525050565b600060c0820190506126aa60008301896124a3565b6126b7602083018861233c565b6126c46040830187612686565b6126d16060830186612686565b6126de60808301856124a3565b6126eb60a083018461233c565b979650505050505050565b6000815190506127058161229a565b92915050565b6000806000606084860312156127245761272361222d565b5b6000612732868287016126f6565b9350506020612743868287016126f6565b9250506040612754868287016126f6565b9150509250925092565b600060408201905061277360008301856124a3565b612780602083018461233c565b9392505050565b600081519050612796816123f0565b92915050565b6000602082840312156127b2576127b161222d565b5b60006127c084828501612787565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061282560248361217d565b9150612830826127c9565b604082019050919050565b6000602082019050818103600083015261285481612818565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006128b760228361217d565b91506128c28261285b565b604082019050919050565b600060208201905081810360008301526128e6816128aa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061294960258361217d565b9150612954826128ed565b604082019050919050565b600060208201905081810360008301526129788161293c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006129db60238361217d565b91506129e68261297f565b604082019050919050565b60006020820190508181036000830152612a0a816129ce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612a6d60298361217d565b9150612a7882612a11565b604082019050919050565b60006020820190508181036000830152612a9c81612a60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ad960198361217d565b9150612ae482612aa3565b602082019050919050565b60006020820190508181036000830152612b0881612acc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b4982612290565b9150612b5483612290565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b8957612b88612b0f565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612bca601a8361217d565b9150612bd582612b94565b602082019050919050565b60006020820190508181036000830152612bf981612bbd565b9050919050565b6000612c0b82612290565b9150612c1683612290565b925082821015612c2957612c28612b0f565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612c90602a8361217d565b9150612c9b82612c34565b604082019050919050565b60006020820190508181036000830152612cbf81612c83565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d5981612252565b82525050565b6000612d6b8383612d50565b60208301905092915050565b6000602082019050919050565b6000612d8f82612d24565b612d998185612d2f565b9350612da483612d40565b8060005b83811015612dd5578151612dbc8882612d5f565b9750612dc783612d77565b925050600181019050612da8565b5085935050505092915050565b600060a082019050612df7600083018861233c565b612e046020830187612686565b8181036040830152612e168186612d84565b9050612e2560608301856124a3565b612e32608083018461233c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e7682612290565b9150612e8183612290565b925082612e9157612e90612e3c565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612ed2601b8361217d565b9150612edd82612e9c565b602082019050919050565b60006020820190508181036000830152612f0181612ec5565b9050919050565b6000612f1382612290565b9150612f1e83612290565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f5757612f56612b0f565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fbe60218361217d565b9150612fc982612f62565b604082019050919050565b60006020820190508181036000830152612fed81612fb1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b365a71e871d92d2a3d9fdae0f1c7104abe6ae62a7d216d1a68c38a6b4cc3d0364736f6c63430008080033

Deployed Bytecode

0x6080604052600436106101025760003560e01c8063715018a61161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b8063715018a614610286578063751039fc1461029d578063843f7be2146102b45780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b604051610130919061220b565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b91906122c6565b610418565b60405161016d9190612321565b60405180910390f35b34801561018257600080fd5b5061018b610436565b604051610198919061234b565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612366565b610446565b6040516101d59190612321565b60405180910390f35b3480156101ea57600080fd5b506101f361051f565b60405161020091906123d5565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b919061241c565b610528565b005b34801561023e57600080fd5b506102476105da565b005b34801561025557600080fd5b50610270600480360381019061026b9190612449565b61064c565b60405161027d919061234b565b60405180910390f35b34801561029257600080fd5b5061029b61069d565b005b3480156102a957600080fd5b506102b26107f0565b005b3480156102c057600080fd5b506102db60048036038101906102d69190612476565b6108a5565b005b3480156102e957600080fd5b506102f2610952565b6040516102ff91906124b2565b60405180910390f35b34801561031457600080fd5b5061031d61097b565b60405161032a919061220b565b60405180910390f35b34801561033f57600080fd5b5061035a600480360381019061035591906122c6565b6109b8565b6040516103679190612321565b60405180910390f35b34801561037c57600080fd5b506103856109d6565b005b34801561039357600080fd5b5061039c610a50565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906124cd565b610f9c565b6040516103d2919061234b565b60405180910390f35b60606040518060400160405280600981526020017f43616d656c20496e750000000000000000000000000000000000000000000000815250905090565b600061042c610425611023565b848461102b565b6001905092915050565b6000670de0b6b3a7640000905090565b60006104538484846111f6565b6105148461045f611023565b61050f85604051806060016040528060288152602001612ff560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c5611023565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116f99092919063ffffffff16565b61102b565b600190509392505050565b60006009905090565b610530611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b490612559565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061b611023565b73ffffffffffffffffffffffffffffffffffffffff161461063b57600080fd5b60004790506106498161175d565b50565b6000610696600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c9565b9050919050565b6106a5611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072990612559565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f8611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612559565b60405180910390fd5b670de0b6b3a7640000601081905550670de0b6b3a7640000601181905550565b6108ad611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093190612559565b60405180910390fd5b600c54811061094857600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f43414d454c000000000000000000000000000000000000000000000000000000815250905090565b60006109cc6109c5611023565b84846111f6565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a17611023565b73ffffffffffffffffffffffffffffffffffffffff1614610a3757600080fd5b6000610a423061064c565b9050610a4d81611837565b50565b610a58611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc90612559565b60405180910390fd5b600f60149054906101000a900460ff1615610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c906125c5565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc430600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a764000061102b565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c0a57600080fd5b505afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4291906125fa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca457600080fd5b505afa158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc91906125fa565b6040518363ffffffff1660e01b8152600401610cf9929190612627565b602060405180830381600087803b158015610d1357600080fd5b505af1158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b91906125fa565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dd43061064c565b600080610ddf610952565b426040518863ffffffff1660e01b8152600401610e0196959493929190612695565b6060604051808303818588803b158015610e1a57600080fd5b505af1158015610e2e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e53919061270b565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f4692919061275e565b602060405180830381600087803b158015610f6057600080fd5b505af1158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f98919061279c565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561109b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110929061283b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561110b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611102906128cd565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111e9919061234b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125d9061295f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cd906129f1565b60405180910390fd5b60008111611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090612a83565b60405180910390fd5b611321610952565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561138f575061135f610952565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116d857600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114385750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61144157600080fd5b6001600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114fd5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115535750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561156b5750600f60179054906101000a900460ff165b1561160e576010548111156115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac90612aef565b60405180910390fd5b601154816115c28461064c565b6115cc9190612b3e565b111561160d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160490612be0565b60405180910390fd5b5b60006116193061064c565b9050600f60159054906101000a900460ff161580156116865750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561169e5750600f60169054906101000a900460ff165b80156116aa5750600081115b156116d2576116b881611837565b600047905060008111156116d0576116cf4761175d565b5b505b506116e9565b6000600a819055506000600b819055505b6116f4838383611abf565b505050565b6000838311158290611741576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611738919061220b565b60405180910390fd5b50600083856117509190612c00565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156117c5573d6000803e3d6000fd5b5050565b6000600854821115611810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180790612ca6565b60405180910390fd5b600061181a611acf565b905061182f8184611afa90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561186f5761186e612cc6565b5b60405190808252806020026020018201604052801561189d5781602001602082028036833780820191505090505b50905030816000815181106118b5576118b4612cf5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561195757600080fd5b505afa15801561196b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198f91906125fa565b816001815181106119a3576119a2612cf5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a0a30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461102b565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a6e959493929190612de2565b600060405180830381600087803b158015611a8857600080fd5b505af1158015611a9c573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611aca838383611b44565b505050565b6000806000611adc611d0f565b91509150611af38183611afa90919063ffffffff16565b9250505090565b6000611b3c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d6e565b905092915050565b600080600080600080611b5687611dd1565b955095509550955095509550611bb486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c4985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c9581611ee1565b611c9f8483611f9e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cfc919061234b565b60405180910390a3505050505050505050565b600080600060085490506000670de0b6b3a76400009050611d43670de0b6b3a7640000600854611afa90919063ffffffff16565b821015611d6157600854670de0b6b3a7640000935093505050611d6a565b81819350935050505b9091565b60008083118290611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac919061220b565b60405180910390fd5b5060008385611dc49190612e6b565b9050809150509392505050565b6000806000806000806000806000611dee8a600a54600b54611fd8565b9250925092506000611dfe611acf565b90506000806000611e118e87878761206e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611e7b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116f9565b905092915050565b6000808284611e929190612b3e565b905083811015611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece90612ee8565b60405180910390fd5b8091505092915050565b6000611eeb611acf565b90506000611f0282846120f790919063ffffffff16565b9050611f5681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611fb382600854611e3990919063ffffffff16565b600881905550611fce81600954611e8390919063ffffffff16565b6009819055505050565b6000806000806120046064611ff6888a6120f790919063ffffffff16565b611afa90919063ffffffff16565b9050600061202e6064612020888b6120f790919063ffffffff16565b611afa90919063ffffffff16565b9050600061205782612049858c611e3990919063ffffffff16565b611e3990919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061208785896120f790919063ffffffff16565b9050600061209e86896120f790919063ffffffff16565b905060006120b587896120f790919063ffffffff16565b905060006120de826120d08587611e3990919063ffffffff16565b611e3990919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561210a576000905061216c565b600082846121189190612f08565b90508284826121279190612e6b565b14612167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215e90612fd4565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121ac578082015181840152602081019050612191565b838111156121bb576000848401525b50505050565b6000601f19601f8301169050919050565b60006121dd82612172565b6121e7818561217d565b93506121f781856020860161218e565b612200816121c1565b840191505092915050565b6000602082019050818103600083015261222581846121d2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061225d82612232565b9050919050565b61226d81612252565b811461227857600080fd5b50565b60008135905061228a81612264565b92915050565b6000819050919050565b6122a381612290565b81146122ae57600080fd5b50565b6000813590506122c08161229a565b92915050565b600080604083850312156122dd576122dc61222d565b5b60006122eb8582860161227b565b92505060206122fc858286016122b1565b9150509250929050565b60008115159050919050565b61231b81612306565b82525050565b60006020820190506123366000830184612312565b92915050565b61234581612290565b82525050565b6000602082019050612360600083018461233c565b92915050565b60008060006060848603121561237f5761237e61222d565b5b600061238d8682870161227b565b935050602061239e8682870161227b565b92505060406123af868287016122b1565b9150509250925092565b600060ff82169050919050565b6123cf816123b9565b82525050565b60006020820190506123ea60008301846123c6565b92915050565b6123f981612306565b811461240457600080fd5b50565b600081359050612416816123f0565b92915050565b6000602082840312156124325761243161222d565b5b600061244084828501612407565b91505092915050565b60006020828403121561245f5761245e61222d565b5b600061246d8482850161227b565b91505092915050565b60006020828403121561248c5761248b61222d565b5b600061249a848285016122b1565b91505092915050565b6124ac81612252565b82525050565b60006020820190506124c760008301846124a3565b92915050565b600080604083850312156124e4576124e361222d565b5b60006124f28582860161227b565b92505060206125038582860161227b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061254360208361217d565b915061254e8261250d565b602082019050919050565b6000602082019050818103600083015261257281612536565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006125af60178361217d565b91506125ba82612579565b602082019050919050565b600060208201905081810360008301526125de816125a2565b9050919050565b6000815190506125f481612264565b92915050565b6000602082840312156126105761260f61222d565b5b600061261e848285016125e5565b91505092915050565b600060408201905061263c60008301856124a3565b61264960208301846124a3565b9392505050565b6000819050919050565b6000819050919050565b600061267f61267a61267584612650565b61265a565b612290565b9050919050565b61268f81612664565b82525050565b600060c0820190506126aa60008301896124a3565b6126b7602083018861233c565b6126c46040830187612686565b6126d16060830186612686565b6126de60808301856124a3565b6126eb60a083018461233c565b979650505050505050565b6000815190506127058161229a565b92915050565b6000806000606084860312156127245761272361222d565b5b6000612732868287016126f6565b9350506020612743868287016126f6565b9250506040612754868287016126f6565b9150509250925092565b600060408201905061277360008301856124a3565b612780602083018461233c565b9392505050565b600081519050612796816123f0565b92915050565b6000602082840312156127b2576127b161222d565b5b60006127c084828501612787565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061282560248361217d565b9150612830826127c9565b604082019050919050565b6000602082019050818103600083015261285481612818565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006128b760228361217d565b91506128c28261285b565b604082019050919050565b600060208201905081810360008301526128e6816128aa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061294960258361217d565b9150612954826128ed565b604082019050919050565b600060208201905081810360008301526129788161293c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006129db60238361217d565b91506129e68261297f565b604082019050919050565b60006020820190508181036000830152612a0a816129ce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612a6d60298361217d565b9150612a7882612a11565b604082019050919050565b60006020820190508181036000830152612a9c81612a60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ad960198361217d565b9150612ae482612aa3565b602082019050919050565b60006020820190508181036000830152612b0881612acc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b4982612290565b9150612b5483612290565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b8957612b88612b0f565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612bca601a8361217d565b9150612bd582612b94565b602082019050919050565b60006020820190508181036000830152612bf981612bbd565b9050919050565b6000612c0b82612290565b9150612c1683612290565b925082821015612c2957612c28612b0f565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612c90602a8361217d565b9150612c9b82612c34565b604082019050919050565b60006020820190508181036000830152612cbf81612c83565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d5981612252565b82525050565b6000612d6b8383612d50565b60208301905092915050565b6000602082019050919050565b6000612d8f82612d24565b612d998185612d2f565b9350612da483612d40565b8060005b83811015612dd5578151612dbc8882612d5f565b9750612dc783612d77565b925050600181019050612da8565b5085935050505092915050565b600060a082019050612df7600083018861233c565b612e046020830187612686565b8181036040830152612e168186612d84565b9050612e2560608301856124a3565b612e32608083018461233c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e7682612290565b9150612e8183612290565b925082612e9157612e90612e3c565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612ed2601b8361217d565b9150612edd82612e9c565b602082019050919050565b60006020820190508181036000830152612f0181612ec5565b9050919050565b6000612f1382612290565b9150612f1e83612290565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f5757612f56612b0f565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fbe60218361217d565b9150612fc982612f62565b604082019050919050565b60006020820190508181036000830152612fed81612fb1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b365a71e871d92d2a3d9fdae0f1c7104abe6ae62a7d216d1a68c38a6b4cc3d0364736f6c63430008080033

Deployed Bytecode Sourcemap

4104:10025:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5900:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6752:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6177:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6921:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6086:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7242:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12244:193;;;;;;;;;;;;;:::i;:::-;;6280:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3185:148;;;;;;;;;;;;;:::i;:::-;;9970:118;;;;;;;;;;;;;:::i;:::-;;9831:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2971:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5991:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6426:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12042:194;;;;;;;;;;;;;:::i;:::-;;10200:773;;;;;;;;;;;;;:::i;:::-;;6601:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5900:83;5937:13;5970:5;;;;;;;;;;;;;;;;;5963:12;;5900:83;:::o;6752:161::-;6827:4;6844:39;6853:12;:10;:12::i;:::-;6867:7;6876:6;6844:8;:39::i;:::-;6901:4;6894:11;;6752:161;;;;:::o;6177:95::-;6230:7;4602:18;6250:14;;6177:95;:::o;6921:313::-;7019:4;7036:36;7046:6;7054:9;7065:6;7036:9;:36::i;:::-;7083:121;7092:6;7100:12;:10;:12::i;:::-;7114:89;7152:6;7114:89;;;;;;;;;;;;;;;;;:11;:19;7126:6;7114:19;;;;;;;;;;;;;;;:33;7134:12;:10;:12::i;:::-;7114:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7083:8;:121::i;:::-;7222:4;7215:11;;6921:313;;;;;:::o;6086:83::-;6127:5;4851:1;6145:16;;6086:83;:::o;7242:103::-;3108:12;:10;:12::i;:::-;3098:22;;:6;;;;;;;;;;:22;;;3090:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7332:5:::1;7314:15;;:23;;;;;;;;;;;;;;;;;;7242:103:::0;:::o;12244:193::-;12310:14;;;;;;;;;;;12294:30;;:12;:10;:12::i;:::-;:30;;;12286:39;;;;;;12336:26;12365:21;12336:50;;12397:32;12410:18;12397:12;:32::i;:::-;12275:162;12244:193::o;6280:138::-;6346:7;6373:37;6393:7;:16;6401:7;6393:16;;;;;;;;;;;;;;;;6373:19;:37::i;:::-;6366:44;;6280:138;;;:::o;3185:148::-;3108:12;:10;:12::i;:::-;3098:22;;:6;;;;;;;;;;:22;;;3090:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3292:1:::1;3255:40;;3276:6;::::0;::::1;;;;;;;;3255:40;;;;;;;;;;;;3323:1;3306:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3185:148::o:0;9970:118::-;3108:12;:10;:12::i;:::-;3098:22;;:6;;;;;;;;;;:22;;;3090:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4602:18:::1;10023:12;:22;;;;4602:18;10056:14;:24;;;;9970:118::o:0;9831:131::-;3108:12;:10;:12::i;:::-;3098:22;;:6;;;;;;;;;;:22;;;3090:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9913:12:::1;;9906:6;:19;9898:28;;;::::0;::::1;;9948:6;9935:12;:19;;;;9831:131:::0;:::o;2971:79::-;3009:7;3036:6;;;;;;;;;;;3029:13;;2971:79;:::o;5991:87::-;6030:13;6063:7;;;;;;;;;;;;;;;;;6056:14;;5991:87;:::o;6426:167::-;6504:4;6521:42;6531:12;:10;:12::i;:::-;6545:9;6556:6;6521:9;:42::i;:::-;6581:4;6574:11;;6426:167;;;;:::o;12042:194::-;12108:14;;;;;;;;;;;12092:30;;:12;:10;:12::i;:::-;:30;;;12084:39;;;;;;12134:23;12160:24;12178:4;12160:9;:24::i;:::-;12134:50;;12195:33;12212:15;12195:16;:33::i;:::-;12073:163;12042:194::o;10200:773::-;3108:12;:10;:12::i;:::-;3098:22;;:6;;;;;;;;;;:22;;;3090:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10264:11:::1;;;;;;;;;;;10263:12;10255:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10313:35;10370:42;10313:100;;10442:16;10424:15;;:34;;;;;;;;;;;;;;;;;;10469:58;10486:4;10501:15;;;;;;;;;;;4602:18;10469:8;:58::i;:::-;10572:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10554:56;;;10619:4;10626:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10554:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10538:13;;:112;;;;;;;;;;;;;;;;;;10661:15;;;;;;;;;;;:31;;;10700:21;10731:4;10737:24;10755:4;10737:9;:24::i;:::-;10762:1;10764::::0;10766:7:::1;:5;:7::i;:::-;10774:15;10661:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10815:4;10801:11;;:18;;;;;;;;;;;;;;;;;;10848:4;10830:15;;:22;;;;;;;;;;;;;;;;;;10879:4;10865:11;;:18;;;;;;;;;;;;;;;;;;10901:13;;;;;;;;;;;10894:29;;;10932:15;;;;;;;;;;;10950:14;10894:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10244:729;10200:773::o:0;6601:143::-;6682:7;6709:11;:18;6721:5;6709:18;;;;;;;;;;;;;;;:27;6728:7;6709:27;;;;;;;;;;;;;;;;6702:34;;6601:143;;;;:::o;689:98::-;742:7;769:10;762:17;;689:98;:::o;7615:335::-;7725:1;7708:19;;:5;:19;;;;7700:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7806:1;7787:21;;:7;:21;;;;7779:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7888:6;7858:11;:18;7870:5;7858:18;;;;;;;;;;;;;;;:27;7877:7;7858:27;;;;;;;;;;;;;;;:36;;;;7926:7;7910:32;;7919:5;7910:32;;;7935:6;7910:32;;;;;;:::i;:::-;;;;;;;;7615:335;;;:::o;7958:1374::-;8062:1;8046:18;;:4;:18;;;;8038:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8139:1;8125:16;;:2;:16;;;;8117:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8209:1;8200:6;:10;8192:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8283:7;:5;:7::i;:::-;8275:15;;:4;:15;;;;:32;;;;;8300:7;:5;:7::i;:::-;8294:13;;:2;:13;;;;8275:32;8271:1011;;;8333:4;:10;8338:4;8333:10;;;;;;;;;;;;;;;;;;;;;;;;;8332:11;:24;;;;;8348:4;:8;8353:2;8348:8;;;;;;;;;;;;;;;;;;;;;;;;;8347:9;8332:24;8324:33;;;;;;8384:1;8372:9;:13;;;;8412:12;;8400:9;:24;;;;8451:13;;;;;;;;;;;8443:21;;:4;:21;;;:55;;;;;8482:15;;;;;;;;;;;8468:30;;:2;:30;;;;8443:55;:83;;;;;8504:18;:22;8523:2;8504:22;;;;;;;;;;;;;;;;;;;;;;;;;8502:24;8443:83;:102;;;;;8530:15;;;;;;;;;;;8443:102;8439:332;;;8613:12;;8603:6;:22;;8595:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8708:14;;8698:6;8682:13;8692:2;8682:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8674:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8439:332;8789:28;8820:24;8838:4;8820:9;:24::i;:::-;8789:55;;8864:6;;;;;;;;;;;8863:7;:32;;;;;8882:13;;;;;;;;;;;8874:21;;:4;:21;;;;8863:32;:47;;;;;8899:11;;;;;;;;;;;8863:47;:73;;;;;8935:1;8914:20;:22;8863:73;8859:344;;;8957:38;8974:20;8957:16;:38::i;:::-;9014:26;9043:21;9014:50;;9107:1;9086:18;:22;9083:105;;;9133:35;9146:21;9133:12;:35::i;:::-;9083:105;8938:265;8859:344;8309:905;8271:1011;;;9243:1;9231:9;:13;;;;9269:1;9257:9;:13;;;;8271:1011;9294:30;9309:4;9314:2;9317:6;9294:14;:30::i;:::-;7958:1374;;;:::o;1826:190::-;1912:7;1945:1;1940;:6;;1948:12;1932:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1972:9;1988:1;1984;:5;;;;:::i;:::-;1972:17;;2007:1;2000:8;;;1826:190;;;;;:::o;10096:96::-;10153:14;;;;;;;;;;;:23;;:31;10177:6;10153:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10096:96;:::o;7353:254::-;7420:7;7459;;7448;:18;;7440:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7524:19;7547:10;:8;:10::i;:::-;7524:33;;7575:24;7587:11;7575:7;:11;;:24;;;;:::i;:::-;7568:31;;;7353:254;;;:::o;9340:483::-;5440:4;5431:6;;:13;;;;;;;;;;;;;;;;;;9418:21:::1;9456:1;9442:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9418:40;;9487:4;9469;9474:1;9469:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9513:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9503:4;9508:1;9503:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9546:62;9563:4;9578:15;;;;;;;;;;;9596:11;9546:8;:62::i;:::-;9619:15;;;;;;;;;;;:66;;;9700:11;9726:1;9742:4;9769;9789:15;9619:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9407:416;5476:5:::0;5467:6;;:14;;;;;;;;;;;;;;;;;;9340:483;:::o;10981:146::-;11075:44;11093:6;11101:9;11112:6;11075:17;:44::i;:::-;10981:146;;;:::o;13699:163::-;13740:7;13761:15;13778;13797:19;:17;:19::i;:::-;13760:56;;;;13834:20;13846:7;13834;:11;;:20;;;;:::i;:::-;13827:27;;;;13699:163;:::o;2278:132::-;2336:7;2363:39;2367:1;2370;2363:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2356:46;;2278:132;;;;:::o;11135:487::-;11234:15;11251:23;11276:12;11290:23;11315:12;11329:13;11346:19;11357:7;11346:10;:19::i;:::-;11233:132;;;;;;;;;;;;11394:28;11414:7;11394;:15;11402:6;11394:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11376:7;:15;11384:6;11376:15;;;;;;;;;;;;;;;:46;;;;11454:39;11477:15;11454:7;:18;11462:9;11454:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11433:7;:18;11441:9;11433:18;;;;;;;;;;;;;;;:60;;;;11504:16;11514:5;11504:9;:16::i;:::-;11531:23;11543:4;11549;11531:11;:23::i;:::-;11587:9;11570:44;;11579:6;11570:44;;;11598:15;11570:44;;;;;;:::i;:::-;;;;;;;;11222:400;;;;;;11135:487;;;:::o;13870:256::-;13920:7;13929;13949:15;13967:7;;13949:25;;13985:15;4602:18;13985:25;;14035:20;4602:18;14035:7;;:11;;:20;;;;:::i;:::-;14025:7;:30;14021:61;;;14065:7;;4602:18;14057:25;;;;;;;;14021:61;14101:7;14110;14093:25;;;;;;13870:256;;;:::o;2418:189::-;2504:7;2536:1;2532;:5;2539:12;2524:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2563:9;2579:1;2575;:5;;;;:::i;:::-;2563:17;;2598:1;2591:8;;;2418:189;;;;;:::o;12447:471::-;12506:7;12515;12524;12533;12542;12551;12572:23;12597:12;12611:13;12628:42;12640:7;12649:9;;12660;;12628:11;:42::i;:::-;12571:99;;;;;;12681:19;12704:10;:8;:10::i;:::-;12681:33;;12726:15;12743:23;12768:12;12784:46;12796:7;12805:4;12811:5;12818:11;12784;:46::i;:::-;12725:105;;;;;;12849:7;12858:15;12875:4;12881:15;12898:4;12904:5;12841:69;;;;;;;;;;;;;;;;;;;12447:471;;;;;;;:::o;1682:136::-;1740:7;1767:43;1771:1;1774;1767:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1760:50;;1682:136;;;;:::o;1495:179::-;1553:7;1573:9;1589:1;1585;:5;;;;:::i;:::-;1573:17;;1614:1;1609;:6;;1601:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1665:1;1658:8;;;1495:179;;;;:::o;11630:212::-;11683:19;11706:10;:8;:10::i;:::-;11683:33;;11727:13;11743:22;11753:11;11743:5;:9;;:22;;;;:::i;:::-;11727:38;;11801:33;11828:5;11801:7;:22;11817:4;11801:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11776:7;:22;11792:4;11776:22;;;;;;;;;;;;;;;:58;;;;11672:170;;11630:212;:::o;11850:147::-;11928:17;11940:4;11928:7;;:11;;:17;;;;:::i;:::-;11918:7;:27;;;;11969:20;11984:4;11969:10;;:14;;:20;;;;:::i;:::-;11956:10;:33;;;;11850:147;;:::o;12926:351::-;13019:7;13028;13037;13057:12;13072:28;13096:3;13072:19;13084:6;13072:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13057:43;;13111:13;13127:29;13152:3;13127:20;13139:7;13127;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13111:45;;13167:23;13193:28;13215:5;13193:17;13205:4;13193:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13167:54;;13240:15;13257:4;13263:5;13232:37;;;;;;;;;12926:351;;;;;;;:::o;13285:409::-;13395:7;13404;13413;13433:15;13451:24;13463:11;13451:7;:11;;:24;;;;:::i;:::-;13433:42;;13486:12;13501:21;13510:11;13501:4;:8;;:21;;;;:::i;:::-;13486:36;;13533:13;13549:22;13559:11;13549:5;:9;;:22;;;;:::i;:::-;13533:38;;13582:23;13608:28;13630:5;13608:17;13620:4;13608:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13582:54;;13655:7;13664:15;13681:4;13647:39;;;;;;;;;;13285:409;;;;;;;;:::o;2024:246::-;2082:7;2111:1;2106;:6;2102:47;;;2136:1;2129:8;;;;2102:47;2159:9;2175:1;2171;:5;;;;:::i;:::-;2159:17;;2204:1;2199;2195;:5;;;;:::i;:::-;:10;2187:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2261:1;2254:8;;;2024:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:116::-;4971:21;4986:5;4971:21;:::i;:::-;4964:5;4961:32;4951:60;;5007:1;5004;4997:12;4951:60;4901:116;:::o;5023:133::-;5066:5;5104:6;5091:20;5082:29;;5120:30;5144:5;5120:30;:::i;:::-;5023:133;;;;:::o;5162:323::-;5218:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:119;;;5273:79;;:::i;:::-;5235:119;5393:1;5418:50;5460:7;5451:6;5440:9;5436:22;5418:50;:::i;:::-;5408:60;;5364:114;5162:323;;;;:::o;5491:329::-;5550:6;5599:2;5587:9;5578:7;5574:23;5570:32;5567:119;;;5605:79;;:::i;:::-;5567:119;5725:1;5750:53;5795:7;5786:6;5775:9;5771:22;5750:53;:::i;:::-;5740:63;;5696:117;5491:329;;;;:::o;5826:::-;5885:6;5934:2;5922:9;5913:7;5909:23;5905:32;5902:119;;;5940:79;;:::i;:::-;5902:119;6060:1;6085:53;6130:7;6121:6;6110:9;6106:22;6085:53;:::i;:::-;6075:63;;6031:117;5826:329;;;;:::o;6161:118::-;6248:24;6266:5;6248:24;:::i;:::-;6243:3;6236:37;6161:118;;:::o;6285:222::-;6378:4;6416:2;6405:9;6401:18;6393:26;;6429:71;6497:1;6486:9;6482:17;6473:6;6429:71;:::i;:::-;6285:222;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:182::-;7133:34;7129:1;7121:6;7117:14;7110:58;6993:182;:::o;7181:366::-;7323:3;7344:67;7408:2;7403:3;7344:67;:::i;:::-;7337:74;;7420:93;7509:3;7420:93;:::i;:::-;7538:2;7533:3;7529:12;7522:19;;7181:366;;;:::o;7553:419::-;7719:4;7757:2;7746:9;7742:18;7734:26;;7806:9;7800:4;7796:20;7792:1;7781:9;7777:17;7770:47;7834:131;7960:4;7834:131;:::i;:::-;7826:139;;7553:419;;;:::o;7978:173::-;8118:25;8114:1;8106:6;8102:14;8095:49;7978:173;:::o;8157:366::-;8299:3;8320:67;8384:2;8379:3;8320:67;:::i;:::-;8313:74;;8396:93;8485:3;8396:93;:::i;:::-;8514:2;8509:3;8505:12;8498:19;;8157:366;;;:::o;8529:419::-;8695:4;8733:2;8722:9;8718:18;8710:26;;8782:9;8776:4;8772:20;8768:1;8757:9;8753:17;8746:47;8810:131;8936:4;8810:131;:::i;:::-;8802:139;;8529:419;;;:::o;8954:143::-;9011:5;9042:6;9036:13;9027:22;;9058:33;9085:5;9058:33;:::i;:::-;8954:143;;;;:::o;9103:351::-;9173:6;9222:2;9210:9;9201:7;9197:23;9193:32;9190:119;;;9228:79;;:::i;:::-;9190:119;9348:1;9373:64;9429:7;9420:6;9409:9;9405:22;9373:64;:::i;:::-;9363:74;;9319:128;9103:351;;;;:::o;9460:332::-;9581:4;9619:2;9608:9;9604:18;9596:26;;9632:71;9700:1;9689:9;9685:17;9676:6;9632:71;:::i;:::-;9713:72;9781:2;9770:9;9766:18;9757:6;9713:72;:::i;:::-;9460:332;;;;;:::o;9798:85::-;9843:7;9872:5;9861:16;;9798:85;;;:::o;9889:60::-;9917:3;9938:5;9931:12;;9889:60;;;:::o;9955:158::-;10013:9;10046:61;10064:42;10073:32;10099:5;10073:32;:::i;:::-;10064:42;:::i;:::-;10046:61;:::i;:::-;10033:74;;9955:158;;;:::o;10119:147::-;10214:45;10253:5;10214:45;:::i;:::-;10209:3;10202:58;10119:147;;:::o;10272:807::-;10521:4;10559:3;10548:9;10544:19;10536:27;;10573:71;10641:1;10630:9;10626:17;10617:6;10573:71;:::i;:::-;10654:72;10722:2;10711:9;10707:18;10698:6;10654:72;:::i;:::-;10736:80;10812:2;10801:9;10797:18;10788:6;10736:80;:::i;:::-;10826;10902:2;10891:9;10887:18;10878:6;10826:80;:::i;:::-;10916:73;10984:3;10973:9;10969:19;10960:6;10916:73;:::i;:::-;10999;11067:3;11056:9;11052:19;11043:6;10999:73;:::i;:::-;10272:807;;;;;;;;;:::o;11085:143::-;11142:5;11173:6;11167:13;11158:22;;11189:33;11216:5;11189:33;:::i;:::-;11085:143;;;;:::o;11234:663::-;11322:6;11330;11338;11387:2;11375:9;11366:7;11362:23;11358:32;11355:119;;;11393:79;;:::i;:::-;11355:119;11513:1;11538:64;11594:7;11585:6;11574:9;11570:22;11538:64;:::i;:::-;11528:74;;11484:128;11651:2;11677:64;11733:7;11724:6;11713:9;11709:22;11677:64;:::i;:::-;11667:74;;11622:129;11790:2;11816:64;11872:7;11863:6;11852:9;11848:22;11816:64;:::i;:::-;11806:74;;11761:129;11234:663;;;;;:::o;11903:332::-;12024:4;12062:2;12051:9;12047:18;12039:26;;12075:71;12143:1;12132:9;12128:17;12119:6;12075:71;:::i;:::-;12156:72;12224:2;12213:9;12209:18;12200:6;12156:72;:::i;:::-;11903:332;;;;;:::o;12241:137::-;12295:5;12326:6;12320:13;12311:22;;12342:30;12366:5;12342:30;:::i;:::-;12241:137;;;;:::o;12384:345::-;12451:6;12500:2;12488:9;12479:7;12475:23;12471:32;12468:119;;;12506:79;;:::i;:::-;12468:119;12626:1;12651:61;12704:7;12695:6;12684:9;12680:22;12651:61;:::i;:::-;12641:71;;12597:125;12384:345;;;;:::o;12735:223::-;12875:34;12871:1;12863:6;12859:14;12852:58;12944:6;12939:2;12931:6;12927:15;12920:31;12735:223;:::o;12964:366::-;13106:3;13127:67;13191:2;13186:3;13127:67;:::i;:::-;13120:74;;13203:93;13292:3;13203:93;:::i;:::-;13321:2;13316:3;13312:12;13305:19;;12964:366;;;:::o;13336:419::-;13502:4;13540:2;13529:9;13525:18;13517:26;;13589:9;13583:4;13579:20;13575:1;13564:9;13560:17;13553:47;13617:131;13743:4;13617:131;:::i;:::-;13609:139;;13336:419;;;:::o;13761:221::-;13901:34;13897:1;13889:6;13885:14;13878:58;13970:4;13965:2;13957:6;13953:15;13946:29;13761:221;:::o;13988:366::-;14130:3;14151:67;14215:2;14210:3;14151:67;:::i;:::-;14144:74;;14227:93;14316:3;14227:93;:::i;:::-;14345:2;14340:3;14336:12;14329:19;;13988:366;;;:::o;14360:419::-;14526:4;14564:2;14553:9;14549:18;14541:26;;14613:9;14607:4;14603:20;14599:1;14588:9;14584:17;14577:47;14641:131;14767:4;14641:131;:::i;:::-;14633:139;;14360:419;;;:::o;14785:224::-;14925:34;14921:1;14913:6;14909:14;14902:58;14994:7;14989:2;14981:6;14977:15;14970:32;14785:224;:::o;15015:366::-;15157:3;15178:67;15242:2;15237:3;15178:67;:::i;:::-;15171:74;;15254:93;15343:3;15254:93;:::i;:::-;15372:2;15367:3;15363:12;15356:19;;15015:366;;;:::o;15387:419::-;15553:4;15591:2;15580:9;15576:18;15568:26;;15640:9;15634:4;15630:20;15626:1;15615:9;15611:17;15604:47;15668:131;15794:4;15668:131;:::i;:::-;15660:139;;15387:419;;;:::o;15812:222::-;15952:34;15948:1;15940:6;15936:14;15929:58;16021:5;16016:2;16008:6;16004:15;15997:30;15812:222;:::o;16040:366::-;16182:3;16203:67;16267:2;16262:3;16203:67;:::i;:::-;16196:74;;16279:93;16368:3;16279:93;:::i;:::-;16397:2;16392:3;16388:12;16381:19;;16040:366;;;:::o;16412:419::-;16578:4;16616:2;16605:9;16601:18;16593:26;;16665:9;16659:4;16655:20;16651:1;16640:9;16636:17;16629:47;16693:131;16819:4;16693:131;:::i;:::-;16685:139;;16412:419;;;:::o;16837:228::-;16977:34;16973:1;16965:6;16961:14;16954:58;17046:11;17041:2;17033:6;17029:15;17022:36;16837:228;:::o;17071:366::-;17213:3;17234:67;17298:2;17293:3;17234:67;:::i;:::-;17227:74;;17310:93;17399:3;17310:93;:::i;:::-;17428:2;17423:3;17419:12;17412:19;;17071:366;;;:::o;17443:419::-;17609:4;17647:2;17636:9;17632:18;17624:26;;17696:9;17690:4;17686:20;17682:1;17671:9;17667:17;17660:47;17724:131;17850:4;17724:131;:::i;:::-;17716:139;;17443:419;;;:::o;17868:175::-;18008:27;18004:1;17996:6;17992:14;17985:51;17868:175;:::o;18049:366::-;18191:3;18212:67;18276:2;18271:3;18212:67;:::i;:::-;18205:74;;18288:93;18377:3;18288:93;:::i;:::-;18406:2;18401:3;18397:12;18390:19;;18049:366;;;:::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;;18421:419;;;:::o;18846:180::-;18894:77;18891:1;18884:88;18991:4;18988:1;18981:15;19015:4;19012:1;19005:15;19032:305;19072:3;19091:20;19109:1;19091:20;:::i;:::-;19086:25;;19125:20;19143:1;19125:20;:::i;:::-;19120:25;;19279:1;19211:66;19207:74;19204:1;19201:81;19198:107;;;19285:18;;:::i;:::-;19198:107;19329:1;19326;19322:9;19315:16;;19032:305;;;;:::o;19343:176::-;19483:28;19479:1;19471:6;19467:14;19460:52;19343:176;:::o;19525:366::-;19667:3;19688:67;19752:2;19747:3;19688:67;:::i;:::-;19681:74;;19764:93;19853:3;19764:93;:::i;:::-;19882:2;19877:3;19873:12;19866:19;;19525:366;;;:::o;19897:419::-;20063:4;20101:2;20090:9;20086:18;20078:26;;20150:9;20144:4;20140:20;20136:1;20125:9;20121:17;20114:47;20178:131;20304:4;20178:131;:::i;:::-;20170:139;;19897:419;;;:::o;20322:191::-;20362:4;20382:20;20400:1;20382:20;:::i;:::-;20377:25;;20416:20;20434:1;20416:20;:::i;:::-;20411:25;;20455:1;20452;20449:8;20446:34;;;20460:18;;:::i;:::-;20446:34;20505:1;20502;20498:9;20490:17;;20322:191;;;;:::o;20519:229::-;20659:34;20655:1;20647:6;20643:14;20636:58;20728:12;20723:2;20715:6;20711:15;20704:37;20519:229;:::o;20754:366::-;20896:3;20917:67;20981:2;20976:3;20917:67;:::i;:::-;20910:74;;20993:93;21082:3;20993:93;:::i;:::-;21111:2;21106:3;21102:12;21095:19;;20754:366;;;:::o;21126:419::-;21292:4;21330:2;21319:9;21315:18;21307:26;;21379:9;21373:4;21369:20;21365:1;21354:9;21350:17;21343:47;21407:131;21533:4;21407:131;:::i;:::-;21399:139;;21126:419;;;:::o;21551:180::-;21599:77;21596:1;21589:88;21696:4;21693:1;21686:15;21720:4;21717:1;21710:15;21737:180;21785:77;21782:1;21775:88;21882:4;21879:1;21872:15;21906:4;21903:1;21896:15;21923:114;21990:6;22024:5;22018:12;22008:22;;21923:114;;;:::o;22043:184::-;22142:11;22176:6;22171:3;22164:19;22216:4;22211:3;22207:14;22192:29;;22043:184;;;;:::o;22233:132::-;22300:4;22323:3;22315:11;;22353:4;22348:3;22344:14;22336:22;;22233:132;;;:::o;22371:108::-;22448:24;22466:5;22448:24;:::i;:::-;22443:3;22436:37;22371:108;;:::o;22485:179::-;22554:10;22575:46;22617:3;22609:6;22575:46;:::i;:::-;22653:4;22648:3;22644:14;22630:28;;22485:179;;;;:::o;22670:113::-;22740:4;22772;22767:3;22763:14;22755:22;;22670:113;;;:::o;22819:732::-;22938:3;22967:54;23015:5;22967:54;:::i;:::-;23037:86;23116:6;23111:3;23037:86;:::i;:::-;23030:93;;23147:56;23197:5;23147:56;:::i;:::-;23226:7;23257:1;23242:284;23267:6;23264:1;23261:13;23242:284;;;23343:6;23337:13;23370:63;23429:3;23414:13;23370:63;:::i;:::-;23363:70;;23456:60;23509:6;23456:60;:::i;:::-;23446:70;;23302:224;23289:1;23286;23282:9;23277:14;;23242:284;;;23246:14;23542:3;23535:10;;22943:608;;;22819:732;;;;:::o;23557:831::-;23820:4;23858:3;23847:9;23843:19;23835:27;;23872:71;23940:1;23929:9;23925:17;23916:6;23872:71;:::i;:::-;23953:80;24029:2;24018:9;24014:18;24005:6;23953:80;:::i;:::-;24080:9;24074:4;24070:20;24065:2;24054:9;24050:18;24043:48;24108:108;24211:4;24202:6;24108:108;:::i;:::-;24100:116;;24226:72;24294:2;24283:9;24279:18;24270:6;24226:72;:::i;:::-;24308:73;24376:3;24365:9;24361:19;24352:6;24308:73;:::i;:::-;23557:831;;;;;;;;:::o;24394:180::-;24442:77;24439:1;24432:88;24539:4;24536:1;24529:15;24563:4;24560:1;24553:15;24580:185;24620:1;24637:20;24655:1;24637:20;:::i;:::-;24632:25;;24671:20;24689:1;24671:20;:::i;:::-;24666:25;;24710:1;24700:35;;24715:18;;:::i;:::-;24700:35;24757:1;24754;24750:9;24745:14;;24580:185;;;;:::o;24771:177::-;24911:29;24907:1;24899:6;24895:14;24888:53;24771:177;:::o;24954:366::-;25096:3;25117:67;25181:2;25176:3;25117:67;:::i;:::-;25110:74;;25193:93;25282:3;25193:93;:::i;:::-;25311:2;25306:3;25302:12;25295:19;;24954:366;;;:::o;25326:419::-;25492:4;25530:2;25519:9;25515:18;25507:26;;25579:9;25573:4;25569:20;25565:1;25554:9;25550:17;25543:47;25607:131;25733:4;25607:131;:::i;:::-;25599:139;;25326:419;;;:::o;25751:348::-;25791:7;25814:20;25832:1;25814:20;:::i;:::-;25809:25;;25848:20;25866:1;25848:20;:::i;:::-;25843:25;;26036:1;25968:66;25964:74;25961:1;25958:81;25953:1;25946:9;25939:17;25935:105;25932:131;;;26043:18;;:::i;:::-;25932:131;26091:1;26088;26084:9;26073:20;;25751:348;;;;:::o;26105:220::-;26245:34;26241:1;26233:6;26229:14;26222:58;26314:3;26309:2;26301:6;26297:15;26290:28;26105:220;:::o;26331:366::-;26473:3;26494:67;26558:2;26553:3;26494:67;:::i;:::-;26487:74;;26570:93;26659:3;26570:93;:::i;:::-;26688:2;26683:3;26679:12;26672:19;;26331:366;;;:::o;26703:419::-;26869:4;26907:2;26896:9;26892:18;26884:26;;26956:9;26950:4;26946:20;26942:1;26931:9;26927:17;26920:47;26984:131;27110:4;26984:131;:::i;:::-;26976:139;;26703:419;;;:::o

Swarm Source

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