ETH Price: $2,817.49 (+3.52%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer203835662024-07-25 12:29:11195 days ago1721910551IN
0x85d8025d...B3F5d4BF2
0 ETH0.00018164.25593235
Transfer203835272024-07-25 12:21:23195 days ago1721910083IN
0x85d8025d...B3F5d4BF2
0 ETH0.000217283.63675431
Transfer203812402024-07-25 4:41:35195 days ago1721882495IN
0x85d8025d...B3F5d4BF2
0 ETH0.000191843.48990424

Advanced mode:
Parent Transaction Hash Block
From
To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
XPASSToken

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2024-07-25
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

// Abstract contract defining basic ERC20 functionalities
abstract contract ERC20Basic {
    // Function to get the total supply of tokens
    function totalSupply() public view virtual returns (uint256);

    // Function to get the balance of a specific address
    function balanceOf(address who) public view virtual returns (uint256);

    // Function to transfer tokens from msg.sender to another address
    function transfer(address to, uint256 value) public virtual returns (bool);

    // Event emitted when tokens are transferred
    event Transfer(address indexed from, address indexed to, uint256 value);
}

// Basic implementation of the ERC20Basic contract
contract BasicToken is ERC20Basic {
    // Mapping from address to token balance
    mapping(address => uint256) balances;

    // Total supply of tokens
    uint256 totalSupply_;

    // Function to get the total supply of tokens
    function totalSupply() public view virtual override returns (uint256) {
        return totalSupply_;
    }

    // Function to transfer tokens from msg.sender to another address
    function transfer(address _to, uint256 _value) public virtual override returns (bool) {
        require(_to != address(0), "Invalid to");
        uint256 senderBalance = balances[msg.sender];
        require(_value <= senderBalance, "No balance");

        balances[msg.sender] = senderBalance - _value;
        balances[_to] += _value;

        emit Transfer(msg.sender, _to, _value);

        return true;
    }

    // Function to get the balance of a specific address
    function balanceOf(address _owner) public view virtual override returns (uint256 balance) {
        return balances[_owner];
    }
}

// Contract for managing ownership of the token
contract Ownable {
    address public owner;

    // Event emitted when ownership is transferred
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    // Constructor sets the initial owner to the msg.sender
    constructor() {
        owner = msg.sender;
    }

    // Modifier to check if msg.sender is the owner
    modifier onlyOwner() {
        require(msg.sender == owner, "Not owner");
        _;
    }

    // Function to transfer ownership to a new address
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "Invalid owner");
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

// Extension of BasicToken with burn functionality
contract BurnableToken is BasicToken {
    // Event emitted when tokens are burned
    event Burn(address indexed burner, uint256 value);

    // Function to burn tokens from msg.sender's balance
    function burn(uint256 _value) public virtual {
        uint256 accountBalance = balances[msg.sender];
        require(_value <= accountBalance, "No balance");

        balances[msg.sender] = accountBalance - _value;
        totalSupply_ -= _value;

        emit Burn(msg.sender, _value);
        emit Transfer(msg.sender, address(0), _value);
    }
}

// Abstract contract extending ERC20Basic with additional functionalities
abstract contract ERC20 is ERC20Basic {
    function allowance(address owner, address spender) public view virtual returns (uint256);
    function transferFrom(address from, address to, uint256 value) public virtual returns (bool);
    function approve(address spender, uint256 value) public virtual returns (bool);
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool);
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

// Standard implementation of the ERC20 token
contract StandardToken is ERC20, BasicToken {
    // Mapping from owner to spender to allowance amount
    mapping(address => mapping(address => uint256)) internal allowed;

    // Function to transfer tokens from one address to another using allowance
    function transferFrom(address _from, address _to, uint256 _value) public virtual override returns (bool) {
        require(_to != address(0), "Invalid to");
        uint256 fromBalance = balances[_from];
        uint256 allowanceValue = allowed[_from][msg.sender];
        require(_value <= fromBalance, "No balance");
        require(_value <= allowanceValue, "No allowance");

        balances[_from] = fromBalance - _value;
        balances[_to] += _value;
        allowed[_from][msg.sender] = allowanceValue - _value;

        emit Transfer(_from, _to, _value);
        return true;
    }

    // Function to approve an allowance for a spender
    function approve(address _spender, uint256 _value) public virtual override returns (bool) {
        require(allowed[msg.sender][_spender] == 0 || _value == 0, "Use increase/decreaseAllowance");
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    // Function to increase the allowance for a spender
    function increaseAllowance(address _spender, uint256 _addedValue) public virtual override returns (bool) {
        uint256 newAllowance = allowed[msg.sender][_spender] + _addedValue;
        allowed[msg.sender][_spender] = newAllowance;
        emit Approval(msg.sender, _spender, newAllowance);
        return true;
    }

    // Function to decrease the allowance for a spender
    function decreaseAllowance(address _spender, uint256 _subtractedValue) public virtual override returns (bool) {
        uint256 currentAllowance = allowed[msg.sender][_spender];
        require(currentAllowance >= _subtractedValue, "Below zero allowance");
        uint256 newAllowance = currentAllowance - _subtractedValue;
        allowed[msg.sender][_spender] = newAllowance;
        emit Approval(msg.sender, _spender, newAllowance);
        return true;
    }

    // Function to get the allowance of a spender for a specific owner
    function allowance(address _owner, address _spender) public view virtual override returns (uint256) {
        return allowed[_owner][_spender];
    }
}

// The main token contract implementing all functionalities
contract XPASSToken is StandardToken, BurnableToken, Ownable {
    string public constant symbol = "XPASS";
    string public constant name = "X-PASS";
    uint8 public constant decimals = 18;
    uint256 public constant INITIAL_SUPPLY = 1_000_000_000 * (10 ** uint256(decimals)); 

    address public adminAddr;

    bool public transferEnabled;

    // Mapping to keep track of locked accounts
    mapping(address => uint256) private lockedAccounts;

    // Modifier to check if transfers are allowed
    modifier onlyWhenTransferAllowed() {
        require(transferEnabled == true || msg.sender == adminAddr, "No transfers");
        _;
    }

    // Modifier to check if the destination address is valid
    modifier onlyValidDestination(address to) {
        require(to != address(0) && to != address(this) && to != owner && to != adminAddr, "Invalid dest");
        _;
    }

    // Modifier to check if the amount is allowed considering locked balance
    modifier onlyAllowedAmount(address from, uint256 amount) {
        require(balances[from] - amount >= lockedAccounts[from], "Exceeds locked");
        _;
    }

    // Constructor setting initial supply and enabling transfers
    constructor() {
        totalSupply_ = INITIAL_SUPPLY;
        balances[msg.sender] = totalSupply_;
        emit Transfer(address(0), msg.sender, totalSupply_);
        adminAddr = msg.sender;
        transferEnabled = true;
    }

    // Event emitted when transfers are enabled
    event TransferEnabled();

    // Event emitted when transfers are disabled
    event TransferDisabled();

    // Event emitted when admin address is changed
    event AdminAddrChanged(address indexed previousAdminAddr, address indexed newAdminAddr);

    // Function to enable transfers
    function enableTransfer() external onlyOwner {
        transferEnabled = true;
        emit TransferEnabled();
    }

    // Function to disable transfers
    function disableTransfer() external onlyOwner {
        transferEnabled = false;
        emit TransferDisabled();
    }

    // Overriding transfer function with additional checks
    function transfer(address to, uint256 value)
        public
        override(BasicToken, ERC20Basic)
        onlyWhenTransferAllowed
        onlyValidDestination(to)
        onlyAllowedAmount(msg.sender, value)
        returns (bool)
    {
        return super.transfer(to, value);
    }

    // Overriding transferFrom function with additional checks
    function transferFrom(address from, address to, uint256 value)
        public
        override(StandardToken)
        onlyWhenTransferAllowed
        onlyValidDestination(to)
        onlyAllowedAmount(from, value)
        returns (bool)
    {
        return super.transferFrom(from, to, value);
    }

    // Overriding burn function to allow only owner to burn tokens when transfers are enabled
    function burn(uint256 value) public override onlyOwner {
        require(transferEnabled, "No burns");
        super.burn(value);
    }

    // Event emitted when an account is locked
    event AccountLocked(address indexed addr, uint256 amount);

    // Event emitted when an account is unlocked
    event AccountUnlocked(address indexed addr);

    // Function to lock an account with a specified amount
    function lockAccount(address addr, uint256 amount)
        external
        onlyOwner
        onlyValidDestination(addr)
    {
        require(amount > 0, "Invalid amount");
        lockedAccounts[addr] = amount;
        emit AccountLocked(addr, amount);
    }

    // Function to unlock an account
    function unlockAccount(address addr)
        external
        onlyOwner
        onlyValidDestination(addr)
    {
        lockedAccounts[addr] = 0;
        emit AccountUnlocked(addr);
    }

    // Function to change the admin address
    function changeAdminAddr(address newAdminAddr) external onlyOwner {
        require(newAdminAddr != address(0), "Invalid admin");
        address oldAdminAddr = adminAddr;
        adminAddr = newAdminAddr;
        emit AdminAddrChanged(oldAdminAddr, newAdminAddr);
    }  
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"AccountLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"}],"name":"AccountUnlocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdminAddr","type":"address"},{"indexed":true,"internalType":"address","name":"newAdminAddr","type":"address"}],"name":"AdminAddrChanged","type":"event"},{"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":"burner","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Burn","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"},{"anonymous":false,"inputs":[],"name":"TransferDisabled","type":"event"},{"anonymous":false,"inputs":[],"name":"TransferEnabled","type":"event"},{"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"adminAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdminAddr","type":"address"}],"name":"changeAdminAddr","outputs":[],"stateMutability":"nonpayable","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":[],"name":"disableTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTransfer","outputs":[],"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":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"lockAccount","outputs":[],"stateMutability":"nonpayable","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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":[{"internalType":"address","name":"addr","type":"address"}],"name":"unlockAccount","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260ff16600a6200006691906200031b565b633b9aca006200007791906200036c565b6001819055506001546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600154604051620001249190620003de565b60405180910390a333600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460146101000a81548160ff021916908315150217905550620003fb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200021c57808604811115620001f457620001f36200018e565b5b6001851615620002045780820291505b80810290506200021485620001bd565b9450620001d4565b94509492505050565b6000826200023757600190506200030a565b816200024757600090506200030a565b81600181146200026057600281146200026b57620002a1565b60019150506200030a565b60ff84111562000280576200027f6200018e565b5b8360020a9150848211156200029a57620002996200018e565b5b506200030a565b5060208310610133831016604e8410600b8410161715620002db5782820a905083811115620002d557620002d46200018e565b5b6200030a565b620002ea8484846001620001ca565b925090508184048111156200030457620003036200018e565b5b81810290505b9392505050565b6000819050919050565b6000620003288262000311565b9150620003358362000311565b9250620003647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000225565b905092915050565b6000620003798262000311565b9150620003868362000311565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620003c257620003c16200018e565b5b828202905092915050565b620003d88162000311565b82525050565b6000602082019050620003f56000830184620003cd565b92915050565b612ecc806200040b6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063b187984f1161007c578063b187984f1461038f578063bf620a4514610399578063c7abf4ad146103b5578063dd62ed3e146103d1578063f1b50c1d14610401578063f2fde38b1461040b57610142565b80638da5cb5b146102d7578063905295e3146102f557806395d89b4114610311578063a457c2d71461032f578063a9059cbb1461035f57610142565b8063313ce5671161010a578063313ce56714610201578063395093511461021f57806342966c681461024f5780634cd412d51461026b57806370a082311461028957806381830593146102b957610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b35780632ff2e9dc146101e3575b600080fd5b61014f610427565b60405161015c91906123e0565b60405180910390f35b61017f600480360381019061017a919061249b565b610460565b60405161018c91906124f6565b60405180910390f35b61019d61061b565b6040516101aa9190612520565b60405180910390f35b6101cd60048036038101906101c8919061253b565b610625565b6040516101da91906124f6565b60405180910390f35b6101eb610916565b6040516101f89190612520565b60405180910390f35b610209610939565b60405161021691906125aa565b60405180910390f35b6102396004803603810190610234919061249b565b61093e565b60405161024691906124f6565b60405180910390f35b610269600480360381019061026491906125c5565b610abc565b005b610273610ba7565b60405161028091906124f6565b60405180910390f35b6102a3600480360381019061029e91906125f2565b610bba565b6040516102b09190612520565b60405180910390f35b6102c1610c02565b6040516102ce919061262e565b60405180910390f35b6102df610c28565b6040516102ec919061262e565b60405180910390f35b61030f600480360381019061030a91906125f2565b610c4e565b005b610319610ec7565b60405161032691906123e0565b60405180910390f35b6103496004803603810190610344919061249b565b610f00565b60405161035691906124f6565b60405180910390f35b6103796004803603810190610374919061249b565b6110c7565b60405161038691906124f6565b60405180910390f35b6103976113b6565b005b6103b360048036038101906103ae919061249b565b61148f565b005b6103cf60048036038101906103ca91906125f2565b611756565b005b6103eb60048036038101906103e69190612649565b61191c565b6040516103f89190612520565b60405180910390f35b6104096119a3565b005b610425600480360381019061042091906125f2565b611a7c565b005b6040518060400160405280600681526020017f582d50415353000000000000000000000000000000000000000000000000000081525081565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414806104ec5750600082145b61052b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610522906126d5565b60405180910390fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106099190612520565b60405180910390a36001905092915050565b6000600154905090565b600060011515600460149054906101000a900460ff16151514806106965750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6106d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cc90612741565b60405180910390fd5b82600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561073f57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156107995750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156107f35750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610832576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610829906127ad565b60405180910390fd5b8483600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108be91906127fc565b10156108ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f69061287c565b60405180910390fd5b61090a878787611c3c565b93505050509392505050565b601260ff16600a61092791906129cf565b633b9aca006109369190612a1a565b81565b601281565b60008082600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c99190612a74565b905080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610aa99190612520565b60405180910390a3600191505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390612b16565b60405180910390fd5b600460149054906101000a900460ff16610b9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9290612b82565b60405180910390fd5b610ba481611f98565b50565b600460149054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd590612b16565b60405180910390fd5b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610d4857503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610da25750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610dfc5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e32906127ad565b60405180910390fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167fb7df7ef889418eecc895118f0d863c3074abf7769bfe39ba852192114c725dfc60405160405180910390a25050565b6040518060400160405280600581526020017f585041535300000000000000000000000000000000000000000000000000000081525081565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbc90612bee565b60405180910390fd5b60008382610fd391906127fc565b905080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110b39190612520565b60405180910390a360019250505092915050565b600060011515600460149054906101000a900460ff16151514806111385750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e90612741565b60405180910390fd5b82600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156111e157503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561123b5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156112955750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb906127ad565b60405180910390fd5b3383600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136091906127fc565b10156113a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113989061287c565b60405180910390fd5b6113ab868661213d565b935050505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143d90612b16565b60405180910390fd5b6000600460146101000a81548160ff0219169083151502179055507fa24e573d02c7954c4e7984d9899865bb96f86540675f339ece49129f3594710e60405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461151f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151690612b16565b60405180910390fd5b81600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561158957503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156115e35750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561163d5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61167c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611673906127ad565b60405180910390fd5b600082116116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b690612c5a565b60405180910390fd5b81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167ff7c3865a2047e2fc614fff3af48eef519dfd5243847cbefd615b3a150a9db5b0836040516117499190612520565b60405180910390a2505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dd90612b16565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184d90612cc6565b60405180910390fd5b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f7e3df9a3fc0514b3cc0c7f865fe3b2f902f069470cb6bd24130c5dd627cb21dc60405160405180910390a35050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2a90612b16565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055507f75fce015c314a132947a3e42f6ab79ab8e05397dabf35b4d742dea228bbadc2d60405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0390612b16565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7390612d32565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca490612d9e565b60405180910390fd5b60008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081841115611db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dab90612e0a565b60405180910390fd5b80841115611df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dee90612e76565b60405180910390fd5b8382611e0391906127fc565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e939190612a74565b925050819055508381611ea691906127fc565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611f839190612520565b60405180910390a36001925050509392505050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508082111561201e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201590612e0a565b60405180910390fd5b818161202a91906127fc565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816001600082825461207e91906127fc565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040516120cb9190612520565b60405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121319190612520565b60405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156121ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a590612d9e565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115612234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222b90612e0a565b60405180910390fd5b828161224091906127fc565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122d09190612a74565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123349190612520565b60405180910390a3600191505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612381578082015181840152602081019050612366565b83811115612390576000848401525b50505050565b6000601f19601f8301169050919050565b60006123b282612347565b6123bc8185612352565b93506123cc818560208601612363565b6123d581612396565b840191505092915050565b600060208201905081810360008301526123fa81846123a7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061243282612407565b9050919050565b61244281612427565b811461244d57600080fd5b50565b60008135905061245f81612439565b92915050565b6000819050919050565b61247881612465565b811461248357600080fd5b50565b6000813590506124958161246f565b92915050565b600080604083850312156124b2576124b1612402565b5b60006124c085828601612450565b92505060206124d185828601612486565b9150509250929050565b60008115159050919050565b6124f0816124db565b82525050565b600060208201905061250b60008301846124e7565b92915050565b61251a81612465565b82525050565b60006020820190506125356000830184612511565b92915050565b60008060006060848603121561255457612553612402565b5b600061256286828701612450565b935050602061257386828701612450565b925050604061258486828701612486565b9150509250925092565b600060ff82169050919050565b6125a48161258e565b82525050565b60006020820190506125bf600083018461259b565b92915050565b6000602082840312156125db576125da612402565b5b60006125e984828501612486565b91505092915050565b60006020828403121561260857612607612402565b5b600061261684828501612450565b91505092915050565b61262881612427565b82525050565b6000602082019050612643600083018461261f565b92915050565b600080604083850312156126605761265f612402565b5b600061266e85828601612450565b925050602061267f85828601612450565b9150509250929050565b7f55736520696e6372656173652f6465637265617365416c6c6f77616e63650000600082015250565b60006126bf601e83612352565b91506126ca82612689565b602082019050919050565b600060208201905081810360008301526126ee816126b2565b9050919050565b7f4e6f207472616e73666572730000000000000000000000000000000000000000600082015250565b600061272b600c83612352565b9150612736826126f5565b602082019050919050565b6000602082019050818103600083015261275a8161271e565b9050919050565b7f496e76616c696420646573740000000000000000000000000000000000000000600082015250565b6000612797600c83612352565b91506127a282612761565b602082019050919050565b600060208201905081810360008301526127c68161278a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061280782612465565b915061281283612465565b925082821015612825576128246127cd565b5b828203905092915050565b7f45786365656473206c6f636b6564000000000000000000000000000000000000600082015250565b6000612866600e83612352565b915061287182612830565b602082019050919050565b6000602082019050818103600083015261289581612859565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156128f3578086048111156128cf576128ce6127cd565b5b60018516156128de5780820291505b80810290506128ec8561289c565b94506128b3565b94509492505050565b60008261290c57600190506129c8565b8161291a57600090506129c8565b8160018114612930576002811461293a57612969565b60019150506129c8565b60ff84111561294c5761294b6127cd565b5b8360020a915084821115612963576129626127cd565b5b506129c8565b5060208310610133831016604e8410600b841016171561299e5782820a905083811115612999576129986127cd565b5b6129c8565b6129ab84848460016128a9565b925090508184048111156129c2576129c16127cd565b5b81810290505b9392505050565b60006129da82612465565b91506129e583612465565b9250612a127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846128fc565b905092915050565b6000612a2582612465565b9150612a3083612465565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a6957612a686127cd565b5b828202905092915050565b6000612a7f82612465565b9150612a8a83612465565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612abf57612abe6127cd565b5b828201905092915050565b7f4e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b6000612b00600983612352565b9150612b0b82612aca565b602082019050919050565b60006020820190508181036000830152612b2f81612af3565b9050919050565b7f4e6f206275726e73000000000000000000000000000000000000000000000000600082015250565b6000612b6c600883612352565b9150612b7782612b36565b602082019050919050565b60006020820190508181036000830152612b9b81612b5f565b9050919050565b7f42656c6f77207a65726f20616c6c6f77616e6365000000000000000000000000600082015250565b6000612bd8601483612352565b9150612be382612ba2565b602082019050919050565b60006020820190508181036000830152612c0781612bcb565b9050919050565b7f496e76616c696420616d6f756e74000000000000000000000000000000000000600082015250565b6000612c44600e83612352565b9150612c4f82612c0e565b602082019050919050565b60006020820190508181036000830152612c7381612c37565b9050919050565b7f496e76616c69642061646d696e00000000000000000000000000000000000000600082015250565b6000612cb0600d83612352565b9150612cbb82612c7a565b602082019050919050565b60006020820190508181036000830152612cdf81612ca3565b9050919050565b7f496e76616c6964206f776e657200000000000000000000000000000000000000600082015250565b6000612d1c600d83612352565b9150612d2782612ce6565b602082019050919050565b60006020820190508181036000830152612d4b81612d0f565b9050919050565b7f496e76616c696420746f00000000000000000000000000000000000000000000600082015250565b6000612d88600a83612352565b9150612d9382612d52565b602082019050919050565b60006020820190508181036000830152612db781612d7b565b9050919050565b7f4e6f2062616c616e636500000000000000000000000000000000000000000000600082015250565b6000612df4600a83612352565b9150612dff82612dbe565b602082019050919050565b60006020820190508181036000830152612e2381612de7565b9050919050565b7f4e6f20616c6c6f77616e63650000000000000000000000000000000000000000600082015250565b6000612e60600c83612352565b9150612e6b82612e2a565b602082019050919050565b60006020820190508181036000830152612e8f81612e53565b905091905056fea26469706673582212203dbaa749bd4799dda90bdaf52bc4ab6b618565c409de9192a45eda3a5033ee5364736f6c634300080a0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063b187984f1161007c578063b187984f1461038f578063bf620a4514610399578063c7abf4ad146103b5578063dd62ed3e146103d1578063f1b50c1d14610401578063f2fde38b1461040b57610142565b80638da5cb5b146102d7578063905295e3146102f557806395d89b4114610311578063a457c2d71461032f578063a9059cbb1461035f57610142565b8063313ce5671161010a578063313ce56714610201578063395093511461021f57806342966c681461024f5780634cd412d51461026b57806370a082311461028957806381830593146102b957610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b35780632ff2e9dc146101e3575b600080fd5b61014f610427565b60405161015c91906123e0565b60405180910390f35b61017f600480360381019061017a919061249b565b610460565b60405161018c91906124f6565b60405180910390f35b61019d61061b565b6040516101aa9190612520565b60405180910390f35b6101cd60048036038101906101c8919061253b565b610625565b6040516101da91906124f6565b60405180910390f35b6101eb610916565b6040516101f89190612520565b60405180910390f35b610209610939565b60405161021691906125aa565b60405180910390f35b6102396004803603810190610234919061249b565b61093e565b60405161024691906124f6565b60405180910390f35b610269600480360381019061026491906125c5565b610abc565b005b610273610ba7565b60405161028091906124f6565b60405180910390f35b6102a3600480360381019061029e91906125f2565b610bba565b6040516102b09190612520565b60405180910390f35b6102c1610c02565b6040516102ce919061262e565b60405180910390f35b6102df610c28565b6040516102ec919061262e565b60405180910390f35b61030f600480360381019061030a91906125f2565b610c4e565b005b610319610ec7565b60405161032691906123e0565b60405180910390f35b6103496004803603810190610344919061249b565b610f00565b60405161035691906124f6565b60405180910390f35b6103796004803603810190610374919061249b565b6110c7565b60405161038691906124f6565b60405180910390f35b6103976113b6565b005b6103b360048036038101906103ae919061249b565b61148f565b005b6103cf60048036038101906103ca91906125f2565b611756565b005b6103eb60048036038101906103e69190612649565b61191c565b6040516103f89190612520565b60405180910390f35b6104096119a3565b005b610425600480360381019061042091906125f2565b611a7c565b005b6040518060400160405280600681526020017f582d50415353000000000000000000000000000000000000000000000000000081525081565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414806104ec5750600082145b61052b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610522906126d5565b60405180910390fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106099190612520565b60405180910390a36001905092915050565b6000600154905090565b600060011515600460149054906101000a900460ff16151514806106965750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6106d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cc90612741565b60405180910390fd5b82600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561073f57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156107995750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156107f35750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610832576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610829906127ad565b60405180910390fd5b8483600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108be91906127fc565b10156108ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f69061287c565b60405180910390fd5b61090a878787611c3c565b93505050509392505050565b601260ff16600a61092791906129cf565b633b9aca006109369190612a1a565b81565b601281565b60008082600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109c99190612a74565b905080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610aa99190612520565b60405180910390a3600191505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390612b16565b60405180910390fd5b600460149054906101000a900460ff16610b9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9290612b82565b60405180910390fd5b610ba481611f98565b50565b600460149054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd590612b16565b60405180910390fd5b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610d4857503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610da25750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610dfc5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e32906127ad565b60405180910390fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167fb7df7ef889418eecc895118f0d863c3074abf7769bfe39ba852192114c725dfc60405160405180910390a25050565b6040518060400160405280600581526020017f585041535300000000000000000000000000000000000000000000000000000081525081565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbc90612bee565b60405180910390fd5b60008382610fd391906127fc565b905080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110b39190612520565b60405180910390a360019250505092915050565b600060011515600460149054906101000a900460ff16151514806111385750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e90612741565b60405180910390fd5b82600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156111e157503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561123b5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156112955750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb906127ad565b60405180910390fd5b3383600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136091906127fc565b10156113a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113989061287c565b60405180910390fd5b6113ab868661213d565b935050505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143d90612b16565b60405180910390fd5b6000600460146101000a81548160ff0219169083151502179055507fa24e573d02c7954c4e7984d9899865bb96f86540675f339ece49129f3594710e60405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461151f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151690612b16565b60405180910390fd5b81600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561158957503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156115e35750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561163d5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61167c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611673906127ad565b60405180910390fd5b600082116116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b690612c5a565b60405180910390fd5b81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167ff7c3865a2047e2fc614fff3af48eef519dfd5243847cbefd615b3a150a9db5b0836040516117499190612520565b60405180910390a2505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dd90612b16565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184d90612cc6565b60405180910390fd5b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f7e3df9a3fc0514b3cc0c7f865fe3b2f902f069470cb6bd24130c5dd627cb21dc60405160405180910390a35050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2a90612b16565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055507f75fce015c314a132947a3e42f6ab79ab8e05397dabf35b4d742dea228bbadc2d60405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0390612b16565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7390612d32565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca490612d9e565b60405180910390fd5b60008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081841115611db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dab90612e0a565b60405180910390fd5b80841115611df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dee90612e76565b60405180910390fd5b8382611e0391906127fc565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e939190612a74565b925050819055508381611ea691906127fc565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611f839190612520565b60405180910390a36001925050509392505050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508082111561201e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201590612e0a565b60405180910390fd5b818161202a91906127fc565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816001600082825461207e91906127fc565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040516120cb9190612520565b60405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121319190612520565b60405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156121ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a590612d9e565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115612234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222b90612e0a565b60405180910390fd5b828161224091906127fc565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122d09190612a74565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123349190612520565b60405180910390a3600191505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612381578082015181840152602081019050612366565b83811115612390576000848401525b50505050565b6000601f19601f8301169050919050565b60006123b282612347565b6123bc8185612352565b93506123cc818560208601612363565b6123d581612396565b840191505092915050565b600060208201905081810360008301526123fa81846123a7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061243282612407565b9050919050565b61244281612427565b811461244d57600080fd5b50565b60008135905061245f81612439565b92915050565b6000819050919050565b61247881612465565b811461248357600080fd5b50565b6000813590506124958161246f565b92915050565b600080604083850312156124b2576124b1612402565b5b60006124c085828601612450565b92505060206124d185828601612486565b9150509250929050565b60008115159050919050565b6124f0816124db565b82525050565b600060208201905061250b60008301846124e7565b92915050565b61251a81612465565b82525050565b60006020820190506125356000830184612511565b92915050565b60008060006060848603121561255457612553612402565b5b600061256286828701612450565b935050602061257386828701612450565b925050604061258486828701612486565b9150509250925092565b600060ff82169050919050565b6125a48161258e565b82525050565b60006020820190506125bf600083018461259b565b92915050565b6000602082840312156125db576125da612402565b5b60006125e984828501612486565b91505092915050565b60006020828403121561260857612607612402565b5b600061261684828501612450565b91505092915050565b61262881612427565b82525050565b6000602082019050612643600083018461261f565b92915050565b600080604083850312156126605761265f612402565b5b600061266e85828601612450565b925050602061267f85828601612450565b9150509250929050565b7f55736520696e6372656173652f6465637265617365416c6c6f77616e63650000600082015250565b60006126bf601e83612352565b91506126ca82612689565b602082019050919050565b600060208201905081810360008301526126ee816126b2565b9050919050565b7f4e6f207472616e73666572730000000000000000000000000000000000000000600082015250565b600061272b600c83612352565b9150612736826126f5565b602082019050919050565b6000602082019050818103600083015261275a8161271e565b9050919050565b7f496e76616c696420646573740000000000000000000000000000000000000000600082015250565b6000612797600c83612352565b91506127a282612761565b602082019050919050565b600060208201905081810360008301526127c68161278a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061280782612465565b915061281283612465565b925082821015612825576128246127cd565b5b828203905092915050565b7f45786365656473206c6f636b6564000000000000000000000000000000000000600082015250565b6000612866600e83612352565b915061287182612830565b602082019050919050565b6000602082019050818103600083015261289581612859565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156128f3578086048111156128cf576128ce6127cd565b5b60018516156128de5780820291505b80810290506128ec8561289c565b94506128b3565b94509492505050565b60008261290c57600190506129c8565b8161291a57600090506129c8565b8160018114612930576002811461293a57612969565b60019150506129c8565b60ff84111561294c5761294b6127cd565b5b8360020a915084821115612963576129626127cd565b5b506129c8565b5060208310610133831016604e8410600b841016171561299e5782820a905083811115612999576129986127cd565b5b6129c8565b6129ab84848460016128a9565b925090508184048111156129c2576129c16127cd565b5b81810290505b9392505050565b60006129da82612465565b91506129e583612465565b9250612a127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846128fc565b905092915050565b6000612a2582612465565b9150612a3083612465565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a6957612a686127cd565b5b828202905092915050565b6000612a7f82612465565b9150612a8a83612465565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612abf57612abe6127cd565b5b828201905092915050565b7f4e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b6000612b00600983612352565b9150612b0b82612aca565b602082019050919050565b60006020820190508181036000830152612b2f81612af3565b9050919050565b7f4e6f206275726e73000000000000000000000000000000000000000000000000600082015250565b6000612b6c600883612352565b9150612b7782612b36565b602082019050919050565b60006020820190508181036000830152612b9b81612b5f565b9050919050565b7f42656c6f77207a65726f20616c6c6f77616e6365000000000000000000000000600082015250565b6000612bd8601483612352565b9150612be382612ba2565b602082019050919050565b60006020820190508181036000830152612c0781612bcb565b9050919050565b7f496e76616c696420616d6f756e74000000000000000000000000000000000000600082015250565b6000612c44600e83612352565b9150612c4f82612c0e565b602082019050919050565b60006020820190508181036000830152612c7381612c37565b9050919050565b7f496e76616c69642061646d696e00000000000000000000000000000000000000600082015250565b6000612cb0600d83612352565b9150612cbb82612c7a565b602082019050919050565b60006020820190508181036000830152612cdf81612ca3565b9050919050565b7f496e76616c6964206f776e657200000000000000000000000000000000000000600082015250565b6000612d1c600d83612352565b9150612d2782612ce6565b602082019050919050565b60006020820190508181036000830152612d4b81612d0f565b9050919050565b7f496e76616c696420746f00000000000000000000000000000000000000000000600082015250565b6000612d88600a83612352565b9150612d9382612d52565b602082019050919050565b60006020820190508181036000830152612db781612d7b565b9050919050565b7f4e6f2062616c616e636500000000000000000000000000000000000000000000600082015250565b6000612df4600a83612352565b9150612dff82612dbe565b602082019050919050565b60006020820190508181036000830152612e2381612de7565b9050919050565b7f4e6f20616c6c6f77616e63650000000000000000000000000000000000000000600082015250565b6000612e60600c83612352565b9150612e6b82612e2a565b602082019050919050565b60006020820190508181036000830152612e8f81612e53565b905091905056fea26469706673582212203dbaa749bd4799dda90bdaf52bc4ab6b618565c409de9192a45eda3a5033ee5364736f6c634300080a0033

Deployed Bytecode Sourcemap

6438:4217:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6552:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4885:326;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;990:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8979:309;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6639:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6597:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5276:327;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9391:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6764:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1667:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6731:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1879:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10127:195;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6506:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5668:471;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8611:296;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8421:122;;;:::i;:::-;;9813:268;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10375:275;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6219:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8256:119;;;:::i;:::-;;2382:209;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6552:38;;;;;;;;;;;;;;;;;;;:::o;4885:326::-;4969:4;5027:1;4994:7;:19;5002:10;4994:19;;;;;;;;;;;;;;;:29;5014:8;4994:29;;;;;;;;;;;;;;;;:34;:49;;;;5042:1;5032:6;:11;4994:49;4986:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;5121:6;5089:7;:19;5097:10;5089:19;;;;;;;;;;;;;;;:29;5109:8;5089:29;;;;;;;;;;;;;;;:38;;;;5164:8;5143:38;;5152:10;5143:38;;;5174:6;5143:38;;;;;;:::i;:::-;;;;;;;;5199:4;5192:11;;4885:326;;;;:::o;990:108::-;1051:7;1078:12;;1071:19;;990:108;:::o;8979:309::-;9216:4;7032;7013:23;;:15;;;;;;;;;;;:23;;;:50;;;;7054:9;;;;;;;;;;;7040:23;;:10;:23;;;7013:50;7005:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;9154:2:::1;7245:1;7231:16;;:2;:16;;;;:39;;;;;7265:4;7251:19;;:2;:19;;;;7231:39;:54;;;;;7280:5;;;;;;;;;;;7274:11;;:2;:11;;;;7231:54;:73;;;;;7295:9;;;;;;;;;;;7289:15;;:2;:15;;;;7231:73;7223:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;9185:4:::2;9191:5;7530:14;:20;7545:4;7530:20;;;;;;;;;;;;;;;;7520:6;7503:8;:14:::0;7512:4:::2;7503:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;:47;;7495:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9245:35:::3;9264:4;9270:2;9274:5;9245:18;:35::i;:::-;9238:42;;7332:1:::2;;7091::::1;8979:309:::0;;;;;:::o;6639:82::-;6630:2;6703:17;;6697:2;:23;;;;:::i;:::-;6680:13;:41;;;;:::i;:::-;6639:82;:::o;6597:35::-;6630:2;6597:35;:::o;5276:327::-;5375:4;5392:20;5447:11;5415:7;:19;5423:10;5415:19;;;;;;;;;;;;;;;:29;5435:8;5415:29;;;;;;;;;;;;;;;;:43;;;;:::i;:::-;5392:66;;5501:12;5469:7;:19;5477:10;5469:19;;;;;;;;;;;;;;;:29;5489:8;5469:29;;;;;;;;;;;;;;;:44;;;;5550:8;5529:44;;5538:10;5529:44;;;5560:12;5529:44;;;;;;:::i;:::-;;;;;;;;5591:4;5584:11;;;5276:327;;;;:::o;9391:138::-;2279:5;;;;;;;;;;;2265:19;;:10;:19;;;2257:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;9465:15:::1;;;;;;;;;;;9457:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;9504:17;9515:5;9504:10;:17::i;:::-;9391:138:::0;:::o;6764:27::-;;;;;;;;;;;;;:::o;1667:132::-;1740:15;1775:8;:16;1784:6;1775:16;;;;;;;;;;;;;;;;1768:23;;1667:132;;;:::o;6731:24::-;;;;;;;;;;;;;:::o;1879:20::-;;;;;;;;;;;;;:::o;10127:195::-;2279:5;;;;;;;;;;;2265:19;;:10;:19;;;2257:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;10231:4:::1;7245:1;7231:16;;:2;:16;;;;:39;;;;;7265:4;7251:19;;:2;:19;;;;7231:39;:54;;;;;7280:5;;;;;;;;;;;7274:11;;:2;:11;;;;7231:54;:73;;;;;7295:9;;;;;;;;;;;7289:15;;:2;:15;;;;7231:73;7223:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;10276:1:::2;10253:14;:20;10268:4;10253:20;;;;;;;;;;;;;;;:24;;;;10309:4;10293:21;;;;;;;;;;;;2309:1:::1;10127:195:::0;:::o;6506:39::-;;;;;;;;;;;;;;;;;;;:::o;5668:471::-;5772:4;5789:24;5816:7;:19;5824:10;5816:19;;;;;;;;;;;;;;;:29;5836:8;5816:29;;;;;;;;;;;;;;;;5789:56;;5884:16;5864;:36;;5856:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;5936:20;5978:16;5959;:35;;;;:::i;:::-;5936:58;;6037:12;6005:7;:19;6013:10;6005:19;;;;;;;;;;;;;;;:29;6025:8;6005:29;;;;;;;;;;;;;;;:44;;;;6086:8;6065:44;;6074:10;6065:44;;;6096:12;6065:44;;;;;;:::i;:::-;;;;;;;;6127:4;6120:11;;;;5668:471;;;;:::o;8611:296::-;8845:4;7032;7013:23;;:15;;;;;;;;;;;:23;;;:50;;;;7054:9;;;;;;;;;;;7040:23;;:10;:23;;;7013:50;7005:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;8777:2:::1;7245:1;7231:16;;:2;:16;;;;:39;;;;;7265:4;7251:19;;:2;:19;;;;7231:39;:54;;;;;7280:5;;;;;;;;;;;7274:11;;:2;:11;;;;7231:54;:73;;;;;7295:9;;;;;;;;;;;7289:15;;:2;:15;;;;7231:73;7223:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;8808:10:::2;8820:5;7530:14;:20;7545:4;7530:20;;;;;;;;;;;;;;;;7520:6;7503:8;:14:::0;7512:4:::2;7503:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;:47;;7495:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8874:25:::3;8889:2;8893:5;8874:14;:25::i;:::-;8867:32;;7332:1:::2;;7091::::1;8611:296:::0;;;;:::o;8421:122::-;2279:5;;;;;;;;;;;2265:19;;:10;:19;;;2257:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;8496:5:::1;8478:15;;:23;;;;;;;;;;;;;;;;;;8517:18;;;;;;;;;;8421:122::o:0;9813:268::-;2279:5;;;;;;;;;;;2265:19;;:10;:19;;;2257:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;9931:4:::1;7245:1;7231:16;;:2;:16;;;;:39;;;;;7265:4;7251:19;;:2;:19;;;;7231:39;:54;;;;;7280:5;;;;;;;;;;;7274:11;;:2;:11;;;;7231:54;:73;;;;;7295:9;;;;;;;;;;;7289:15;;:2;:15;;;;7231:73;7223:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;9970:1:::2;9961:6;:10;9953:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;10024:6;10001:14;:20;10016:4;10001:20;;;;;;;;;;;;;;;:29;;;;10060:4;10046:27;;;10066:6;10046:27;;;;;;:::i;:::-;;;;;;;;2309:1:::1;9813:268:::0;;:::o;10375:275::-;2279:5;;;;;;;;;;;2265:19;;:10;:19;;;2257:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;10484:1:::1;10460:26;;:12;:26;;;;10452:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;10515:20;10538:9;;;;;;;;;;;10515:32;;10570:12;10558:9;;:24;;;;;;;;;;;;;;;;;;10629:12;10598:44;;10615:12;10598:44;;;;;;;;;;;;10441:209;10375:275:::0;:::o;6219:151::-;6310:7;6337;:15;6345:6;6337:15;;;;;;;;;;;;;;;:25;6353:8;6337:25;;;;;;;;;;;;;;;;6330:32;;6219:151;;;;:::o;8256:119::-;2279:5;;;;;;;;;;;2265:19;;:10;:19;;;2257:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;8330:4:::1;8312:15;;:22;;;;;;;;;;;;;;;;;;8350:17;;;;;;;;;;8256:119::o:0;2382:209::-;2279:5;;;;;;;;;;;2265:19;;:10;:19;;;2257:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2483:1:::1;2463:22;;:8;:22;;;;2455:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;2547:8;2519:37;;2540:5;;;;;;;;;;;2519:37;;;;;;;;;;;;2575:8;2567:5;;:16;;;;;;;;;;;;;;;;;;2382:209:::0;:::o;4217:605::-;4316:4;4356:1;4341:17;;:3;:17;;;;4333:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;4384:19;4406:8;:15;4415:5;4406:15;;;;;;;;;;;;;;;;4384:37;;4432:22;4457:7;:14;4465:5;4457:14;;;;;;;;;;;;;;;:26;4472:10;4457:26;;;;;;;;;;;;;;;;4432:51;;4512:11;4502:6;:21;;4494:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;4567:14;4557:6;:24;;4549:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;4643:6;4629:11;:20;;;;:::i;:::-;4611:8;:15;4620:5;4611:15;;;;;;;;;;;;;;;:38;;;;4677:6;4660:8;:13;4669:3;4660:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;4740:6;4723:14;:23;;;;:::i;:::-;4694:7;:14;4702:5;4694:14;;;;;;;;;;;;;;;:26;4709:10;4694:26;;;;;;;;;;;;;;;:52;;;;4780:3;4764:28;;4773:5;4764:28;;;4785:6;4764:28;;;;;;:::i;:::-;;;;;;;;4810:4;4803:11;;;;4217:605;;;;;:::o;2855:357::-;2911:22;2936:8;:20;2945:10;2936:20;;;;;;;;;;;;;;;;2911:45;;2985:14;2975:6;:24;;2967:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;3067:6;3050:14;:23;;;;:::i;:::-;3027:8;:20;3036:10;3027:20;;;;;;;;;;;;;;;:46;;;;3100:6;3084:12;;:22;;;;;;;:::i;:::-;;;;;;;;3129:10;3124:24;;;3141:6;3124:24;;;;;;:::i;:::-;;;;;;;;3193:1;3164:40;;3173:10;3164:40;;;3197:6;3164:40;;;;;;:::i;:::-;;;;;;;;2900:312;2855:357;:::o;1177:424::-;1257:4;1297:1;1282:17;;:3;:17;;;;1274:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;1325:21;1349:8;:20;1358:10;1349:20;;;;;;;;;;;;;;;;1325:44;;1398:13;1388:6;:23;;1380:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1478:6;1462:13;:22;;;;:::i;:::-;1439:8;:20;1448:10;1439:20;;;;;;;;;;;;;;;:45;;;;1512:6;1495:8;:13;1504:3;1495:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;1557:3;1536:33;;1545:10;1536:33;;;1562:6;1536:33;;;;;;:::i;:::-;;;;;;;;1589:4;1582:11;;;1177:424;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:::-;5295:6;5344:2;5332:9;5323:7;5319:23;5315:32;5312:119;;;5350:79;;:::i;:::-;5312:119;5470:1;5495:53;5540:7;5531:6;5520:9;5516:22;5495:53;:::i;:::-;5485:63;;5441:117;5236:329;;;;:::o;5571:118::-;5658:24;5676:5;5658:24;:::i;:::-;5653:3;5646:37;5571:118;;:::o;5695:222::-;5788:4;5826:2;5815:9;5811:18;5803:26;;5839:71;5907:1;5896:9;5892:17;5883:6;5839:71;:::i;:::-;5695:222;;;;:::o;5923:474::-;5991:6;5999;6048:2;6036:9;6027:7;6023:23;6019:32;6016:119;;;6054:79;;:::i;:::-;6016:119;6174:1;6199:53;6244:7;6235:6;6224:9;6220:22;6199:53;:::i;:::-;6189:63;;6145:117;6301:2;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6272:118;5923:474;;;;;:::o;6403:180::-;6543:32;6539:1;6531:6;6527:14;6520:56;6403:180;:::o;6589:366::-;6731:3;6752:67;6816:2;6811:3;6752:67;:::i;:::-;6745:74;;6828:93;6917:3;6828:93;:::i;:::-;6946:2;6941:3;6937:12;6930:19;;6589:366;;;:::o;6961:419::-;7127:4;7165:2;7154:9;7150:18;7142:26;;7214:9;7208:4;7204:20;7200:1;7189:9;7185:17;7178:47;7242:131;7368:4;7242:131;:::i;:::-;7234:139;;6961:419;;;:::o;7386:162::-;7526:14;7522:1;7514:6;7510:14;7503:38;7386:162;:::o;7554:366::-;7696:3;7717:67;7781:2;7776:3;7717:67;:::i;:::-;7710:74;;7793:93;7882:3;7793:93;:::i;:::-;7911:2;7906:3;7902:12;7895:19;;7554:366;;;:::o;7926:419::-;8092:4;8130:2;8119:9;8115:18;8107:26;;8179:9;8173:4;8169:20;8165:1;8154:9;8150:17;8143:47;8207:131;8333:4;8207:131;:::i;:::-;8199:139;;7926:419;;;:::o;8351:162::-;8491:14;8487:1;8479:6;8475:14;8468:38;8351:162;:::o;8519:366::-;8661:3;8682:67;8746:2;8741:3;8682:67;:::i;:::-;8675:74;;8758:93;8847:3;8758:93;:::i;:::-;8876:2;8871:3;8867:12;8860:19;;8519:366;;;:::o;8891:419::-;9057:4;9095:2;9084:9;9080:18;9072:26;;9144:9;9138:4;9134:20;9130:1;9119:9;9115:17;9108:47;9172:131;9298:4;9172:131;:::i;:::-;9164:139;;8891:419;;;:::o;9316:180::-;9364:77;9361:1;9354:88;9461:4;9458:1;9451:15;9485:4;9482:1;9475:15;9502:191;9542:4;9562:20;9580:1;9562:20;:::i;:::-;9557:25;;9596:20;9614:1;9596:20;:::i;:::-;9591:25;;9635:1;9632;9629:8;9626:34;;;9640:18;;:::i;:::-;9626:34;9685:1;9682;9678:9;9670:17;;9502:191;;;;:::o;9699:164::-;9839:16;9835:1;9827:6;9823:14;9816:40;9699:164;:::o;9869:366::-;10011:3;10032:67;10096:2;10091:3;10032:67;:::i;:::-;10025:74;;10108:93;10197:3;10108:93;:::i;:::-;10226:2;10221:3;10217:12;10210:19;;9869:366;;;:::o;10241:419::-;10407:4;10445:2;10434:9;10430:18;10422:26;;10494:9;10488:4;10484:20;10480:1;10469:9;10465:17;10458:47;10522:131;10648:4;10522:131;:::i;:::-;10514:139;;10241:419;;;:::o;10666:102::-;10708:8;10755:5;10752:1;10748:13;10727:34;;10666:102;;;:::o;10774:848::-;10835:5;10842:4;10866:6;10857:15;;10890:5;10881:14;;10904:712;10925:1;10915:8;10912:15;10904:712;;;11020:4;11015:3;11011:14;11005:4;11002:24;10999:50;;;11029:18;;:::i;:::-;10999:50;11079:1;11069:8;11065:16;11062:451;;;11494:4;11487:5;11483:16;11474:25;;11062:451;11544:4;11538;11534:15;11526:23;;11574:32;11597:8;11574:32;:::i;:::-;11562:44;;10904:712;;;10774:848;;;;;;;:::o;11628:1073::-;11682:5;11873:8;11863:40;;11894:1;11885:10;;11896:5;;11863:40;11922:4;11912:36;;11939:1;11930:10;;11941:5;;11912:36;12008:4;12056:1;12051:27;;;;12092:1;12087:191;;;;12001:277;;12051:27;12069:1;12060:10;;12071:5;;;12087:191;12132:3;12122:8;12119:17;12116:43;;;12139:18;;:::i;:::-;12116:43;12188:8;12185:1;12181:16;12172:25;;12223:3;12216:5;12213:14;12210:40;;;12230:18;;:::i;:::-;12210:40;12263:5;;;12001:277;;12387:2;12377:8;12374:16;12368:3;12362:4;12359:13;12355:36;12337:2;12327:8;12324:16;12319:2;12313:4;12310:12;12306:35;12290:111;12287:246;;;12443:8;12437:4;12433:19;12424:28;;12478:3;12471:5;12468:14;12465:40;;;12485:18;;:::i;:::-;12465:40;12518:5;;12287:246;12558:42;12596:3;12586:8;12580:4;12577:1;12558:42;:::i;:::-;12543:57;;;;12632:4;12627:3;12623:14;12616:5;12613:25;12610:51;;;12641:18;;:::i;:::-;12610:51;12690:4;12683:5;12679:16;12670:25;;11628:1073;;;;;;:::o;12707:285::-;12767:5;12791:23;12809:4;12791:23;:::i;:::-;12783:31;;12835:27;12853:8;12835:27;:::i;:::-;12823:39;;12881:104;12918:66;12908:8;12902:4;12881:104;:::i;:::-;12872:113;;12707:285;;;;:::o;12998:348::-;13038:7;13061:20;13079:1;13061:20;:::i;:::-;13056:25;;13095:20;13113:1;13095:20;:::i;:::-;13090:25;;13283:1;13215:66;13211:74;13208:1;13205:81;13200:1;13193:9;13186:17;13182:105;13179:131;;;13290:18;;:::i;:::-;13179:131;13338:1;13335;13331:9;13320:20;;12998:348;;;;:::o;13352:305::-;13392:3;13411:20;13429:1;13411:20;:::i;:::-;13406:25;;13445:20;13463:1;13445:20;:::i;:::-;13440:25;;13599:1;13531:66;13527:74;13524:1;13521:81;13518:107;;;13605:18;;:::i;:::-;13518:107;13649:1;13646;13642:9;13635:16;;13352:305;;;;:::o;13663:159::-;13803:11;13799:1;13791:6;13787:14;13780:35;13663:159;:::o;13828:365::-;13970:3;13991:66;14055:1;14050:3;13991:66;:::i;:::-;13984:73;;14066:93;14155:3;14066:93;:::i;:::-;14184:2;14179:3;14175:12;14168:19;;13828:365;;;:::o;14199:419::-;14365:4;14403:2;14392:9;14388:18;14380:26;;14452:9;14446:4;14442:20;14438:1;14427:9;14423:17;14416:47;14480:131;14606:4;14480:131;:::i;:::-;14472:139;;14199:419;;;:::o;14624:158::-;14764:10;14760:1;14752:6;14748:14;14741:34;14624:158;:::o;14788:365::-;14930:3;14951:66;15015:1;15010:3;14951:66;:::i;:::-;14944:73;;15026:93;15115:3;15026:93;:::i;:::-;15144:2;15139:3;15135:12;15128:19;;14788:365;;;:::o;15159:419::-;15325:4;15363:2;15352:9;15348:18;15340:26;;15412:9;15406:4;15402:20;15398:1;15387:9;15383:17;15376:47;15440:131;15566:4;15440:131;:::i;:::-;15432:139;;15159:419;;;:::o;15584:170::-;15724:22;15720:1;15712:6;15708:14;15701:46;15584:170;:::o;15760:366::-;15902:3;15923:67;15987:2;15982:3;15923:67;:::i;:::-;15916:74;;15999:93;16088:3;15999:93;:::i;:::-;16117:2;16112:3;16108:12;16101:19;;15760:366;;;:::o;16132:419::-;16298:4;16336:2;16325:9;16321:18;16313:26;;16385:9;16379:4;16375:20;16371:1;16360:9;16356:17;16349:47;16413:131;16539:4;16413:131;:::i;:::-;16405:139;;16132:419;;;:::o;16557:164::-;16697:16;16693:1;16685:6;16681:14;16674:40;16557:164;:::o;16727:366::-;16869:3;16890:67;16954:2;16949:3;16890:67;:::i;:::-;16883:74;;16966:93;17055:3;16966:93;:::i;:::-;17084:2;17079:3;17075:12;17068:19;;16727:366;;;:::o;17099:419::-;17265:4;17303:2;17292:9;17288:18;17280:26;;17352:9;17346:4;17342:20;17338:1;17327:9;17323:17;17316:47;17380:131;17506:4;17380:131;:::i;:::-;17372:139;;17099:419;;;:::o;17524:163::-;17664:15;17660:1;17652:6;17648:14;17641:39;17524:163;:::o;17693:366::-;17835:3;17856:67;17920:2;17915:3;17856:67;:::i;:::-;17849:74;;17932:93;18021:3;17932:93;:::i;:::-;18050:2;18045:3;18041:12;18034:19;;17693:366;;;:::o;18065:419::-;18231:4;18269:2;18258:9;18254:18;18246:26;;18318:9;18312:4;18308:20;18304:1;18293:9;18289:17;18282:47;18346:131;18472:4;18346:131;:::i;:::-;18338:139;;18065:419;;;:::o;18490:163::-;18630:15;18626:1;18618:6;18614:14;18607:39;18490:163;:::o;18659:366::-;18801:3;18822:67;18886:2;18881:3;18822:67;:::i;:::-;18815:74;;18898:93;18987:3;18898:93;:::i;:::-;19016:2;19011:3;19007:12;19000:19;;18659:366;;;:::o;19031:419::-;19197:4;19235:2;19224:9;19220:18;19212:26;;19284:9;19278:4;19274:20;19270:1;19259:9;19255:17;19248:47;19312:131;19438:4;19312:131;:::i;:::-;19304:139;;19031:419;;;:::o;19456:160::-;19596:12;19592:1;19584:6;19580:14;19573:36;19456:160;:::o;19622:366::-;19764:3;19785:67;19849:2;19844:3;19785:67;:::i;:::-;19778:74;;19861:93;19950:3;19861:93;:::i;:::-;19979:2;19974:3;19970:12;19963:19;;19622:366;;;:::o;19994:419::-;20160:4;20198:2;20187:9;20183:18;20175:26;;20247:9;20241:4;20237:20;20233:1;20222:9;20218:17;20211:47;20275:131;20401:4;20275:131;:::i;:::-;20267:139;;19994:419;;;:::o;20419:160::-;20559:12;20555:1;20547:6;20543:14;20536:36;20419:160;:::o;20585:366::-;20727:3;20748:67;20812:2;20807:3;20748:67;:::i;:::-;20741:74;;20824:93;20913:3;20824:93;:::i;:::-;20942:2;20937:3;20933:12;20926:19;;20585:366;;;:::o;20957:419::-;21123:4;21161:2;21150:9;21146:18;21138:26;;21210:9;21204:4;21200:20;21196:1;21185:9;21181:17;21174:47;21238:131;21364:4;21238:131;:::i;:::-;21230:139;;20957:419;;;:::o;21382:162::-;21522:14;21518:1;21510:6;21506:14;21499:38;21382:162;:::o;21550:366::-;21692:3;21713:67;21777:2;21772:3;21713:67;:::i;:::-;21706:74;;21789:93;21878:3;21789:93;:::i;:::-;21907:2;21902:3;21898:12;21891:19;;21550:366;;;:::o;21922:419::-;22088:4;22126:2;22115:9;22111:18;22103:26;;22175:9;22169:4;22165:20;22161:1;22150:9;22146:17;22139:47;22203:131;22329:4;22203:131;:::i;:::-;22195:139;;21922:419;;;:::o

Swarm Source

ipfs://3dbaa749bd4799dda90bdaf52bc4ab6b618565c409de9192a45eda3a5033ee53

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  ]

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.