Token veraone

Gold 
 

Overview [ERC-20]

Price
$56.72 @ 0.029912 Eth (-0.02%)
Fully Diluted Market Cap
Max Total Supply:
214,761.34774485 VRO

Holders:
1,638 (0.00%)

Transfers:
-

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

VeraOne is an ERC20 token backed by gold, stored in secure zones on the basis of a full counterpart, regularly audited by trusted third parties. VeraOne's aim is to offer a stablecoin which provides a reliable alternative to existing options which rely on fiat currencies or on tangible assets.

Market

Volume (24H):$19,989.29
Market Capitalization:$12,179,319.00
Circulating Supply:214,761.00 VRO
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x8a135ba896a10cd00fbc2107a5a0ab00da7c624b

Contract Name:
StableCoin

Compiler Version
v0.5.13+commit.5b0b510c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity Multiple files format)

File 6 of 6: StableCoin.sol
pragma solidity ^0.5.13;

import "./ERC20.sol";
import "./DateTime.sol";
import "./Ownable.sol";

contract StableCoin is ERC20, DateTime, Ownable {
    using SafeMath for uint256;

    address public tokenIssuer;
    uint256 public lastOxydationDate;

    event Oxydated(address holder, uint256 amount);
    event TimestampComparaison(uint256 newTimestamp, uint256 oldTimestamp);

    constructor(
        string memory _tokenName,
        string memory _tokenSymbol,
        uint8 _decimals,
        address _tokenIssuer
    ) public ERC20(_tokenName, _tokenSymbol, _decimals) Ownable() {
        lastOxydationDate = now;
        tokenIssuer = _tokenIssuer;
    }

    // change address that get fees from oxydation
    function setTokenIssuer(address _addressVeraOneFees) public onlyOwner {
        tokenIssuer = _addressVeraOneFees;
    }

    function mint(address _to, uint256 _tokenAmount) public onlyOwner {
        _mint(_to, _tokenAmount);
    }

    //Mint tokens to each each beneficiary
    function mints(address[] calldata _recipients, uint256[] calldata _values) external onlyOwner {
        for (uint256 i = 0; i < _recipients.length; i++) {
            mint(_recipients[i], _values[i]);
        }
    }

    function burn(address _account, uint256 _value) public onlyOwner {
        _burn(_account, _value);
    }

    //Burn tokens to each each beneficiary
    function burns(address[] calldata _recipients, uint256[] calldata _values) external onlyOwner {
        for (uint256 i = 0; i < _recipients.length; i++) {
            burn(_recipients[i], _values[i]);
        }
    }
    // can accept ether
    function() external payable {}

    // give number of ether owned by smart contract
    function getBalanceEthSmartContract() public view returns (uint256) {
        return address(this).balance;
    }

    // transfer smart contract balance to owner
    function withdrawEther(uint256 amount) public onlyOwner {
        address payable ownerPayable = address(uint160(Ownable.owner()));
        ownerPayable.transfer(amount);
    }

    // monthly oxydation for all investors
    function oxydation(address[] calldata holders) external {
        for (uint256 i = 0; i < holders.length; i++) {
            emit TimestampComparaison(getMonth(lastOxydationDate), getMonth(now));
            if (getMonth(lastOxydationDate) != getMonth(now)) {
                // once a month
                uint256 balanceCurrent = balanceOf(holders[i]);
                uint256 toOxyde = balanceCurrent.div(1200); // 1% annual over 12 months
                _burn(holders[i], toOxyde);
                _mint(tokenIssuer, toOxyde);
                emit Oxydated(holders[i], toOxyde);
            }
        }
        lastOxydationDate = now;
    }

    function Now() external view returns (uint256){
      return (now);
  }

}

File 1 of 6: DateTime.sol
pragma solidity ^0.5.13;

contract DateTime {
    /*
         *  Date and Time utilities for ethereum contracts
         *
         */
    struct _DateTime {
        uint16 year;
        uint8 month;
        uint8 day;
        uint8 hour;
        uint8 minute;
        uint8 second;
        uint8 weekday;
    }

    uint256 constant private DAY_IN_SECONDS = 86400;
    uint256 constant private YEAR_IN_SECONDS = 31536000;
    uint256 constant private LEAP_YEAR_IN_SECONDS = 31622400;

    uint256 constant private HOUR_IN_SECONDS = 3600;
    uint256 constant private MINUTE_IN_SECONDS = 60;

    uint16 constant private ORIGIN_YEAR = 1970;

    function isLeapYear(uint16 year) public pure returns (bool) {
        if (year % 4 != 0) {
            return false;
        }
        if (year % 100 != 0) {
            return true;
        }
        if (year % 400 != 0) {
            return false;
        }
        return true;
    }

    function leapYearsBefore(uint256 year) public pure returns (uint256) {
        year -= 1;
        return year / 4 - year / 100 + year / 400;
    }

    function getDaysInMonth(uint8 month, uint16 year)
        public
        pure
        returns (uint8)
    {
        if (
            month == 1 ||
            month == 3 ||
            month == 5 ||
            month == 7 ||
            month == 8 ||
            month == 10 ||
            month == 12
        ) {
            return 31;
        } else if (month == 4 || month == 6 || month == 9 || month == 11) {
            return 30;
        } else if (isLeapYear(year)) {
            return 29;
        } else {
            return 28;
        }
    }

    function parseTimestamp(uint256 timestamp)
        internal
        pure
        returns (_DateTime memory dt)
    {
        uint256 secondsAccountedFor = 0;
        uint256 buf;
        uint8 i;

        // Year
        dt.year = getYear(timestamp);
        buf = leapYearsBefore(dt.year) - leapYearsBefore(ORIGIN_YEAR);

        secondsAccountedFor += LEAP_YEAR_IN_SECONDS * buf;
        secondsAccountedFor += YEAR_IN_SECONDS * (dt.year - ORIGIN_YEAR - buf);

        // Month
        uint256 secondsInMonth;
        for (i = 1; i <= 12; i++) {
            secondsInMonth = DAY_IN_SECONDS * getDaysInMonth(i, dt.year);
            if (secondsInMonth + secondsAccountedFor > timestamp) {
                dt.month = i;
                break;
            }
            secondsAccountedFor += secondsInMonth;
        }

        // Day
        for (i = 1; i <= getDaysInMonth(dt.month, dt.year); i++) {
            if (DAY_IN_SECONDS + secondsAccountedFor > timestamp) {
                dt.day = i;
                break;
            }
            secondsAccountedFor += DAY_IN_SECONDS;
        }

        // Hour
        dt.hour = getHour(timestamp);

        // Minute
        dt.minute = getMinute(timestamp);

        // Second
        dt.second = getSecond(timestamp);

        // Day of week.
        dt.weekday = getWeekday(timestamp);
    }

    function getYear(uint256 timestamp) public pure returns (uint16) {
        uint256 secondsAccountedFor = 0;
        uint16 year;
        uint256 numLeapYears;

        // Year
        year = uint16(ORIGIN_YEAR + timestamp / YEAR_IN_SECONDS);
        numLeapYears = leapYearsBefore(year) - leapYearsBefore(ORIGIN_YEAR);

        secondsAccountedFor += LEAP_YEAR_IN_SECONDS * numLeapYears;
        secondsAccountedFor +=
            YEAR_IN_SECONDS *
            (year - ORIGIN_YEAR - numLeapYears);

        while (secondsAccountedFor > timestamp) {
            if (isLeapYear(uint16(year - 1))) {
                secondsAccountedFor -= LEAP_YEAR_IN_SECONDS;
            } else {
                secondsAccountedFor -= YEAR_IN_SECONDS;
            }
            year -= 1;
        }
        return year;
    }

    function getMonth(uint256 timestamp) public pure returns (uint8) {
        return parseTimestamp(timestamp).month;
    }

    function getDay(uint256 timestamp) public pure returns (uint8) {
        return parseTimestamp(timestamp).day;
    }

    function getHour(uint256 timestamp) public pure returns (uint8) {
        return uint8((timestamp / 60 / 60) % 24);
    }

    function getMinute(uint256 timestamp) public pure returns (uint8) {
        return uint8((timestamp / 60) % 60);
    }

    function getSecond(uint256 timestamp) public pure returns (uint8) {
        return uint8(timestamp % 60);
    }

    function getWeekday(uint256 timestamp) public pure returns (uint8) {
        return uint8((timestamp / DAY_IN_SECONDS + 4) % 7);
    }

    function toTimestamp(uint16 year, uint8 month, uint8 day)
        public
        pure
        returns (uint256 timestamp)
    {
        return toTimestamp(year, month, day, 0, 0, 0);
    }

    function toTimestamp(uint16 year, uint8 month, uint8 day, uint8 hour)
        public
        pure
        returns (uint256 timestamp)
    {
        return toTimestamp(year, month, day, hour, 0, 0);
    }

    function toTimestamp(
        uint16 year,
        uint8 month,
        uint8 day,
        uint8 hour,
        uint8 minute
    ) public pure returns (uint256 timestamp) {
        return toTimestamp(year, month, day, hour, minute, 0);
    }

    function toTimestamp(
        uint16 year,
        uint8 month,
        uint8 day,
        uint8 hour,
        uint8 minute,
        uint8 second
    ) public pure returns (uint256 timestamp) {
        uint16 i;

        // Year
        for (i = ORIGIN_YEAR; i < year; i++) {
            if (isLeapYear(i)) {
                timestamp += LEAP_YEAR_IN_SECONDS;
            } else {
                timestamp += YEAR_IN_SECONDS;
            }
        }

        // Month
        uint8[12] memory monthDayCounts;
        monthDayCounts[0] = 31;
        if (isLeapYear(year)) {
            monthDayCounts[1] = 29;
        } else {
            monthDayCounts[1] = 28;
        }
        monthDayCounts[2] = 31;
        monthDayCounts[3] = 30;
        monthDayCounts[4] = 31;
        monthDayCounts[5] = 30;
        monthDayCounts[6] = 31;
        monthDayCounts[7] = 31;
        monthDayCounts[8] = 30;
        monthDayCounts[9] = 31;
        monthDayCounts[10] = 30;
        monthDayCounts[11] = 31;

        for (i = 1; i < month; i++) {
            timestamp += DAY_IN_SECONDS * monthDayCounts[i - 1];
        }

        // Day
        timestamp += DAY_IN_SECONDS * (day - 1);

        // Hour
        timestamp += HOUR_IN_SECONDS * (hour);

        // Minute
        timestamp += MINUTE_IN_SECONDS * (minute);

        // Second
        timestamp += second;

        return timestamp;
    }
}

File 2 of 6: ERC20.sol
pragma solidity ^0.5.13;

import "./SafeMath.sol";

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * https://eips.ethereum.org/EIPS/eip-20
 * Originally based on code by FirstBlood:
 * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 *
 * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for
 * all accounts just by listening to said events. Note that this isn't required by the specification, and other
 * compliant implementations may not do it.
 */
contract ERC20 {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowed;

    uint256 private _totalSupply;

    string public name;
    string public symbol;
    uint8 public decimals;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    constructor(string memory _name, string memory _symbol, uint8 _decimals) public {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
    }

    /**
     * @dev Total number of tokens in existence.
     */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev Gets the balance of the specified address.
     * @param owner The address to query the balance of.
     * @return A uint256 representing the amount owned by the passed address.
     */
    function balanceOf(address owner) public view returns (uint256) {
        return _balances[owner];
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param owner address The address which owns the funds.
     * @param spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(address owner, address spender)
        public
        view
        returns (uint256)
    {
        return _allowed[owner][spender];
    }

    /**
     * @dev Transfer token to a specified address.
     * @param to The address to transfer to.
     * @param value The amount to be transferred.
     */
    function transfer(address to, uint256 value) public returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     * Beware that changing an allowance with this method brings the risk that someone may use both the old
     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * @param spender The address which will spend the funds.
     * @param value The amount of tokens to be spent.
     */
    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    /**
     * @dev Transfer tokens from one address to another.
     * Note that while this function emits an Approval event, this is not required as per the specification,
     * and other compliant implementations may not emit the event.
     * @param from address The address which you want to send tokens from
     * @param to address The address which you want to transfer to
     * @param value uint256 the amount of tokens to be transferred
     */
    function transferFrom(address from, address to, uint256 value)
        public
        returns (bool)
    {
        _transfer(from, to, value);
        _approve(from, msg.sender, _allowed[from][msg.sender].sub(value));
        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender.
     * approve should be called when _allowed[msg.sender][spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * Emits an Approval event.
     * @param spender The address which will spend the funds.
     * @param addedValue The amount of tokens to increase the allowance by.
     */
    function increaseAllowance(address spender, uint256 addedValue)
        public
        returns (bool)
    {
        _approve(
            msg.sender,
            spender,
            _allowed[msg.sender][spender].add(addedValue)
        );
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     * approve should be called when _allowed[msg.sender][spender] == 0. To decrement
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * Emits an Approval event.
     * @param spender The address which will spend the funds.
     * @param subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        returns (bool)
    {
        _approve(
            msg.sender,
            spender,
            _allowed[msg.sender][spender].sub(subtractedValue)
        );
        return true;
    }

    /**
     * @dev Transfer token for a specified addresses.
     * @param from The address to transfer from.
     * @param to The address to transfer to.
     * @param value The amount to be transferred.
     */
    function _transfer(address from, address to, uint256 value) internal {
        require(to != address(0), "ERC20: transfer to the zero address");

        _balances[from] = _balances[from].sub(value);
        _balances[to] = _balances[to].add(value);
        emit Transfer(from, to, value);
    }

    /**
     * @dev Internal function that mints an amount of the token and assigns it to
     * an account. This encapsulates the modification of balances such that the
     * proper events are emitted.
     * @param account The account that will receive the created tokens.
     * @param value The amount that will be created.
     */
    function _mint(address account, uint256 value) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(value);
        _balances[account] = _balances[account].add(value);
        emit Transfer(address(0), account, value);
    }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account.
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burn(address account, uint256 value) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }

    /**
     * @dev Approve an address to spend another addresses' tokens.
     * @param owner The address that owns the tokens.
     * @param spender The address that will spend the tokens.
     * @param value The number of tokens that can be spent.
     */
    function _approve(address owner, address spender, uint256 value) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowed[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account, deducting from the sender's allowance for said account. Uses the
     * internal burn function.
     * Emits an Approval event (reflecting the reduced allowance).
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burnFrom(address account, uint256 value) internal {
        _burn(account, value);
        _approve(account, msg.sender, _allowed[account][msg.sender].sub(value));
    }
}

File 3 of 6: Migrations.sol
pragma solidity ^0.5.13;

contract Migrations {
    address public owner;
    uint256 public lastCompletedMigration;

    modifier restricted() {
        if (msg.sender == owner) _;
    }

    constructor() public {
        owner = msg.sender;
    }

    function setCompleted(uint256 completed) public restricted {
        lastCompletedMigration = completed;
    }

    function upgrade(address new_address) public restricted {
        Migrations upgraded = Migrations(new_address);
        upgraded.setCompleted(lastCompletedMigration);
    }
}

File 4 of 6: Ownable.sol
pragma solidity ^0.5.13;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor() internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    /**
     * @return the address of the owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @return true if `msg.sender` is the owner of the contract.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    /**
     * @dev Allows the current owner to relinquish control of the contract.
     * It will not be possible to call the functions with the `onlyOwner`
     * modifier anymore.
     * @notice Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function _transferOwnership(address newOwner) internal {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

File 5 of 6: SafeMath.sol
pragma solidity ^0.5.13;

/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error.
 */
library SafeMath {
    /**
     * @dev Multiplies two unsigned integers, reverts on overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Adds two unsigned integers, reverts on overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
     * reverts when dividing by zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_tokenName","type":"string"},{"internalType":"string","name":"_tokenSymbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_tokenIssuer","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Oxydated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newTimestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldTimestamp","type":"uint256"}],"name":"TimestampComparaison","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"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"Now","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_recipients","type":"address[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"}],"name":"burns","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBalanceEthSmartContract","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getDay","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint8","name":"month","type":"uint8"},{"internalType":"uint16","name":"year","type":"uint16"}],"name":"getDaysInMonth","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getHour","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getMinute","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getMonth","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getSecond","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getWeekday","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getYear","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint16","name":"year","type":"uint16"}],"name":"isLeapYear","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastOxydationDate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"year","type":"uint256"}],"name":"leapYearsBefore","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_recipients","type":"address[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"}],"name":"mints","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"holders","type":"address[]"}],"name":"oxydation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addressVeraOneFees","type":"address"}],"name":"setTokenIssuer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint16","name":"year","type":"uint16"},{"internalType":"uint8","name":"month","type":"uint8"},{"internalType":"uint8","name":"day","type":"uint8"},{"internalType":"uint8","name":"hour","type":"uint8"},{"internalType":"uint8","name":"minute","type":"uint8"}],"name":"toTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint16","name":"year","type":"uint16"},{"internalType":"uint8","name":"month","type":"uint8"},{"internalType":"uint8","name":"day","type":"uint8"},{"internalType":"uint8","name":"hour","type":"uint8"}],"name":"toTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint16","name":"year","type":"uint16"},{"internalType":"uint8","name":"month","type":"uint8"},{"internalType":"uint8","name":"day","type":"uint8"}],"name":"toTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint16","name":"year","type":"uint16"},{"internalType":"uint8","name":"month","type":"uint8"},{"internalType":"uint8","name":"day","type":"uint8"},{"internalType":"uint8","name":"hour","type":"uint8"},{"internalType":"uint8","name":"minute","type":"uint8"},{"internalType":"uint8","name":"second","type":"uint8"}],"name":"toTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"tokenIssuer","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"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"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50604051620035aa380380620035aa833981810160405260808110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660018202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000c3578082015181840152602081019050620000a6565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011557600080fd5b838201915060208201858111156200012c57600080fd5b82518660018202830111640100000000821117156200014a57600080fd5b8083526020830192505050908051906020019080838360005b838110156200018057808201518184015260208101905062000163565b50505050905090810190601f168015620001ae5780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190805190602001909291905050508383838260039080519060200190620001e79291906200032f565b508160049080519060200190620002009291906200032f565b5080600560006101000a81548160ff021916908360ff16021790555050505033600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a34260078190555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620003de565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200037257805160ff1916838001178555620003a3565b82800160010185558215620003a3579182015b82811115620003a257825182559160200191906001019062000385565b5b509050620003b29190620003b6565b5090565b620003db91905b80821115620003d7576000816000905550600101620003bd565b5090565b90565b6131bc80620003ee6000396000f3fe60806040526004361061023b5760003560e01c80638c8d98a01161012e578063a457c2d7116100ab578063c28ab8901161006f578063c28ab89014610f4c578063dd62ed3e14611027578063f243c2a7146110ac578063f2fde38b14611103578063fa93f883146111545761023b565b8063a457c2d714610d5a578063a6f0e57714610dcd578063a9059cbb14610e24578063b199993714610e97578063b238ad0e14610ee65761023b565b80639508dc77116100f25780639508dc7714610b1457806395d89b4114610b3f5780639dc29fac14610bcf578063a131e0e514610c2a578063a324ad2414610d055761023b565b80638c8d98a0146109365780638da5cb5b146109a35780638f32d59b146109fa5780639054bdec14610a2957806392d6631314610abd5761023b565b806340c10f19116101bc57806365c728401161018057806365c728401461079657806370a08231146107eb578063715018a6146108505780637f791833146108675780638aa001fc146108e15761023b565b806340c10f191461060957806344d4fd19146106645780634ac1ad781461068f5780635f9efad6146106e457806362ba96871461070f5761023b565b8063291babc311610203578063291babc31461044f578063313ce567146104d557806339509351146105065780633bed33ce146105795780633e239e1a146105b45761023b565b806306fdde031461023d578063095ea7b3146102cd57806309daa7eb1461034057806318160ddd1461039157806323b872dd146103bc575b005b34801561024957600080fd5b506102526111a9565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610292578082015181840152602081019050610277565b50505050905090810190601f1680156102bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102d957600080fd5b50610326600480360360408110156102f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611247565b604051808215151515815260200191505060405180910390f35b34801561034c57600080fd5b5061038f6004803603602081101561036357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061125e565b005b34801561039d57600080fd5b506103a661131c565b6040518082815260200191505060405180910390f35b3480156103c857600080fd5b50610435600480360360608110156103df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611326565b604051808215151515815260200191505060405180910390f35b34801561045b57600080fd5b506104d36004803603602081101561047257600080fd5b810190808035906020019064010000000081111561048f57600080fd5b8201836020820111156104a157600080fd5b803590602001918460208302840111640100000000831117156104c357600080fd5b90919293919293905050506113d7565b005b3480156104e157600080fd5b506104ea6115b9565b604051808260ff1660ff16815260200191505060405180910390f35b34801561051257600080fd5b5061055f6004803603604081101561052957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115cc565b604051808215151515815260200191505060405180910390f35b34801561058557600080fd5b506105b26004803603602081101561059c57600080fd5b8101908080359060200190929190505050611671565b005b3480156105c057600080fd5b506105ed600480360360208110156105d757600080fd5b8101908080359060200190929190505050611742565b604051808260ff1660ff16815260200191505060405180910390f35b34801561061557600080fd5b506106626004803603604081101561062c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611769565b005b34801561067057600080fd5b506106796117f1565b6040518082815260200191505060405180910390f35b34801561069b57600080fd5b506106c8600480360360208110156106b257600080fd5b81019080803590602001909291905050506117f9565b604051808260ff1660ff16815260200191505060405180910390f35b3480156106f057600080fd5b506106f961181c565b6040518082815260200191505060405180910390f35b34801561071b57600080fd5b50610780600480360360a081101561073257600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff16906020019092919050505061183b565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107cf600480360360208110156107b957600080fd5b8101908080359060200190929190505050611857565b604051808260ff1660ff16815260200191505060405180910390f35b3480156107f757600080fd5b5061083a6004803603602081101561080e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061186d565b6040518082815260200191505060405180910390f35b34801561085c57600080fd5b506108656118b5565b005b34801561087357600080fd5b506108cb6004803603608081101561088a57600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff1690602001909291905050506119f0565b6040518082815260200191505060405180910390f35b3480156108ed57600080fd5b5061091a6004803603602081101561090457600080fd5b8101908080359060200190929190505050611a0b565b604051808260ff1660ff16815260200191505060405180910390f35b34801561094257600080fd5b5061098d6004803603606081101561095957600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190505050611a1f565b6040518082815260200191505060405180910390f35b3480156109af57600080fd5b506109b8611a3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a0657600080fd5b50610a0f611a64565b604051808215151515815260200191505060405180910390f35b348015610a3557600080fd5b50610aa7600480360360c0811015610a4c57600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190505050611abc565b6040518082815260200191505060405180910390f35b348015610ac957600080fd5b50610af660048036036020811015610ae057600080fd5b8101908080359060200190929190505050611d47565b604051808261ffff1661ffff16815260200191505060405180910390f35b348015610b2057600080fd5b50610b29611df0565b6040518082815260200191505060405180910390f35b348015610b4b57600080fd5b50610b54611df6565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b94578082015181840152602081019050610b79565b50505050905090810190601f168015610bc15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610bdb57600080fd5b50610c2860048036036040811015610bf257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e94565b005b348015610c3657600080fd5b50610d0360048036036040811015610c4d57600080fd5b8101908080359060200190640100000000811115610c6a57600080fd5b820183602082011115610c7c57600080fd5b80359060200191846020830284011164010000000083111715610c9e57600080fd5b909192939192939080359060200190640100000000811115610cbf57600080fd5b820183602082011115610cd157600080fd5b80359060200191846020830284011164010000000083111715610cf357600080fd5b9091929391929390505050611f1c565b005b348015610d1157600080fd5b50610d3e60048036036020811015610d2857600080fd5b8101908080359060200190929190505050611fff565b604051808260ff1660ff16815260200191505060405180910390f35b348015610d6657600080fd5b50610db360048036036040811015610d7d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612015565b604051808215151515815260200191505060405180910390f35b348015610dd957600080fd5b50610e0a60048036036020811015610df057600080fd5b81019080803561ffff1690602001909291905050506120ba565b604051808215151515815260200191505060405180910390f35b348015610e3057600080fd5b50610e7d60048036036040811015610e4757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061212f565b604051808215151515815260200191505060405180910390f35b348015610ea357600080fd5b50610ed060048036036020811015610eba57600080fd5b8101908080359060200190929190505050612146565b6040518082815260200191505060405180910390f35b348015610ef257600080fd5b50610f3060048036036040811015610f0957600080fd5b81019080803560ff169060200190929190803561ffff169060200190929190505050612179565b604051808260ff1660ff16815260200191505060405180910390f35b348015610f5857600080fd5b5061102560048036036040811015610f6f57600080fd5b8101908080359060200190640100000000811115610f8c57600080fd5b820183602082011115610f9e57600080fd5b80359060200191846020830284011164010000000083111715610fc057600080fd5b909192939192939080359060200190640100000000811115610fe157600080fd5b820183602082011115610ff357600080fd5b8035906020019184602083028401116401000000008311171561101557600080fd5b9091929391929390505050612245565b005b34801561103357600080fd5b506110966004803603604081101561104a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612328565b6040518082815260200191505060405180910390f35b3480156110b857600080fd5b506110c16123af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561110f57600080fd5b506111526004803603602081101561112657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123d5565b005b34801561116057600080fd5b5061118d6004803603602081101561117757600080fd5b810190808035906020019092919050505061245b565b604051808260ff1660ff16815260200191505060405180910390f35b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561123f5780601f106112145761010080835404028352916020019161123f565b820191906000526020600020905b81548152906001019060200180831161122257829003601f168201915b505050505081565b6000611254338484612478565b6001905092915050565b611266611a64565b6112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600254905090565b600061133384848461266f565b6113cc84336113c785600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288590919063ffffffff16565b612478565b600190509392505050565b60008090505b828290508110156115ad577fdb5665b0a3d4192e2580326487cbca8068d6897d382d150f9665263f17386594611414600754611fff565b61141d42611fff565b604051808360ff1681526020018260ff1681526020019250505060405180910390a161144842611fff565b60ff16611456600754611fff565b60ff16146115a057600061149184848481811061146f57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1661186d565b905060006114aa6104b08361290e90919063ffffffff16565b90506114de8585858181106114bb57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168261299d565b61150a600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612b3b565b7fb84a7337d97206cb6d967bf78ef8dd1ffd7f1528bb24f00c4c3705c9438566f585858581811061153757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150505b80806001019150506113dd565b50426007819055505050565b600560009054906101000a900460ff1681565b6000611667338461166285600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cf690919063ffffffff16565b612478565b6001905092915050565b611679611a64565b6116eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60006116f5611a3a565b90508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561173d573d6000803e3d6000fd5b505050565b60006018603c80848161175157fe5b048161175957fe5b048161176157fe5b069050919050565b611771611a64565b6117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6117ed8282612b3b565b5050565b600042905090565b60006007600462015180848161180b57fe5b04018161181457fe5b069050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600061184c86868686866000611abc565b905095945050505050565b600061186282612d7e565b604001519050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6118bd611a64565b61192f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611a0185858585600080611abc565b9050949350505050565b6000603c8281611a1757fe5b069050919050565b6000611a318484846000806000611abc565b90509392505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6000806107b290505b8761ffff168161ffff161015611b0857611ade816120ba565b15611af1576301e2850082019150611afb565b6301e13380820191505b8080600101915050611ac5565b611b10613061565b601f816000600c8110611b1f57fe5b602002019060ff16908160ff1681525050611b39896120ba565b15611b6357601d816001600c8110611b4d57fe5b602002019060ff16908160ff1681525050611b84565b601c816001600c8110611b7257fe5b602002019060ff16908160ff16815250505b601f816002600c8110611b9357fe5b602002019060ff16908160ff1681525050601e816003600c8110611bb357fe5b602002019060ff16908160ff1681525050601f816004600c8110611bd357fe5b602002019060ff16908160ff1681525050601e816005600c8110611bf357fe5b602002019060ff16908160ff1681525050601f816006600c8110611c1357fe5b602002019060ff16908160ff1681525050601f816007600c8110611c3357fe5b602002019060ff16908160ff1681525050601e816008600c8110611c5357fe5b602002019060ff16908160ff1681525050601f816009600c8110611c7357fe5b602002019060ff16908160ff1681525050601e81600a600c8110611c9357fe5b602002019060ff16908160ff1681525050601f81600b600c8110611cb357fe5b602002019060ff16908160ff1681525050600191505b8760ff168261ffff161015611d0957806001830361ffff16600c8110611ceb57fe5b602002015160ff166201518002830192508180600101925050611cc9565b6001870360ff166201518002830192508560ff16610e1002830192508460ff16603c02830192508360ff168301925082925050509695505050505050565b600080600090506000806301e133808581611d5e57fe5b046107b261ffff16019150611d786107b261ffff16612146565b611d858361ffff16612146565b039050806301e285000283019250806107b2830361ffff16036301e1338002830192505b84831115611de557611dbd600183036120ba565b15611dd0576301e2850083039250611dda565b6301e13380830392505b600182039150611da9565b819350505050919050565b60075481565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611e8c5780601f10611e6157610100808354040283529160200191611e8c565b820191906000526020600020905b815481529060010190602001808311611e6f57829003601f168201915b505050505081565b611e9c611a64565b611f0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611f18828261299d565b5050565b611f24611a64565b611f96576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008090505b84849050811015611ff857611feb858583818110611fb657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16848484818110611fdf57fe5b90506020020135611e94565b8080600101915050611f9c565b5050505050565b600061200a82612d7e565b602001519050919050565b60006120b033846120ab85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288590919063ffffffff16565b612478565b6001905092915050565b60008060048361ffff16816120cb57fe5b0661ffff16146120de576000905061212a565b600060648361ffff16816120ee57fe5b0661ffff1614612101576001905061212a565b60006101908361ffff168161211257fe5b0661ffff1614612125576000905061212a565b600190505b919050565b600061213c33848461266f565b6001905092915050565b6000600182039150610190828161215957fe5b046064838161216457fe5b046004848161216f57fe5b0403019050919050565b600060018360ff161480612190575060038360ff16145b8061219e575060058360ff16145b806121ac575060078360ff16145b806121ba575060088360ff16145b806121c85750600a8360ff16145b806121d65750600c8360ff16145b156121e457601f905061223f565b60048360ff1614806121f9575060068360ff16145b80612207575060098360ff16145b806122155750600b8360ff16145b1561222357601e905061223f565b61222c826120ba565b1561223a57601d905061223f565b601c90505b92915050565b61224d611a64565b6122bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008090505b84849050811015612321576123148585838181106122df57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1684848481811061230857fe5b90506020020135611769565b80806001019150506122c5565b5050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6123dd611a64565b61244f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61245881612f1b565b50565b6000603c80838161246857fe5b048161247057fe5b069050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806131646024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612584576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806131216022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806130d86023913960400191505060405180910390fd5b612746816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288590919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127d9816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cf690919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000828211156128fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b6000808211612985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b600082848161299057fe5b0490508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131436021913960400191505060405180910390fd5b612a388160025461288590919063ffffffff16565b600281905550612a8f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288590919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b612bf381600254612cf690919063ffffffff16565b600281905550612c4a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cf690919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080828401905083811015612d74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b612d86613084565b6000809050600080612d9785611d47565b846000019061ffff16908161ffff1681525050612db96107b261ffff16612146565b612dca856000015161ffff16612146565b039150816301e285000283019250816107b285600001510361ffff16036301e1338002830192506000600191505b600c8260ff1611612e4e57612e11828660000151612179565b60ff1662015180029050858482011115612e3c5781856020019060ff16908160ff1681525050612e4e565b80840193508180600101925050612df8565b600191505b612e6585602001518660000151612179565b60ff168260ff1611612eaa57858462015180011115612e955781856040019060ff16908160ff1681525050612eaa565b62015180840193508180600101925050612e53565b612eb386611742565b856060019060ff16908160ff1681525050612ecd8661245b565b856080019060ff16908160ff1681525050612ee786611a0b565b8560a0019060ff16908160ff1681525050612f01866117f9565b8560c0019060ff16908160ff168152505050505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612fa1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806130fb6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b604051806101800160405280600c90602082028038833980820191505090505090565b6040518060e00160405280600061ffff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152509056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a265627a7a72315820499d70f9b3bb2bc29cb0772b8086c8a2dd14a492904b95fc41bb57899cd850f064736f6c634300050d0032000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000800000000000000000000000006f9230d343884879cfe77576a81062d651a008c00000000000000000000000000000000000000000000000000000000000000085465737456524f3100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085465737456524f31000000000000000000000000000000000000000000000000

Deployed ByteCode Sourcemap

104:2812:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;833:18:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;833:18:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;833:18:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3238:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3238:148:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3238:148:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;747:122:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;747:122:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;747:122:5;;;;;;;;;;;;;;;;;;;:::i;:::-;;1358:91:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1358:91:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3859:251;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3859:251:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3859:251:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2170:660:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2170:660:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2170:660:5;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2170:660:5;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2170:660:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2170:660:5;;;;;;;;;;;;:::i;:::-;;885:21:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;885:21:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4636:276;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4636:276:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4636:276:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1939:179:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1939:179:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1939:179:5;;;;;;;;;;;;;;;;;:::i;:::-;;4213:123:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4213:123:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4213:123:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;877:109:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;877:109:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;877:109:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2838:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2838:73:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4593:136:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4593:136:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4593:136:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1767:115:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1767:115:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5156:248:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5156:248:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;5156:248:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4087:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4087:118:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4087:118:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1668:106:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1668:106:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1668:106:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1534:140:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1534:140:3;;;:::i;:::-;;4939:209:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4939:209:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;4939:209:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4472:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4472:113:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4472:113:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4737:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4737:194:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4737:194:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;708:79:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;708:79:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1079:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1079:92:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5412:1443:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5412:1443:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;5412:1443:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3118:831;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3118:831:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3118:831:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;227:32:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;227:32:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;;858:20:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;858:20:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;858:20:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1266:107:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1266:107:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1266:107:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1425:220;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1425:220:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1425:220:5;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1425:220:5;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1425:220:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1425:220:5;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1425:220:5;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1425:220:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1425:220:5;;;;;;;;;;;;:::i;:::-;;3957:122:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3957:122:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3957:122:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5443:286:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5443:286:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5443:286:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;672:297:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;672:297:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;672:297:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2451:140:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2451:140:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2451:140:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;977:149:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;977:149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;977:149:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1134:575;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1134:575:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1134:575:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1038:220:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1038:220:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1038:220:5;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1038:220:5;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1038:220:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1038:220:5;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1038:220:5;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1038:220:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1038:220:5;;;;;;;;;;;;:::i;:::-;;2113:163:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2113:163:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2113:163:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;194:26:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;194:26:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1851:109:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1851:109:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1851:109:3;;;;;;;;;;;;;;;;;;;:::i;:::-;;4344:120:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4344:120:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4344:120:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;833:18:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3238:148::-;3303:4;3320:36;3329:10;3341:7;3350:5;3320:8;:36::i;:::-;3374:4;3367:11;;3238:148;;;;:::o;747:122:5:-;920:9:3;:7;:9::i;:::-;912:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;842:19:5;828:11;;:33;;;;;;;;;;;;;;;;;;747:122;:::o;1358:91:1:-;1402:7;1429:12;;1422:19;;1358:91;:::o;3859:251::-;3956:4;3978:26;3988:4;3994:2;3998:5;3978:9;:26::i;:::-;4015:65;4024:4;4030:10;4042:37;4073:5;4042:8;:14;4051:4;4042:14;;;;;;;;;;;;;;;:26;4057:10;4042:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;4015:8;:65::i;:::-;4098:4;4091:11;;3859:251;;;;;:::o;2170:660:5:-;2242:9;2254:1;2242:13;;2237:552;2261:7;;:14;;2257:1;:18;2237:552;;;2302:64;2323:27;2332:17;;2323:8;:27::i;:::-;2352:13;2361:3;2352:8;:13::i;:::-;2302:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:13;2425:3;2416:8;:13::i;:::-;2385:44;;:27;2394:17;;2385:8;:27::i;:::-;:44;;;2381:397;;2483:22;2508:21;2518:7;;2526:1;2518:10;;;;;;;;;;;;;;;2508:9;:21::i;:::-;2483:46;;2548:15;2566:24;2585:4;2566:14;:18;;:24;;;;:::i;:::-;2548:42;;2637:26;2643:7;;2651:1;2643:10;;;;;;;;;;;;;;;2655:7;2637:5;:26::i;:::-;2682:27;2688:11;;;;;;;;;;;2701:7;2682:5;:27::i;:::-;2733:29;2742:7;;2750:1;2742:10;;;;;;;;;;;;;;;2754:7;2733:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;2381:397;;;2277:3;;;;;;;2237:552;;;;2819:3;2799:17;:23;;;;2170:660;;:::o;885:21:1:-;;;;;;;;;;;;;:::o;4636:276::-;4734:4;4756:126;4779:10;4804:7;4826:45;4860:10;4826:8;:20;4835:10;4826:20;;;;;;;;;;;;;;;:29;4847:7;4826:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;4756:8;:126::i;:::-;4900:4;4893:11;;4636:276;;;;:::o;1939:179:5:-;920:9:3;:7;:9::i;:::-;912:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2006:28:5;2053:15;:13;:15::i;:::-;2006:64;;2081:12;:21;;:29;2103:6;2081:29;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2081:29:5;977:1:3;1939:179:5;:::o;4213:123:0:-;4270:5;4325:2;4319;4314;4302:9;:14;;;;;;:19;;;;;;4301:26;;;;;;4288:40;;4213:123;;;:::o;877:109:5:-;920:9:3;:7;:9::i;:::-;912:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;954:24:5;960:3;965:12;954:5;:24::i;:::-;877:109;;:::o;2838:73::-;2876:7;2901:3;2893:12;;2838:73;:::o;4593:136:0:-;4653:5;4719:1;4714;376:5;4685:9;:26;;;;;;:30;4684:36;;;;;;4671:50;;4593:136;;;:::o;1767:115:5:-;1826:7;1861:4;1853:21;;;1846:28;;1767:115;:::o;5156:248:0:-;5313:17;5350:46;5362:4;5368:5;5375:3;5380:4;5386:6;5394:1;5350:11;:46::i;:::-;5343:53;;5156:248;;;;;;;:::o;4087:118::-;4143:5;4168:25;4183:9;4168:14;:25::i;:::-;:29;;;4161:36;;4087:118;;;:::o;1668:106:1:-;1723:7;1750:9;:16;1760:5;1750:16;;;;;;;;;;;;;;;;1743:23;;1668:106;;;:::o;1534:140:3:-;920:9;:7;:9::i;:::-;912:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1633:1;1596:40;;1617:6;;;;;;;;;;;1596:40;;;;;;;;;;;;1664:1;1647:6;;:19;;;;;;;;;;;;;;;;;;1534:140::o;4939:209:0:-;5057:17;5099:41;5111:4;5117:5;5124:3;5129:4;5135:1;5138;5099:11;:41::i;:::-;5092:48;;4939:209;;;;;;:::o;4472:113::-;4531:5;4574:2;4562:9;:14;;;;;;4549:28;;4472:113;;;:::o;4737:194::-;4843:17;4885:38;4897:4;4903:5;4910:3;4915:1;4918;4921;4885:11;:38::i;:::-;4878:45;;4737:194;;;;;:::o;708:79:3:-;746:7;773:6;;;;;;;;;;;766:13;;708:79;:::o;1079:92::-;1119:4;1157:6;;;;;;;;;;;1143:20;;:10;:20;;;1136:27;;1079:92;:::o;5412:1443:0:-;5592:17;5622:8;659:4;5665:15;;5660:219;5686:4;5682:8;;:1;:8;;;5660:219;;;5716:13;5727:1;5716:10;:13::i;:::-;5712:156;;;494:8;5750:33;;;;5712:156;;;431:8;5824:28;;;;5712:156;5692:3;;;;;;;5660:219;;;5909:31;;:::i;:::-;5971:2;5951:14;5966:1;5951:17;;;;;;;;;;:22;;;;;;;;;;;5988:16;5999:4;5988:10;:16::i;:::-;5984:126;;;6041:2;6021:14;6036:1;6021:17;;;;;;;;;;:22;;;;;;;;;;;5984:126;;;6096:2;6076:14;6091:1;6076:17;;;;;;;;;;:22;;;;;;;;;;;5984:126;6140:2;6120:14;6135:1;6120:17;;;;;;;;;;:22;;;;;;;;;;;6173:2;6153:14;6168:1;6153:17;;;;;;;;;;:22;;;;;;;;;;;6206:2;6186:14;6201:1;6186:17;;;;;;;;;;:22;;;;;;;;;;;6239:2;6219:14;6234:1;6219:17;;;;;;;;;;:22;;;;;;;;;;;6272:2;6252:14;6267:1;6252:17;;;;;;;;;;:22;;;;;;;;;;;6305:2;6285:14;6300:1;6285:17;;;;;;;;;;:22;;;;;;;;;;;6338:2;6318:14;6333:1;6318:17;;;;;;;;;;:22;;;;;;;;;;;6371:2;6351:14;6366:1;6351:17;;;;;;;;;;:22;;;;;;;;;;;6405:2;6384:14;6399:2;6384:18;;;;;;;;;;:23;;;;;;;;;;;6439:2;6418:14;6433:2;6418:18;;;;;;;;;;:23;;;;;;;;;;;6463:1;6459:5;;6454:106;6470:5;6466:9;;:1;:9;;;6454:106;;;6527:14;6546:1;6542;:5;6527:21;;;;;;;;;;;;;6510:38;;376:5;6510:38;6497:51;;;;6477:3;;;;;;;6454:106;;;6625:1;6619:3;:7;6601:26;;376:5;6601:26;6588:39;;;;6689:4;6670:24;;554:4;6670:24;6657:37;;;;6760:6;6739:28;;610:2;6739:28;6726:41;;;;6812:6;6799:19;;;;;;6838:9;6831:16;;;;5412:1443;;;;;;;;:::o;3118:831::-;3175:6;3194:27;3224:1;3194:31;;3236:11;3258:20;431:8;3336:9;:27;;;;;;659:4;3322:41;;;3308:56;;3414:28;659:4;3414:28;;:15;:28::i;:::-;3390:21;3406:4;3390:21;;:15;:21::i;:::-;:52;3375:67;;3501:12;494:8;3478:35;3455:58;;;;3613:12;659:4;3592;:18;:33;;;431:8;3560:66;3524:102;;;;3639:281;3668:9;3646:19;:31;3639:281;;;3698:28;3723:1;3716:4;:8;3698:10;:28::i;:::-;3694:191;;;494:8;3747:43;;;;3694:191;;;431:8;3831:38;;;;3694:191;3907:1;3899:9;;;;3639:281;;;3937:4;3930:11;;;;;3118:831;;;:::o;227:32:5:-;;;;:::o;858:20:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1266:107:5:-;920:9:3;:7;:9::i;:::-;912:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1342:23:5;1348:8;1358:6;1342:5;:23::i;:::-;1266:107;;:::o;1425:220::-;920:9:3;:7;:9::i;:::-;912:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1535:9:5;1547:1;1535:13;;1530:108;1554:11;;:18;;1550:1;:22;1530:108;;;1594:32;1599:11;;1611:1;1599:14;;;;;;;;;;;;;;;1615:7;;1623:1;1615:10;;;;;;;;;;;;;1594:4;:32::i;:::-;1574:3;;;;;;;1530:108;;;;1425:220;;;;:::o;3957:122:0:-;4015:5;4040:25;4055:9;4040:14;:25::i;:::-;:31;;;4033:38;;3957:122;;;:::o;5443:286:1:-;5546:4;5568:131;5591:10;5616:7;5638:50;5672:15;5638:8;:20;5647:10;5638:20;;;;;;;;;;;;;;;:29;5659:7;5638:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;5568:8;:131::i;:::-;5717:4;5710:11;;5443:286;;;;:::o;672:297:0:-;726:4;759:1;754;747:4;:8;;;;;;;;:13;;;743:58;;784:5;777:12;;;;743:58;829:1;822:3;815:4;:10;;;;;;;;:15;;;811:59;;854:4;847:11;;;;811:59;898:1;891:3;884:4;:10;;;;;;;;:15;;;880:60;;923:5;916:12;;;;880:60;957:4;950:11;;672:297;;;;:::o;2451:140:1:-;2512:4;2529:32;2539:10;2551:2;2555:5;2529:9;:32::i;:::-;2579:4;2572:11;;2451:140;;;;:::o;977:149:0:-;1037:7;1065:1;1057:9;;;;1115:3;1108:4;:10;;;;;;1102:3;1095:4;:10;;;;;;1091:1;1084:4;:8;;;;;;:21;:34;1077:41;;977:149;;;:::o;1134:575::-;1232:5;1282:1;1273:5;:10;;;:37;;;;1309:1;1300:5;:10;;;1273:37;:64;;;;1336:1;1327:5;:10;;;1273:64;:91;;;;1363:1;1354:5;:10;;;1273:91;:118;;;;1390:1;1381:5;:10;;;1273:118;:146;;;;1417:2;1408:5;:11;;;1273:146;:174;;;;1445:2;1436:5;:11;;;1273:174;1255:447;;;1481:2;1474:9;;;;1255:447;1514:1;1505:5;:10;;;:24;;;;1528:1;1519:5;:10;;;1505:24;:38;;;;1542:1;1533:5;:10;;;1505:38;:53;;;;1556:2;1547:5;:11;;;1505:53;1501:201;;;1582:2;1575:9;;;;1501:201;1606:16;1617:4;1606:10;:16::i;:::-;1602:100;;;1646:2;1639:9;;;;1602:100;1688:2;1681:9;;1134:575;;;;;:::o;1038:220:5:-;920:9:3;:7;:9::i;:::-;912:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1148:9:5;1160:1;1148:13;;1143:108;1167:11;;:18;;1163:1;:22;1143:108;;;1207:32;1212:11;;1224:1;1212:14;;;;;;;;;;;;;;;1228:7;;1236:1;1228:10;;;;;;;;;;;;;1207:4;:32::i;:::-;1187:3;;;;;;;1143:108;;;;1038:220;;;;:::o;2113:163:1:-;2212:7;2244:8;:15;2253:5;2244:15;;;;;;;;;;;;;;;:24;2260:7;2244:24;;;;;;;;;;;;;;;;2237:31;;2113:163;;;;:::o;194:26:5:-;;;;;;;;;;;;;:::o;1851:109:3:-;920:9;:7;:9::i;:::-;912:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1924:28;1943:8;1924:18;:28::i;:::-;1851:109;:::o;4344:120:0:-;4403:5;4453:2;4447;4435:9;:14;;;;;;4434:21;;;;;;4421:35;;4344:120;;;:::o;7727:332:1:-;7837:1;7820:19;;:5;:19;;;;7812:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7918:1;7899:21;;:7;:21;;;;7891:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7999:5;7972:8;:15;7981:5;7972:15;;;;;;;;;;;;;;;:24;7988:7;7972:24;;;;;;;;;;;;;;;:32;;;;8036:7;8020:31;;8029:5;8020:31;;;8045:5;8020:31;;;;;;;;;;;;;;;;;;7727:332;;;:::o;5957:301::-;6059:1;6045:16;;:2;:16;;;;6037:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6132:26;6152:5;6132:9;:15;6142:4;6132:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;6114:9;:15;6124:4;6114:15;;;;;;;;;;;;;;;:44;;;;6185:24;6203:5;6185:9;:13;6195:2;6185:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;6169:9;:13;6179:2;6169:13;;;;;;;;;;;;;;;:40;;;;6240:2;6225:25;;6234:4;6225:25;;;6244:5;6225:25;;;;;;;;;;;;;;;;;;5957:301;;;:::o;1319:184:4:-;1377:7;1410:1;1405;:6;;1397:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1457:9;1473:1;1469;:5;1457:17;;1494:1;1487:8;;;1319:184;;;;:::o;848:333::-;906:7;1005:1;1001;:5;993:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1048:9;1064:1;1060;:5;;;;;;1048:17;;1172:1;1165:8;;;848:333;;;;:::o;7148:306:1:-;7242:1;7223:21;;:7;:21;;;;7215:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7310:23;7327:5;7310:12;;:16;;:23;;;;:::i;:::-;7295:12;:38;;;;7365:29;7388:5;7365:9;:18;7375:7;7365:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;7344:9;:18;7354:7;7344:18;;;;;;;;;;;;;;;:50;;;;7436:1;7410:36;;7419:7;7410:36;;;7440:5;7410:36;;;;;;;;;;;;;;;;;;7148:306;;:::o;6610:304::-;6704:1;6685:21;;:7;:21;;;;6677:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6770:23;6787:5;6770:12;;:16;;:23;;;;:::i;:::-;6755:12;:38;;;;6825:29;6848:5;6825:9;:18;6835:7;6825:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;6804:9;:18;6814:7;6804:18;;;;;;;;;;;;;;;:50;;;;6891:7;6870:36;;6887:1;6870:36;;;6900:5;6870:36;;;;;;;;;;;;;;;;;;6610:304;;:::o;1591:181:4:-;1649:7;1669:9;1685:1;1681;:5;1669:17;;1710:1;1705;:6;;1697:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:1;1756:8;;;1591:181;;;;:::o;1717:1393:0:-;1810:19;;:::i;:::-;1847:27;1877:1;1847:31;;1889:11;1911:7;1958:18;1966:9;1958:7;:18::i;:::-;1948:2;:7;;:28;;;;;;;;;;;2020;659:4;2020:28;;:15;:28::i;:::-;1993:24;2009:2;:7;;;1993:24;;:15;:24::i;:::-;:55;1987:61;;2107:3;494:8;2084:26;2061:49;;;;2187:3;659:4;2163:2;:7;;;:21;:27;;;431:8;2144:47;2121:70;;;;2222:22;2264:1;2260:5;;2255:304;2272:2;2267:1;:7;;;2255:304;;2330:26;2345:1;2348:2;:7;;;2330:14;:26::i;:::-;2313:43;;376:5;2313:43;2296:60;;2414:9;2392:19;2375:14;:36;:48;2371:125;;;2455:1;2444:2;:8;;:12;;;;;;;;;;;2475:5;;2371:125;2533:14;2510:37;;;;2276:3;;;;;;;2255:304;;;2596:1;2592:5;;2587:258;2604:33;2619:2;:8;;;2629:2;:7;;;2604:14;:33::i;:::-;2599:38;;:1;:38;;;2587:258;;2702:9;2680:19;376:5;2663:36;:48;2659:123;;;2741:1;2732:2;:6;;:10;;;;;;;;;;;2761:5;;2659:123;376:5;2796:37;;;;2639:3;;;;;;;2587:258;;;2884:18;2892:9;2884:7;:18::i;:::-;2874:2;:7;;:28;;;;;;;;;;;2946:20;2956:9;2946;:20::i;:::-;2934:2;:9;;:32;;;;;;;;;;;3010:20;3020:9;3010;:20::i;:::-;2998:2;:9;;:32;;;;;;;;;;;3081:21;3092:9;3081:10;:21::i;:::-;3068:2;:10;;:34;;;;;;;;;;;1717:1393;;;;;;;:::o;2110:266:3:-;2218:1;2198:22;;:8;:22;;;;2176:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2331:8;2302:38;;2323:6;;;;;;;;;;;2302:38;;;;;;;;;;;;2360:8;2351:6;;:17;;;;;;;;;;;;;;;;;;2110:266;:::o;104:2812:5:-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;104:2812:5;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://499d70f9b3bb2bc29cb0772b8086c8a2dd14a492904b95fc41bb57899cd850f0

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.