ETH Price: $2,090.87 (-0.12%)
 

Overview

Max Total Supply

1,000,000,000 XPASS

Holders

23

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
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-10-01
*/

// 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(_spender != address(0), "Invalid spender address"); // Check if the spender address is zero
        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

API
[{"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"}]

60806040523480156200001157600080fd5b5033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260ff16600a6200006691906200031b565b633b9aca006200007791906200036c565b6001819055506001546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600154604051620001249190620003de565b60405180910390a333600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460146101000a81548160ff021916908315150217905550620003fb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200021c57808604811115620001f457620001f36200018e565b5b6001851615620002045780820291505b80810290506200021485620001bd565b9450620001d4565b94509492505050565b6000826200023757600190506200030a565b816200024757600090506200030a565b81600181146200026057600281146200026b57620002a1565b60019150506200030a565b60ff84111562000280576200027f6200018e565b5b8360020a9150848211156200029a57620002996200018e565b5b506200030a565b5060208310610133831016604e8410600b8410161715620002db5782820a905083811115620002d557620002d46200018e565b5b6200030a565b620002ea8484846001620001ca565b925090508184048111156200030457620003036200018e565b5b81810290505b9392505050565b6000819050919050565b6000620003288262000311565b9150620003358362000311565b9250620003647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000225565b905092915050565b6000620003798262000311565b9150620003868362000311565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620003c257620003c16200018e565b5b828202905092915050565b620003d88162000311565b82525050565b6000602082019050620003f56000830184620003cd565b92915050565b612fa8806200040b6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063b187984f1161007c578063b187984f1461038f578063bf620a4514610399578063c7abf4ad146103b5578063dd62ed3e146103d1578063f1b50c1d14610401578063f2fde38b1461040b57610142565b80638da5cb5b146102d7578063905295e3146102f557806395d89b4114610311578063a457c2d71461032f578063a9059cbb1461035f57610142565b8063313ce5671161010a578063313ce56714610201578063395093511461021f57806342966c681461024f5780634cd412d51461026b57806370a082311461028957806381830593146102b957610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b35780632ff2e9dc146101e3575b600080fd5b61014f610427565b60405161015c9190612450565b60405180910390f35b61017f600480360381019061017a919061250b565b610460565b60405161018c9190612566565b60405180910390f35b61019d61068b565b6040516101aa9190612590565b60405180910390f35b6101cd60048036038101906101c891906125ab565b610695565b6040516101da9190612566565b60405180910390f35b6101eb610986565b6040516101f89190612590565b60405180910390f35b6102096109a9565b604051610216919061261a565b60405180910390f35b6102396004803603810190610234919061250b565b6109ae565b6040516102469190612566565b60405180910390f35b61026960048036038101906102649190612635565b610b2c565b005b610273610c17565b6040516102809190612566565b60405180910390f35b6102a3600480360381019061029e9190612662565b610c2a565b6040516102b09190612590565b60405180910390f35b6102c1610c72565b6040516102ce919061269e565b60405180910390f35b6102df610c98565b6040516102ec919061269e565b60405180910390f35b61030f600480360381019061030a9190612662565b610cbe565b005b610319610f37565b6040516103269190612450565b60405180910390f35b6103496004803603810190610344919061250b565b610f70565b6040516103569190612566565b60405180910390f35b6103796004803603810190610374919061250b565b611137565b6040516103869190612566565b60405180910390f35b610397611426565b005b6103b360048036038101906103ae919061250b565b6114ff565b005b6103cf60048036038101906103ca9190612662565b6117c6565b005b6103eb60048036038101906103e691906126b9565b61198c565b6040516103f89190612590565b60405180910390f35b610409611a13565b005b61042560048036038101906104209190612662565b611aec565b005b6040518060400160405280600681526020017f582d50415353000000000000000000000000000000000000000000000000000081525081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156104d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c890612745565b60405180910390fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148061055c5750600082145b61059b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610592906127b1565b60405180910390fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106799190612590565b60405180910390a36001905092915050565b6000600154905090565b600060011515600460149054906101000a900460ff16151514806107065750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073c9061281d565b60405180910390fd5b82600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156107af57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156108095750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156108635750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6108a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089990612889565b60405180910390fd5b8483600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461092e91906128d8565b101561096f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096690612958565b60405180910390fd5b61097a878787611cac565b93505050509392505050565b601260ff16600a6109979190612aab565b633b9aca006109a69190612af6565b81565b601281565b60008082600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a399190612b50565b905080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b199190612590565b60405180910390a3600191505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390612bf2565b60405180910390fd5b600460149054906101000a900460ff16610c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0290612c5e565b60405180910390fd5b610c1481612008565b50565b600460149054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4590612bf2565b60405180910390fd5b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610db857503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610e125750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610e6c5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea290612889565b60405180910390fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167fb7df7ef889418eecc895118f0d863c3074abf7769bfe39ba852192114c725dfc60405160405180910390a25050565b6040518060400160405280600581526020017f585041535300000000000000000000000000000000000000000000000000000081525081565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102c90612cca565b60405180910390fd5b6000838261104391906128d8565b905080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111239190612590565b60405180910390a360019250505092915050565b600060011515600460149054906101000a900460ff16151514806111a85750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6111e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111de9061281d565b60405180910390fd5b82600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561125157503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156112ab5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156113055750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133b90612889565b60405180910390fd5b3383600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d091906128d8565b1015611411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140890612958565b60405180910390fd5b61141b86866121ad565b935050505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad90612bf2565b60405180910390fd5b6000600460146101000a81548160ff0219169083151502179055507fa24e573d02c7954c4e7984d9899865bb96f86540675f339ece49129f3594710e60405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461158f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158690612bf2565b60405180910390fd5b81600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156115f957503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156116535750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156116ad5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6116ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e390612889565b60405180910390fd5b6000821161172f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172690612d36565b60405180910390fd5b81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167ff7c3865a2047e2fc614fff3af48eef519dfd5243847cbefd615b3a150a9db5b0836040516117b99190612590565b60405180910390a2505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184d90612bf2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd90612da2565b60405180910390fd5b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f7e3df9a3fc0514b3cc0c7f865fe3b2f902f069470cb6bd24130c5dd627cb21dc60405160405180910390a35050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9a90612bf2565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055507f75fce015c314a132947a3e42f6ab79ab8e05397dabf35b4d742dea228bbadc2d60405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7390612bf2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be390612e0e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1490612e7a565b60405180910390fd5b60008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081841115611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b90612ee6565b60405180910390fd5b80841115611e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5e90612f52565b60405180910390fd5b8382611e7391906128d8565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f039190612b50565b925050819055508381611f1691906128d8565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611ff39190612590565b60405180910390a36001925050509392505050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508082111561208e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208590612ee6565b60405180910390fd5b818161209a91906128d8565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008282546120ee91906128d8565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405161213b9190612590565b60405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121a19190612590565b60405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561221e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221590612e7a565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808311156122a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229b90612ee6565b60405180910390fd5b82816122b091906128d8565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123409190612b50565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123a49190612590565b60405180910390a3600191505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123f15780820151818401526020810190506123d6565b83811115612400576000848401525b50505050565b6000601f19601f8301169050919050565b6000612422826123b7565b61242c81856123c2565b935061243c8185602086016123d3565b61244581612406565b840191505092915050565b6000602082019050818103600083015261246a8184612417565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124a282612477565b9050919050565b6124b281612497565b81146124bd57600080fd5b50565b6000813590506124cf816124a9565b92915050565b6000819050919050565b6124e8816124d5565b81146124f357600080fd5b50565b600081359050612505816124df565b92915050565b6000806040838503121561252257612521612472565b5b6000612530858286016124c0565b9250506020612541858286016124f6565b9150509250929050565b60008115159050919050565b6125608161254b565b82525050565b600060208201905061257b6000830184612557565b92915050565b61258a816124d5565b82525050565b60006020820190506125a56000830184612581565b92915050565b6000806000606084860312156125c4576125c3612472565b5b60006125d2868287016124c0565b93505060206125e3868287016124c0565b92505060406125f4868287016124f6565b9150509250925092565b600060ff82169050919050565b612614816125fe565b82525050565b600060208201905061262f600083018461260b565b92915050565b60006020828403121561264b5761264a612472565b5b6000612659848285016124f6565b91505092915050565b60006020828403121561267857612677612472565b5b6000612686848285016124c0565b91505092915050565b61269881612497565b82525050565b60006020820190506126b3600083018461268f565b92915050565b600080604083850312156126d0576126cf612472565b5b60006126de858286016124c0565b92505060206126ef858286016124c0565b9150509250929050565b7f496e76616c6964207370656e6465722061646472657373000000000000000000600082015250565b600061272f6017836123c2565b915061273a826126f9565b602082019050919050565b6000602082019050818103600083015261275e81612722565b9050919050565b7f55736520696e6372656173652f6465637265617365416c6c6f77616e63650000600082015250565b600061279b601e836123c2565b91506127a682612765565b602082019050919050565b600060208201905081810360008301526127ca8161278e565b9050919050565b7f4e6f207472616e73666572730000000000000000000000000000000000000000600082015250565b6000612807600c836123c2565b9150612812826127d1565b602082019050919050565b60006020820190508181036000830152612836816127fa565b9050919050565b7f496e76616c696420646573740000000000000000000000000000000000000000600082015250565b6000612873600c836123c2565b915061287e8261283d565b602082019050919050565b600060208201905081810360008301526128a281612866565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128e3826124d5565b91506128ee836124d5565b925082821015612901576129006128a9565b5b828203905092915050565b7f45786365656473206c6f636b6564000000000000000000000000000000000000600082015250565b6000612942600e836123c2565b915061294d8261290c565b602082019050919050565b6000602082019050818103600083015261297181612935565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156129cf578086048111156129ab576129aa6128a9565b5b60018516156129ba5780820291505b80810290506129c885612978565b945061298f565b94509492505050565b6000826129e85760019050612aa4565b816129f65760009050612aa4565b8160018114612a0c5760028114612a1657612a45565b6001915050612aa4565b60ff841115612a2857612a276128a9565b5b8360020a915084821115612a3f57612a3e6128a9565b5b50612aa4565b5060208310610133831016604e8410600b8410161715612a7a5782820a905083811115612a7557612a746128a9565b5b612aa4565b612a878484846001612985565b92509050818404811115612a9e57612a9d6128a9565b5b81810290505b9392505050565b6000612ab6826124d5565b9150612ac1836124d5565b9250612aee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129d8565b905092915050565b6000612b01826124d5565b9150612b0c836124d5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b4557612b446128a9565b5b828202905092915050565b6000612b5b826124d5565b9150612b66836124d5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b9b57612b9a6128a9565b5b828201905092915050565b7f4e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b6000612bdc6009836123c2565b9150612be782612ba6565b602082019050919050565b60006020820190508181036000830152612c0b81612bcf565b9050919050565b7f4e6f206275726e73000000000000000000000000000000000000000000000000600082015250565b6000612c486008836123c2565b9150612c5382612c12565b602082019050919050565b60006020820190508181036000830152612c7781612c3b565b9050919050565b7f42656c6f77207a65726f20616c6c6f77616e6365000000000000000000000000600082015250565b6000612cb46014836123c2565b9150612cbf82612c7e565b602082019050919050565b60006020820190508181036000830152612ce381612ca7565b9050919050565b7f496e76616c696420616d6f756e74000000000000000000000000000000000000600082015250565b6000612d20600e836123c2565b9150612d2b82612cea565b602082019050919050565b60006020820190508181036000830152612d4f81612d13565b9050919050565b7f496e76616c69642061646d696e00000000000000000000000000000000000000600082015250565b6000612d8c600d836123c2565b9150612d9782612d56565b602082019050919050565b60006020820190508181036000830152612dbb81612d7f565b9050919050565b7f496e76616c6964206f776e657200000000000000000000000000000000000000600082015250565b6000612df8600d836123c2565b9150612e0382612dc2565b602082019050919050565b60006020820190508181036000830152612e2781612deb565b9050919050565b7f496e76616c696420746f00000000000000000000000000000000000000000000600082015250565b6000612e64600a836123c2565b9150612e6f82612e2e565b602082019050919050565b60006020820190508181036000830152612e9381612e57565b9050919050565b7f4e6f2062616c616e636500000000000000000000000000000000000000000000600082015250565b6000612ed0600a836123c2565b9150612edb82612e9a565b602082019050919050565b60006020820190508181036000830152612eff81612ec3565b9050919050565b7f4e6f20616c6c6f77616e63650000000000000000000000000000000000000000600082015250565b6000612f3c600c836123c2565b9150612f4782612f06565b602082019050919050565b60006020820190508181036000830152612f6b81612f2f565b905091905056fea2646970667358221220bbdd1c297ce06e58fcb7e1bd1f9156897153483d94235d12058dd6e626a4a27c64736f6c634300080a0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063b187984f1161007c578063b187984f1461038f578063bf620a4514610399578063c7abf4ad146103b5578063dd62ed3e146103d1578063f1b50c1d14610401578063f2fde38b1461040b57610142565b80638da5cb5b146102d7578063905295e3146102f557806395d89b4114610311578063a457c2d71461032f578063a9059cbb1461035f57610142565b8063313ce5671161010a578063313ce56714610201578063395093511461021f57806342966c681461024f5780634cd412d51461026b57806370a082311461028957806381830593146102b957610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b35780632ff2e9dc146101e3575b600080fd5b61014f610427565b60405161015c9190612450565b60405180910390f35b61017f600480360381019061017a919061250b565b610460565b60405161018c9190612566565b60405180910390f35b61019d61068b565b6040516101aa9190612590565b60405180910390f35b6101cd60048036038101906101c891906125ab565b610695565b6040516101da9190612566565b60405180910390f35b6101eb610986565b6040516101f89190612590565b60405180910390f35b6102096109a9565b604051610216919061261a565b60405180910390f35b6102396004803603810190610234919061250b565b6109ae565b6040516102469190612566565b60405180910390f35b61026960048036038101906102649190612635565b610b2c565b005b610273610c17565b6040516102809190612566565b60405180910390f35b6102a3600480360381019061029e9190612662565b610c2a565b6040516102b09190612590565b60405180910390f35b6102c1610c72565b6040516102ce919061269e565b60405180910390f35b6102df610c98565b6040516102ec919061269e565b60405180910390f35b61030f600480360381019061030a9190612662565b610cbe565b005b610319610f37565b6040516103269190612450565b60405180910390f35b6103496004803603810190610344919061250b565b610f70565b6040516103569190612566565b60405180910390f35b6103796004803603810190610374919061250b565b611137565b6040516103869190612566565b60405180910390f35b610397611426565b005b6103b360048036038101906103ae919061250b565b6114ff565b005b6103cf60048036038101906103ca9190612662565b6117c6565b005b6103eb60048036038101906103e691906126b9565b61198c565b6040516103f89190612590565b60405180910390f35b610409611a13565b005b61042560048036038101906104209190612662565b611aec565b005b6040518060400160405280600681526020017f582d50415353000000000000000000000000000000000000000000000000000081525081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156104d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c890612745565b60405180910390fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148061055c5750600082145b61059b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610592906127b1565b60405180910390fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106799190612590565b60405180910390a36001905092915050565b6000600154905090565b600060011515600460149054906101000a900460ff16151514806107065750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073c9061281d565b60405180910390fd5b82600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156107af57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156108095750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156108635750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6108a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089990612889565b60405180910390fd5b8483600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461092e91906128d8565b101561096f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096690612958565b60405180910390fd5b61097a878787611cac565b93505050509392505050565b601260ff16600a6109979190612aab565b633b9aca006109a69190612af6565b81565b601281565b60008082600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a399190612b50565b905080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b199190612590565b60405180910390a3600191505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390612bf2565b60405180910390fd5b600460149054906101000a900460ff16610c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0290612c5e565b60405180910390fd5b610c1481612008565b50565b600460149054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4590612bf2565b60405180910390fd5b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610db857503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610e125750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610e6c5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea290612889565b60405180910390fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167fb7df7ef889418eecc895118f0d863c3074abf7769bfe39ba852192114c725dfc60405160405180910390a25050565b6040518060400160405280600581526020017f585041535300000000000000000000000000000000000000000000000000000081525081565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102c90612cca565b60405180910390fd5b6000838261104391906128d8565b905080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111239190612590565b60405180910390a360019250505092915050565b600060011515600460149054906101000a900460ff16151514806111a85750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6111e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111de9061281d565b60405180910390fd5b82600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561125157503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156112ab5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156113055750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133b90612889565b60405180910390fd5b3383600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d091906128d8565b1015611411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140890612958565b60405180910390fd5b61141b86866121ad565b935050505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad90612bf2565b60405180910390fd5b6000600460146101000a81548160ff0219169083151502179055507fa24e573d02c7954c4e7984d9899865bb96f86540675f339ece49129f3594710e60405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461158f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158690612bf2565b60405180910390fd5b81600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156115f957503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156116535750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156116ad5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6116ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e390612889565b60405180910390fd5b6000821161172f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172690612d36565b60405180910390fd5b81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167ff7c3865a2047e2fc614fff3af48eef519dfd5243847cbefd615b3a150a9db5b0836040516117b99190612590565b60405180910390a2505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184d90612bf2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd90612da2565b60405180910390fd5b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f7e3df9a3fc0514b3cc0c7f865fe3b2f902f069470cb6bd24130c5dd627cb21dc60405160405180910390a35050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9a90612bf2565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055507f75fce015c314a132947a3e42f6ab79ab8e05397dabf35b4d742dea228bbadc2d60405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7390612bf2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be390612e0e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1490612e7a565b60405180910390fd5b60008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081841115611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b90612ee6565b60405180910390fd5b80841115611e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5e90612f52565b60405180910390fd5b8382611e7391906128d8565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f039190612b50565b925050819055508381611f1691906128d8565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611ff39190612590565b60405180910390a36001925050509392505050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508082111561208e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208590612ee6565b60405180910390fd5b818161209a91906128d8565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008282546120ee91906128d8565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405161213b9190612590565b60405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121a19190612590565b60405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561221e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221590612e7a565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808311156122a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229b90612ee6565b60405180910390fd5b82816122b091906128d8565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123409190612b50565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123a49190612590565b60405180910390a3600191505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123f15780820151818401526020810190506123d6565b83811115612400576000848401525b50505050565b6000601f19601f8301169050919050565b6000612422826123b7565b61242c81856123c2565b935061243c8185602086016123d3565b61244581612406565b840191505092915050565b6000602082019050818103600083015261246a8184612417565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124a282612477565b9050919050565b6124b281612497565b81146124bd57600080fd5b50565b6000813590506124cf816124a9565b92915050565b6000819050919050565b6124e8816124d5565b81146124f357600080fd5b50565b600081359050612505816124df565b92915050565b6000806040838503121561252257612521612472565b5b6000612530858286016124c0565b9250506020612541858286016124f6565b9150509250929050565b60008115159050919050565b6125608161254b565b82525050565b600060208201905061257b6000830184612557565b92915050565b61258a816124d5565b82525050565b60006020820190506125a56000830184612581565b92915050565b6000806000606084860312156125c4576125c3612472565b5b60006125d2868287016124c0565b93505060206125e3868287016124c0565b92505060406125f4868287016124f6565b9150509250925092565b600060ff82169050919050565b612614816125fe565b82525050565b600060208201905061262f600083018461260b565b92915050565b60006020828403121561264b5761264a612472565b5b6000612659848285016124f6565b91505092915050565b60006020828403121561267857612677612472565b5b6000612686848285016124c0565b91505092915050565b61269881612497565b82525050565b60006020820190506126b3600083018461268f565b92915050565b600080604083850312156126d0576126cf612472565b5b60006126de858286016124c0565b92505060206126ef858286016124c0565b9150509250929050565b7f496e76616c6964207370656e6465722061646472657373000000000000000000600082015250565b600061272f6017836123c2565b915061273a826126f9565b602082019050919050565b6000602082019050818103600083015261275e81612722565b9050919050565b7f55736520696e6372656173652f6465637265617365416c6c6f77616e63650000600082015250565b600061279b601e836123c2565b91506127a682612765565b602082019050919050565b600060208201905081810360008301526127ca8161278e565b9050919050565b7f4e6f207472616e73666572730000000000000000000000000000000000000000600082015250565b6000612807600c836123c2565b9150612812826127d1565b602082019050919050565b60006020820190508181036000830152612836816127fa565b9050919050565b7f496e76616c696420646573740000000000000000000000000000000000000000600082015250565b6000612873600c836123c2565b915061287e8261283d565b602082019050919050565b600060208201905081810360008301526128a281612866565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128e3826124d5565b91506128ee836124d5565b925082821015612901576129006128a9565b5b828203905092915050565b7f45786365656473206c6f636b6564000000000000000000000000000000000000600082015250565b6000612942600e836123c2565b915061294d8261290c565b602082019050919050565b6000602082019050818103600083015261297181612935565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156129cf578086048111156129ab576129aa6128a9565b5b60018516156129ba5780820291505b80810290506129c885612978565b945061298f565b94509492505050565b6000826129e85760019050612aa4565b816129f65760009050612aa4565b8160018114612a0c5760028114612a1657612a45565b6001915050612aa4565b60ff841115612a2857612a276128a9565b5b8360020a915084821115612a3f57612a3e6128a9565b5b50612aa4565b5060208310610133831016604e8410600b8410161715612a7a5782820a905083811115612a7557612a746128a9565b5b612aa4565b612a878484846001612985565b92509050818404811115612a9e57612a9d6128a9565b5b81810290505b9392505050565b6000612ab6826124d5565b9150612ac1836124d5565b9250612aee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129d8565b905092915050565b6000612b01826124d5565b9150612b0c836124d5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b4557612b446128a9565b5b828202905092915050565b6000612b5b826124d5565b9150612b66836124d5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b9b57612b9a6128a9565b5b828201905092915050565b7f4e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b6000612bdc6009836123c2565b9150612be782612ba6565b602082019050919050565b60006020820190508181036000830152612c0b81612bcf565b9050919050565b7f4e6f206275726e73000000000000000000000000000000000000000000000000600082015250565b6000612c486008836123c2565b9150612c5382612c12565b602082019050919050565b60006020820190508181036000830152612c7781612c3b565b9050919050565b7f42656c6f77207a65726f20616c6c6f77616e6365000000000000000000000000600082015250565b6000612cb46014836123c2565b9150612cbf82612c7e565b602082019050919050565b60006020820190508181036000830152612ce381612ca7565b9050919050565b7f496e76616c696420616d6f756e74000000000000000000000000000000000000600082015250565b6000612d20600e836123c2565b9150612d2b82612cea565b602082019050919050565b60006020820190508181036000830152612d4f81612d13565b9050919050565b7f496e76616c69642061646d696e00000000000000000000000000000000000000600082015250565b6000612d8c600d836123c2565b9150612d9782612d56565b602082019050919050565b60006020820190508181036000830152612dbb81612d7f565b9050919050565b7f496e76616c6964206f776e657200000000000000000000000000000000000000600082015250565b6000612df8600d836123c2565b9150612e0382612dc2565b602082019050919050565b60006020820190508181036000830152612e2781612deb565b9050919050565b7f496e76616c696420746f00000000000000000000000000000000000000000000600082015250565b6000612e64600a836123c2565b9150612e6f82612e2e565b602082019050919050565b60006020820190508181036000830152612e9381612e57565b9050919050565b7f4e6f2062616c616e636500000000000000000000000000000000000000000000600082015250565b6000612ed0600a836123c2565b9150612edb82612e9a565b602082019050919050565b60006020820190508181036000830152612eff81612ec3565b9050919050565b7f4e6f20616c6c6f77616e63650000000000000000000000000000000000000000600082015250565b6000612f3c600c836123c2565b9150612f4782612f06565b602082019050919050565b60006020820190508181036000830152612f6b81612f2f565b905091905056fea2646970667358221220bbdd1c297ce06e58fcb7e1bd1f9156897153483d94235d12058dd6e626a4a27c64736f6c634300080a0033

Deployed Bytecode Sourcemap

6547:4217:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6661:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4885:435;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;990:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9088:309;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6748:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6706:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5385:327;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9500:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6873:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1667:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6840:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1879:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10236:195;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6615:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5777:471;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8720:296;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8530:122;;;:::i;:::-;;9922:268;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10484:275;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6328:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8365:119;;;:::i;:::-;;2382:209;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6661:38;;;;;;;;;;;;;;;;;;;:::o;4885:435::-;4969:4;5014:1;4994:22;;:8;:22;;;;4986:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;5136:1;5103:7;:19;5111:10;5103:19;;;;;;;;;;;;;;;:29;5123:8;5103:29;;;;;;;;;;;;;;;;:34;:49;;;;5151:1;5141:6;:11;5103:49;5095:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;5230:6;5198:7;:19;5206:10;5198:19;;;;;;;;;;;;;;;:29;5218:8;5198:29;;;;;;;;;;;;;;;:38;;;;5273:8;5252:38;;5261:10;5252:38;;;5283:6;5252:38;;;;;;:::i;:::-;;;;;;;;5308:4;5301:11;;4885:435;;;;:::o;990:108::-;1051:7;1078:12;;1071:19;;990:108;:::o;9088:309::-;9325:4;7141;7122:23;;:15;;;;;;;;;;;:23;;;:50;;;;7163:9;;;;;;;;;;;7149:23;;:10;:23;;;7122:50;7114:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;9263:2:::1;7354:1;7340:16;;:2;:16;;;;:39;;;;;7374:4;7360:19;;:2;:19;;;;7340:39;:54;;;;;7389:5;;;;;;;;;;;7383:11;;:2;:11;;;;7340:54;:73;;;;;7404:9;;;;;;;;;;;7398:15;;:2;:15;;;;7340:73;7332:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;9294:4:::2;9300:5;7639:14;:20;7654:4;7639:20;;;;;;;;;;;;;;;;7629:6;7612:8;:14:::0;7621:4:::2;7612:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;:47;;7604:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9354:35:::3;9373:4;9379:2;9383:5;9354:18;:35::i;:::-;9347:42;;7441:1:::2;;7200::::1;9088:309:::0;;;;;:::o;6748:82::-;6739:2;6812:17;;6806:2;:23;;;;:::i;:::-;6789:13;:41;;;;:::i;:::-;6748:82;:::o;6706:35::-;6739:2;6706:35;:::o;5385:327::-;5484:4;5501:20;5556:11;5524:7;:19;5532:10;5524:19;;;;;;;;;;;;;;;:29;5544:8;5524:29;;;;;;;;;;;;;;;;:43;;;;:::i;:::-;5501:66;;5610:12;5578:7;:19;5586:10;5578:19;;;;;;;;;;;;;;;:29;5598:8;5578:29;;;;;;;;;;;;;;;:44;;;;5659:8;5638:44;;5647:10;5638:44;;;5669:12;5638:44;;;;;;:::i;:::-;;;;;;;;5700:4;5693:11;;;5385:327;;;;:::o;9500:138::-;2279:5;;;;;;;;;;;2265:19;;:10;:19;;;2257:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;9574:15:::1;;;;;;;;;;;9566:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;9613:17;9624:5;9613:10;:17::i;:::-;9500:138:::0;:::o;6873:27::-;;;;;;;;;;;;;:::o;1667:132::-;1740:15;1775:8;:16;1784:6;1775:16;;;;;;;;;;;;;;;;1768:23;;1667:132;;;:::o;6840:24::-;;;;;;;;;;;;;:::o;1879:20::-;;;;;;;;;;;;;:::o;10236:195::-;2279:5;;;;;;;;;;;2265:19;;:10;:19;;;2257:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;10340:4:::1;7354:1;7340:16;;:2;:16;;;;:39;;;;;7374:4;7360:19;;:2;:19;;;;7340:39;:54;;;;;7389:5;;;;;;;;;;;7383:11;;:2;:11;;;;7340:54;:73;;;;;7404:9;;;;;;;;;;;7398:15;;:2;:15;;;;7340:73;7332:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;10385:1:::2;10362:14;:20;10377:4;10362:20;;;;;;;;;;;;;;;:24;;;;10418:4;10402:21;;;;;;;;;;;;2309:1:::1;10236:195:::0;:::o;6615:39::-;;;;;;;;;;;;;;;;;;;:::o;5777:471::-;5881:4;5898:24;5925:7;:19;5933:10;5925:19;;;;;;;;;;;;;;;:29;5945:8;5925:29;;;;;;;;;;;;;;;;5898:56;;5993:16;5973;:36;;5965:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;6045:20;6087:16;6068;:35;;;;:::i;:::-;6045:58;;6146:12;6114:7;:19;6122:10;6114:19;;;;;;;;;;;;;;;:29;6134:8;6114:29;;;;;;;;;;;;;;;:44;;;;6195:8;6174:44;;6183:10;6174:44;;;6205:12;6174:44;;;;;;:::i;:::-;;;;;;;;6236:4;6229:11;;;;5777:471;;;;:::o;8720:296::-;8954:4;7141;7122:23;;:15;;;;;;;;;;;:23;;;:50;;;;7163:9;;;;;;;;;;;7149:23;;:10;:23;;;7122:50;7114:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;8886:2:::1;7354:1;7340:16;;:2;:16;;;;:39;;;;;7374:4;7360:19;;:2;:19;;;;7340:39;:54;;;;;7389:5;;;;;;;;;;;7383:11;;:2;:11;;;;7340:54;:73;;;;;7404:9;;;;;;;;;;;7398:15;;:2;:15;;;;7340:73;7332:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;8917:10:::2;8929:5;7639:14;:20;7654:4;7639:20;;;;;;;;;;;;;;;;7629:6;7612:8;:14:::0;7621:4:::2;7612:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;:47;;7604:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8983:25:::3;8998:2;9002:5;8983:14;:25::i;:::-;8976:32;;7441:1:::2;;7200::::1;8720:296:::0;;;;:::o;8530:122::-;2279:5;;;;;;;;;;;2265:19;;:10;:19;;;2257:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;8605:5:::1;8587:15;;:23;;;;;;;;;;;;;;;;;;8626:18;;;;;;;;;;8530:122::o:0;9922:268::-;2279:5;;;;;;;;;;;2265:19;;:10;:19;;;2257:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;10040:4:::1;7354:1;7340:16;;:2;:16;;;;:39;;;;;7374:4;7360:19;;:2;:19;;;;7340:39;:54;;;;;7389:5;;;;;;;;;;;7383:11;;:2;:11;;;;7340:54;:73;;;;;7404:9;;;;;;;;;;;7398:15;;:2;:15;;;;7340:73;7332:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;10079:1:::2;10070:6;:10;10062:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;10133:6;10110:14;:20;10125:4;10110:20;;;;;;;;;;;;;;;:29;;;;10169:4;10155:27;;;10175:6;10155:27;;;;;;:::i;:::-;;;;;;;;2309:1:::1;9922:268:::0;;:::o;10484:275::-;2279:5;;;;;;;;;;;2265:19;;:10;:19;;;2257:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;10593:1:::1;10569:26;;:12;:26;;;;10561:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;10624:20;10647:9;;;;;;;;;;;10624:32;;10679:12;10667:9;;:24;;;;;;;;;;;;;;;;;;10738:12;10707:44;;10724:12;10707:44;;;;;;;;;;;;10550:209;10484:275:::0;:::o;6328:151::-;6419:7;6446;:15;6454:6;6446:15;;;;;;;;;;;;;;;:25;6462:8;6446:25;;;;;;;;;;;;;;;;6439:32;;6328:151;;;;:::o;8365:119::-;2279:5;;;;;;;;;;;2265:19;;:10;:19;;;2257:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;8439:4:::1;8421:15;;:22;;;;;;;;;;;;;;;;;;8459:17;;;;;;;;;;8365: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:173::-;6543:25;6539:1;6531:6;6527:14;6520:49;6403:173;:::o;6582:366::-;6724:3;6745:67;6809:2;6804:3;6745:67;:::i;:::-;6738:74;;6821:93;6910:3;6821:93;:::i;:::-;6939:2;6934:3;6930:12;6923:19;;6582:366;;;:::o;6954:419::-;7120:4;7158:2;7147:9;7143:18;7135:26;;7207:9;7201:4;7197:20;7193:1;7182:9;7178:17;7171:47;7235:131;7361:4;7235:131;:::i;:::-;7227:139;;6954:419;;;:::o;7379:180::-;7519:32;7515:1;7507:6;7503:14;7496:56;7379:180;:::o;7565:366::-;7707:3;7728:67;7792:2;7787:3;7728:67;:::i;:::-;7721:74;;7804:93;7893:3;7804:93;:::i;:::-;7922:2;7917:3;7913:12;7906:19;;7565:366;;;:::o;7937:419::-;8103:4;8141:2;8130:9;8126:18;8118:26;;8190:9;8184:4;8180:20;8176:1;8165:9;8161:17;8154:47;8218:131;8344:4;8218:131;:::i;:::-;8210:139;;7937:419;;;:::o;8362:162::-;8502:14;8498:1;8490:6;8486:14;8479:38;8362:162;:::o;8530:366::-;8672:3;8693:67;8757:2;8752:3;8693:67;:::i;:::-;8686:74;;8769:93;8858:3;8769:93;:::i;:::-;8887:2;8882:3;8878:12;8871:19;;8530:366;;;:::o;8902:419::-;9068:4;9106:2;9095:9;9091:18;9083:26;;9155:9;9149:4;9145:20;9141:1;9130:9;9126:17;9119:47;9183:131;9309:4;9183:131;:::i;:::-;9175:139;;8902:419;;;:::o;9327:162::-;9467:14;9463:1;9455:6;9451:14;9444:38;9327:162;:::o;9495:366::-;9637:3;9658:67;9722:2;9717:3;9658:67;:::i;:::-;9651:74;;9734:93;9823:3;9734:93;:::i;:::-;9852:2;9847:3;9843:12;9836:19;;9495:366;;;:::o;9867:419::-;10033:4;10071:2;10060:9;10056:18;10048:26;;10120:9;10114:4;10110:20;10106:1;10095:9;10091:17;10084:47;10148:131;10274:4;10148:131;:::i;:::-;10140:139;;9867:419;;;:::o;10292:180::-;10340:77;10337:1;10330:88;10437:4;10434:1;10427:15;10461:4;10458:1;10451:15;10478:191;10518:4;10538:20;10556:1;10538:20;:::i;:::-;10533:25;;10572:20;10590:1;10572:20;:::i;:::-;10567:25;;10611:1;10608;10605:8;10602:34;;;10616:18;;:::i;:::-;10602:34;10661:1;10658;10654:9;10646:17;;10478:191;;;;:::o;10675:164::-;10815:16;10811:1;10803:6;10799:14;10792:40;10675:164;:::o;10845:366::-;10987:3;11008:67;11072:2;11067:3;11008:67;:::i;:::-;11001:74;;11084:93;11173:3;11084:93;:::i;:::-;11202:2;11197:3;11193:12;11186:19;;10845:366;;;:::o;11217:419::-;11383:4;11421:2;11410:9;11406:18;11398:26;;11470:9;11464:4;11460:20;11456:1;11445:9;11441:17;11434:47;11498:131;11624:4;11498:131;:::i;:::-;11490:139;;11217:419;;;:::o;11642:102::-;11684:8;11731:5;11728:1;11724:13;11703:34;;11642:102;;;:::o;11750:848::-;11811:5;11818:4;11842:6;11833:15;;11866:5;11857:14;;11880:712;11901:1;11891:8;11888:15;11880:712;;;11996:4;11991:3;11987:14;11981:4;11978:24;11975:50;;;12005:18;;:::i;:::-;11975:50;12055:1;12045:8;12041:16;12038:451;;;12470:4;12463:5;12459:16;12450:25;;12038:451;12520:4;12514;12510:15;12502:23;;12550:32;12573:8;12550:32;:::i;:::-;12538:44;;11880:712;;;11750:848;;;;;;;:::o;12604:1073::-;12658:5;12849:8;12839:40;;12870:1;12861:10;;12872:5;;12839:40;12898:4;12888:36;;12915:1;12906:10;;12917:5;;12888:36;12984:4;13032:1;13027:27;;;;13068:1;13063:191;;;;12977:277;;13027:27;13045:1;13036:10;;13047:5;;;13063:191;13108:3;13098:8;13095:17;13092:43;;;13115:18;;:::i;:::-;13092:43;13164:8;13161:1;13157:16;13148:25;;13199:3;13192:5;13189:14;13186:40;;;13206:18;;:::i;:::-;13186:40;13239:5;;;12977:277;;13363:2;13353:8;13350:16;13344:3;13338:4;13335:13;13331:36;13313:2;13303:8;13300:16;13295:2;13289:4;13286:12;13282:35;13266:111;13263:246;;;13419:8;13413:4;13409:19;13400:28;;13454:3;13447:5;13444:14;13441:40;;;13461:18;;:::i;:::-;13441:40;13494:5;;13263:246;13534:42;13572:3;13562:8;13556:4;13553:1;13534:42;:::i;:::-;13519:57;;;;13608:4;13603:3;13599:14;13592:5;13589:25;13586:51;;;13617:18;;:::i;:::-;13586:51;13666:4;13659:5;13655:16;13646:25;;12604:1073;;;;;;:::o;13683:285::-;13743:5;13767:23;13785:4;13767:23;:::i;:::-;13759:31;;13811:27;13829:8;13811:27;:::i;:::-;13799:39;;13857:104;13894:66;13884:8;13878:4;13857:104;:::i;:::-;13848:113;;13683:285;;;;:::o;13974:348::-;14014:7;14037:20;14055:1;14037:20;:::i;:::-;14032:25;;14071:20;14089:1;14071:20;:::i;:::-;14066:25;;14259:1;14191:66;14187:74;14184:1;14181:81;14176:1;14169:9;14162:17;14158:105;14155:131;;;14266:18;;:::i;:::-;14155:131;14314:1;14311;14307:9;14296:20;;13974:348;;;;:::o;14328:305::-;14368:3;14387:20;14405:1;14387:20;:::i;:::-;14382:25;;14421:20;14439:1;14421:20;:::i;:::-;14416:25;;14575:1;14507:66;14503:74;14500:1;14497:81;14494:107;;;14581:18;;:::i;:::-;14494:107;14625:1;14622;14618:9;14611:16;;14328:305;;;;:::o;14639:159::-;14779:11;14775:1;14767:6;14763:14;14756:35;14639:159;:::o;14804:365::-;14946:3;14967:66;15031:1;15026:3;14967:66;:::i;:::-;14960:73;;15042:93;15131:3;15042:93;:::i;:::-;15160:2;15155:3;15151:12;15144:19;;14804:365;;;:::o;15175:419::-;15341:4;15379:2;15368:9;15364:18;15356:26;;15428:9;15422:4;15418:20;15414:1;15403:9;15399:17;15392:47;15456:131;15582:4;15456:131;:::i;:::-;15448:139;;15175:419;;;:::o;15600:158::-;15740:10;15736:1;15728:6;15724:14;15717:34;15600:158;:::o;15764:365::-;15906:3;15927:66;15991:1;15986:3;15927:66;:::i;:::-;15920:73;;16002:93;16091:3;16002:93;:::i;:::-;16120:2;16115:3;16111:12;16104:19;;15764:365;;;:::o;16135:419::-;16301:4;16339:2;16328:9;16324:18;16316:26;;16388:9;16382:4;16378:20;16374:1;16363:9;16359:17;16352:47;16416:131;16542:4;16416:131;:::i;:::-;16408:139;;16135:419;;;:::o;16560:170::-;16700:22;16696:1;16688:6;16684:14;16677:46;16560:170;:::o;16736:366::-;16878:3;16899:67;16963:2;16958:3;16899:67;:::i;:::-;16892:74;;16975:93;17064:3;16975:93;:::i;:::-;17093:2;17088:3;17084:12;17077:19;;16736:366;;;:::o;17108:419::-;17274:4;17312:2;17301:9;17297:18;17289:26;;17361:9;17355:4;17351:20;17347:1;17336:9;17332:17;17325:47;17389:131;17515:4;17389:131;:::i;:::-;17381:139;;17108:419;;;:::o;17533:164::-;17673:16;17669:1;17661:6;17657:14;17650:40;17533:164;:::o;17703:366::-;17845:3;17866:67;17930:2;17925:3;17866:67;:::i;:::-;17859:74;;17942:93;18031:3;17942:93;:::i;:::-;18060:2;18055:3;18051:12;18044:19;;17703:366;;;:::o;18075:419::-;18241:4;18279:2;18268:9;18264:18;18256:26;;18328:9;18322:4;18318:20;18314:1;18303:9;18299:17;18292:47;18356:131;18482:4;18356:131;:::i;:::-;18348:139;;18075:419;;;:::o;18500:163::-;18640:15;18636:1;18628:6;18624:14;18617:39;18500:163;:::o;18669:366::-;18811:3;18832:67;18896:2;18891:3;18832:67;:::i;:::-;18825:74;;18908:93;18997:3;18908:93;:::i;:::-;19026:2;19021:3;19017:12;19010:19;;18669:366;;;:::o;19041:419::-;19207:4;19245:2;19234:9;19230:18;19222:26;;19294:9;19288:4;19284:20;19280:1;19269:9;19265:17;19258:47;19322:131;19448:4;19322:131;:::i;:::-;19314:139;;19041:419;;;:::o;19466:163::-;19606:15;19602:1;19594:6;19590:14;19583:39;19466:163;:::o;19635:366::-;19777:3;19798:67;19862:2;19857:3;19798:67;:::i;:::-;19791:74;;19874:93;19963:3;19874:93;:::i;:::-;19992:2;19987:3;19983:12;19976:19;;19635:366;;;:::o;20007:419::-;20173:4;20211:2;20200:9;20196:18;20188:26;;20260:9;20254:4;20250:20;20246:1;20235:9;20231:17;20224:47;20288:131;20414:4;20288:131;:::i;:::-;20280:139;;20007:419;;;:::o;20432:160::-;20572:12;20568:1;20560:6;20556:14;20549:36;20432:160;:::o;20598:366::-;20740:3;20761:67;20825:2;20820:3;20761:67;:::i;:::-;20754:74;;20837:93;20926:3;20837:93;:::i;:::-;20955:2;20950:3;20946:12;20939:19;;20598:366;;;:::o;20970:419::-;21136:4;21174:2;21163:9;21159:18;21151:26;;21223:9;21217:4;21213:20;21209:1;21198:9;21194:17;21187:47;21251:131;21377:4;21251:131;:::i;:::-;21243:139;;20970:419;;;:::o;21395:160::-;21535:12;21531:1;21523:6;21519:14;21512:36;21395:160;:::o;21561:366::-;21703:3;21724:67;21788:2;21783:3;21724:67;:::i;:::-;21717:74;;21800:93;21889:3;21800:93;:::i;:::-;21918:2;21913:3;21909:12;21902:19;;21561:366;;;:::o;21933:419::-;22099:4;22137:2;22126:9;22122:18;22114:26;;22186:9;22180:4;22176:20;22172:1;22161:9;22157:17;22150:47;22214:131;22340:4;22214:131;:::i;:::-;22206:139;;21933:419;;;:::o;22358:162::-;22498:14;22494:1;22486:6;22482:14;22475:38;22358:162;:::o;22526:366::-;22668:3;22689:67;22753:2;22748:3;22689:67;:::i;:::-;22682:74;;22765:93;22854:3;22765:93;:::i;:::-;22883:2;22878:3;22874:12;22867:19;;22526:366;;;:::o;22898:419::-;23064:4;23102:2;23091:9;23087:18;23079:26;;23151:9;23145:4;23141:20;23137:1;23126:9;23122:17;23115:47;23179:131;23305:4;23179:131;:::i;:::-;23171:139;;22898:419;;;:::o

Swarm Source

ipfs://bbdd1c297ce06e58fcb7e1bd1f9156897153483d94235d12058dd6e626a4a27c
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.