ETH Price: $2,275.36 (+1.89%)

Token

Ryoshi Research (RYSH)
 

Overview

Max Total Supply

1,000,000,000 RYSH

Holders

209

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,084,961.299879067340152289 RYSH

Value
$0.00
0x7Dc8B6e597a81C253b003658B26B5F9CcD4e8657
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:
RYSH

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
https://t.me/RyoshiResearchportal
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

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

contract Ownable is Context {
    address private _owner;
    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 transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

    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(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

contract RYSH is Context, IERC20, Ownable {
    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private _FreeWallets;
    mapping(address => uint256) private _BlockedAddress;
    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 1000000000 * 10**_decimals;
    uint256 private constant minimumSwapAmount = 400000 * 10**_decimals;
    uint256 private constant onePercent = 10000000 * 10**_decimals;
    uint256 private maxSwap = onePercent / 2;
    uint256 public MaximumOneTrxAmount = onePercent;
    uint256 public MxWalletSize = 2*onePercent;

    uint256 private InitialBlockNo;

    uint256 public buyTax = 25;
    uint256 public sellTax = 45;
    
    string private constant _name = "Ryoshi Research";
    string private constant _symbol = "RYSH";

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    address immutable public FeesAddress ;
    address immutable public SecFeesWallet;

    bool private launch = false;

    constructor() {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        FeesAddress  = 0x91E50CF57f300fFeB3eC7c6559f36C3b8A1A7790;
        SecFeesWallet = 0x91E50CF57f300fFeB3eC7c6559f36C3b8A1A7790;
        _balance[msg.sender] = _totalSupply;
        _FreeWallets[FeesAddress ] = 1;
        _FreeWallets[msg.sender] = 1;
        _FreeWallets[address(this)] = 1;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    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 _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balance[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);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if(currentAllowance != type(uint256).max) { 
            require(
                currentAllowance >= amount,
                "ERC20: transfer amount exceeds allowance"
            );
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }
        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 StartTrading() external onlyOwner {
        launch = true;
        InitialBlockNo = block.number;
    }

    function _addExcludedWallet(address wallet) external onlyOwner {
        _FreeWallets[wallet] = 1;
    }

    function _RemoveExcludedWallet(address wallet) external onlyOwner {
        _FreeWallets[wallet] = 0;
    }

    function RemoveLimts() external onlyOwner {
        MaximumOneTrxAmount = _totalSupply;
        MxWalletSize = _totalSupply;
    }

    function EditTaxes(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        require(newBuyTax + newSellTax <= 70, "Tax too high");
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function _tokenTransfer(address from, address to, uint256 amount, uint256 _tax) private {
        uint256 taxTokens = (amount * _tax) / 100;
        uint256 transferAmount = amount - taxTokens;

        _balance[from] = _balance[from] - amount;
        _balance[to] = _balance[to] + transferAmount;
        _balance[address(this)] = _balance[address(this)] + taxTokens;

        emit Transfer(from, to, transferAmount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "ERC20: no tokens transferred");
        uint256 _tax = 0;
        if (_FreeWallets[from] == 0 && _FreeWallets[to] == 0)
        {
            require(launch, "Trading not open");
            require(_BlockedAddress[from] == 0, "Please contact support");
            require(amount <= MaximumOneTrxAmount, "MaxTx Enabled at launch");
            if (to != uniswapV2Pair && to != address(0xdead)) require(balanceOf(to) + amount <= MxWalletSize, "MaxWallet Enabled at launch");
            if (block.number < InitialBlockNo + 2) {_tax=70;} else {
                if (from == uniswapV2Pair) {
                    _tax = buyTax;
                } else if (to == uniswapV2Pair) {
                    uint256 tokensToSwap = balanceOf(address(this));
                    if (tokensToSwap > minimumSwapAmount) { 
                        uint256 mxSw = maxSwap;
                        if (tokensToSwap > amount) tokensToSwap = amount;
                        if (tokensToSwap > mxSw) tokensToSwap = mxSw;
                        swapTokensForEth(tokensToSwap);
                    }
                    _tax = sellTax;
                }
            }
        }
        _tokenTransfer(from, to, amount, _tax);
    }

    function manualSendBalance() external onlyOwner {
        bool success;
        (success, ) = SecFeesWallet.call{value: address(this).balance / 10}("");
        (success, ) = FeesAddress .call{value: address(this).balance}("");
    } 

    function manualSwapTokens() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        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
        );
        bool success;
        (success, ) = SecFeesWallet.call{value: address(this).balance / 10}("");
        (success, ) = FeesAddress .call{value: address(this).balance}("");
    }
    receive() external payable {}
}

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":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":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"EditTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"FeesAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaximumOneTrxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RemoveLimts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SecFeesWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"StartTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"_RemoveExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"_addExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","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":"manualSendBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405260026012600a620000169190620007ae565b62989680620000269190620007ff565b62000032919062000879565b6005556012600a620000459190620007ae565b62989680620000559190620007ff565b6006556012600a620000689190620007ae565b62989680620000789190620007ff565b6002620000869190620007ff565b6007556019600955602d600a556000600c60146101000a81548160ff021916908315150217905550348015620000bb57600080fd5b506000620000ce6200060c60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025591906200091b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030591906200091b565b6040518363ffffffff1660e01b8152600401620003249291906200095e565b6020604051808303816000875af115801562000344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036a91906200091b565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507391e50cf57f300ffeb3ec7c6559f36c3b8a1a779073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250507391e50cf57f300ffeb3ec7c6559f36c3b8a1a779073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506012600a6200044a9190620007ae565b633b9aca006200045b9190620007ff565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200057f6200060c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620005de9190620007ae565b633b9aca00620005ef9190620007ff565b604051620005fe91906200099c565b60405180910390a3620009b9565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620006a2578086048111156200067a576200067962000614565b5b60018516156200068a5780820291505b80810290506200069a8562000643565b94506200065a565b94509492505050565b600082620006bd576001905062000790565b81620006cd576000905062000790565b8160018114620006e65760028114620006f15762000727565b600191505062000790565b60ff84111562000706576200070562000614565b5b8360020a91508482111562000720576200071f62000614565b5b5062000790565b5060208310610133831016604e8410600b8410161715620007615782820a9050838111156200075b576200075a62000614565b5b62000790565b62000770848484600162000650565b925090508184048111156200078a576200078962000614565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620007bb8262000797565b9150620007c883620007a1565b9250620007f77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006ab565b905092915050565b60006200080c8262000797565b9150620008198362000797565b9250828202620008298162000797565b9150828204841483151762000843576200084262000614565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008868262000797565b9150620008938362000797565b925082620008a657620008a56200084a565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008e382620008b6565b9050919050565b620008f581620008d6565b81146200090157600080fd5b50565b6000815190506200091581620008ea565b92915050565b600060208284031215620009345762000933620008b1565b5b6000620009448482850162000904565b91505092915050565b6200095881620008d6565b82525050565b60006040820190506200097560008301856200094d565b6200098460208301846200094d565b9392505050565b620009968162000797565b82525050565b6000602082019050620009b360008301846200098b565b92915050565b60805160a051612d88620009fb6000396000818161081b01528181610e1e0152611aa80152600081816108b301528181610b4a0152611b400152612d886000f3fe6080604052600436106101855760003560e01c8063715018a6116100d1578063a9059cbb1161008a578063cc1776d311610064578063cc1776d314610523578063d7f738581461054e578063dd62ed3e14610577578063f2fde38b146105b45761018c565b8063a9059cbb146104b8578063bf6a1c0d146104f5578063c5c952591461050c5761018c565b8063715018a6146103de5780637c4c75eb146103f55780638da5cb5b1461040c57806395d89b411461043757806397b2ebfe14610462578063a414f3e21461048d5761018c565b80632d34b9ed1161013e5780634f7041a5116101185780634f7041a514610322578063506caca11461034d5780636cae5a691461037657806370a08231146103a15761018c565b80632d34b9ed146102a3578063313ce567146102cc57806349bd5a5e146102f75761018c565b806306fdde0314610191578063095ea7b3146101bc57806318160ddd146101f9578063230b33501461022457806323b872dd1461024f57806328176f891461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105dd565b6040516101b39190611fce565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612089565b61061a565b6040516101f091906120e4565b60405180910390f35b34801561020557600080fd5b5061020e610638565b60405161021b919061210e565b60405180910390f35b34801561023057600080fd5b5061023961065c565b604051610246919061210e565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190612129565b610662565b60405161028391906120e4565b60405180910390f35b34801561029857600080fd5b506102a1610782565b005b3480156102af57600080fd5b506102ca60048036038101906102c5919061217c565b610940565b005b3480156102d857600080fd5b506102e1610a1d565b6040516102ee91906121c5565b60405180910390f35b34801561030357600080fd5b5061030c610a26565b60405161031991906121ef565b60405180910390f35b34801561032e57600080fd5b50610337610a4c565b604051610344919061210e565b60405180910390f35b34801561035957600080fd5b50610374600480360381019061036f919061220a565b610a52565b005b34801561038257600080fd5b5061038b610b48565b60405161039891906121ef565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c3919061217c565b610b6c565b6040516103d5919061210e565b60405180910390f35b3480156103ea57600080fd5b506103f3610bb5565b005b34801561040157600080fd5b5061040a610d08565b005b34801561041857600080fd5b50610421610db6565b60405161042e91906121ef565b60405180910390f35b34801561044357600080fd5b5061044c610ddf565b6040516104599190611fce565b60405180910390f35b34801561046e57600080fd5b50610477610e1c565b60405161048491906121ef565b60405180910390f35b34801561049957600080fd5b506104a2610e40565b6040516104af919061210e565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190612089565b610e46565b6040516104ec91906120e4565b60405180910390f35b34801561050157600080fd5b5061050a610e64565b005b34801561051857600080fd5b50610521610f1d565b005b34801561052f57600080fd5b50610538610ffa565b604051610545919061210e565b60405180910390f35b34801561055a57600080fd5b506105756004803603810190610570919061217c565b611000565b005b34801561058357600080fd5b5061059e6004803603810190610599919061224a565b6110dd565b6040516105ab919061210e565b60405180910390f35b3480156105c057600080fd5b506105db60048036038101906105d6919061217c565b611164565b005b60606040518060400160405280600f81526020017f52796f7368692052657365617263680000000000000000000000000000000000815250905090565b600061062e610627611205565b848461120d565b6001905092915050565b60006012600a61064891906123ec565b633b9aca006106579190612437565b905090565b60065481565b600061066f8484846113d6565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106ba611205565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107765782811015610761576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610758906124eb565b60405180910390fd5b6107758561076d611205565b85840361120d565b5b60019150509392505050565b61078a611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080e90612557565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16600a4761085d91906125a6565b60405161086990612608565b60006040518083038185875af1925050503d80600081146108a6576040519150601f19603f3d011682016040523d82523d6000602084013e6108ab565b606091505b5050809150507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16476040516108f590612608565b60006040518083038185875af1925050503d8060008114610932576040519150601f19603f3d011682016040523d82523d6000602084013e610937565b606091505b50508091505050565b610948611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc90612557565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60006012905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b610a5a611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade90612557565b60405180910390fd5b60468183610af5919061261d565b1115610b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2d9061269d565b60405180910390fd5b8160098190555080600a819055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bbd611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4190612557565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d10611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9490612557565b60405180910390fd5b6000610da830610b6c565b9050610db381611865565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f5259534800000000000000000000000000000000000000000000000000000000815250905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b60075481565b6000610e5a610e53611205565b84846113d6565b6001905092915050565b610e6c611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef090612557565b60405180910390fd5b6001600c60146101000a81548160ff02191690831515021790555043600881905550565b610f25611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa990612557565b60405180910390fd5b6012600a610fc091906123ec565b633b9aca00610fcf9190612437565b6006819055506012600a610fe391906123ec565b633b9aca00610ff29190612437565b600781905550565b600a5481565b611008611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108c90612557565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61116c611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f090612557565b60405180910390fd5b61120281611bcf565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361127c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112739061272f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e2906127c1565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113c9919061210e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c90612853565b60405180910390fd5b60008111611488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147f906128bf565b60405180910390fd5b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414801561151757506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1561185357600c60149054906101000a900460ff1661156b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115629061292b565b60405180910390fd5b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e490612997565b60405180910390fd5b600654821115611632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162990612a03565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116be575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561171c57600754826116d085610b6c565b6116da919061261d565b111561171b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171290612a6f565b60405180910390fd5b5b600260085461172b919061261d565b43101561173b5760469050611852565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361179a576009549050611851565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118505760006117fa30610b6c565b90506012600a61180a91906123ec565b62061a806118189190612437565b811115611849576000600554905083821115611832578391505b8082111561183e578091505b61184782611865565b505b600a549150505b5b5b5b61185f84848484611cfb565b50505050565b6000600267ffffffffffffffff81111561188257611881612a8f565b5b6040519080825280602002602001820160405280156118b05781602001602082028036833780820191505090505b50905030816000815181106118c8576118c7612abe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561196f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119939190612b02565b816001815181106119a7576119a6612abe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a0e30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461120d565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a72959493929190612c32565b600060405180830381600087803b158015611a8c57600080fd5b505af1158015611aa0573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16600a47611aea91906125a6565b604051611af690612608565b60006040518083038185875af1925050503d8060008114611b33576040519150601f19603f3d011682016040523d82523d6000602084013e611b38565b606091505b5050809150507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1647604051611b8290612608565b60006040518083038185875af1925050503d8060008114611bbf576040519150601f19603f3d011682016040523d82523d6000602084013e611bc4565b606091505b505080915050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3590612cfe565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060648284611d0b9190612437565b611d1591906125a6565b905060008184611d259190612d1e565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d729190612d1e565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e00919061261d565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8e919061261d565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f2e919061210e565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f78578082015181840152602081019050611f5d565b60008484015250505050565b6000601f19601f8301169050919050565b6000611fa082611f3e565b611faa8185611f49565b9350611fba818560208601611f5a565b611fc381611f84565b840191505092915050565b60006020820190508181036000830152611fe88184611f95565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061202082611ff5565b9050919050565b61203081612015565b811461203b57600080fd5b50565b60008135905061204d81612027565b92915050565b6000819050919050565b61206681612053565b811461207157600080fd5b50565b6000813590506120838161205d565b92915050565b600080604083850312156120a05761209f611ff0565b5b60006120ae8582860161203e565b92505060206120bf85828601612074565b9150509250929050565b60008115159050919050565b6120de816120c9565b82525050565b60006020820190506120f960008301846120d5565b92915050565b61210881612053565b82525050565b600060208201905061212360008301846120ff565b92915050565b60008060006060848603121561214257612141611ff0565b5b60006121508682870161203e565b93505060206121618682870161203e565b925050604061217286828701612074565b9150509250925092565b60006020828403121561219257612191611ff0565b5b60006121a08482850161203e565b91505092915050565b600060ff82169050919050565b6121bf816121a9565b82525050565b60006020820190506121da60008301846121b6565b92915050565b6121e981612015565b82525050565b600060208201905061220460008301846121e0565b92915050565b6000806040838503121561222157612220611ff0565b5b600061222f85828601612074565b925050602061224085828601612074565b9150509250929050565b6000806040838503121561226157612260611ff0565b5b600061226f8582860161203e565b92505060206122808582860161203e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612310578086048111156122ec576122eb61228a565b5b60018516156122fb5780820291505b8081029050612309856122b9565b94506122d0565b94509492505050565b60008261232957600190506123e5565b8161233757600090506123e5565b816001811461234d576002811461235757612386565b60019150506123e5565b60ff8411156123695761236861228a565b5b8360020a9150848211156123805761237f61228a565b5b506123e5565b5060208310610133831016604e8410600b84101617156123bb5782820a9050838111156123b6576123b561228a565b5b6123e5565b6123c884848460016122c6565b925090508184048111156123df576123de61228a565b5b81810290505b9392505050565b60006123f782612053565b9150612402836121a9565b925061242f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612319565b905092915050565b600061244282612053565b915061244d83612053565b925082820261245b81612053565b915082820484148315176124725761247161228a565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006124d5602883611f49565b91506124e082612479565b604082019050919050565b60006020820190508181036000830152612504816124c8565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612541602083611f49565b915061254c8261250b565b602082019050919050565b6000602082019050818103600083015261257081612534565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006125b182612053565b91506125bc83612053565b9250826125cc576125cb612577565b5b828204905092915050565b600081905092915050565b50565b60006125f26000836125d7565b91506125fd826125e2565b600082019050919050565b6000612613826125e5565b9150819050919050565b600061262882612053565b915061263383612053565b925082820190508082111561264b5761264a61228a565b5b92915050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000612687600c83611f49565b915061269282612651565b602082019050919050565b600060208201905081810360008301526126b68161267a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612719602483611f49565b9150612724826126bd565b604082019050919050565b600060208201905081810360008301526127488161270c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006127ab602283611f49565b91506127b68261274f565b604082019050919050565b600060208201905081810360008301526127da8161279e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061283d602583611f49565b9150612848826127e1565b604082019050919050565b6000602082019050818103600083015261286c81612830565b9050919050565b7f45524332303a206e6f20746f6b656e73207472616e7366657272656400000000600082015250565b60006128a9601c83611f49565b91506128b482612873565b602082019050919050565b600060208201905081810360008301526128d88161289c565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612915601083611f49565b9150612920826128df565b602082019050919050565b6000602082019050818103600083015261294481612908565b9050919050565b7f506c6561736520636f6e7461637420737570706f727400000000000000000000600082015250565b6000612981601683611f49565b915061298c8261294b565b602082019050919050565b600060208201905081810360008301526129b081612974565b9050919050565b7f4d6178547820456e61626c6564206174206c61756e6368000000000000000000600082015250565b60006129ed601783611f49565b91506129f8826129b7565b602082019050919050565b60006020820190508181036000830152612a1c816129e0565b9050919050565b7f4d617857616c6c657420456e61626c6564206174206c61756e63680000000000600082015250565b6000612a59601b83611f49565b9150612a6482612a23565b602082019050919050565b60006020820190508181036000830152612a8881612a4c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612afc81612027565b92915050565b600060208284031215612b1857612b17611ff0565b5b6000612b2684828501612aed565b91505092915050565b6000819050919050565b6000819050919050565b6000612b5e612b59612b5484612b2f565b612b39565b612053565b9050919050565b612b6e81612b43565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ba981612015565b82525050565b6000612bbb8383612ba0565b60208301905092915050565b6000602082019050919050565b6000612bdf82612b74565b612be98185612b7f565b9350612bf483612b90565b8060005b83811015612c25578151612c0c8882612baf565b9750612c1783612bc7565b925050600181019050612bf8565b5085935050505092915050565b600060a082019050612c4760008301886120ff565b612c546020830187612b65565b8181036040830152612c668186612bd4565b9050612c7560608301856121e0565b612c8260808301846120ff565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612ce8602683611f49565b9150612cf382612c8c565b604082019050919050565b60006020820190508181036000830152612d1781612cdb565b9050919050565b6000612d2982612053565b9150612d3483612053565b9250828203905081811115612d4c57612d4b61228a565b5b9291505056fea264697066735822122096a64391290111482db5d6f49fec8b4eacfa14b46c8dcc91fed1a2c206017b2764736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101855760003560e01c8063715018a6116100d1578063a9059cbb1161008a578063cc1776d311610064578063cc1776d314610523578063d7f738581461054e578063dd62ed3e14610577578063f2fde38b146105b45761018c565b8063a9059cbb146104b8578063bf6a1c0d146104f5578063c5c952591461050c5761018c565b8063715018a6146103de5780637c4c75eb146103f55780638da5cb5b1461040c57806395d89b411461043757806397b2ebfe14610462578063a414f3e21461048d5761018c565b80632d34b9ed1161013e5780634f7041a5116101185780634f7041a514610322578063506caca11461034d5780636cae5a691461037657806370a08231146103a15761018c565b80632d34b9ed146102a3578063313ce567146102cc57806349bd5a5e146102f75761018c565b806306fdde0314610191578063095ea7b3146101bc57806318160ddd146101f9578063230b33501461022457806323b872dd1461024f57806328176f891461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105dd565b6040516101b39190611fce565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612089565b61061a565b6040516101f091906120e4565b60405180910390f35b34801561020557600080fd5b5061020e610638565b60405161021b919061210e565b60405180910390f35b34801561023057600080fd5b5061023961065c565b604051610246919061210e565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190612129565b610662565b60405161028391906120e4565b60405180910390f35b34801561029857600080fd5b506102a1610782565b005b3480156102af57600080fd5b506102ca60048036038101906102c5919061217c565b610940565b005b3480156102d857600080fd5b506102e1610a1d565b6040516102ee91906121c5565b60405180910390f35b34801561030357600080fd5b5061030c610a26565b60405161031991906121ef565b60405180910390f35b34801561032e57600080fd5b50610337610a4c565b604051610344919061210e565b60405180910390f35b34801561035957600080fd5b50610374600480360381019061036f919061220a565b610a52565b005b34801561038257600080fd5b5061038b610b48565b60405161039891906121ef565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c3919061217c565b610b6c565b6040516103d5919061210e565b60405180910390f35b3480156103ea57600080fd5b506103f3610bb5565b005b34801561040157600080fd5b5061040a610d08565b005b34801561041857600080fd5b50610421610db6565b60405161042e91906121ef565b60405180910390f35b34801561044357600080fd5b5061044c610ddf565b6040516104599190611fce565b60405180910390f35b34801561046e57600080fd5b50610477610e1c565b60405161048491906121ef565b60405180910390f35b34801561049957600080fd5b506104a2610e40565b6040516104af919061210e565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190612089565b610e46565b6040516104ec91906120e4565b60405180910390f35b34801561050157600080fd5b5061050a610e64565b005b34801561051857600080fd5b50610521610f1d565b005b34801561052f57600080fd5b50610538610ffa565b604051610545919061210e565b60405180910390f35b34801561055a57600080fd5b506105756004803603810190610570919061217c565b611000565b005b34801561058357600080fd5b5061059e6004803603810190610599919061224a565b6110dd565b6040516105ab919061210e565b60405180910390f35b3480156105c057600080fd5b506105db60048036038101906105d6919061217c565b611164565b005b60606040518060400160405280600f81526020017f52796f7368692052657365617263680000000000000000000000000000000000815250905090565b600061062e610627611205565b848461120d565b6001905092915050565b60006012600a61064891906123ec565b633b9aca006106579190612437565b905090565b60065481565b600061066f8484846113d6565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106ba611205565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107765782811015610761576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610758906124eb565b60405180910390fd5b6107758561076d611205565b85840361120d565b5b60019150509392505050565b61078a611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080e90612557565b60405180910390fd5b60007f00000000000000000000000091e50cf57f300ffeb3ec7c6559f36c3b8a1a779073ffffffffffffffffffffffffffffffffffffffff16600a4761085d91906125a6565b60405161086990612608565b60006040518083038185875af1925050503d80600081146108a6576040519150601f19603f3d011682016040523d82523d6000602084013e6108ab565b606091505b5050809150507f00000000000000000000000091e50cf57f300ffeb3ec7c6559f36c3b8a1a779073ffffffffffffffffffffffffffffffffffffffff16476040516108f590612608565b60006040518083038185875af1925050503d8060008114610932576040519150601f19603f3d011682016040523d82523d6000602084013e610937565b606091505b50508091505050565b610948611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc90612557565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60006012905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b610a5a611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade90612557565b60405180910390fd5b60468183610af5919061261d565b1115610b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2d9061269d565b60405180910390fd5b8160098190555080600a819055505050565b7f00000000000000000000000091e50cf57f300ffeb3ec7c6559f36c3b8a1a779081565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bbd611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4190612557565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d10611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9490612557565b60405180910390fd5b6000610da830610b6c565b9050610db381611865565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f5259534800000000000000000000000000000000000000000000000000000000815250905090565b7f00000000000000000000000091e50cf57f300ffeb3ec7c6559f36c3b8a1a779081565b60075481565b6000610e5a610e53611205565b84846113d6565b6001905092915050565b610e6c611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef090612557565b60405180910390fd5b6001600c60146101000a81548160ff02191690831515021790555043600881905550565b610f25611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa990612557565b60405180910390fd5b6012600a610fc091906123ec565b633b9aca00610fcf9190612437565b6006819055506012600a610fe391906123ec565b633b9aca00610ff29190612437565b600781905550565b600a5481565b611008611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108c90612557565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61116c611205565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f090612557565b60405180910390fd5b61120281611bcf565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361127c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112739061272f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e2906127c1565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113c9919061210e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c90612853565b60405180910390fd5b60008111611488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147f906128bf565b60405180910390fd5b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414801561151757506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1561185357600c60149054906101000a900460ff1661156b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115629061292b565b60405180910390fd5b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e490612997565b60405180910390fd5b600654821115611632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162990612a03565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116be575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561171c57600754826116d085610b6c565b6116da919061261d565b111561171b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171290612a6f565b60405180910390fd5b5b600260085461172b919061261d565b43101561173b5760469050611852565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361179a576009549050611851565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118505760006117fa30610b6c565b90506012600a61180a91906123ec565b62061a806118189190612437565b811115611849576000600554905083821115611832578391505b8082111561183e578091505b61184782611865565b505b600a549150505b5b5b5b61185f84848484611cfb565b50505050565b6000600267ffffffffffffffff81111561188257611881612a8f565b5b6040519080825280602002602001820160405280156118b05781602001602082028036833780820191505090505b50905030816000815181106118c8576118c7612abe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561196f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119939190612b02565b816001815181106119a7576119a6612abe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a0e30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461120d565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a72959493929190612c32565b600060405180830381600087803b158015611a8c57600080fd5b505af1158015611aa0573d6000803e3d6000fd5b5050505060007f00000000000000000000000091e50cf57f300ffeb3ec7c6559f36c3b8a1a779073ffffffffffffffffffffffffffffffffffffffff16600a47611aea91906125a6565b604051611af690612608565b60006040518083038185875af1925050503d8060008114611b33576040519150601f19603f3d011682016040523d82523d6000602084013e611b38565b606091505b5050809150507f00000000000000000000000091e50cf57f300ffeb3ec7c6559f36c3b8a1a779073ffffffffffffffffffffffffffffffffffffffff1647604051611b8290612608565b60006040518083038185875af1925050503d8060008114611bbf576040519150601f19603f3d011682016040523d82523d6000602084013e611bc4565b606091505b505080915050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3590612cfe565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060648284611d0b9190612437565b611d1591906125a6565b905060008184611d259190612d1e565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d729190612d1e565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e00919061261d565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8e919061261d565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f2e919061210e565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f78578082015181840152602081019050611f5d565b60008484015250505050565b6000601f19601f8301169050919050565b6000611fa082611f3e565b611faa8185611f49565b9350611fba818560208601611f5a565b611fc381611f84565b840191505092915050565b60006020820190508181036000830152611fe88184611f95565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061202082611ff5565b9050919050565b61203081612015565b811461203b57600080fd5b50565b60008135905061204d81612027565b92915050565b6000819050919050565b61206681612053565b811461207157600080fd5b50565b6000813590506120838161205d565b92915050565b600080604083850312156120a05761209f611ff0565b5b60006120ae8582860161203e565b92505060206120bf85828601612074565b9150509250929050565b60008115159050919050565b6120de816120c9565b82525050565b60006020820190506120f960008301846120d5565b92915050565b61210881612053565b82525050565b600060208201905061212360008301846120ff565b92915050565b60008060006060848603121561214257612141611ff0565b5b60006121508682870161203e565b93505060206121618682870161203e565b925050604061217286828701612074565b9150509250925092565b60006020828403121561219257612191611ff0565b5b60006121a08482850161203e565b91505092915050565b600060ff82169050919050565b6121bf816121a9565b82525050565b60006020820190506121da60008301846121b6565b92915050565b6121e981612015565b82525050565b600060208201905061220460008301846121e0565b92915050565b6000806040838503121561222157612220611ff0565b5b600061222f85828601612074565b925050602061224085828601612074565b9150509250929050565b6000806040838503121561226157612260611ff0565b5b600061226f8582860161203e565b92505060206122808582860161203e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612310578086048111156122ec576122eb61228a565b5b60018516156122fb5780820291505b8081029050612309856122b9565b94506122d0565b94509492505050565b60008261232957600190506123e5565b8161233757600090506123e5565b816001811461234d576002811461235757612386565b60019150506123e5565b60ff8411156123695761236861228a565b5b8360020a9150848211156123805761237f61228a565b5b506123e5565b5060208310610133831016604e8410600b84101617156123bb5782820a9050838111156123b6576123b561228a565b5b6123e5565b6123c884848460016122c6565b925090508184048111156123df576123de61228a565b5b81810290505b9392505050565b60006123f782612053565b9150612402836121a9565b925061242f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612319565b905092915050565b600061244282612053565b915061244d83612053565b925082820261245b81612053565b915082820484148315176124725761247161228a565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006124d5602883611f49565b91506124e082612479565b604082019050919050565b60006020820190508181036000830152612504816124c8565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612541602083611f49565b915061254c8261250b565b602082019050919050565b6000602082019050818103600083015261257081612534565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006125b182612053565b91506125bc83612053565b9250826125cc576125cb612577565b5b828204905092915050565b600081905092915050565b50565b60006125f26000836125d7565b91506125fd826125e2565b600082019050919050565b6000612613826125e5565b9150819050919050565b600061262882612053565b915061263383612053565b925082820190508082111561264b5761264a61228a565b5b92915050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000612687600c83611f49565b915061269282612651565b602082019050919050565b600060208201905081810360008301526126b68161267a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612719602483611f49565b9150612724826126bd565b604082019050919050565b600060208201905081810360008301526127488161270c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006127ab602283611f49565b91506127b68261274f565b604082019050919050565b600060208201905081810360008301526127da8161279e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061283d602583611f49565b9150612848826127e1565b604082019050919050565b6000602082019050818103600083015261286c81612830565b9050919050565b7f45524332303a206e6f20746f6b656e73207472616e7366657272656400000000600082015250565b60006128a9601c83611f49565b91506128b482612873565b602082019050919050565b600060208201905081810360008301526128d88161289c565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612915601083611f49565b9150612920826128df565b602082019050919050565b6000602082019050818103600083015261294481612908565b9050919050565b7f506c6561736520636f6e7461637420737570706f727400000000000000000000600082015250565b6000612981601683611f49565b915061298c8261294b565b602082019050919050565b600060208201905081810360008301526129b081612974565b9050919050565b7f4d6178547820456e61626c6564206174206c61756e6368000000000000000000600082015250565b60006129ed601783611f49565b91506129f8826129b7565b602082019050919050565b60006020820190508181036000830152612a1c816129e0565b9050919050565b7f4d617857616c6c657420456e61626c6564206174206c61756e63680000000000600082015250565b6000612a59601b83611f49565b9150612a6482612a23565b602082019050919050565b60006020820190508181036000830152612a8881612a4c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612afc81612027565b92915050565b600060208284031215612b1857612b17611ff0565b5b6000612b2684828501612aed565b91505092915050565b6000819050919050565b6000819050919050565b6000612b5e612b59612b5484612b2f565b612b39565b612053565b9050919050565b612b6e81612b43565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ba981612015565b82525050565b6000612bbb8383612ba0565b60208301905092915050565b6000602082019050919050565b6000612bdf82612b74565b612be98185612b7f565b9350612bf483612b90565b8060005b83811015612c25578151612c0c8882612baf565b9750612c1783612bc7565b925050600181019050612bf8565b5085935050505092915050565b600060a082019050612c4760008301886120ff565b612c546020830187612b65565b8181036040830152612c668186612bd4565b9050612c7560608301856121e0565b612c8260808301846120ff565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612ce8602683611f49565b9150612cf382612c8c565b604082019050919050565b60006020820190508181036000830152612d1781612cdb565b9050919050565b6000612d2982612053565b9150612d3483612053565b9250828203905081811115612d4c57612d4b61228a565b5b9291505056fea264697066735822122096a64391290111482db5d6f49fec8b4eacfa14b46c8dcc91fed1a2c206017b2764736f6c63430008130033

Deployed Bytecode Sourcemap

2502:7397:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4291:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5125:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4568:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3145:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5293:578;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8795:237;;;;;;;;;;;;;:::i;:::-;;6347:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4477:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3516:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3289:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6719:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3551:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4676:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1831:148;;;;;;;;;;;;;:::i;:::-;;9041:160;;;;;;;;;;;;;:::i;:::-;;1263:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4382:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3595:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3199:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4802:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6224:115;;;;;;;;;;;;;:::i;:::-;;6578:133;;;;;;;;;;;;;:::i;:::-;;3322:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6461:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4975:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1477:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4291:83;4328:13;4361:5;;;;;;;;;;;;;;;;;4354:12;;4291:83;:::o;5125:160::-;5200:4;5216:39;5225:12;:10;:12::i;:::-;5239:7;5248:6;5216:8;:39::i;:::-;5273:4;5266:11;;5125:160;;;;:::o;4568:100::-;4621:7;2873:2;2935;:13;;;;:::i;:::-;2922:10;:26;;;;:::i;:::-;4641:19;;4568:100;:::o;3145:47::-;;;;:::o;5293:578::-;5391:4;5408:36;5418:6;5426:9;5437:6;5408:9;:36::i;:::-;5457:24;5484:11;:19;5496:6;5484:19;;;;;;;;;;;;;;;:33;5504:12;:10;:12::i;:::-;5484:33;;;;;;;;;;;;;;;;5457:60;;5551:17;5531:16;:37;5528:314;;5632:6;5612:16;:26;;5586:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;5758:57;5767:6;5775:12;:10;:12::i;:::-;5808:6;5789:16;:25;5758:8;:57::i;:::-;5528:314;5859:4;5852:11;;;5293:578;;;;;:::o;8795:237::-;1400:12;:10;:12::i;:::-;1390:22;;:6;;;;;;;;;;:22;;;1382:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8854:12:::1;8891:13;:18;;8941:2;8917:21;:26;;;;:::i;:::-;8891:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8877:71;;;;;8973:11;:17;;8998:21;8973:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8959:65;;;;;8843:189;8795:237::o:0;6347:106::-;1400:12;:10;:12::i;:::-;1390:22;;:6;;;;;;;;;;:22;;;1382:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6444:1:::1;6421:12;:20;6434:6;6421:20;;;;;;;;;;;;;;;:24;;;;6347:106:::0;:::o;4477:83::-;4518:5;2873:2;4536:16;;4477:83;:::o;3516:28::-;;;;;;;;;;;;;:::o;3289:26::-;;;;:::o;6719:209::-;1400:12;:10;:12::i;:::-;1390:22;;:6;;;;;;;;;;:22;;;1382:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6841:2:::1;6827:10;6815:9;:22;;;;:::i;:::-;:28;;6807:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;6880:9;6871:6;:18;;;;6910:10;6900:7;:20;;;;6719:209:::0;;:::o;3551:36::-;;;:::o;4676:118::-;4742:7;4769:8;:17;4778:7;4769:17;;;;;;;;;;;;;;;;4762:24;;4676:118;;;:::o;1831:148::-;1400:12;:10;:12::i;:::-;1390:22;;:6;;;;;;;;;;:22;;;1382:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1938:1:::1;1901:40;;1922:6;::::0;::::1;;;;;;;;1901:40;;;;;;;;;;;;1969:1;1952:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1831:148::o:0;9041:160::-;1400:12;:10;:12::i;:::-;1390:22;;:6;;;;;;;;;;:22;;;1382:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9099:23:::1;9125:24;9143:4;9125:9;:24::i;:::-;9099:50;;9160:33;9177:15;9160:16;:33::i;:::-;9088:113;9041:160::o:0;1263:79::-;1301:7;1328:6;;;;;;;;;;;1321:13;;1263:79;:::o;4382:87::-;4421:13;4454:7;;;;;;;;;;;;;;;;;4447:14;;4382:87;:::o;3595:38::-;;;:::o;3199:42::-;;;;:::o;4802:165::-;4879:4;4895:42;4905:12;:10;:12::i;:::-;4919:9;4930:6;4895:9;:42::i;:::-;4955:4;4948:11;;4802:165;;;;:::o;6224:115::-;1400:12;:10;:12::i;:::-;1390:22;;:6;;;;;;;;;;:22;;;1382:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6287:4:::1;6278:6;;:13;;;;;;;;;;;;;;;;;;6319:12;6302:14;:29;;;;6224:115::o:0;6578:133::-;1400:12;:10;:12::i;:::-;1390:22;;:6;;;;;;;;;;:22;;;1382:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2873:2:::1;2935;:13;;;;:::i;:::-;2922:10;:26;;;;:::i;:::-;6631:19;:34;;;;2873:2;2935;:13;;;;:::i;:::-;2922:10;:26;;;;:::i;:::-;6676:12;:27;;;;6578:133::o:0;3322:27::-;;;;:::o;6461:109::-;1400:12;:10;:12::i;:::-;1390:22;;:6;;;;;;;;;;:22;;;1382:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6561:1:::1;6538:12;:20;6551:6;6538:20;;;;;;;;;;;;;;;:24;;;;6461:109:::0;:::o;4975:142::-;5056:7;5082:11;:18;5094:5;5082:18;;;;;;;;;;;;;;;:27;5101:7;5082:27;;;;;;;;;;;;;;;;5075:34;;4975:142;;;;:::o;1477:109::-;1400:12;:10;:12::i;:::-;1390:22;;:6;;;;;;;;;;:22;;;1382:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1550:28:::1;1569:8;1550:18;:28::i;:::-;1477:109:::0;:::o;138:98::-;191:7;218:10;211:17;;138:98;:::o;5879:335::-;5989:1;5972:19;;:5;:19;;;5964:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6070:1;6051:21;;:7;:21;;;6043:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6152:6;6122:11;:18;6134:5;6122:18;;;;;;;;;;;;;;;:27;6141:7;6122:27;;;;;;;;;;;;;;;:36;;;;6190:7;6174:32;;6183:5;6174:32;;;6199:6;6174:32;;;;;;:::i;:::-;;;;;;;;5879:335;;;:::o;7378:1409::-;7482:1;7466:18;;:4;:18;;;7458:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7554:1;7545:6;:10;7537:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;7599:12;7652:1;7630:12;:18;7643:4;7630:18;;;;;;;;;;;;;;;;:23;:48;;;;;7677:1;7657:12;:16;7670:2;7657:16;;;;;;;;;;;;;;;;:21;7630:48;7626:1105;;;7712:6;;;;;;;;;;;7704:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;7787:1;7762:15;:21;7778:4;7762:21;;;;;;;;;;;;;;;;:26;7754:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;7848:19;;7838:6;:29;;7830:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7920:13;;;;;;;;;;;7914:19;;:2;:19;;;;:44;;;;;7951:6;7937:21;;:2;:21;;;;7914:44;7910:128;;;7994:12;;7984:6;7968:13;7978:2;7968:9;:13::i;:::-;:22;;;;:::i;:::-;:38;;7960:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;7910:128;8089:1;8072:14;;:18;;;;:::i;:::-;8057:12;:33;8053:667;;;8098:2;8093:7;;8053:667;;;8139:13;;;;;;;;;;;8131:21;;:4;:21;;;8127:578;;8184:6;;8177:13;;8127:578;;;8226:13;;;;;;;;;;;8220:19;;:2;:19;;;8216:489;;8264:20;8287:24;8305:4;8287:9;:24::i;:::-;8264:47;;2873:2;3009;:13;;;;:::i;:::-;3000:6;:22;;;;:::i;:::-;8338:12;:32;8334:315;;;8400:12;8415:7;;8400:22;;8468:6;8453:12;:21;8449:48;;;8491:6;8476:21;;8449:48;8543:4;8528:12;:19;8524:44;;;8564:4;8549:19;;8524:44;8595:30;8612:12;8595:16;:30::i;:::-;8372:277;8334:315;8678:7;;8671:14;;8241:464;8216:489;8127:578;8053:667;7626:1105;8741:38;8756:4;8762:2;8766:6;8774:4;8741:14;:38::i;:::-;7447:1340;7378:1409;;;:::o;9209:652::-;9275:21;9313:1;9299:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9275:40;;9344:4;9326;9331:1;9326:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9370:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9360:4;9365:1;9360:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;9403:62;9420:4;9435:15;;;;;;;;;;;9453:11;9403:8;:62::i;:::-;9476:15;;;;;;;;;;;:66;;;9557:11;9583:1;9599:4;9626;9646:15;9476:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9683:12;9720:13;:18;;9770:2;9746:21;:26;;;;:::i;:::-;9720:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9706:71;;;;;9802:11;:17;;9827:21;9802:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9788:65;;;;;9264:597;;9209:652;:::o;1594:229::-;1688:1;1668:22;;:8;:22;;;1660:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1778:8;1749:38;;1770:6;;;;;;;;;;1749:38;;;;;;;;;;;;1807:8;1798:6;;:17;;;;;;;;;;;;;;;;;;1594:229;:::o;6936:434::-;7035:17;7073:3;7065:4;7056:6;:13;;;;:::i;:::-;7055:21;;;;:::i;:::-;7035:41;;7087:22;7121:9;7112:6;:18;;;;:::i;:::-;7087:43;;7177:6;7160:8;:14;7169:4;7160:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;7143:8;:14;7152:4;7143:14;;;;;;;;;;;;;;;:40;;;;7224:14;7209:8;:12;7218:2;7209:12;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;7194:8;:12;7203:2;7194:12;;;;;;;;;;;;;;;:44;;;;7301:9;7275:8;:23;7292:4;7275:23;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;7249:8;:23;7266:4;7249:23;;;;;;;;;;;;;;;:61;;;;7343:2;7328:34;;7337:4;7328:34;;;7347:14;7328:34;;;;;;:::i;:::-;;;;;;;;7024:346;;6936:434;;;;:::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:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::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:180::-;6548:77;6545:1;6538:88;6645:4;6642:1;6635:15;6669:4;6666:1;6659:15;6686:102;6728:8;6775:5;6772:1;6768:13;6747:34;;6686:102;;;:::o;6794:848::-;6855:5;6862:4;6886:6;6877:15;;6910:5;6901:14;;6924:712;6945:1;6935:8;6932:15;6924:712;;;7040:4;7035:3;7031:14;7025:4;7022:24;7019:50;;;7049:18;;:::i;:::-;7019:50;7099:1;7089:8;7085:16;7082:451;;;7514:4;7507:5;7503:16;7494:25;;7082:451;7564:4;7558;7554:15;7546:23;;7594:32;7617:8;7594:32;:::i;:::-;7582:44;;6924:712;;;6794:848;;;;;;;:::o;7648:1073::-;7702:5;7893:8;7883:40;;7914:1;7905:10;;7916:5;;7883:40;7942:4;7932:36;;7959:1;7950:10;;7961:5;;7932:36;8028:4;8076:1;8071:27;;;;8112:1;8107:191;;;;8021:277;;8071:27;8089:1;8080:10;;8091:5;;;8107:191;8152:3;8142:8;8139:17;8136:43;;;8159:18;;:::i;:::-;8136:43;8208:8;8205:1;8201:16;8192:25;;8243:3;8236:5;8233:14;8230:40;;;8250:18;;:::i;:::-;8230:40;8283:5;;;8021:277;;8407:2;8397:8;8394:16;8388:3;8382:4;8379:13;8375:36;8357:2;8347:8;8344:16;8339:2;8333:4;8330:12;8326:35;8310:111;8307:246;;;8463:8;8457:4;8453:19;8444:28;;8498:3;8491:5;8488:14;8485:40;;;8505:18;;:::i;:::-;8485:40;8538:5;;8307:246;8578:42;8616:3;8606:8;8600:4;8597:1;8578:42;:::i;:::-;8563:57;;;;8652:4;8647:3;8643:14;8636:5;8633:25;8630:51;;;8661:18;;:::i;:::-;8630:51;8710:4;8703:5;8699:16;8690:25;;7648:1073;;;;;;:::o;8727:281::-;8785:5;8809:23;8827:4;8809:23;:::i;:::-;8801:31;;8853:25;8869:8;8853:25;:::i;:::-;8841:37;;8897:104;8934:66;8924:8;8918:4;8897:104;:::i;:::-;8888:113;;8727:281;;;;:::o;9014:410::-;9054:7;9077:20;9095:1;9077:20;:::i;:::-;9072:25;;9111:20;9129:1;9111:20;:::i;:::-;9106:25;;9166:1;9163;9159:9;9188:30;9206:11;9188:30;:::i;:::-;9177:41;;9367:1;9358:7;9354:15;9351:1;9348:22;9328:1;9321:9;9301:83;9278:139;;9397:18;;:::i;:::-;9278:139;9062:362;9014:410;;;;:::o;9430:227::-;9570:34;9566:1;9558:6;9554:14;9547:58;9639:10;9634:2;9626:6;9622:15;9615:35;9430:227;:::o;9663:366::-;9805:3;9826:67;9890:2;9885:3;9826:67;:::i;:::-;9819:74;;9902:93;9991:3;9902:93;:::i;:::-;10020:2;10015:3;10011:12;10004:19;;9663:366;;;:::o;10035:419::-;10201:4;10239:2;10228:9;10224:18;10216:26;;10288:9;10282:4;10278:20;10274:1;10263:9;10259:17;10252:47;10316:131;10442:4;10316:131;:::i;:::-;10308:139;;10035:419;;;:::o;10460:182::-;10600:34;10596:1;10588:6;10584:14;10577:58;10460:182;:::o;10648:366::-;10790:3;10811:67;10875:2;10870:3;10811:67;:::i;:::-;10804:74;;10887:93;10976:3;10887:93;:::i;:::-;11005:2;11000:3;10996:12;10989:19;;10648:366;;;:::o;11020:419::-;11186:4;11224:2;11213:9;11209:18;11201:26;;11273:9;11267:4;11263:20;11259:1;11248:9;11244:17;11237:47;11301:131;11427:4;11301:131;:::i;:::-;11293:139;;11020:419;;;:::o;11445:180::-;11493:77;11490:1;11483:88;11590:4;11587:1;11580:15;11614:4;11611:1;11604:15;11631:185;11671:1;11688:20;11706:1;11688:20;:::i;:::-;11683:25;;11722:20;11740:1;11722:20;:::i;:::-;11717:25;;11761:1;11751:35;;11766:18;;:::i;:::-;11751:35;11808:1;11805;11801:9;11796:14;;11631:185;;;;:::o;11822:147::-;11923:11;11960:3;11945:18;;11822:147;;;;:::o;11975:114::-;;:::o;12095:398::-;12254:3;12275:83;12356:1;12351:3;12275:83;:::i;:::-;12268:90;;12367:93;12456:3;12367:93;:::i;:::-;12485:1;12480:3;12476:11;12469:18;;12095:398;;;:::o;12499:379::-;12683:3;12705:147;12848:3;12705:147;:::i;:::-;12698:154;;12869:3;12862:10;;12499:379;;;:::o;12884:191::-;12924:3;12943:20;12961:1;12943:20;:::i;:::-;12938:25;;12977:20;12995:1;12977:20;:::i;:::-;12972:25;;13020:1;13017;13013:9;13006:16;;13041:3;13038:1;13035:10;13032:36;;;13048:18;;:::i;:::-;13032:36;12884:191;;;;:::o;13081:162::-;13221:14;13217:1;13209:6;13205:14;13198:38;13081:162;:::o;13249:366::-;13391:3;13412:67;13476:2;13471:3;13412:67;:::i;:::-;13405:74;;13488:93;13577:3;13488:93;:::i;:::-;13606:2;13601:3;13597:12;13590:19;;13249:366;;;:::o;13621:419::-;13787:4;13825:2;13814:9;13810:18;13802:26;;13874:9;13868:4;13864:20;13860:1;13849:9;13845:17;13838:47;13902:131;14028:4;13902:131;:::i;:::-;13894:139;;13621:419;;;:::o;14046:223::-;14186:34;14182:1;14174:6;14170:14;14163:58;14255:6;14250:2;14242:6;14238:15;14231:31;14046:223;:::o;14275:366::-;14417:3;14438:67;14502:2;14497:3;14438:67;:::i;:::-;14431:74;;14514:93;14603:3;14514:93;:::i;:::-;14632:2;14627:3;14623:12;14616:19;;14275:366;;;:::o;14647:419::-;14813:4;14851:2;14840:9;14836:18;14828:26;;14900:9;14894:4;14890:20;14886:1;14875:9;14871:17;14864:47;14928:131;15054:4;14928:131;:::i;:::-;14920:139;;14647:419;;;:::o;15072:221::-;15212:34;15208:1;15200:6;15196:14;15189:58;15281:4;15276:2;15268:6;15264:15;15257:29;15072:221;:::o;15299:366::-;15441:3;15462:67;15526:2;15521:3;15462:67;:::i;:::-;15455:74;;15538:93;15627:3;15538:93;:::i;:::-;15656:2;15651:3;15647:12;15640:19;;15299:366;;;:::o;15671:419::-;15837:4;15875:2;15864:9;15860:18;15852:26;;15924:9;15918:4;15914:20;15910:1;15899:9;15895:17;15888:47;15952:131;16078:4;15952:131;:::i;:::-;15944:139;;15671:419;;;:::o;16096:224::-;16236:34;16232:1;16224:6;16220:14;16213:58;16305:7;16300:2;16292:6;16288:15;16281:32;16096:224;:::o;16326:366::-;16468:3;16489:67;16553:2;16548:3;16489:67;:::i;:::-;16482:74;;16565:93;16654:3;16565:93;:::i;:::-;16683:2;16678:3;16674:12;16667:19;;16326:366;;;:::o;16698:419::-;16864:4;16902:2;16891:9;16887:18;16879:26;;16951:9;16945:4;16941:20;16937:1;16926:9;16922:17;16915:47;16979:131;17105:4;16979:131;:::i;:::-;16971:139;;16698:419;;;:::o;17123:178::-;17263:30;17259:1;17251:6;17247:14;17240:54;17123:178;:::o;17307:366::-;17449:3;17470:67;17534:2;17529:3;17470:67;:::i;:::-;17463:74;;17546:93;17635:3;17546:93;:::i;:::-;17664:2;17659:3;17655:12;17648:19;;17307:366;;;:::o;17679:419::-;17845:4;17883:2;17872:9;17868:18;17860:26;;17932:9;17926:4;17922:20;17918:1;17907:9;17903:17;17896:47;17960:131;18086:4;17960:131;:::i;:::-;17952:139;;17679:419;;;:::o;18104:166::-;18244:18;18240:1;18232:6;18228:14;18221:42;18104:166;:::o;18276:366::-;18418:3;18439:67;18503:2;18498:3;18439:67;:::i;:::-;18432:74;;18515:93;18604:3;18515:93;:::i;:::-;18633:2;18628:3;18624:12;18617:19;;18276:366;;;:::o;18648:419::-;18814:4;18852:2;18841:9;18837:18;18829:26;;18901:9;18895:4;18891:20;18887:1;18876:9;18872:17;18865:47;18929:131;19055:4;18929:131;:::i;:::-;18921:139;;18648:419;;;:::o;19073:172::-;19213:24;19209:1;19201:6;19197:14;19190:48;19073:172;:::o;19251:366::-;19393:3;19414:67;19478:2;19473:3;19414:67;:::i;:::-;19407:74;;19490:93;19579:3;19490:93;:::i;:::-;19608:2;19603:3;19599:12;19592:19;;19251:366;;;:::o;19623:419::-;19789:4;19827:2;19816:9;19812:18;19804:26;;19876:9;19870:4;19866:20;19862:1;19851:9;19847:17;19840:47;19904:131;20030:4;19904:131;:::i;:::-;19896:139;;19623:419;;;:::o;20048:173::-;20188:25;20184:1;20176:6;20172:14;20165:49;20048:173;:::o;20227:366::-;20369:3;20390:67;20454:2;20449:3;20390:67;:::i;:::-;20383:74;;20466:93;20555:3;20466:93;:::i;:::-;20584:2;20579:3;20575:12;20568:19;;20227:366;;;:::o;20599:419::-;20765:4;20803:2;20792:9;20788:18;20780:26;;20852:9;20846:4;20842:20;20838:1;20827:9;20823:17;20816:47;20880:131;21006:4;20880:131;:::i;:::-;20872:139;;20599:419;;;:::o;21024:177::-;21164:29;21160:1;21152:6;21148:14;21141:53;21024:177;:::o;21207:366::-;21349:3;21370:67;21434:2;21429:3;21370:67;:::i;:::-;21363:74;;21446:93;21535:3;21446:93;:::i;:::-;21564:2;21559:3;21555:12;21548:19;;21207:366;;;:::o;21579:419::-;21745:4;21783:2;21772:9;21768:18;21760:26;;21832:9;21826:4;21822:20;21818:1;21807:9;21803:17;21796:47;21860:131;21986:4;21860:131;:::i;:::-;21852:139;;21579:419;;;:::o;22004:180::-;22052:77;22049:1;22042:88;22149:4;22146:1;22139:15;22173:4;22170:1;22163:15;22190:180;22238:77;22235:1;22228:88;22335:4;22332:1;22325:15;22359:4;22356:1;22349:15;22376:143;22433:5;22464:6;22458:13;22449:22;;22480:33;22507:5;22480:33;:::i;:::-;22376:143;;;;:::o;22525:351::-;22595:6;22644:2;22632:9;22623:7;22619:23;22615:32;22612:119;;;22650:79;;:::i;:::-;22612:119;22770:1;22795:64;22851:7;22842:6;22831:9;22827:22;22795:64;:::i;:::-;22785:74;;22741:128;22525:351;;;;:::o;22882:85::-;22927:7;22956:5;22945:16;;22882:85;;;:::o;22973:60::-;23001:3;23022:5;23015:12;;22973:60;;;:::o;23039:158::-;23097:9;23130:61;23148:42;23157:32;23183:5;23157:32;:::i;:::-;23148:42;:::i;:::-;23130:61;:::i;:::-;23117:74;;23039:158;;;:::o;23203:147::-;23298:45;23337:5;23298:45;:::i;:::-;23293:3;23286:58;23203:147;;:::o;23356:114::-;23423:6;23457:5;23451:12;23441:22;;23356:114;;;:::o;23476:184::-;23575:11;23609:6;23604:3;23597:19;23649:4;23644:3;23640:14;23625:29;;23476:184;;;;:::o;23666:132::-;23733:4;23756:3;23748:11;;23786:4;23781:3;23777:14;23769:22;;23666:132;;;:::o;23804:108::-;23881:24;23899:5;23881:24;:::i;:::-;23876:3;23869:37;23804:108;;:::o;23918:179::-;23987:10;24008:46;24050:3;24042:6;24008:46;:::i;:::-;24086:4;24081:3;24077:14;24063:28;;23918:179;;;;:::o;24103:113::-;24173:4;24205;24200:3;24196:14;24188:22;;24103:113;;;:::o;24252:732::-;24371:3;24400:54;24448:5;24400:54;:::i;:::-;24470:86;24549:6;24544:3;24470:86;:::i;:::-;24463:93;;24580:56;24630:5;24580:56;:::i;:::-;24659:7;24690:1;24675:284;24700:6;24697:1;24694:13;24675:284;;;24776:6;24770:13;24803:63;24862:3;24847:13;24803:63;:::i;:::-;24796:70;;24889:60;24942:6;24889:60;:::i;:::-;24879:70;;24735:224;24722:1;24719;24715:9;24710:14;;24675:284;;;24679:14;24975:3;24968:10;;24376:608;;;24252:732;;;;:::o;24990:831::-;25253:4;25291:3;25280:9;25276:19;25268:27;;25305:71;25373:1;25362:9;25358:17;25349:6;25305:71;:::i;:::-;25386:80;25462:2;25451:9;25447:18;25438:6;25386:80;:::i;:::-;25513:9;25507:4;25503:20;25498:2;25487:9;25483:18;25476:48;25541:108;25644:4;25635:6;25541:108;:::i;:::-;25533:116;;25659:72;25727:2;25716:9;25712:18;25703:6;25659:72;:::i;:::-;25741:73;25809:3;25798:9;25794:19;25785:6;25741:73;:::i;:::-;24990:831;;;;;;;;:::o;25827:225::-;25967:34;25963:1;25955:6;25951:14;25944:58;26036:8;26031:2;26023:6;26019:15;26012:33;25827:225;:::o;26058:366::-;26200:3;26221:67;26285:2;26280:3;26221:67;:::i;:::-;26214:74;;26297:93;26386:3;26297:93;:::i;:::-;26415:2;26410:3;26406:12;26399:19;;26058:366;;;:::o;26430:419::-;26596:4;26634:2;26623:9;26619:18;26611:26;;26683:9;26677:4;26673:20;26669:1;26658:9;26654:17;26647:47;26711:131;26837:4;26711:131;:::i;:::-;26703:139;;26430:419;;;:::o;26855:194::-;26895:4;26915:20;26933:1;26915:20;:::i;:::-;26910:25;;26949:20;26967:1;26949:20;:::i;:::-;26944:25;;26993:1;26990;26986:9;26978:17;;27017:1;27011:4;27008:11;27005:37;;;27022:18;;:::i;:::-;27005:37;26855:194;;;;:::o

Swarm Source

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