ETH Price: $3,418.95 (-0.63%)
Gas: 3 Gwei

Token

Chameleon (Chameleon)
 

Overview

Max Total Supply

1,000,000,000 Chameleon

Holders

33

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
mattm.eth
Balance
15,909,442.587354149 Chameleon

Value
$0.00
0x25a0E1E03276F195dcAF8F189302Deee2d798A4E
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:
Chameleon

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-26
*/

/**
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
Telegram: https://t.me/Chameleon_erc
Wesbite: http://chameleonerc20.com

**/


// SPDX-License-Identifier: MIT


pragma solidity 0.8.17;

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;
    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 Chameleon is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    address payable private _taxWallet = payable(0x9eB3662937Bff249D6ABE1Ec8b6b6ebc9D87c878);

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=45;
    uint256 private _finalBuyTax=25;
    uint256 private _finalSellTax=45;
    uint256 private _reduceBuyTaxAt=1;
    uint256 private _reduceSellTaxAt=1;
    uint256 private _preventSwapBefore=2;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Chameleon";
    string private constant _symbol = unicode"Chameleon";
    
    uint256 public _maxTxAmount =   20000000 * 10**_decimals; //Max Tx 2%
    uint256 public _maxWalletSize = 20000000 * 10**_decimals; //Max Wallet 2%
    uint256 public _taxSwapThreshold=3000000 * 10**_decimals; //TaxSwapThreshold 0.3%
    uint256 public _maxTaxSwap=30000000 * 10**_decimals; //Max TaxSwap 3%

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        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 _balances[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 _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");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(tradingOpen, "Trading not open");
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
    }
   
    function changeFee(uint256 _newBuyFee, uint256 _newSellFee) external onlyOwner() {
      _finalBuyTax=_newBuyFee;
      _finalSellTax=_newSellFee;
    }

    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }
    
    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

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":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuyFee","type":"uint256"},{"internalType":"uint256","name":"_newSellFee","type":"uint256"}],"name":"changeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052739eb3662937bff249d6abe1ec8b6b6ebc9d87c878600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506019600655602d6007556019600855602d6009556001600a556001600b556002600c556000600d556009600a62000091919062000871565b6301312d00620000a29190620008c2565b600e556009600a620000b5919062000871565b6301312d00620000c69190620008c2565b600f556009600a620000d9919062000871565b622dc6c0620000e99190620008c2565b6010556009600a620000fc919062000871565b6301c9c3806200010d9190620008c2565b6011556000601360146101000a81548160ff0219169083151502179055506000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200016e57600080fd5b50600062000181620006a660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000308919062000977565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000392573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b8919062000977565b6040518363ffffffff1660e01b8152600401620003d7929190620009ba565b6020604051808303816000875af1158015620003f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041d919062000977565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200046d919062000871565b633b9aca006200047e9190620008c2565b6001600062000492620006a660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620004e6620006ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000619620006a660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000678919062000871565b633b9aca00620006899190620008c2565b604051620006989190620009f8565b60405180910390a362000a15565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000765578086048111156200073d576200073c620006d7565b5b60018516156200074d5780820291505b80810290506200075d8562000706565b94506200071d565b94509492505050565b60008262000780576001905062000853565b8162000790576000905062000853565b8160018114620007a95760028114620007b457620007ea565b600191505062000853565b60ff841115620007c957620007c8620006d7565b5b8360020a915084821115620007e357620007e2620006d7565b5b5062000853565b5060208310610133831016604e8410600b8410161715620008245782820a9050838111156200081e576200081d620006d7565b5b62000853565b62000833848484600162000713565b925090508184048111156200084d576200084c620006d7565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200087e826200085a565b91506200088b8362000864565b9250620008ba7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200076e565b905092915050565b6000620008cf826200085a565b9150620008dc836200085a565b9250828202620008ec816200085a565b91508282048414831517620009065762000905620006d7565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200093f8262000912565b9050919050565b620009518162000932565b81146200095d57600080fd5b50565b600081519050620009718162000946565b92915050565b60006020828403121562000990576200098f6200090d565b5b6000620009a08482850162000960565b91505092915050565b620009b48162000932565b82525050565b6000604082019050620009d16000830185620009a9565b620009e06020830184620009a9565b9392505050565b620009f2816200085a565b82525050565b600060208201905062000a0f6000830184620009e7565b92915050565b612b508062000a256000396000f3fe60806040526004361061012e5760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103b9578063bf474bed146103f6578063c9567bf914610421578063dd62ed3e14610438578063e3ca2d6514610475578063ec1f3f631461049e57610135565b8063751039fc146102f65780637d1db4a51461030d5780638da5cb5b146103385780638f9a55c01461036357806395d89b411461038e57610135565b8063313ce567116100f2578063313ce5671461023557806349bd5a5e1461026057806351bc3c851461028b57806370a08231146102a2578063715018a6146102df57610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104c7565b60405161015c9190611d19565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190611dd4565b610504565b6040516101999190611e2f565b60405180910390f35b3480156101ae57600080fd5b506101b7610522565b6040516101c49190611e59565b60405180910390f35b3480156101d957600080fd5b506101e2610528565b6040516101ef9190611e59565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190611e74565b61054c565b60405161022c9190611e2f565b60405180910390f35b34801561024157600080fd5b5061024a610625565b6040516102579190611ee3565b60405180910390f35b34801561026c57600080fd5b5061027561062e565b6040516102829190611f0d565b60405180910390f35b34801561029757600080fd5b506102a0610654565b005b3480156102ae57600080fd5b506102c960048036038101906102c49190611f28565b6106f1565b6040516102d69190611e59565b60405180910390f35b3480156102eb57600080fd5b506102f461073a565b005b34801561030257600080fd5b5061030b61088d565b005b34801561031957600080fd5b506103226109bd565b60405161032f9190611e59565b60405180910390f35b34801561034457600080fd5b5061034d6109c3565b60405161035a9190611f0d565b60405180910390f35b34801561036f57600080fd5b506103786109ec565b6040516103859190611e59565b60405180910390f35b34801561039a57600080fd5b506103a36109f2565b6040516103b09190611d19565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db9190611dd4565b610a2f565b6040516103ed9190611e2f565b60405180910390f35b34801561040257600080fd5b5061040b610a4d565b6040516104189190611e59565b60405180910390f35b34801561042d57600080fd5b50610436610a53565b005b34801561044457600080fd5b5061045f600480360381019061045a9190611f55565b610b70565b60405161046c9190611e59565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190611f95565b610bf7565b005b3480156104aa57600080fd5b506104c560048036038101906104c09190611fd5565b610c9e565b005b60606040518060400160405280600981526020017f4368616d656c656f6e0000000000000000000000000000000000000000000000815250905090565b6000610518610511610d2d565b8484610d35565b6001905092915050565b60115481565b60006009600a6105389190612164565b633b9aca0061054791906121af565b905090565b6000610559848484610efe565b61061a84610565610d2d565b61061585604051806060016040528060288152602001612af360289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105cb610d2d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117589092919063ffffffff16565b610d35565b600190509392505050565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610695610d2d565b73ffffffffffffffffffffffffffffffffffffffff16146106b557600080fd5b60006106c0306106f1565b905060008111156106d5576106d4816117bc565b5b600047905060008111156106ed576106ec81611a35565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610742610d2d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c69061223d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610895610d2d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610922576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109199061223d565b60405180910390fd5b6009600a6109309190612164565b633b9aca0061093f91906121af565b600e819055506009600a6109539190612164565b633b9aca0061096291906121af565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109979190612164565b633b9aca006109a691906121af565b6040516109b39190611e59565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600981526020017f4368616d656c656f6e0000000000000000000000000000000000000000000000815250905090565b6000610a43610a3c610d2d565b8484610efe565b6001905092915050565b60105481565b610a5b610d2d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adf9061223d565b60405180910390fd5b601360149054906101000a900460ff1615610b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2f906122a9565b60405180910390fd5b6001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610bff610d2d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c839061223d565b60405180910390fd5b81600881905550806009819055505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cdf610d2d565b73ffffffffffffffffffffffffffffffffffffffff1614610cff57600080fd5b6008548111158015610d1357506009548111155b610d1c57600080fd5b806008819055508060098190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9b9061233b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0a906123cd565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ef19190611e59565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f649061245f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd3906124f1565b60405180910390fd5b6000811161101f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101690612583565b60405180910390fd5b60006110296109c3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561109757506110676109c3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561149b576110d860646110ca600a54600d54116110b7576006546110bb565b6008545b85611aa190919063ffffffff16565b611b1b90919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156111855750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156111db5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156112e557601360149054906101000a900460ff1661122f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611226906125ef565b60405180910390fd5b600e54821115611274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126b9061265b565b60405180910390fd5b600f5482611281856106f1565b61128b919061267b565b11156112cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c3906126fb565b60405180910390fd5b600d60008154809291906112df9061271b565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561136e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156113b2576113af60646113a1600b54600d541161138e57600754611392565b6009545b85611aa190919063ffffffff16565b611b1b90919063ffffffff16565b90505b60006113bd306106f1565b9050601360159054906101000a900460ff161580156114295750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156114415750601360169054906101000a900460ff165b801561144e575060105481115b801561145d5750600c54600d54115b156114995761147f61147a8461147584601154611b65565b611b65565b6117bc565b600047905060008111156114975761149647611a35565b5b505b505b600081111561159f576114f681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7e90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115969190611e59565b60405180910390a35b6115f182600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bdc90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061169861164a8284611bdc90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7e90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61173d8486611bdc90919063ffffffff16565b60405161174a9190611e59565b60405180910390a350505050565b60008383111582906117a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117979190611d19565b60405180910390fd5b50600083856117af9190612763565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156117f4576117f3612797565b5b6040519080825280602002602001820160405280156118225781602001602082028036833780820191505090505b509050308160008151811061183a576118396127c6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611905919061280a565b81600181518110611919576119186127c6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061198030601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d35565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016119e495949392919061293a565b600060405180830381600087803b1580156119fe57600080fd5b505af1158015611a12573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a9d573d6000803e3d6000fd5b5050565b6000808303611ab35760009050611b15565b60008284611ac191906121af565b9050828482611ad091906129c3565b14611b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0790612a66565b60405180910390fd5b809150505b92915050565b6000611b5d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c26565b905092915050565b6000818311611b745782611b76565b815b905092915050565b6000808284611b8d919061267b565b905083811015611bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc990612ad2565b60405180910390fd5b8091505092915050565b6000611c1e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611758565b905092915050565b60008083118290611c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c649190611d19565b60405180910390fd5b5060008385611c7c91906129c3565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cc3578082015181840152602081019050611ca8565b60008484015250505050565b6000601f19601f8301169050919050565b6000611ceb82611c89565b611cf58185611c94565b9350611d05818560208601611ca5565b611d0e81611ccf565b840191505092915050565b60006020820190508181036000830152611d338184611ce0565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d6b82611d40565b9050919050565b611d7b81611d60565b8114611d8657600080fd5b50565b600081359050611d9881611d72565b92915050565b6000819050919050565b611db181611d9e565b8114611dbc57600080fd5b50565b600081359050611dce81611da8565b92915050565b60008060408385031215611deb57611dea611d3b565b5b6000611df985828601611d89565b9250506020611e0a85828601611dbf565b9150509250929050565b60008115159050919050565b611e2981611e14565b82525050565b6000602082019050611e446000830184611e20565b92915050565b611e5381611d9e565b82525050565b6000602082019050611e6e6000830184611e4a565b92915050565b600080600060608486031215611e8d57611e8c611d3b565b5b6000611e9b86828701611d89565b9350506020611eac86828701611d89565b9250506040611ebd86828701611dbf565b9150509250925092565b600060ff82169050919050565b611edd81611ec7565b82525050565b6000602082019050611ef86000830184611ed4565b92915050565b611f0781611d60565b82525050565b6000602082019050611f226000830184611efe565b92915050565b600060208284031215611f3e57611f3d611d3b565b5b6000611f4c84828501611d89565b91505092915050565b60008060408385031215611f6c57611f6b611d3b565b5b6000611f7a85828601611d89565b9250506020611f8b85828601611d89565b9150509250929050565b60008060408385031215611fac57611fab611d3b565b5b6000611fba85828601611dbf565b9250506020611fcb85828601611dbf565b9150509250929050565b600060208284031215611feb57611fea611d3b565b5b6000611ff984828501611dbf565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156120885780860481111561206457612063612002565b5b60018516156120735780820291505b808102905061208185612031565b9450612048565b94509492505050565b6000826120a1576001905061215d565b816120af576000905061215d565b81600181146120c557600281146120cf576120fe565b600191505061215d565b60ff8411156120e1576120e0612002565b5b8360020a9150848211156120f8576120f7612002565b5b5061215d565b5060208310610133831016604e8410600b84101617156121335782820a90508381111561212e5761212d612002565b5b61215d565b612140848484600161203e565b9250905081840481111561215757612156612002565b5b81810290505b9392505050565b600061216f82611d9e565b915061217a83611ec7565b92506121a77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612091565b905092915050565b60006121ba82611d9e565b91506121c583611d9e565b92508282026121d381611d9e565b915082820484148315176121ea576121e9612002565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612227602083611c94565b9150612232826121f1565b602082019050919050565b600060208201905081810360008301526122568161221a565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612293601783611c94565b915061229e8261225d565b602082019050919050565b600060208201905081810360008301526122c281612286565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612325602483611c94565b9150612330826122c9565b604082019050919050565b6000602082019050818103600083015261235481612318565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006123b7602283611c94565b91506123c28261235b565b604082019050919050565b600060208201905081810360008301526123e6816123aa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612449602583611c94565b9150612454826123ed565b604082019050919050565b600060208201905081810360008301526124788161243c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006124db602383611c94565b91506124e68261247f565b604082019050919050565b6000602082019050818103600083015261250a816124ce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061256d602983611c94565b915061257882612511565b604082019050919050565b6000602082019050818103600083015261259c81612560565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006125d9601083611c94565b91506125e4826125a3565b602082019050919050565b60006020820190508181036000830152612608816125cc565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612645601983611c94565b91506126508261260f565b602082019050919050565b6000602082019050818103600083015261267481612638565b9050919050565b600061268682611d9e565b915061269183611d9e565b92508282019050808211156126a9576126a8612002565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006126e5601a83611c94565b91506126f0826126af565b602082019050919050565b60006020820190508181036000830152612714816126d8565b9050919050565b600061272682611d9e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361275857612757612002565b5b600182019050919050565b600061276e82611d9e565b915061277983611d9e565b925082820390508181111561279157612790612002565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061280481611d72565b92915050565b6000602082840312156128205761281f611d3b565b5b600061282e848285016127f5565b91505092915050565b6000819050919050565b6000819050919050565b600061286661286161285c84612837565b612841565b611d9e565b9050919050565b6128768161284b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128b181611d60565b82525050565b60006128c383836128a8565b60208301905092915050565b6000602082019050919050565b60006128e78261287c565b6128f18185612887565b93506128fc83612898565b8060005b8381101561292d57815161291488826128b7565b975061291f836128cf565b925050600181019050612900565b5085935050505092915050565b600060a08201905061294f6000830188611e4a565b61295c602083018761286d565b818103604083015261296e81866128dc565b905061297d6060830185611efe565b61298a6080830184611e4a565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129ce82611d9e565b91506129d983611d9e565b9250826129e9576129e8612994565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a50602183611c94565b9150612a5b826129f4565b604082019050919050565b60006020820190508181036000830152612a7f81612a43565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612abc601b83611c94565b9150612ac782612a86565b602082019050919050565b60006020820190508181036000830152612aeb81612aaf565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f294437a3a751290585f3fd25e767fc1237317022d774f07423e051a59c9d1a464736f6c63430008110033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103b9578063bf474bed146103f6578063c9567bf914610421578063dd62ed3e14610438578063e3ca2d6514610475578063ec1f3f631461049e57610135565b8063751039fc146102f65780637d1db4a51461030d5780638da5cb5b146103385780638f9a55c01461036357806395d89b411461038e57610135565b8063313ce567116100f2578063313ce5671461023557806349bd5a5e1461026057806351bc3c851461028b57806370a08231146102a2578063715018a6146102df57610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104c7565b60405161015c9190611d19565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190611dd4565b610504565b6040516101999190611e2f565b60405180910390f35b3480156101ae57600080fd5b506101b7610522565b6040516101c49190611e59565b60405180910390f35b3480156101d957600080fd5b506101e2610528565b6040516101ef9190611e59565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190611e74565b61054c565b60405161022c9190611e2f565b60405180910390f35b34801561024157600080fd5b5061024a610625565b6040516102579190611ee3565b60405180910390f35b34801561026c57600080fd5b5061027561062e565b6040516102829190611f0d565b60405180910390f35b34801561029757600080fd5b506102a0610654565b005b3480156102ae57600080fd5b506102c960048036038101906102c49190611f28565b6106f1565b6040516102d69190611e59565b60405180910390f35b3480156102eb57600080fd5b506102f461073a565b005b34801561030257600080fd5b5061030b61088d565b005b34801561031957600080fd5b506103226109bd565b60405161032f9190611e59565b60405180910390f35b34801561034457600080fd5b5061034d6109c3565b60405161035a9190611f0d565b60405180910390f35b34801561036f57600080fd5b506103786109ec565b6040516103859190611e59565b60405180910390f35b34801561039a57600080fd5b506103a36109f2565b6040516103b09190611d19565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db9190611dd4565b610a2f565b6040516103ed9190611e2f565b60405180910390f35b34801561040257600080fd5b5061040b610a4d565b6040516104189190611e59565b60405180910390f35b34801561042d57600080fd5b50610436610a53565b005b34801561044457600080fd5b5061045f600480360381019061045a9190611f55565b610b70565b60405161046c9190611e59565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190611f95565b610bf7565b005b3480156104aa57600080fd5b506104c560048036038101906104c09190611fd5565b610c9e565b005b60606040518060400160405280600981526020017f4368616d656c656f6e0000000000000000000000000000000000000000000000815250905090565b6000610518610511610d2d565b8484610d35565b6001905092915050565b60115481565b60006009600a6105389190612164565b633b9aca0061054791906121af565b905090565b6000610559848484610efe565b61061a84610565610d2d565b61061585604051806060016040528060288152602001612af360289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105cb610d2d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117589092919063ffffffff16565b610d35565b600190509392505050565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610695610d2d565b73ffffffffffffffffffffffffffffffffffffffff16146106b557600080fd5b60006106c0306106f1565b905060008111156106d5576106d4816117bc565b5b600047905060008111156106ed576106ec81611a35565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610742610d2d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c69061223d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610895610d2d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610922576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109199061223d565b60405180910390fd5b6009600a6109309190612164565b633b9aca0061093f91906121af565b600e819055506009600a6109539190612164565b633b9aca0061096291906121af565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109979190612164565b633b9aca006109a691906121af565b6040516109b39190611e59565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600981526020017f4368616d656c656f6e0000000000000000000000000000000000000000000000815250905090565b6000610a43610a3c610d2d565b8484610efe565b6001905092915050565b60105481565b610a5b610d2d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adf9061223d565b60405180910390fd5b601360149054906101000a900460ff1615610b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2f906122a9565b60405180910390fd5b6001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610bff610d2d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c839061223d565b60405180910390fd5b81600881905550806009819055505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cdf610d2d565b73ffffffffffffffffffffffffffffffffffffffff1614610cff57600080fd5b6008548111158015610d1357506009548111155b610d1c57600080fd5b806008819055508060098190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9b9061233b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0a906123cd565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ef19190611e59565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f649061245f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd3906124f1565b60405180910390fd5b6000811161101f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101690612583565b60405180910390fd5b60006110296109c3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561109757506110676109c3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561149b576110d860646110ca600a54600d54116110b7576006546110bb565b6008545b85611aa190919063ffffffff16565b611b1b90919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156111855750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156111db5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156112e557601360149054906101000a900460ff1661122f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611226906125ef565b60405180910390fd5b600e54821115611274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126b9061265b565b60405180910390fd5b600f5482611281856106f1565b61128b919061267b565b11156112cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c3906126fb565b60405180910390fd5b600d60008154809291906112df9061271b565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561136e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156113b2576113af60646113a1600b54600d541161138e57600754611392565b6009545b85611aa190919063ffffffff16565b611b1b90919063ffffffff16565b90505b60006113bd306106f1565b9050601360159054906101000a900460ff161580156114295750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156114415750601360169054906101000a900460ff165b801561144e575060105481115b801561145d5750600c54600d54115b156114995761147f61147a8461147584601154611b65565b611b65565b6117bc565b600047905060008111156114975761149647611a35565b5b505b505b600081111561159f576114f681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7e90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115969190611e59565b60405180910390a35b6115f182600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bdc90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061169861164a8284611bdc90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7e90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61173d8486611bdc90919063ffffffff16565b60405161174a9190611e59565b60405180910390a350505050565b60008383111582906117a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117979190611d19565b60405180910390fd5b50600083856117af9190612763565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156117f4576117f3612797565b5b6040519080825280602002602001820160405280156118225781602001602082028036833780820191505090505b509050308160008151811061183a576118396127c6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611905919061280a565b81600181518110611919576119186127c6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061198030601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d35565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016119e495949392919061293a565b600060405180830381600087803b1580156119fe57600080fd5b505af1158015611a12573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a9d573d6000803e3d6000fd5b5050565b6000808303611ab35760009050611b15565b60008284611ac191906121af565b9050828482611ad091906129c3565b14611b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0790612a66565b60405180910390fd5b809150505b92915050565b6000611b5d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c26565b905092915050565b6000818311611b745782611b76565b815b905092915050565b6000808284611b8d919061267b565b905083811015611bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc990612ad2565b60405180910390fd5b8091505092915050565b6000611c1e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611758565b905092915050565b60008083118290611c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c649190611d19565b60405180910390fd5b5060008385611c7c91906129c3565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cc3578082015181840152602081019050611ca8565b60008484015250505050565b6000601f19601f8301169050919050565b6000611ceb82611c89565b611cf58185611c94565b9350611d05818560208601611ca5565b611d0e81611ccf565b840191505092915050565b60006020820190508181036000830152611d338184611ce0565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d6b82611d40565b9050919050565b611d7b81611d60565b8114611d8657600080fd5b50565b600081359050611d9881611d72565b92915050565b6000819050919050565b611db181611d9e565b8114611dbc57600080fd5b50565b600081359050611dce81611da8565b92915050565b60008060408385031215611deb57611dea611d3b565b5b6000611df985828601611d89565b9250506020611e0a85828601611dbf565b9150509250929050565b60008115159050919050565b611e2981611e14565b82525050565b6000602082019050611e446000830184611e20565b92915050565b611e5381611d9e565b82525050565b6000602082019050611e6e6000830184611e4a565b92915050565b600080600060608486031215611e8d57611e8c611d3b565b5b6000611e9b86828701611d89565b9350506020611eac86828701611d89565b9250506040611ebd86828701611dbf565b9150509250925092565b600060ff82169050919050565b611edd81611ec7565b82525050565b6000602082019050611ef86000830184611ed4565b92915050565b611f0781611d60565b82525050565b6000602082019050611f226000830184611efe565b92915050565b600060208284031215611f3e57611f3d611d3b565b5b6000611f4c84828501611d89565b91505092915050565b60008060408385031215611f6c57611f6b611d3b565b5b6000611f7a85828601611d89565b9250506020611f8b85828601611d89565b9150509250929050565b60008060408385031215611fac57611fab611d3b565b5b6000611fba85828601611dbf565b9250506020611fcb85828601611dbf565b9150509250929050565b600060208284031215611feb57611fea611d3b565b5b6000611ff984828501611dbf565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156120885780860481111561206457612063612002565b5b60018516156120735780820291505b808102905061208185612031565b9450612048565b94509492505050565b6000826120a1576001905061215d565b816120af576000905061215d565b81600181146120c557600281146120cf576120fe565b600191505061215d565b60ff8411156120e1576120e0612002565b5b8360020a9150848211156120f8576120f7612002565b5b5061215d565b5060208310610133831016604e8410600b84101617156121335782820a90508381111561212e5761212d612002565b5b61215d565b612140848484600161203e565b9250905081840481111561215757612156612002565b5b81810290505b9392505050565b600061216f82611d9e565b915061217a83611ec7565b92506121a77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612091565b905092915050565b60006121ba82611d9e565b91506121c583611d9e565b92508282026121d381611d9e565b915082820484148315176121ea576121e9612002565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612227602083611c94565b9150612232826121f1565b602082019050919050565b600060208201905081810360008301526122568161221a565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612293601783611c94565b915061229e8261225d565b602082019050919050565b600060208201905081810360008301526122c281612286565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612325602483611c94565b9150612330826122c9565b604082019050919050565b6000602082019050818103600083015261235481612318565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006123b7602283611c94565b91506123c28261235b565b604082019050919050565b600060208201905081810360008301526123e6816123aa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612449602583611c94565b9150612454826123ed565b604082019050919050565b600060208201905081810360008301526124788161243c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006124db602383611c94565b91506124e68261247f565b604082019050919050565b6000602082019050818103600083015261250a816124ce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061256d602983611c94565b915061257882612511565b604082019050919050565b6000602082019050818103600083015261259c81612560565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006125d9601083611c94565b91506125e4826125a3565b602082019050919050565b60006020820190508181036000830152612608816125cc565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612645601983611c94565b91506126508261260f565b602082019050919050565b6000602082019050818103600083015261267481612638565b9050919050565b600061268682611d9e565b915061269183611d9e565b92508282019050808211156126a9576126a8612002565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006126e5601a83611c94565b91506126f0826126af565b602082019050919050565b60006020820190508181036000830152612714816126d8565b9050919050565b600061272682611d9e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361275857612757612002565b5b600182019050919050565b600061276e82611d9e565b915061277983611d9e565b925082820390508181111561279157612790612002565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061280481611d72565b92915050565b6000602082840312156128205761281f611d3b565b5b600061282e848285016127f5565b91505092915050565b6000819050919050565b6000819050919050565b600061286661286161285c84612837565b612841565b611d9e565b9050919050565b6128768161284b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128b181611d60565b82525050565b60006128c383836128a8565b60208301905092915050565b6000602082019050919050565b60006128e78261287c565b6128f18185612887565b93506128fc83612898565b8060005b8381101561292d57815161291488826128b7565b975061291f836128cf565b925050600181019050612900565b5085935050505092915050565b600060a08201905061294f6000830188611e4a565b61295c602083018761286d565b818103604083015261296e81866128dc565b905061297d6060830185611efe565b61298a6080830184611e4a565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129ce82611d9e565b91506129d983611d9e565b9250826129e9576129e8612994565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a50602183611c94565b9150612a5b826129f4565b604082019050919050565b60006020820190508181036000830152612a7f81612a43565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612abc601b83611c94565b9150612ac782612a86565b602082019050919050565b60006020820190508181036000830152612aeb81612aaf565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f294437a3a751290585f3fd25e767fc1237317022d774f07423e051a59c9d1a464736f6c63430008110033

Deployed Bytecode Sourcemap

3621:7581:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5769:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6602:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4856:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6046:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6771:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5955:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4982:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10851:348;;;;;;;;;;;;;:::i;:::-;;6149:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2702:148;;;;;;;;;;;;;:::i;:::-;;9975:159;;;;;;;;;;;;;:::i;:::-;;4615:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2488:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4690:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5860:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6276:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4769:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10242:168;;;;;;;;;;;;;:::i;:::-;;6451:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10421:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10584:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5769:83;5806:13;5839:5;;;;;;;;;;;;;;;;;5832:12;;5769:83;:::o;6602:161::-;6677:4;6694:39;6703:12;:10;:12::i;:::-;6717:7;6726:6;6694:8;:39::i;:::-;6751:4;6744:11;;6602:161;;;;:::o;4856:51::-;;;;:::o;6046:95::-;6099:7;4417:1;4473:2;:13;;;;:::i;:::-;4460:10;:26;;;;:::i;:::-;6119:14;;6046:95;:::o;6771:313::-;6869:4;6886:36;6896:6;6904:9;6915:6;6886:9;:36::i;:::-;6933:121;6942:6;6950:12;:10;:12::i;:::-;6964:89;7002:6;6964:89;;;;;;;;;;;;;;;;;:11;:19;6976:6;6964:19;;;;;;;;;;;;;;;:33;6984:12;:10;:12::i;:::-;6964:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6933:8;:121::i;:::-;7072:4;7065:11;;6771:313;;;;;:::o;5955:83::-;5996:5;4417:1;6014:16;;5955:83;:::o;4982:28::-;;;;;;;;;;;;;:::o;10851:348::-;10915:10;;;;;;;;;;;10901:24;;:12;:10;:12::i;:::-;:24;;;10893:33;;;;;;10937:20;10958:24;10976:4;10958:9;:24::i;:::-;10937:45;;11009:1;10996:12;:14;10993:73;;;11024:30;11041:12;11024:16;:30::i;:::-;10993:73;11076:18;11095:21;11076:40;;11141:1;11130:10;:12;11127:65;;;11156:24;11169:10;11156:12;:24::i;:::-;11127:65;10882:317;;10851:348::o;6149:119::-;6215:7;6242:9;:18;6252:7;6242:18;;;;;;;;;;;;;;;;6235:25;;6149:119;;;:::o;2702:148::-;2625:12;:10;:12::i;:::-;2615:22;;:6;;;;;;;;;;:22;;;2607:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2809:1:::1;2772:40;;2793:6;::::0;::::1;;;;;;;;2772:40;;;;;;;;;;;;2840:1;2823:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2702:148::o:0;9975:159::-;2625:12;:10;:12::i;:::-;2615:22;;:6;;;;;;;;;;:22;;;2607:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4417:1:::1;4473:2;:13;;;;:::i;:::-;4460:10;:26;;;;:::i;:::-;10028:12;:22;;;;4417:1;4473:2;:13;;;;:::i;:::-;4460:10;:26;;;;:::i;:::-;10061:14;:22;;;;10099:27;4417:1;4473:2;:13;;;;:::i;:::-;4460:10;:26;;;;:::i;:::-;10099:27;;;;;;:::i;:::-;;;;;;;;9975:159::o:0;4615:56::-;;;;:::o;2488:79::-;2526:7;2553:6;;;;;;;;;;;2546:13;;2488:79;:::o;4690:56::-;;;;:::o;5860:87::-;5899:13;5932:7;;;;;;;;;;;;;;;;;5925:14;;5860:87;:::o;6276:167::-;6354:4;6371:42;6381:12;:10;:12::i;:::-;6395:9;6406:6;6371:9;:42::i;:::-;6431:4;6424:11;;6276:167;;;;:::o;4769:56::-;;;;:::o;10242:168::-;2625:12;:10;:12::i;:::-;2615:22;;:6;;;;;;;;;;:22;;;2607:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10306:11:::1;;;;;;;;;;;10305:12;10297:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10369:4;10355:11;;:18;;;;;;;;;;;;;;;;;;10398:4;10384:11;;:18;;;;;;;;;;;;;;;;;;10242:168::o:0;6451:143::-;6532:7;6559:11;:18;6571:5;6559:18;;;;;;;;;;;;;;;:27;6578:7;6559:27;;;;;;;;;;;;;;;;6552:34;;6451:143;;;;:::o;10421:155::-;2625:12;:10;:12::i;:::-;2615:22;;:6;;;;;;;;;;:22;;;2607:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10524:10:::1;10511:12;:23;;;;10557:11;10543:13;:25;;;;10421:155:::0;;:::o;10584:218::-;10659:10;;;;;;;;;;;10645:24;;:12;:10;:12::i;:::-;:24;;;10637:33;;;;;;10696:12;;10687:7;:21;;:47;;;;;10721:13;;10712:7;:22;;10687:47;10679:56;;;;;;10757:7;10744:12;:20;;;;10787:7;10773:13;:21;;;;10584:218;:::o;243:98::-;296:7;323:10;316:17;;243:98;:::o;7092:335::-;7202:1;7185:19;;:5;:19;;;7177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7283:1;7264:21;;:7;:21;;;7256:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7365:6;7335:11;:18;7347:5;7335:18;;;;;;;;;;;;;;;:27;7354:7;7335:27;;;;;;;;;;;;;;;:36;;;;7403:7;7387:32;;7396:5;7387:32;;;7412:6;7387:32;;;;;;:::i;:::-;;;;;;;;7092:335;;;:::o;7435:1933::-;7539:1;7523:18;;:4;:18;;;7515:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7616:1;7602:16;;:2;:16;;;7594:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7686:1;7677:6;:10;7669:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7744:17;7786:7;:5;:7::i;:::-;7778:15;;:4;:15;;;;:32;;;;;7803:7;:5;:7::i;:::-;7797:13;;:2;:13;;;;7778:32;7774:1238;;;7839:76;7911:3;7839:67;7861:15;;7851:9;;:25;7850:55;;7891:14;;7850:55;;;7878:12;;7850:55;7839:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7827:88;;7944:13;;;;;;;;;;;7936:21;;:4;:21;;;:55;;;;;7975:15;;;;;;;;;;;7961:30;;:2;:30;;;;7936:55;:83;;;;;7997:18;:22;8016:2;7997:22;;;;;;;;;;;;;;;;;;;;;;;;;7995:24;7936:83;7932:372;;;8049:11;;;;;;;;;;;8041:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;8118:12;;8108:6;:22;;8100:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8213:14;;8203:6;8187:13;8197:2;8187:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8179:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8277:9;;:11;;;;;;;;;:::i;:::-;;;;;;7932:372;8329:13;;;;;;;;;;;8323:19;;:2;:19;;;:43;;;;;8361:4;8346:20;;:4;:20;;;;8323:43;8320:174;;;8399:79;8474:3;8399:70;8421:16;;8411:9;;:26;8410:58;;8453:15;;8410:58;;;8439:13;;8410:58;8399:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8387:91;;8320:174;8510:28;8541:24;8559:4;8541:9;:24::i;:::-;8510:55;;8585:6;;;;;;;;;;;8584:7;:32;;;;;8603:13;;;;;;;;;;;8595:21;;:2;:21;;;8584:32;:47;;;;;8620:11;;;;;;;;;;;8584:47;:89;;;;;8656:17;;8635:20;:38;8584:89;:121;;;;;8687:18;;8677:9;;:28;8584:121;8580:421;;;8726:67;8743:49;8747:6;8754:37;8758:20;8779:11;;8754:3;:37::i;:::-;8743:3;:49::i;:::-;8726:16;:67::i;:::-;8812:26;8841:21;8812:50;;8905:1;8884:18;:22;8881:105;;;8931:35;8944:21;8931:12;:35::i;:::-;8881:105;8707:294;8580:421;7812:1200;7774:1238;9037:1;9027:9;:11;9024:161;;;9077:39;9106:9;9077;:24;9095:4;9077:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9052:9;:24;9070:4;9052:24;;;;;;;;;;;;;;;:64;;;;9157:4;9134:39;;9143:4;9134:39;;;9163:9;9134:39;;;;;;:::i;:::-;;;;;;;;9024:161;9211:27;9231:6;9211:9;:15;9221:4;9211:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9195:9;:15;9205:4;9195:15;;;;;;;;;;;;;;;:43;;;;9263:40;9281:21;9292:9;9281:6;:10;;:21;;;;:::i;:::-;9263:9;:13;9273:2;9263:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9249:9;:13;9259:2;9249:13;;;;;;;;;;;;;;;:54;;;;9334:2;9319:41;;9328:4;9319:41;;;9338:21;9349:9;9338:6;:10;;:21;;;;:::i;:::-;9319:41;;;;;;:::i;:::-;;;;;;;;7504:1864;7435:1933;;;:::o;1380:190::-;1466:7;1499:1;1494;:6;;1502:12;1486:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1526:9;1542:1;1538;:5;;;;:::i;:::-;1526:17;;1561:1;1554:8;;;1380:190;;;;;:::o;9484:483::-;5222:4;5213:6;;:13;;;;;;;;;;;;;;;;;;9562:21:::1;9600:1;9586:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9562:40;;9631:4;9613;9618:1;9613:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9657:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9647:4;9652:1;9647:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9690:62;9707:4;9722:15;;;;;;;;;;;9740:11;9690:8;:62::i;:::-;9763:15;;;;;;;;;;;:66;;;9844:11;9870:1;9886:4;9913;9933:15;9763:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9551:416;5258:5:::0;5249:6;;:14;;;;;;;;;;;;;;;;;;9484:483;:::o;10142:92::-;10199:10;;;;;;;;;;;:19;;:27;10219:6;10199:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10142:92;:::o;1578:246::-;1636:7;1665:1;1660;:6;1656:47;;1690:1;1683:8;;;;1656:47;1713:9;1729:1;1725;:5;;;;:::i;:::-;1713:17;;1758:1;1753;1749;:5;;;;:::i;:::-;:10;1741:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1815:1;1808:8;;;1578:246;;;;;:::o;1832:132::-;1890:7;1917:39;1921:1;1924;1917:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1910:46;;1832:132;;;;:::o;9378:98::-;9435:7;9462:1;9460;:3;9459:9;;9467:1;9459:9;;;9465:1;9459:9;9452:16;;9378:98;;;;:::o;1049:179::-;1107:7;1127:9;1143:1;1139;:5;;;;:::i;:::-;1127:17;;1168:1;1163;:6;;1155:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1219:1;1212:8;;;1049:179;;;;:::o;1236:136::-;1294:7;1321:43;1325:1;1328;1321:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1314:50;;1236:136;;;;:::o;1972:189::-;2058:7;2090:1;2086;:5;2093:12;2078:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2117:9;2133:1;2129;:5;;;;:::i;:::-;2117:17;;2152:1;2145:8;;;1972:189;;;;;:::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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:329::-;6559:6;6608:2;6596:9;6587:7;6583:23;6579:32;6576:119;;;6614:79;;:::i;:::-;6576:119;6734:1;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6705:117;6500:329;;;;:::o;6835:180::-;6883:77;6880:1;6873:88;6980:4;6977:1;6970:15;7004:4;7001:1;6994:15;7021:102;7063:8;7110:5;7107:1;7103:13;7082:34;;7021:102;;;:::o;7129:848::-;7190:5;7197:4;7221:6;7212:15;;7245:5;7236:14;;7259:712;7280:1;7270:8;7267:15;7259:712;;;7375:4;7370:3;7366:14;7360:4;7357:24;7354:50;;;7384:18;;:::i;:::-;7354:50;7434:1;7424:8;7420:16;7417:451;;;7849:4;7842:5;7838:16;7829:25;;7417:451;7899:4;7893;7889:15;7881:23;;7929:32;7952:8;7929:32;:::i;:::-;7917:44;;7259:712;;;7129:848;;;;;;;:::o;7983:1073::-;8037:5;8228:8;8218:40;;8249:1;8240:10;;8251:5;;8218:40;8277:4;8267:36;;8294:1;8285:10;;8296:5;;8267:36;8363:4;8411:1;8406:27;;;;8447:1;8442:191;;;;8356:277;;8406:27;8424:1;8415:10;;8426:5;;;8442:191;8487:3;8477:8;8474:17;8471:43;;;8494:18;;:::i;:::-;8471:43;8543:8;8540:1;8536:16;8527:25;;8578:3;8571:5;8568:14;8565:40;;;8585:18;;:::i;:::-;8565:40;8618:5;;;8356:277;;8742:2;8732:8;8729:16;8723:3;8717:4;8714:13;8710:36;8692:2;8682:8;8679:16;8674:2;8668:4;8665:12;8661:35;8645:111;8642:246;;;8798:8;8792:4;8788:19;8779:28;;8833:3;8826:5;8823:14;8820:40;;;8840:18;;:::i;:::-;8820:40;8873:5;;8642:246;8913:42;8951:3;8941:8;8935:4;8932:1;8913:42;:::i;:::-;8898:57;;;;8987:4;8982:3;8978:14;8971:5;8968:25;8965:51;;;8996:18;;:::i;:::-;8965:51;9045:4;9038:5;9034:16;9025:25;;7983:1073;;;;;;:::o;9062:281::-;9120:5;9144:23;9162:4;9144:23;:::i;:::-;9136:31;;9188:25;9204:8;9188:25;:::i;:::-;9176:37;;9232:104;9269:66;9259:8;9253:4;9232:104;:::i;:::-;9223:113;;9062:281;;;;:::o;9349:410::-;9389:7;9412:20;9430:1;9412:20;:::i;:::-;9407:25;;9446:20;9464:1;9446:20;:::i;:::-;9441:25;;9501:1;9498;9494:9;9523:30;9541:11;9523:30;:::i;:::-;9512:41;;9702:1;9693:7;9689:15;9686:1;9683:22;9663:1;9656:9;9636:83;9613:139;;9732:18;;:::i;:::-;9613:139;9397:362;9349:410;;;;:::o;9765:182::-;9905:34;9901:1;9893:6;9889:14;9882:58;9765:182;:::o;9953:366::-;10095:3;10116:67;10180:2;10175:3;10116:67;:::i;:::-;10109:74;;10192:93;10281:3;10192:93;:::i;:::-;10310:2;10305:3;10301:12;10294:19;;9953:366;;;:::o;10325:419::-;10491:4;10529:2;10518:9;10514:18;10506:26;;10578:9;10572:4;10568:20;10564:1;10553:9;10549:17;10542:47;10606:131;10732:4;10606:131;:::i;:::-;10598:139;;10325:419;;;:::o;10750:173::-;10890:25;10886:1;10878:6;10874:14;10867:49;10750:173;:::o;10929:366::-;11071:3;11092:67;11156:2;11151:3;11092:67;:::i;:::-;11085:74;;11168:93;11257:3;11168:93;:::i;:::-;11286:2;11281:3;11277:12;11270:19;;10929:366;;;:::o;11301:419::-;11467:4;11505:2;11494:9;11490:18;11482:26;;11554:9;11548:4;11544:20;11540:1;11529:9;11525:17;11518:47;11582:131;11708:4;11582:131;:::i;:::-;11574:139;;11301:419;;;:::o;11726:223::-;11866:34;11862:1;11854:6;11850:14;11843:58;11935:6;11930:2;11922:6;11918:15;11911:31;11726:223;:::o;11955:366::-;12097:3;12118:67;12182:2;12177:3;12118:67;:::i;:::-;12111:74;;12194:93;12283:3;12194:93;:::i;:::-;12312:2;12307:3;12303:12;12296:19;;11955:366;;;:::o;12327:419::-;12493:4;12531:2;12520:9;12516:18;12508:26;;12580:9;12574:4;12570:20;12566:1;12555:9;12551:17;12544:47;12608:131;12734:4;12608:131;:::i;:::-;12600:139;;12327:419;;;:::o;12752:221::-;12892:34;12888:1;12880:6;12876:14;12869:58;12961:4;12956:2;12948:6;12944:15;12937:29;12752:221;:::o;12979:366::-;13121:3;13142:67;13206:2;13201:3;13142:67;:::i;:::-;13135:74;;13218:93;13307:3;13218:93;:::i;:::-;13336:2;13331:3;13327:12;13320:19;;12979:366;;;:::o;13351:419::-;13517:4;13555:2;13544:9;13540:18;13532:26;;13604:9;13598:4;13594:20;13590:1;13579:9;13575:17;13568:47;13632:131;13758:4;13632:131;:::i;:::-;13624:139;;13351:419;;;:::o;13776:224::-;13916:34;13912:1;13904:6;13900:14;13893:58;13985:7;13980:2;13972:6;13968:15;13961:32;13776:224;:::o;14006:366::-;14148:3;14169:67;14233:2;14228:3;14169:67;:::i;:::-;14162:74;;14245:93;14334:3;14245:93;:::i;:::-;14363:2;14358:3;14354:12;14347:19;;14006:366;;;:::o;14378:419::-;14544:4;14582:2;14571:9;14567:18;14559:26;;14631:9;14625:4;14621:20;14617:1;14606:9;14602:17;14595:47;14659:131;14785:4;14659:131;:::i;:::-;14651:139;;14378:419;;;:::o;14803:222::-;14943:34;14939:1;14931:6;14927:14;14920:58;15012:5;15007:2;14999:6;14995:15;14988:30;14803:222;:::o;15031:366::-;15173:3;15194:67;15258:2;15253:3;15194:67;:::i;:::-;15187:74;;15270:93;15359:3;15270:93;:::i;:::-;15388:2;15383:3;15379:12;15372:19;;15031:366;;;:::o;15403:419::-;15569:4;15607:2;15596:9;15592:18;15584:26;;15656:9;15650:4;15646:20;15642:1;15631:9;15627:17;15620:47;15684:131;15810:4;15684:131;:::i;:::-;15676:139;;15403:419;;;:::o;15828:228::-;15968:34;15964:1;15956:6;15952:14;15945:58;16037:11;16032:2;16024:6;16020:15;16013:36;15828:228;:::o;16062:366::-;16204:3;16225:67;16289:2;16284:3;16225:67;:::i;:::-;16218:74;;16301:93;16390:3;16301:93;:::i;:::-;16419:2;16414:3;16410:12;16403:19;;16062:366;;;:::o;16434:419::-;16600:4;16638:2;16627:9;16623:18;16615:26;;16687:9;16681:4;16677:20;16673:1;16662:9;16658:17;16651:47;16715:131;16841:4;16715:131;:::i;:::-;16707:139;;16434:419;;;:::o;16859:166::-;16999:18;16995:1;16987:6;16983:14;16976:42;16859:166;:::o;17031:366::-;17173:3;17194:67;17258:2;17253:3;17194:67;:::i;:::-;17187:74;;17270:93;17359:3;17270:93;:::i;:::-;17388:2;17383:3;17379:12;17372:19;;17031:366;;;:::o;17403:419::-;17569:4;17607:2;17596:9;17592:18;17584:26;;17656:9;17650:4;17646:20;17642:1;17631:9;17627:17;17620:47;17684:131;17810:4;17684:131;:::i;:::-;17676:139;;17403:419;;;:::o;17828:175::-;17968:27;17964:1;17956:6;17952:14;17945:51;17828:175;:::o;18009:366::-;18151:3;18172:67;18236:2;18231:3;18172:67;:::i;:::-;18165:74;;18248:93;18337:3;18248:93;:::i;:::-;18366:2;18361:3;18357:12;18350:19;;18009:366;;;:::o;18381:419::-;18547:4;18585:2;18574:9;18570:18;18562:26;;18634:9;18628:4;18624:20;18620:1;18609:9;18605:17;18598:47;18662:131;18788:4;18662:131;:::i;:::-;18654:139;;18381:419;;;:::o;18806:191::-;18846:3;18865:20;18883:1;18865:20;:::i;:::-;18860:25;;18899:20;18917:1;18899:20;:::i;:::-;18894:25;;18942:1;18939;18935:9;18928:16;;18963:3;18960:1;18957:10;18954:36;;;18970:18;;:::i;:::-;18954:36;18806:191;;;;:::o;19003:176::-;19143:28;19139:1;19131:6;19127:14;19120:52;19003:176;:::o;19185:366::-;19327:3;19348:67;19412:2;19407:3;19348:67;:::i;:::-;19341:74;;19424:93;19513:3;19424:93;:::i;:::-;19542:2;19537:3;19533:12;19526:19;;19185:366;;;:::o;19557:419::-;19723:4;19761:2;19750:9;19746:18;19738:26;;19810:9;19804:4;19800:20;19796:1;19785:9;19781:17;19774:47;19838:131;19964:4;19838:131;:::i;:::-;19830:139;;19557:419;;;:::o;19982:233::-;20021:3;20044:24;20062:5;20044:24;:::i;:::-;20035:33;;20090:66;20083:5;20080:77;20077:103;;20160:18;;:::i;:::-;20077:103;20207:1;20200:5;20196:13;20189:20;;19982:233;;;:::o;20221:194::-;20261:4;20281:20;20299:1;20281:20;:::i;:::-;20276:25;;20315:20;20333:1;20315:20;:::i;:::-;20310:25;;20359:1;20356;20352:9;20344:17;;20383:1;20377:4;20374:11;20371:37;;;20388:18;;:::i;:::-;20371:37;20221:194;;;;:::o;20421:180::-;20469:77;20466:1;20459:88;20566:4;20563:1;20556:15;20590:4;20587:1;20580:15;20607:180;20655:77;20652:1;20645:88;20752:4;20749:1;20742:15;20776:4;20773:1;20766:15;20793:143;20850:5;20881:6;20875:13;20866:22;;20897:33;20924:5;20897:33;:::i;:::-;20793:143;;;;:::o;20942:351::-;21012:6;21061:2;21049:9;21040:7;21036:23;21032:32;21029:119;;;21067:79;;:::i;:::-;21029:119;21187:1;21212:64;21268:7;21259:6;21248:9;21244:22;21212:64;:::i;:::-;21202:74;;21158:128;20942:351;;;;:::o;21299:85::-;21344:7;21373:5;21362:16;;21299:85;;;:::o;21390:60::-;21418:3;21439:5;21432:12;;21390:60;;;:::o;21456:158::-;21514:9;21547:61;21565:42;21574:32;21600:5;21574:32;:::i;:::-;21565:42;:::i;:::-;21547:61;:::i;:::-;21534:74;;21456:158;;;:::o;21620:147::-;21715:45;21754:5;21715:45;:::i;:::-;21710:3;21703:58;21620:147;;:::o;21773:114::-;21840:6;21874:5;21868:12;21858:22;;21773:114;;;:::o;21893:184::-;21992:11;22026:6;22021:3;22014:19;22066:4;22061:3;22057:14;22042:29;;21893:184;;;;:::o;22083:132::-;22150:4;22173:3;22165:11;;22203:4;22198:3;22194:14;22186:22;;22083:132;;;:::o;22221:108::-;22298:24;22316:5;22298:24;:::i;:::-;22293:3;22286:37;22221:108;;:::o;22335:179::-;22404:10;22425:46;22467:3;22459:6;22425:46;:::i;:::-;22503:4;22498:3;22494:14;22480:28;;22335:179;;;;:::o;22520:113::-;22590:4;22622;22617:3;22613:14;22605:22;;22520:113;;;:::o;22669:732::-;22788:3;22817:54;22865:5;22817:54;:::i;:::-;22887:86;22966:6;22961:3;22887:86;:::i;:::-;22880:93;;22997:56;23047:5;22997:56;:::i;:::-;23076:7;23107:1;23092:284;23117:6;23114:1;23111:13;23092:284;;;23193:6;23187:13;23220:63;23279:3;23264:13;23220:63;:::i;:::-;23213:70;;23306:60;23359:6;23306:60;:::i;:::-;23296:70;;23152:224;23139:1;23136;23132:9;23127:14;;23092:284;;;23096:14;23392:3;23385:10;;22793:608;;;22669:732;;;;:::o;23407:831::-;23670:4;23708:3;23697:9;23693:19;23685:27;;23722:71;23790:1;23779:9;23775:17;23766:6;23722:71;:::i;:::-;23803:80;23879:2;23868:9;23864:18;23855:6;23803:80;:::i;:::-;23930:9;23924:4;23920:20;23915:2;23904:9;23900:18;23893:48;23958:108;24061:4;24052:6;23958:108;:::i;:::-;23950:116;;24076:72;24144:2;24133:9;24129:18;24120:6;24076:72;:::i;:::-;24158:73;24226:3;24215:9;24211:19;24202:6;24158:73;:::i;:::-;23407:831;;;;;;;;:::o;24244:180::-;24292:77;24289:1;24282:88;24389:4;24386:1;24379:15;24413:4;24410:1;24403:15;24430:185;24470:1;24487:20;24505:1;24487:20;:::i;:::-;24482:25;;24521:20;24539:1;24521:20;:::i;:::-;24516:25;;24560:1;24550:35;;24565:18;;:::i;:::-;24550:35;24607:1;24604;24600:9;24595:14;;24430:185;;;;:::o;24621:220::-;24761:34;24757:1;24749:6;24745:14;24738:58;24830:3;24825:2;24817:6;24813:15;24806:28;24621:220;:::o;24847:366::-;24989:3;25010:67;25074:2;25069:3;25010:67;:::i;:::-;25003:74;;25086:93;25175:3;25086:93;:::i;:::-;25204:2;25199:3;25195:12;25188:19;;24847:366;;;:::o;25219:419::-;25385:4;25423:2;25412:9;25408:18;25400:26;;25472:9;25466:4;25462:20;25458:1;25447:9;25443:17;25436:47;25500:131;25626:4;25500:131;:::i;:::-;25492:139;;25219:419;;;:::o;25644:177::-;25784:29;25780:1;25772:6;25768:14;25761:53;25644:177;:::o;25827:366::-;25969:3;25990:67;26054:2;26049:3;25990:67;:::i;:::-;25983:74;;26066:93;26155:3;26066:93;:::i;:::-;26184:2;26179:3;26175:12;26168:19;;25827:366;;;:::o;26199:419::-;26365:4;26403:2;26392:9;26388:18;26380:26;;26452:9;26446:4;26442:20;26438:1;26427:9;26423:17;26416:47;26480:131;26606:4;26480:131;:::i;:::-;26472:139;;26199:419;;;:::o

Swarm Source

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