ETH Price: $3,488.27 (-1.56%)
Gas: 11 Gwei

Contract

0xf43EEe4FEB1E2C84000622780f93F1090E856433
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Value
0x60806040196912762024-04-19 18:30:2354 days ago1713551423IN
 Create: ETFSwap
0 ETH0.020610659.48782116

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To Value
199848602024-05-30 19:53:1113 days ago1717098791
0xf43EEe4F...90E856433
0.01330286 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ETFSwap

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 2: ETFSwap.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

import "./IERC20.sol";
// Main contract for the ETFSwap token
contract ETFSwap {
    string public constant name = "ETFSwap";
    string public constant symbol = "ETFS";
    uint8 public constant decimals = 18;
    uint256 public constant TOTAL_SUPPLY = 1_000_000_000 * (10 ** uint256(decimals));

    // Define initial allocation constants
    uint256 public constant PRESALE_ALLOCATION = 400_000_000 * (10 ** uint256(decimals));
    uint256 public constant ECOSYSTEM_ALLOCATION = 240_000_000 * (10 ** uint256(decimals));
    uint256 public constant LIQUIDITY_ALLOCATION = 120_000_000 * (10 ** uint256(decimals));
    uint256 public constant TEAM_ALLOCATION = 60_000_000 * (10 ** uint256(decimals));
    uint256 public constant MM_ALLOCATION = 60_000_000 * (10 ** uint256(decimals));
    uint256 public constant CASHBACK_ALLOCATION = 50_000_000 * (10 ** uint256(decimals));
    uint256 public constant PARTNERS_ALLOCATION = 30_000_000 * (10 ** uint256(decimals));
    uint256 public constant COMMUNITY_REWARDS_ALLOCATION = 40_000_000 * (10 ** uint256(decimals));

   // Tax rates
    uint8 public sellTaxRate; 
    uint8 public buyTaxRate; 

    // Address of the contract owner
    address public owner;
    
    // Mapping to store token balances of addresses
    mapping(address => uint256) balances;

    // Mapping to store allowances for token transfers
    mapping(address => mapping(address => uint256)) allowed;

    // Liquidity Pair Address
    address public liquidityPairAddress;

    // Constructor to initialize contract and mint initial allocations
    constructor() {
        owner = msg.sender;
        // Mint initial allocations
        balances[msg.sender] += PRESALE_ALLOCATION;
        balances[msg.sender] += ECOSYSTEM_ALLOCATION;
        balances[msg.sender] += LIQUIDITY_ALLOCATION;
        balances[msg.sender] += CASHBACK_ALLOCATION;
        balances[msg.sender] += PARTNERS_ALLOCATION;
        balances[msg.sender] += COMMUNITY_REWARDS_ALLOCATION;
        balances[msg.sender] += MM_ALLOCATION;
        balances[msg.sender] += TEAM_ALLOCATION;
        
        uint256 TOTAL_TOKENS_TRANSFERRED = PRESALE_ALLOCATION +
                                 ECOSYSTEM_ALLOCATION +
                                 LIQUIDITY_ALLOCATION +
                                 CASHBACK_ALLOCATION +
                                 PARTNERS_ALLOCATION +
                                 COMMUNITY_REWARDS_ALLOCATION +
                                 MM_ALLOCATION +
                                 TEAM_ALLOCATION;
        emit Transfer(address(0), msg.sender, TOTAL_TOKENS_TRANSFERRED);
    }
    // Modifier to restrict access to the owner
    modifier onlyOwner() {
        require(msg.sender == owner, "Only the owner can call this function.");
        _;
    }
    // Function to return the total token supply
    function totalSupply() public pure returns (uint256) {
        return TOTAL_SUPPLY;
    }

    // Function to return the balance of the specified address
    function balanceOf(address tokenOwner) public view returns (uint256 balance) {
        return balances[tokenOwner];
    }

    // Function to set liquidity pair address
    function setLiquidityPairAddress(address _liquidityPairAddress) external onlyOwner {
        require(_liquidityPairAddress != address(0), "Liquidity Pair can't be a null address");
        require(_liquidityPairAddress != liquidityPairAddress, "New liquidity pair address is the same as the current one");
        liquidityPairAddress = _liquidityPairAddress;
        emit LiquidityPairAddressSet(_liquidityPairAddress, msg.sender, block.timestamp);
    }

    // Internal function to handle token transfer
    function _transferTokens(address from, address to, uint256 tokens) internal {
        require(to != address(0), "Invalid address");
        require(balances[from] >= tokens, "Insufficient balance");
        uint256 taxAmount = calculateTaxAmount(from, to, tokens);
        uint256 transferAmount = tokens - (taxAmount);
        balances[from] = balances[from] - (tokens);
        balances[to] = balances[to] + (transferAmount);
        balances[owner] = balances[owner] + (taxAmount);
        emit Transfer(from, to, transferAmount);
        emit Transfer(from, owner, taxAmount);
    }

    // Function to transfer tokens from the caller's account to the specified recipient
    function transfer(address to, uint256 tokens) public returns (bool success) {
        _transferTokens(msg.sender, to, tokens);
        return true;
    }

    // Function to handle token transfers from one address to another using allowances
    function transferFrom(address from, address to, uint256 tokens) public returns (bool success) {
        require(allowed[from][msg.sender] >= tokens, "Allowance exceeded");
        _transferTokens(from, to, tokens);
        allowed[from][msg.sender] = allowed[from][msg.sender] - (tokens);
        return true;
    }

    //INCREASE ALLOWANCE
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        require(spender != address(0), "Invalid spender address");
        allowed[msg.sender][spender] += addedValue;
        emit Approval(msg.sender, spender, allowed[msg.sender][spender]);
        return true;
    }

    // DECREASE ALLOWANCE
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        require(spender != address(0), "Invalid spender address");
        uint256 oldValue = allowed[msg.sender][spender];
        if (subtractedValue >= oldValue) {
            allowed[msg.sender][spender] = 0;
        } else {
            allowed[msg.sender][spender] -= subtractedValue;
        }
        emit Approval(msg.sender, spender, allowed[msg.sender][spender]);
        return true;
    }

    // Function to calculate tax amount based on sender and recipient addresses
    function calculateTaxAmount(address from, address to, uint256 tokens) private view returns (uint256) {
    if (from == liquidityPairAddress) {
        // Apply buy tax rate if the tokens are being transferred by the owner
        return (tokens * buyTaxRate) / (100);
    } else if (to == address(0) || to == owner || to == liquidityPairAddress) {
        // Apply sell tax rate if the tokens are being transferred to owner, zero address, or liquidity pair
        return (tokens * sellTaxRate) / (100);
    } else {
        // No tax for other cases
        return 0;
    }
    }
    
   // Function to set the sell tax rate
    function setSellTaxRate(uint8 newSellTaxRate) external onlyOwner {
        require(newSellTaxRate <= 25, "Sell tax rate must be less than or equal to 25%");
        sellTaxRate = newSellTaxRate;
        emit SellTaxRateSet(newSellTaxRate);
    }

    // Function to set the buy tax rate
    function setBuyTaxRate(uint8 newBuyTaxRate) external onlyOwner {
        require(newBuyTaxRate <= 25, "Buy tax rate must be less than or equal to 25%");
        buyTaxRate = newBuyTaxRate;
        emit BuyTaxRateSet(newBuyTaxRate);
    }

    //RENOUNCE OWNERSHIP
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(owner, address(0));
        owner = address(0);
    }

    // Events
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event SellTaxRateSet(uint256 newSellTaxRate);
    event BuyTaxRateSet(uint256 newBuyTaxRate);
    event LiquidityPairAddressSet(address indexed pairAddress, address indexed setter, uint256 timestamp);
}

File 2 of 2: IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

interface IERC20 {
    // Returns the total token supply
    function totalSupply() external view returns (uint256);
    // Returns the token balance of the specified address
    function balanceOf(address account) external view returns (uint256);
    // Transfers tokens from the caller's account to the specified recipient
    function transfer(address recipient, uint256 amount) external returns (bool);
    // Returns the remaining number of tokens that spender will be allowed to spend on behalf of owner
    function allowance(address owner, address spender) external view returns (uint256);
    // Sets amount as the allowance of spender over the caller's tokens
    function approve(address spender, uint256 amount) external returns (bool);
    // Moves amount tokens from sender to recipient using the allowance mechanism
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    // Triggered when tokens are transferred
    event Transfer(address indexed from, address indexed to, uint256 value);
    // Triggered when the allowance of a spender for an owner is set by a call to approve
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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":"newBuyTaxRate","type":"uint256"}],"name":"BuyTaxRateSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pairAddress","type":"address"},{"indexed":true,"internalType":"address","name":"setter","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"LiquidityPairAddressSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newSellTaxRate","type":"uint256"}],"name":"SellTaxRateSet","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":"CASHBACK_ALLOCATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COMMUNITY_REWARDS_ALLOCATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ECOSYSTEM_ALLOCATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LIQUIDITY_ALLOCATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MM_ALLOCATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PARTNERS_ALLOCATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRESALE_ALLOCATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TEAM_ALLOCATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOTAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTaxRate","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityPairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"sellTaxRate","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"newBuyTaxRate","type":"uint8"}],"name":"setBuyTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityPairAddress","type":"address"}],"name":"setLiquidityPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newSellTaxRate","type":"uint8"}],"name":"setSellTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5033600060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260ff16600a6200006691906200079f565b6317d78400620000779190620007f0565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620000c791906200083b565b92505081905550601260ff16600a620000e191906200079f565b630e4e1c00620000f29190620007f0565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200014291906200083b565b92505081905550601260ff16600a6200015c91906200079f565b6307270e006200016d9190620007f0565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620001bd91906200083b565b92505081905550601260ff16600a620001d791906200079f565b6302faf080620001e89190620007f0565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200023891906200083b565b92505081905550601260ff16600a6200025291906200079f565b6301c9c380620002639190620007f0565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002b391906200083b565b92505081905550601260ff16600a620002cd91906200079f565b6302625a00620002de9190620007f0565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200032e91906200083b565b92505081905550601260ff16600a6200034891906200079f565b6303938700620003599190620007f0565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620003a991906200083b565b92505081905550601260ff16600a620003c391906200079f565b6303938700620003d49190620007f0565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200042491906200083b565b925050819055506000601260ff16600a6200044091906200079f565b6303938700620004519190620007f0565b601260ff16600a6200046491906200079f565b6303938700620004759190620007f0565b601260ff16600a6200048891906200079f565b6302625a00620004999190620007f0565b601260ff16600a620004ac91906200079f565b6301c9c380620004bd9190620007f0565b601260ff16600a620004d091906200079f565b6302faf080620004e19190620007f0565b601260ff16600a620004f491906200079f565b6307270e00620005059190620007f0565b601260ff16600a6200051891906200079f565b630e4e1c00620005299190620007f0565b601260ff16600a6200053c91906200079f565b6317d784006200054d9190620007f0565b6200055991906200083b565b6200056591906200083b565b6200057191906200083b565b6200057d91906200083b565b6200058991906200083b565b6200059591906200083b565b620005a191906200083b565b90503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000603919062000887565b60405180910390a350620008a4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620006a05780860481111562000678576200067762000612565b5b6001851615620006885780820291505b8081029050620006988562000641565b945062000658565b94509492505050565b600082620006bb57600190506200078e565b81620006cb57600090506200078e565b8160018114620006e45760028114620006ef5762000725565b60019150506200078e565b60ff84111562000704576200070362000612565b5b8360020a9150848211156200071e576200071d62000612565b5b506200078e565b5060208310610133831016604e8410600b84101617156200075f5782820a90508381111562000759576200075862000612565b5b6200078e565b6200076e84848460016200064e565b9250905081840481111562000788576200078762000612565b5b81810290505b9392505050565b6000819050919050565b6000620007ac8262000795565b9150620007b98362000795565b9250620007e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006a9565b905092915050565b6000620007fd8262000795565b91506200080a8362000795565b92508282026200081a8162000795565b9150828204841483151762000834576200083362000612565b5b5092915050565b6000620008488262000795565b9150620008558362000795565b925082820190508082111562000870576200086f62000612565b5b92915050565b620008818162000795565b82525050565b60006020820190506200089e600083018462000876565b92915050565b6124bb80620008b46000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c8063715018a6116100de578063a098680311610097578063c7b5a48c11610071578063c7b5a48c14610469578063e3df028714610487578063f9428f38146104a3578063fd99cbed146104c15761018e565b8063a0986803146103eb578063a457c2d714610409578063a9059cbb146104395761018e565b8063715018a61461034b57806378708129146103555780638da5cb5b14610373578063902d55a51461039157806390534f24146103af57806395d89b41146103cd5761018e565b806340c397da1161014b5780635f070f91116101255780635f070f91146102c3578063685fddeb146102df578063691f224f146102fd57806370a082311461031b5761018e565b806340c397da1461026b57806348cd14a7146102895780634f922a9e146102a75761018e565b806306fdde031461019357806318160ddd146101b157806323b872dd146101cf57806324024efd146101ff578063313ce5671461021d578063395093511461023b575b600080fd5b61019b6104df565b6040516101a89190611a59565b60405180910390f35b6101b9610518565b6040516101c69190611a94565b60405180910390f35b6101e960048036038101906101e49190611b3e565b61053f565b6040516101f69190611bac565b60405180910390f35b61020761071e565b6040516102149190611be3565b60405180910390f35b61022561072f565b6040516102329190611be3565b60405180910390f35b61025560048036038101906102509190611bfe565b610734565b6040516102629190611bac565b60405180910390f35b610273610922565b6040516102809190611c4d565b60405180910390f35b610291610948565b60405161029e9190611a94565b60405180910390f35b6102c160048036038101906102bc9190611c68565b61096b565b005b6102dd60048036038101906102d89190611cc1565b610ba3565b005b6102e7610cce565b6040516102f49190611a94565b60405180910390f35b610305610cf1565b6040516103129190611be3565b60405180910390f35b61033560048036038101906103309190611c68565b610d04565b6040516103429190611a94565b60405180910390f35b610353610d4d565b005b61035d610e9d565b60405161036a9190611a94565b60405180910390f35b61037b610ec0565b6040516103889190611c4d565b60405180910390f35b610399610ee6565b6040516103a69190611a94565b60405180910390f35b6103b7610f09565b6040516103c49190611a94565b60405180910390f35b6103d5610f2c565b6040516103e29190611a59565b60405180910390f35b6103f3610f65565b6040516104009190611a94565b60405180910390f35b610423600480360381019061041e9190611bfe565b610f88565b6040516104309190611bac565b60405180910390f35b610453600480360381019061044e9190611bfe565b611287565b6040516104609190611bac565b60405180910390f35b61047161129e565b60405161047e9190611a94565b60405180910390f35b6104a1600480360381019061049c9190611cc1565b6112c1565b005b6104ab6113ec565b6040516104b89190611a94565b60405180910390f35b6104c961140f565b6040516104d69190611a94565b60405180910390f35b6040518060400160405280600781526020017f455446537761700000000000000000000000000000000000000000000000000081525081565b6000601260ff16600a61052b9190611e50565b633b9aca0061053a9190611e9b565b905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f790611f29565b60405180910390fd5b61060b848484611432565b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106939190611f49565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b60008054906101000a900460ff1681565b601281565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079b90611fc9565b60405180910390fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108309190611fe9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516109109190611a94565b60405180910390a36001905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260ff16600a6109599190611e50565b6302625a006109689190611e9b565b81565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f29061208f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6190612121565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af1906121b3565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fc9b035f6c6ef8816b0a18f2931003e260f8a56bb9166866c608a959140a50c2f42604051610b989190611a94565b60405180910390a350565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2a9061208f565b60405180910390fd5b60198160ff161115610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7190612245565b60405180910390fd5b806000806101000a81548160ff021916908360ff1602179055507f84ab2dc23f15ae70aefa94bc7cc54d9ad95882db1d62963cd310d36d7619e5ca81604051610cc391906122a0565b60405180910390a150565b601260ff16600a610cdf9190611e50565b6302faf080610cee9190611e9b565b81565b600060019054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd49061208f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260ff16600a610eae9190611e50565b6301c9c380610ebd9190611e9b565b81565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260ff16600a610ef79190611e50565b633b9aca00610f069190611e9b565b81565b601260ff16600a610f1a9190611e50565b630e4e1c00610f299190611e9b565b81565b6040518060400160405280600481526020017f455446530000000000000000000000000000000000000000000000000000000081525081565b601260ff16600a610f769190611e50565b6303938700610f859190611e9b565b81565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ff8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fef90611fc9565b60405180910390fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808310611107576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061119b565b82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111939190611f49565b925050819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516112749190611a94565b60405180910390a3600191505092915050565b6000611294338484611432565b6001905092915050565b601260ff16600a6112af9190611e50565b6317d784006112be9190611e9b565b81565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611351576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113489061208f565b60405180910390fd5b60198160ff161115611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f9061232d565b60405180910390fd5b80600060016101000a81548160ff021916908360ff1602179055507e99a4e3a18291bf0f4d2fbf11e341587322b78f5ec0faa582d615e5b168c693816040516113e191906122a0565b60405180910390a150565b601260ff16600a6113fd9190611e50565b6307270e0061140c9190611e9b565b81565b601260ff16600a6114209190611e50565b630393870061142f9190611e9b565b81565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149890612399565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a90612405565b60405180910390fd5b6000611530848484611821565b9050600081836115409190611f49565b905082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158d9190611f49565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461161b9190611fe9565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ca9190611fe9565b600160008060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161178b9190611a94565b60405180910390a3600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118129190611a94565b60405180910390a35050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036118a9576064600060019054906101000a900460ff1660ff16836118989190611e9b565b6118a29190612454565b90506119c2565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806119315750600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806119895750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156119bd57606460008054906101000a900460ff1660ff16836119ac9190611e9b565b6119b69190612454565b90506119c2565b600090505b9392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611a035780820151818401526020810190506119e8565b60008484015250505050565b6000601f19601f8301169050919050565b6000611a2b826119c9565b611a3581856119d4565b9350611a458185602086016119e5565b611a4e81611a0f565b840191505092915050565b60006020820190508181036000830152611a738184611a20565b905092915050565b6000819050919050565b611a8e81611a7b565b82525050565b6000602082019050611aa96000830184611a85565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611adf82611ab4565b9050919050565b611aef81611ad4565b8114611afa57600080fd5b50565b600081359050611b0c81611ae6565b92915050565b611b1b81611a7b565b8114611b2657600080fd5b50565b600081359050611b3881611b12565b92915050565b600080600060608486031215611b5757611b56611aaf565b5b6000611b6586828701611afd565b9350506020611b7686828701611afd565b9250506040611b8786828701611b29565b9150509250925092565b60008115159050919050565b611ba681611b91565b82525050565b6000602082019050611bc16000830184611b9d565b92915050565b600060ff82169050919050565b611bdd81611bc7565b82525050565b6000602082019050611bf86000830184611bd4565b92915050565b60008060408385031215611c1557611c14611aaf565b5b6000611c2385828601611afd565b9250506020611c3485828601611b29565b9150509250929050565b611c4781611ad4565b82525050565b6000602082019050611c626000830184611c3e565b92915050565b600060208284031215611c7e57611c7d611aaf565b5b6000611c8c84828501611afd565b91505092915050565b611c9e81611bc7565b8114611ca957600080fd5b50565b600081359050611cbb81611c95565b92915050565b600060208284031215611cd757611cd6611aaf565b5b6000611ce584828501611cac565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115611d7457808604811115611d5057611d4f611cee565b5b6001851615611d5f5780820291505b8081029050611d6d85611d1d565b9450611d34565b94509492505050565b600082611d8d5760019050611e49565b81611d9b5760009050611e49565b8160018114611db15760028114611dbb57611dea565b6001915050611e49565b60ff841115611dcd57611dcc611cee565b5b8360020a915084821115611de457611de3611cee565b5b50611e49565b5060208310610133831016604e8410600b8410161715611e1f5782820a905083811115611e1a57611e19611cee565b5b611e49565b611e2c8484846001611d2a565b92509050818404811115611e4357611e42611cee565b5b81810290505b9392505050565b6000611e5b82611a7b565b9150611e6683611a7b565b9250611e937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611d7d565b905092915050565b6000611ea682611a7b565b9150611eb183611a7b565b9250828202611ebf81611a7b565b91508282048414831517611ed657611ed5611cee565b5b5092915050565b7f416c6c6f77616e63652065786365656465640000000000000000000000000000600082015250565b6000611f136012836119d4565b9150611f1e82611edd565b602082019050919050565b60006020820190508181036000830152611f4281611f06565b9050919050565b6000611f5482611a7b565b9150611f5f83611a7b565b9250828203905081811115611f7757611f76611cee565b5b92915050565b7f496e76616c6964207370656e6465722061646472657373000000000000000000600082015250565b6000611fb36017836119d4565b9150611fbe82611f7d565b602082019050919050565b60006020820190508181036000830152611fe281611fa6565b9050919050565b6000611ff482611a7b565b9150611fff83611a7b565b925082820190508082111561201757612016611cee565b5b92915050565b7f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60008201527f6374696f6e2e0000000000000000000000000000000000000000000000000000602082015250565b60006120796026836119d4565b91506120848261201d565b604082019050919050565b600060208201905081810360008301526120a88161206c565b9050919050565b7f4c697175696469747920506169722063616e27742062652061206e756c6c206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061210b6026836119d4565b9150612116826120af565b604082019050919050565b6000602082019050818103600083015261213a816120fe565b9050919050565b7f4e6577206c69717569646974792070616972206164647265737320697320746860008201527f652073616d65206173207468652063757272656e74206f6e6500000000000000602082015250565b600061219d6039836119d4565b91506121a882612141565b604082019050919050565b600060208201905081810360008301526121cc81612190565b9050919050565b7f53656c6c207461782072617465206d757374206265206c657373207468616e2060008201527f6f7220657175616c20746f203235250000000000000000000000000000000000602082015250565b600061222f602f836119d4565b915061223a826121d3565b604082019050919050565b6000602082019050818103600083015261225e81612222565b9050919050565b6000819050919050565b600061228a61228561228084611bc7565b612265565b611a7b565b9050919050565b61229a8161226f565b82525050565b60006020820190506122b56000830184612291565b92915050565b7f427579207461782072617465206d757374206265206c657373207468616e206f60008201527f7220657175616c20746f20323525000000000000000000000000000000000000602082015250565b6000612317602e836119d4565b9150612322826122bb565b604082019050919050565b600060208201905081810360008301526123468161230a565b9050919050565b7f496e76616c696420616464726573730000000000000000000000000000000000600082015250565b6000612383600f836119d4565b915061238e8261234d565b602082019050919050565b600060208201905081810360008301526123b281612376565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006123ef6014836119d4565b91506123fa826123b9565b602082019050919050565b6000602082019050818103600083015261241e816123e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061245f82611a7b565b915061246a83611a7b565b92508261247a57612479612425565b5b82820490509291505056fea2646970667358221220560f30363878d160b3b7c247c94f4c980263ebefdb2fc7b70cba0eb64adfd4cc64736f6c63430008130033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061018e5760003560e01c8063715018a6116100de578063a098680311610097578063c7b5a48c11610071578063c7b5a48c14610469578063e3df028714610487578063f9428f38146104a3578063fd99cbed146104c15761018e565b8063a0986803146103eb578063a457c2d714610409578063a9059cbb146104395761018e565b8063715018a61461034b57806378708129146103555780638da5cb5b14610373578063902d55a51461039157806390534f24146103af57806395d89b41146103cd5761018e565b806340c397da1161014b5780635f070f91116101255780635f070f91146102c3578063685fddeb146102df578063691f224f146102fd57806370a082311461031b5761018e565b806340c397da1461026b57806348cd14a7146102895780634f922a9e146102a75761018e565b806306fdde031461019357806318160ddd146101b157806323b872dd146101cf57806324024efd146101ff578063313ce5671461021d578063395093511461023b575b600080fd5b61019b6104df565b6040516101a89190611a59565b60405180910390f35b6101b9610518565b6040516101c69190611a94565b60405180910390f35b6101e960048036038101906101e49190611b3e565b61053f565b6040516101f69190611bac565b60405180910390f35b61020761071e565b6040516102149190611be3565b60405180910390f35b61022561072f565b6040516102329190611be3565b60405180910390f35b61025560048036038101906102509190611bfe565b610734565b6040516102629190611bac565b60405180910390f35b610273610922565b6040516102809190611c4d565b60405180910390f35b610291610948565b60405161029e9190611a94565b60405180910390f35b6102c160048036038101906102bc9190611c68565b61096b565b005b6102dd60048036038101906102d89190611cc1565b610ba3565b005b6102e7610cce565b6040516102f49190611a94565b60405180910390f35b610305610cf1565b6040516103129190611be3565b60405180910390f35b61033560048036038101906103309190611c68565b610d04565b6040516103429190611a94565b60405180910390f35b610353610d4d565b005b61035d610e9d565b60405161036a9190611a94565b60405180910390f35b61037b610ec0565b6040516103889190611c4d565b60405180910390f35b610399610ee6565b6040516103a69190611a94565b60405180910390f35b6103b7610f09565b6040516103c49190611a94565b60405180910390f35b6103d5610f2c565b6040516103e29190611a59565b60405180910390f35b6103f3610f65565b6040516104009190611a94565b60405180910390f35b610423600480360381019061041e9190611bfe565b610f88565b6040516104309190611bac565b60405180910390f35b610453600480360381019061044e9190611bfe565b611287565b6040516104609190611bac565b60405180910390f35b61047161129e565b60405161047e9190611a94565b60405180910390f35b6104a1600480360381019061049c9190611cc1565b6112c1565b005b6104ab6113ec565b6040516104b89190611a94565b60405180910390f35b6104c961140f565b6040516104d69190611a94565b60405180910390f35b6040518060400160405280600781526020017f455446537761700000000000000000000000000000000000000000000000000081525081565b6000601260ff16600a61052b9190611e50565b633b9aca0061053a9190611e9b565b905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f790611f29565b60405180910390fd5b61060b848484611432565b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106939190611f49565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b60008054906101000a900460ff1681565b601281565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079b90611fc9565b60405180910390fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108309190611fe9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516109109190611a94565b60405180910390a36001905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260ff16600a6109599190611e50565b6302625a006109689190611e9b565b81565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f29061208f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6190612121565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af1906121b3565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fc9b035f6c6ef8816b0a18f2931003e260f8a56bb9166866c608a959140a50c2f42604051610b989190611a94565b60405180910390a350565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2a9061208f565b60405180910390fd5b60198160ff161115610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7190612245565b60405180910390fd5b806000806101000a81548160ff021916908360ff1602179055507f84ab2dc23f15ae70aefa94bc7cc54d9ad95882db1d62963cd310d36d7619e5ca81604051610cc391906122a0565b60405180910390a150565b601260ff16600a610cdf9190611e50565b6302faf080610cee9190611e9b565b81565b600060019054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd49061208f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260ff16600a610eae9190611e50565b6301c9c380610ebd9190611e9b565b81565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260ff16600a610ef79190611e50565b633b9aca00610f069190611e9b565b81565b601260ff16600a610f1a9190611e50565b630e4e1c00610f299190611e9b565b81565b6040518060400160405280600481526020017f455446530000000000000000000000000000000000000000000000000000000081525081565b601260ff16600a610f769190611e50565b6303938700610f859190611e9b565b81565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ff8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fef90611fc9565b60405180910390fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808310611107576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061119b565b82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111939190611f49565b925050819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516112749190611a94565b60405180910390a3600191505092915050565b6000611294338484611432565b6001905092915050565b601260ff16600a6112af9190611e50565b6317d784006112be9190611e9b565b81565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611351576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113489061208f565b60405180910390fd5b60198160ff161115611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f9061232d565b60405180910390fd5b80600060016101000a81548160ff021916908360ff1602179055507e99a4e3a18291bf0f4d2fbf11e341587322b78f5ec0faa582d615e5b168c693816040516113e191906122a0565b60405180910390a150565b601260ff16600a6113fd9190611e50565b6307270e0061140c9190611e9b565b81565b601260ff16600a6114209190611e50565b630393870061142f9190611e9b565b81565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149890612399565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a90612405565b60405180910390fd5b6000611530848484611821565b9050600081836115409190611f49565b905082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158d9190611f49565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461161b9190611fe9565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ca9190611fe9565b600160008060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161178b9190611a94565b60405180910390a3600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118129190611a94565b60405180910390a35050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036118a9576064600060019054906101000a900460ff1660ff16836118989190611e9b565b6118a29190612454565b90506119c2565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806119315750600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806119895750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156119bd57606460008054906101000a900460ff1660ff16836119ac9190611e9b565b6119b69190612454565b90506119c2565b600090505b9392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611a035780820151818401526020810190506119e8565b60008484015250505050565b6000601f19601f8301169050919050565b6000611a2b826119c9565b611a3581856119d4565b9350611a458185602086016119e5565b611a4e81611a0f565b840191505092915050565b60006020820190508181036000830152611a738184611a20565b905092915050565b6000819050919050565b611a8e81611a7b565b82525050565b6000602082019050611aa96000830184611a85565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611adf82611ab4565b9050919050565b611aef81611ad4565b8114611afa57600080fd5b50565b600081359050611b0c81611ae6565b92915050565b611b1b81611a7b565b8114611b2657600080fd5b50565b600081359050611b3881611b12565b92915050565b600080600060608486031215611b5757611b56611aaf565b5b6000611b6586828701611afd565b9350506020611b7686828701611afd565b9250506040611b8786828701611b29565b9150509250925092565b60008115159050919050565b611ba681611b91565b82525050565b6000602082019050611bc16000830184611b9d565b92915050565b600060ff82169050919050565b611bdd81611bc7565b82525050565b6000602082019050611bf86000830184611bd4565b92915050565b60008060408385031215611c1557611c14611aaf565b5b6000611c2385828601611afd565b9250506020611c3485828601611b29565b9150509250929050565b611c4781611ad4565b82525050565b6000602082019050611c626000830184611c3e565b92915050565b600060208284031215611c7e57611c7d611aaf565b5b6000611c8c84828501611afd565b91505092915050565b611c9e81611bc7565b8114611ca957600080fd5b50565b600081359050611cbb81611c95565b92915050565b600060208284031215611cd757611cd6611aaf565b5b6000611ce584828501611cac565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115611d7457808604811115611d5057611d4f611cee565b5b6001851615611d5f5780820291505b8081029050611d6d85611d1d565b9450611d34565b94509492505050565b600082611d8d5760019050611e49565b81611d9b5760009050611e49565b8160018114611db15760028114611dbb57611dea565b6001915050611e49565b60ff841115611dcd57611dcc611cee565b5b8360020a915084821115611de457611de3611cee565b5b50611e49565b5060208310610133831016604e8410600b8410161715611e1f5782820a905083811115611e1a57611e19611cee565b5b611e49565b611e2c8484846001611d2a565b92509050818404811115611e4357611e42611cee565b5b81810290505b9392505050565b6000611e5b82611a7b565b9150611e6683611a7b565b9250611e937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611d7d565b905092915050565b6000611ea682611a7b565b9150611eb183611a7b565b9250828202611ebf81611a7b565b91508282048414831517611ed657611ed5611cee565b5b5092915050565b7f416c6c6f77616e63652065786365656465640000000000000000000000000000600082015250565b6000611f136012836119d4565b9150611f1e82611edd565b602082019050919050565b60006020820190508181036000830152611f4281611f06565b9050919050565b6000611f5482611a7b565b9150611f5f83611a7b565b9250828203905081811115611f7757611f76611cee565b5b92915050565b7f496e76616c6964207370656e6465722061646472657373000000000000000000600082015250565b6000611fb36017836119d4565b9150611fbe82611f7d565b602082019050919050565b60006020820190508181036000830152611fe281611fa6565b9050919050565b6000611ff482611a7b565b9150611fff83611a7b565b925082820190508082111561201757612016611cee565b5b92915050565b7f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60008201527f6374696f6e2e0000000000000000000000000000000000000000000000000000602082015250565b60006120796026836119d4565b91506120848261201d565b604082019050919050565b600060208201905081810360008301526120a88161206c565b9050919050565b7f4c697175696469747920506169722063616e27742062652061206e756c6c206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061210b6026836119d4565b9150612116826120af565b604082019050919050565b6000602082019050818103600083015261213a816120fe565b9050919050565b7f4e6577206c69717569646974792070616972206164647265737320697320746860008201527f652073616d65206173207468652063757272656e74206f6e6500000000000000602082015250565b600061219d6039836119d4565b91506121a882612141565b604082019050919050565b600060208201905081810360008301526121cc81612190565b9050919050565b7f53656c6c207461782072617465206d757374206265206c657373207468616e2060008201527f6f7220657175616c20746f203235250000000000000000000000000000000000602082015250565b600061222f602f836119d4565b915061223a826121d3565b604082019050919050565b6000602082019050818103600083015261225e81612222565b9050919050565b6000819050919050565b600061228a61228561228084611bc7565b612265565b611a7b565b9050919050565b61229a8161226f565b82525050565b60006020820190506122b56000830184612291565b92915050565b7f427579207461782072617465206d757374206265206c657373207468616e206f60008201527f7220657175616c20746f20323525000000000000000000000000000000000000602082015250565b6000612317602e836119d4565b9150612322826122bb565b604082019050919050565b600060208201905081810360008301526123468161230a565b9050919050565b7f496e76616c696420616464726573730000000000000000000000000000000000600082015250565b6000612383600f836119d4565b915061238e8261234d565b602082019050919050565b600060208201905081810360008301526123b281612376565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006123ef6014836119d4565b91506123fa826123b9565b602082019050919050565b6000602082019050818103600083015261241e816123e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061245f82611a7b565b915061246a83611a7b565b92508261247a57612479612425565b5b82820490509291505056fea2646970667358221220560f30363878d160b3b7c247c94f4c980263ebefdb2fc7b70cba0eb64adfd4cc64736f6c63430008130033

Deployed Bytecode Sourcemap

119:7602:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;142:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2893:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4661:315;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1142:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;231:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5007:307;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1514:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1026:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3224:455;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6556:245;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;846:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1173:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3051:121;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7115:135;;;:::i;:::-;;936:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1241:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;272:80;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;492:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;187:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;762:78;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5346:494;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4415:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;402:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6847:237;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;584:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;676:80;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;142:39;;;;;;;;;;;;;;;;;;;:::o;2893:89::-;2937:7;264:2;334:17;;328:2;:23;;;;:::i;:::-;311:13;:41;;;;:::i;:::-;2956:19;;2893:89;:::o;4661:315::-;4741:12;4802:6;4773:7;:13;4781:4;4773:13;;;;;;;;;;;;;;;:25;4787:10;4773:25;;;;;;;;;;;;;;;;:35;;4765:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;4841:33;4857:4;4863:2;4867:6;4841:15;:33::i;:::-;4941:6;4912:7;:13;4920:4;4912:13;;;;;;;;;;;;;;;:25;4926:10;4912:25;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;4884:7;:13;4892:4;4884:13;;;;;;;;;;;;;;;:25;4898:10;4884:25;;;;;;;;;;;;;;;:64;;;;4965:4;4958:11;;4661:315;;;;;:::o;1142:24::-;;;;;;;;;;;;:::o;231:35::-;264:2;231:35;:::o;5007:307::-;5087:4;5130:1;5111:21;;:7;:21;;;5103:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5202:10;5170:7;:19;5178:10;5170:19;;;;;;;;;;;;;;;:28;5190:7;5170:28;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;5248:7;5227:59;;5236:10;5227:59;;;5257:7;:19;5265:10;5257:19;;;;;;;;;;;;;;;:28;5277:7;5257:28;;;;;;;;;;;;;;;;5227:59;;;;;;:::i;:::-;;;;;;;;5303:4;5296:11;;5007:307;;;;:::o;1514:35::-;;;;;;;;;;;;;:::o;1026:93::-;264:2;1101:17;;1095:2;:23;;;;:::i;:::-;1081:10;:38;;;;:::i;:::-;1026:93;:::o;3224:455::-;2773:5;;;;;;;;;;;2759:19;;:10;:19;;;2751:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;3358:1:::1;3325:35;;:21;:35;;::::0;3317:86:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3446:20;;;;;;;;;;;3421:45;;:21;:45;;::::0;3413:115:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3561:21;3538:20;;:44;;;;;;;;;;;;;;;;;;3644:10;3597:75;;3621:21;3597:75;;;3656:15;3597:75;;;;;;:::i;:::-;;;;;;;;3224:455:::0;:::o;6556:245::-;2773:5;;;;;;;;;;;2759:19;;:10;:19;;;2751:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6657:2:::1;6639:14;:20;;;;6631:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;6735:14;6721:11;::::0;:28:::1;;;;;;;;;;;;;;;;;;6764:30;6779:14;6764:30;;;;;;:::i;:::-;;;;;;;;6556:245:::0;:::o;846:84::-;264:2;912:17;;906:2;:23;;;;:::i;:::-;892:10;:38;;;;:::i;:::-;846:84;:::o;1173:23::-;;;;;;;;;;;;;:::o;3051:121::-;3111:15;3145:8;:20;3154:10;3145:20;;;;;;;;;;;;;;;;3138:27;;3051:121;;;:::o;7115:135::-;2773:5;;;;;;;;;;;2759:19;;:10;:19;;;2751:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7212:1:::1;7176:39;;7197:5;;;;;;;;;;;7176:39;;;;;;;;;;;;7241:1;7225:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;7115:135::o:0;936:84::-;264:2;1002:17;;996:2;:23;;;;:::i;:::-;982:10;:38;;;;:::i;:::-;936:84;:::o;1241:20::-;;;;;;;;;;;;;:::o;272:80::-;264:2;334:17;;328:2;:23;;;;:::i;:::-;311:13;:41;;;;:::i;:::-;272:80;:::o;492:86::-;264:2;560:17;;554:2;:23;;;;:::i;:::-;539:11;:39;;;;:::i;:::-;492:86;:::o;187:38::-;;;;;;;;;;;;;;;;;;;:::o;762:78::-;264:2;822:17;;816:2;:23;;;;:::i;:::-;802:10;:38;;;;:::i;:::-;762:78;:::o;5346:494::-;5431:4;5474:1;5455:21;;:7;:21;;;5447:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5514:16;5533:7;:19;5541:10;5533:19;;;;;;;;;;;;;;;:28;5553:7;5533:28;;;;;;;;;;;;;;;;5514:47;;5594:8;5575:15;:27;5571:168;;5649:1;5618:7;:19;5626:10;5618:19;;;;;;;;;;;;;;;:28;5638:7;5618:28;;;;;;;;;;;;;;;:32;;;;5571:168;;;5713:15;5681:7;:19;5689:10;5681:19;;;;;;;;;;;;;;;:28;5701:7;5681:28;;;;;;;;;;;;;;;;:47;;;;;;;:::i;:::-;;;;;;;;5571:168;5774:7;5753:59;;5762:10;5753:59;;;5783:7;:19;5791:10;5783:19;;;;;;;;;;;;;;;:28;5803:7;5783:28;;;;;;;;;;;;;;;;5753:59;;;;;;:::i;:::-;;;;;;;;5829:4;5822:11;;;5346:494;;;;:::o;4415:153::-;4477:12;4501:39;4517:10;4529:2;4533:6;4501:15;:39::i;:::-;4557:4;4550:11;;4415:153;;;;:::o;402:84::-;264:2;468:17;;462:2;:23;;;;:::i;:::-;447:11;:39;;;;:::i;:::-;402:84;:::o;6847:237::-;2773:5;;;;;;;;;;;2759:19;;:10;:19;;;2751:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6945:2:::1;6928:13;:19;;;;6920:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;7021:13;7008:10;;:26;;;;;;;;;;;;;;;;;;7049:28;7063:13;7049:28;;;;;;:::i;:::-;;;;;;;;6847:237:::0;:::o;584:86::-;264:2;652:17;;646:2;:23;;;;:::i;:::-;631:11;:39;;;;:::i;:::-;584:86;:::o;676:80::-;264:2;738:17;;732:2;:23;;;;:::i;:::-;718:10;:38;;;;:::i;:::-;676:80;:::o;3735:586::-;3843:1;3829:16;;:2;:16;;;3821:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;3901:6;3883:8;:14;3892:4;3883:14;;;;;;;;;;;;;;;;:24;;3875:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3942:17;3962:36;3981:4;3987:2;3991:6;3962:18;:36::i;:::-;3942:56;;4008:22;4043:9;4033:6;:20;;;;:::i;:::-;4008:45;;4098:6;4080:8;:14;4089:4;4080:14;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;4063:8;:14;4072:4;4063:14;;;;;;;;;;;;;;;:42;;;;4146:14;4130:8;:12;4139:2;4130:12;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;4115:8;:12;4124:2;4115:12;;;;;;;;;;;;;;;:46;;;;4208:9;4189:8;:15;4198:5;;;;;;;;;;;4189:15;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;4171:8;:15;4180:5;;;;;;;;;;;4171:15;;;;;;;;;;;;;;;:47;;;;4248:2;4233:34;;4242:4;4233:34;;;4252:14;4233:34;;;;;;:::i;:::-;;;;;;;;4297:5;;;;;;;;;;;4282:32;;4291:4;4282:32;;;4304:9;4282:32;;;;;;:::i;:::-;;;;;;;;3811:510;;3735:586;;;:::o;5926:580::-;6018:7;6045:20;;;;;;;;;;;6037:28;;:4;:28;;;6033:467;;6188:3;6173:10;;;;;;;;;;;6164:19;;:6;:19;;;;:::i;:::-;6163:29;;;;:::i;:::-;6156:36;;;;6033:467;6223:1;6209:16;;:2;:16;;;:31;;;;6235:5;;;;;;;;;;;6229:11;;:2;:11;;;6209:31;:61;;;;6250:20;;;;;;;;;;;6244:26;;:2;:26;;;6209:61;6205:295;;;6424:3;6408:11;;;;;;;;;;6399:20;;:6;:20;;;;:::i;:::-;6398:30;;;;:::i;:::-;6391:37;;;;6205:295;6492:1;6485:8;;5926:580;;;;;;:::o;7:99:2:-;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;1349:77::-;1386:7;1415:5;1404:16;;1349:77;;;:::o;1432:118::-;1519:24;1537:5;1519:24;:::i;:::-;1514:3;1507:37;1432:118;;:::o;1556:222::-;1649:4;1687:2;1676:9;1672:18;1664:26;;1700:71;1768:1;1757:9;1753:17;1744:6;1700:71;:::i;:::-;1556:222;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:619::-;2968:6;2976;2984;3033:2;3021:9;3012:7;3008:23;3004:32;3001:119;;;3039:79;;:::i;:::-;3001:119;3159:1;3184:53;3229:7;3220:6;3209:9;3205:22;3184:53;:::i;:::-;3174:63;;3130:117;3286:2;3312:53;3357:7;3348:6;3337:9;3333:22;3312:53;:::i;:::-;3302:63;;3257:118;3414:2;3440:53;3485:7;3476:6;3465:9;3461:22;3440:53;:::i;:::-;3430:63;;3385:118;2891:619;;;;;:::o;3516:90::-;3550:7;3593:5;3586:13;3579:21;3568:32;;3516:90;;;:::o;3612:109::-;3693:21;3708:5;3693:21;:::i;:::-;3688:3;3681:34;3612:109;;:::o;3727:210::-;3814:4;3852:2;3841:9;3837:18;3829:26;;3865:65;3927:1;3916:9;3912:17;3903:6;3865:65;:::i;:::-;3727:210;;;;:::o;3943:86::-;3978:7;4018:4;4011:5;4007:16;3996:27;;3943:86;;;:::o;4035:112::-;4118:22;4134:5;4118:22;:::i;:::-;4113:3;4106:35;4035:112;;:::o;4153:214::-;4242:4;4280:2;4269:9;4265:18;4257:26;;4293:67;4357:1;4346:9;4342:17;4333:6;4293:67;:::i;:::-;4153:214;;;;:::o;4373:474::-;4441:6;4449;4498:2;4486:9;4477:7;4473:23;4469:32;4466:119;;;4504:79;;:::i;:::-;4466:119;4624:1;4649:53;4694:7;4685:6;4674:9;4670:22;4649:53;:::i;:::-;4639:63;;4595:117;4751:2;4777:53;4822:7;4813:6;4802:9;4798:22;4777:53;:::i;:::-;4767:63;;4722:118;4373:474;;;;;:::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:118::-;5611:22;5627:5;5611:22;:::i;:::-;5604:5;5601:33;5591:61;;5648:1;5645;5638:12;5591:61;5540:118;:::o;5664:135::-;5708:5;5746:6;5733:20;5724:29;;5762:31;5787:5;5762:31;:::i;:::-;5664:135;;;;:::o;5805:325::-;5862:6;5911:2;5899:9;5890:7;5886:23;5882:32;5879:119;;;5917:79;;:::i;:::-;5879:119;6037:1;6062:51;6105:7;6096:6;6085:9;6081:22;6062:51;:::i;:::-;6052:61;;6008:115;5805:325;;;;:::o;6136:180::-;6184:77;6181:1;6174:88;6281:4;6278:1;6271:15;6305:4;6302:1;6295:15;6322:102;6364:8;6411:5;6408:1;6404:13;6383:34;;6322:102;;;:::o;6430:848::-;6491:5;6498:4;6522:6;6513:15;;6546:5;6537:14;;6560:712;6581:1;6571:8;6568:15;6560:712;;;6676:4;6671:3;6667:14;6661:4;6658:24;6655:50;;;6685:18;;:::i;:::-;6655:50;6735:1;6725:8;6721:16;6718:451;;;7150:4;7143:5;7139:16;7130:25;;6718:451;7200:4;7194;7190:15;7182:23;;7230:32;7253:8;7230:32;:::i;:::-;7218:44;;6560:712;;;6430:848;;;;;;;:::o;7284:1073::-;7338:5;7529:8;7519:40;;7550:1;7541:10;;7552:5;;7519:40;7578:4;7568:36;;7595:1;7586:10;;7597:5;;7568:36;7664:4;7712:1;7707:27;;;;7748:1;7743:191;;;;7657:277;;7707:27;7725:1;7716:10;;7727:5;;;7743:191;7788:3;7778:8;7775:17;7772:43;;;7795:18;;:::i;:::-;7772:43;7844:8;7841:1;7837:16;7828:25;;7879:3;7872:5;7869:14;7866:40;;;7886:18;;:::i;:::-;7866:40;7919:5;;;7657:277;;8043:2;8033:8;8030:16;8024:3;8018:4;8015:13;8011:36;7993:2;7983:8;7980:16;7975:2;7969:4;7966:12;7962:35;7946:111;7943:246;;;8099:8;8093:4;8089:19;8080:28;;8134:3;8127:5;8124:14;8121:40;;;8141:18;;:::i;:::-;8121:40;8174:5;;7943:246;8214:42;8252:3;8242:8;8236:4;8233:1;8214:42;:::i;:::-;8199:57;;;;8288:4;8283:3;8279:14;8272:5;8269:25;8266:51;;;8297:18;;:::i;:::-;8266:51;8346:4;8339:5;8335:16;8326:25;;7284:1073;;;;;;:::o;8363:285::-;8423:5;8447:23;8465:4;8447:23;:::i;:::-;8439:31;;8491:27;8509:8;8491:27;:::i;:::-;8479:39;;8537:104;8574:66;8564:8;8558:4;8537:104;:::i;:::-;8528:113;;8363:285;;;;:::o;8654:410::-;8694:7;8717:20;8735:1;8717:20;:::i;:::-;8712:25;;8751:20;8769:1;8751:20;:::i;:::-;8746:25;;8806:1;8803;8799:9;8828:30;8846:11;8828:30;:::i;:::-;8817:41;;9007:1;8998:7;8994:15;8991:1;8988:22;8968:1;8961:9;8941:83;8918:139;;9037:18;;:::i;:::-;8918:139;8702:362;8654:410;;;;:::o;9070:168::-;9210:20;9206:1;9198:6;9194:14;9187:44;9070:168;:::o;9244:366::-;9386:3;9407:67;9471:2;9466:3;9407:67;:::i;:::-;9400:74;;9483:93;9572:3;9483:93;:::i;:::-;9601:2;9596:3;9592:12;9585:19;;9244:366;;;:::o;9616:419::-;9782:4;9820:2;9809:9;9805:18;9797:26;;9869:9;9863:4;9859:20;9855:1;9844:9;9840:17;9833:47;9897:131;10023:4;9897:131;:::i;:::-;9889:139;;9616:419;;;:::o;10041:194::-;10081:4;10101:20;10119:1;10101:20;:::i;:::-;10096:25;;10135:20;10153:1;10135:20;:::i;:::-;10130:25;;10179:1;10176;10172:9;10164:17;;10203:1;10197:4;10194:11;10191:37;;;10208:18;;:::i;:::-;10191:37;10041:194;;;;:::o;10241:173::-;10381:25;10377:1;10369:6;10365:14;10358:49;10241:173;:::o;10420:366::-;10562:3;10583:67;10647:2;10642:3;10583:67;:::i;:::-;10576:74;;10659:93;10748:3;10659:93;:::i;:::-;10777:2;10772:3;10768:12;10761:19;;10420:366;;;:::o;10792:419::-;10958:4;10996:2;10985:9;10981:18;10973:26;;11045:9;11039:4;11035:20;11031:1;11020:9;11016:17;11009:47;11073:131;11199:4;11073:131;:::i;:::-;11065:139;;10792:419;;;:::o;11217:191::-;11257:3;11276:20;11294:1;11276:20;:::i;:::-;11271:25;;11310:20;11328:1;11310:20;:::i;:::-;11305:25;;11353:1;11350;11346:9;11339:16;;11374:3;11371:1;11368:10;11365:36;;;11381:18;;:::i;:::-;11365:36;11217:191;;;;:::o;11414:225::-;11554:34;11550:1;11542:6;11538:14;11531:58;11623:8;11618:2;11610:6;11606:15;11599:33;11414:225;:::o;11645:366::-;11787:3;11808:67;11872:2;11867:3;11808:67;:::i;:::-;11801:74;;11884:93;11973:3;11884:93;:::i;:::-;12002:2;11997:3;11993:12;11986:19;;11645:366;;;:::o;12017:419::-;12183:4;12221:2;12210:9;12206:18;12198:26;;12270:9;12264:4;12260:20;12256:1;12245:9;12241:17;12234:47;12298:131;12424:4;12298:131;:::i;:::-;12290:139;;12017:419;;;:::o;12442:225::-;12582:34;12578:1;12570:6;12566:14;12559:58;12651:8;12646:2;12638:6;12634:15;12627:33;12442:225;:::o;12673:366::-;12815:3;12836:67;12900:2;12895:3;12836:67;:::i;:::-;12829:74;;12912:93;13001:3;12912:93;:::i;:::-;13030:2;13025:3;13021:12;13014:19;;12673:366;;;:::o;13045:419::-;13211:4;13249:2;13238:9;13234:18;13226:26;;13298:9;13292:4;13288:20;13284:1;13273:9;13269:17;13262:47;13326:131;13452:4;13326:131;:::i;:::-;13318:139;;13045:419;;;:::o;13470:244::-;13610:34;13606:1;13598:6;13594:14;13587:58;13679:27;13674:2;13666:6;13662:15;13655:52;13470:244;:::o;13720:366::-;13862:3;13883:67;13947:2;13942:3;13883:67;:::i;:::-;13876:74;;13959:93;14048:3;13959:93;:::i;:::-;14077:2;14072:3;14068:12;14061:19;;13720:366;;;:::o;14092:419::-;14258:4;14296:2;14285:9;14281:18;14273:26;;14345:9;14339:4;14335:20;14331:1;14320:9;14316:17;14309:47;14373:131;14499:4;14373:131;:::i;:::-;14365:139;;14092:419;;;:::o;14517:234::-;14657:34;14653:1;14645:6;14641:14;14634:58;14726:17;14721:2;14713:6;14709:15;14702:42;14517:234;:::o;14757:366::-;14899:3;14920:67;14984:2;14979:3;14920:67;:::i;:::-;14913:74;;14996:93;15085:3;14996:93;:::i;:::-;15114:2;15109:3;15105:12;15098:19;;14757:366;;;:::o;15129:419::-;15295:4;15333:2;15322:9;15318:18;15310:26;;15382:9;15376:4;15372:20;15368:1;15357:9;15353:17;15346:47;15410:131;15536:4;15410:131;:::i;:::-;15402:139;;15129:419;;;:::o;15554:60::-;15582:3;15603:5;15596:12;;15554:60;;;:::o;15620:138::-;15668:9;15701:51;15719:32;15728:22;15744:5;15728:22;:::i;:::-;15719:32;:::i;:::-;15701:51;:::i;:::-;15688:64;;15620:138;;;:::o;15764:127::-;15849:35;15878:5;15849:35;:::i;:::-;15844:3;15837:48;15764:127;;:::o;15897:218::-;15988:4;16026:2;16015:9;16011:18;16003:26;;16039:69;16105:1;16094:9;16090:17;16081:6;16039:69;:::i;:::-;15897:218;;;;:::o;16121:233::-;16261:34;16257:1;16249:6;16245:14;16238:58;16330:16;16325:2;16317:6;16313:15;16306:41;16121:233;:::o;16360:366::-;16502:3;16523:67;16587:2;16582:3;16523:67;:::i;:::-;16516:74;;16599:93;16688:3;16599:93;:::i;:::-;16717:2;16712:3;16708:12;16701:19;;16360:366;;;:::o;16732:419::-;16898:4;16936:2;16925:9;16921:18;16913:26;;16985:9;16979:4;16975:20;16971:1;16960:9;16956:17;16949:47;17013:131;17139:4;17013:131;:::i;:::-;17005:139;;16732:419;;;:::o;17157:165::-;17297:17;17293:1;17285:6;17281:14;17274:41;17157:165;:::o;17328:366::-;17470:3;17491:67;17555:2;17550:3;17491:67;:::i;:::-;17484:74;;17567:93;17656:3;17567:93;:::i;:::-;17685:2;17680:3;17676:12;17669:19;;17328:366;;;:::o;17700:419::-;17866:4;17904:2;17893:9;17889:18;17881:26;;17953:9;17947:4;17943:20;17939:1;17928:9;17924:17;17917:47;17981:131;18107:4;17981:131;:::i;:::-;17973:139;;17700:419;;;:::o;18125:170::-;18265:22;18261:1;18253:6;18249:14;18242:46;18125:170;:::o;18301:366::-;18443:3;18464:67;18528:2;18523:3;18464:67;:::i;:::-;18457:74;;18540:93;18629:3;18540:93;:::i;:::-;18658:2;18653:3;18649:12;18642:19;;18301:366;;;:::o;18673:419::-;18839:4;18877:2;18866:9;18862:18;18854:26;;18926:9;18920:4;18916:20;18912:1;18901:9;18897:17;18890:47;18954:131;19080:4;18954:131;:::i;:::-;18946:139;;18673:419;;;:::o;19098:180::-;19146:77;19143:1;19136:88;19243:4;19240:1;19233:15;19267:4;19264:1;19257:15;19284:185;19324:1;19341:20;19359:1;19341:20;:::i;:::-;19336:25;;19375:20;19393:1;19375:20;:::i;:::-;19370:25;;19414:1;19404:35;;19419:18;;:::i;:::-;19404:35;19461:1;19458;19454:9;19449:14;;19284:185;;;;:::o

Swarm Source

ipfs://560f30363878d160b3b7c247c94f4c980263ebefdb2fc7b70cba0eb64adfd4cc

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.