Contract 0x13f54d67fa23ab3caaef681553cd996f7e9d6237 2

Contract Overview

Balance:
0 BNB
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x5bc3cf43838eb89c7bc3ce997474b92cb2e1631ac1632f12a8e10bcacadbd96bAdd Asset Suppor...99213262021-06-21 7:41:58161 days 21 hrs ago0x3a93da588954acf4d0d8f1f1a4439fa79d84cf29 IN  0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB0.00631347
0x61cf95de22a7196164b0f3f57bbc47cb409eed32e145509b550561144ec50b860x6080604099212212021-06-21 7:36:43161 days 21 hrs ago0x3a93da588954acf4d0d8f1f1a4439fa79d84cf29 IN  Contract Creation0 BNB0.01676375
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xe1b600e1ee53fadad122bf3191c4e33192dafe9d4c6ffeeee60a856212ca6fba117321932021-08-23 15:02:4498 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0xf8e833e4db3f7c9f2bb4b72331f33291529fb7b7768597c7758d888b60dbcb39117321902021-08-23 15:02:3598 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0x296cdb7b170bf3b2e09e65f852f0e8db2c81c05f0683d64e4c563aa18141ec9c117321872021-08-23 15:02:2698 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0xe51eb09ab927f226f10c60ea7bfb5407b39c1178fccea29e4ef55dcec5dc1968117321832021-08-23 15:02:1498 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0xfe05262d956539d4387f0c525715651ca376c5daa93670dfaf2b23d0b15bf19c117321802021-08-23 15:02:0598 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0xb2b1ac196f16df655939b3846538812e4cb665644b2883a4bf6c18334d684c96117321772021-08-23 15:01:5698 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0x61f34a73798b128fa77f0a02856580617f04ab1a07f3fddaccb26b4bf0318b20117321732021-08-23 15:01:4498 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0x5977353dfafb1d8cfae888f2c366edb1453c6a88dfb5c346b4c6942d75317510117321702021-08-23 15:01:3598 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0x1e757ce099c6e43ef895f4f1a52070afdbaaf19f9f36288d3f02f174bde2044c117321672021-08-23 15:01:2698 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0xcde7ce23fc7d65bb93239fe2a13063299ba0ed72118abf9618f8f44905fd5b1e117321632021-08-23 15:01:1498 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0x89dfd3dcbba81030a03dfb99ae5e53dfd5a3c7664c5d14a9d2055616338f9493117321602021-08-23 15:01:0598 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0x3313733f0e230999294c3cc196bcd9324dd1f1b3c766cc6f2a3afc00f40cd5d1117321572021-08-23 15:00:5698 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0x9bbb782d8e341d48105a876c951ace1a83ea710a285697bc3fcc6427b4e44a31117321532021-08-23 15:00:4498 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0xff8c9ba501c8f9533a1fc7a1e14f713618ca0fa66bb31ac1870e993cde2fac84117321502021-08-23 15:00:3598 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0xfa90b198ab7336f0f8150ee19c6aaa820519f65fd55b74144e2b3cb23c5ad66e117321472021-08-23 15:00:2698 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0x60f20561a3dd9ba55cba91727e8fd69f638008e1cdfe867e5906903fec36ab26117321432021-08-23 15:00:1498 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0x3e85299c144b41b513fffabf2f8fc695548d572aff69ec73b523b0f7c086544a117321402021-08-23 15:00:0598 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0x60d2416dc6a4f6d237922234497843d63d0095d5d95e083aaa126c83963efc25117321372021-08-23 14:59:5698 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0x58d721e7b5cf95e7f71fc0912d2fdaf858518d471b481c797f133a9e9bda1fba117321272021-08-23 14:59:2698 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0x497f9df0d4f81dcda15cd1c78a2e1fa09b87657f394854699a03ec4a6d06e60b117321232021-08-23 14:59:1498 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0xb42f678d738966e8486f733b664e9d4b0aff7a42ce6009c331f5f58cf4ec1ba1117321202021-08-23 14:59:0598 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0xe9d0428fbca2430b0423fa81d439cce487b92b9cfefd8845e6821a43523abee0117321162021-08-23 14:58:5398 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0x2a456dd74f3aa0564da854c2b36ab63475992409e90fcf5765b6c1d02fd23526117321132021-08-23 14:58:4498 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0x46ebbe594caad52dd01d905bf34c635bdf96e42fd47398801f2ca7c22c49d00e117321102021-08-23 14:58:3598 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
0xed9866ae851c55e50829c36d2039dc7c93aff8c4eed6c6139e9d64d1fbbc9324117321072021-08-23 14:58:2698 days 14 hrs ago 0xa2d1dcf89c56e1126ad94920027411afb8b28a3d 0x13f54d67fa23ab3caaef681553cd996f7e9d62370 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OraiOraclePriceDataV2

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at BscScan.com on 2021-06-21
*/

pragma solidity 0.6.12;

pragma experimental ABIEncoderV2;


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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

    /**
    * @dev Initializes the contract setting the deployer as the initial owner.
    */
    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    /**
    * @dev Leaves the contract without owner. It will not be possible to call
    * onlyOwner functions anymore. Can only be called by the current owner.
    *
    * NOTE: Renouncing ownership will leave the contract without an owner,
    * thereby removing any functionality that is only available to the owner.
    */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
    * @dev Transfers ownership of the contract to a new account (`newOwner`).
    * Can only be called by the current owner.
    */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IOraiBase {
    struct ResponsePriceData {
        uint128 rate;
        uint64 lastUpdatedBase;
        uint64 lastUpdatedQuote;
    }

    struct PriceData {
        uint128 rate; // USD-rate, multiplied by 1e18.
        uint64 resolveTime; // UNIX epoch when data is last resolved.
    }

    function getPrice(string memory _base, string memory _quote)
    external
    view
    returns (ResponsePriceData memory);

    function getPrice(string memory _base)
    external
    view
    returns (PriceData memory);

    function getPriceBulk(string[] memory _bases)
    external
    view
    returns (PriceData[] memory);

    function getPriceBulk(string[] memory _bases, string[] memory _quotes)
    external
    view
    returns (ResponsePriceData[] memory);


}

abstract contract OraiBase is IOraiBase {

    function getPrice(string memory _base, string memory _quote)
    public
    virtual
    override
    view
    returns (ResponsePriceData memory);

    function getPrice(string memory _base)
    public
    virtual
    override
    view
    returns (PriceData memory);

    function getPriceBulk(string[] memory _bases)
    public
    override
    view
    returns (PriceData[] memory)
    {
        uint256 len = _bases.length;
        PriceData[] memory results = new PriceData[](len);
        for (uint256 idx = 0; idx < len; idx++) {
            results[idx] = getPrice(_bases[idx]);
        }
        return results;
    }

    function getPriceBulk(string[] memory _bases, string[] memory _quotes)
    public
    override
    view
    returns (ResponsePriceData[] memory)
    {
        require(_bases.length == _quotes.length, "BAD_INPUT_LENGTH");
        uint256 len = _bases.length;
        ResponsePriceData[] memory results = new ResponsePriceData[](len);
        for (uint256 idx = 0; idx < len; idx++) {
            results[idx] = getPrice(_bases[idx], _quotes[idx]);
        }
        return results;
    }
}

contract SignData {
    string public NAME;
    mapping(address => uint) public nonces;

    bytes32 public constant EIP712DOMAIN_TYPEHASH = 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f;
    // keccak256('Data(address to,uint16[] memory _symbolIds, uint128[] memory _rates, uint64[] memory _resolveTimes, uint256 deadline, uint256 nonce)')
    bytes32 public constant UPDATE_PRICE_TYPEHASH = 0x9aa2a919c86518d56eb4794f5980c5922e480627ce2e570c3fa456583929d761;

    bytes32 public DOMAIN_SEPARATOR;

    function verify(bytes32 hash, uint256 nonce, uint8 v, bytes32 r, bytes32 s) public returns (address sender){
        bytes32 digest = keccak256(
            abi.encodePacked(
                '\x19\x01',
                DOMAIN_SEPARATOR,
                hash
            )
        );
        sender = ecrecover(digest, v, r, s);
        require(nonce == nonces[sender], "Invalid nonce");
        nonces[sender]++;

    }

    constructor() public {
        NAME = "OraiOraclePriceData";
        uint chainId;
        assembly {
            chainId := chainid()
        }
        DOMAIN_SEPARATOR = keccak256(
            abi.encode(
                EIP712DOMAIN_TYPEHASH,
                keccak256(bytes(NAME)),
                keccak256(bytes('1')),
                chainId,
                this
            )
        );
    }
}

contract OraiOraclePriceDataV2 is OraiBase, SignData, Ownable {
    event PriceDataUpdate(uint256 blockNumber);


    string[] public  symbols;
    mapping(uint16 => PriceData) public rPrices; // Mapping from symbol to ref data.
    mapping(string => uint16) public supportedAsset;
    mapping(address => bool) public dataSubmitter;

    constructor() public {
        dataSubmitter[msg.sender] = true;
    }
    modifier ensure(uint256 deadline){
        require(deadline > block.timestamp, "DEADLINE_OUT_OF_DATE");
        _;
    }

    function addAssetSupport(string[] calldata _symbols) external onlyOwner {
        for (uint256 i = 0; i < _symbols.length; i++) {
            require(supportedAsset[_symbols[i]] == 0, "supported asset");
            supportedAsset[_symbols[i]] = uint16(symbols.length);
            symbols.push(_symbols[i]);
        }
    }

    function setDataSubmitter(address _submitter, bool approval) public onlyOwner {
        dataSubmitter[_submitter] = approval;
    }

    function updatePrice(
        uint16[] calldata _symbolIds,
        uint128[] calldata _rates,
        uint64[] calldata _resolveTimes
    ) external {
        require(dataSubmitter[msg.sender], "NOT_DATA_SUBMITTER");
        _updatePrice(_symbolIds, _rates, _resolveTimes);
    }

    function updatePricePermit(uint16[] calldata _symbolIds, uint128[] calldata _rates, uint64[] calldata _resolveTimes, uint256 deadline, uint256 nonce, uint8 v, bytes32 r, bytes32 s) external ensure(deadline) {
        address keep3r = verify(keccak256(abi.encode(UPDATE_PRICE_TYPEHASH, this, _symbolIds, _rates, _resolveTimes, deadline, nonce)), nonce, v, r, s);
        require(dataSubmitter[keep3r], "NOT_DATA_SUBMITTER");
        _updatePrice(_symbolIds, _rates, _resolveTimes);
    }

    function _updatePrice(
        uint16[] memory _symbolIds,
        uint128[] memory _rates,
        uint64[] memory _resolveTimes
    ) internal {
        uint256 len = _symbolIds.length;
        require(_rates.length == len, "RATES_LENGTH_NOT_EQUAL_SYMBOLS_LENGTH");
        require(_resolveTimes.length == len, "RESOLVE_TIMES_LENGTH_NOT_EQUAL_SYMBOLS_LENGTH");
        emit PriceDataUpdate(block.number);
        for (uint256 idx = 0; idx < len; idx++) {
            rPrices[_symbolIds[idx]] = PriceData({rate : _rates[idx], resolveTime : _resolveTimes[idx]});
        }
    }

    function getPrice(string memory _base, string memory _quote)
    public override view returns (ResponsePriceData memory)
    {
        PriceData memory basePriceData = getPrice(_base);
        PriceData memory quotePriceData = getPrice(_quote);
        return ResponsePriceData({
            rate : uint128((uint256(basePriceData.rate) * 1e18) / quotePriceData.rate),
            lastUpdatedBase : basePriceData.resolveTime,
            lastUpdatedQuote : quotePriceData.resolveTime
        });
    }

    function getPrice(string memory _symbol) public override view returns (PriceData memory)
    {
        if (keccak256(bytes(_symbol)) == keccak256(bytes("USD"))) {
            return PriceData(1e18, uint64(now));
        }
        uint16 idx = supportedAsset[_symbol];
        PriceData storage rData = rPrices[idx];
        require(rData.resolveTime > 0, "DATA_NOT_AVAILABLE");
        return rData;
    }

}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"PriceDataUpdate","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EIP712DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPDATE_PRICE_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string[]","name":"_symbols","type":"string[]"}],"name":"addAssetSupport","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"dataSubmitter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_base","type":"string"},{"internalType":"string","name":"_quote","type":"string"}],"name":"getPrice","outputs":[{"components":[{"internalType":"uint128","name":"rate","type":"uint128"},{"internalType":"uint64","name":"lastUpdatedBase","type":"uint64"},{"internalType":"uint64","name":"lastUpdatedQuote","type":"uint64"}],"internalType":"struct IOraiBase.ResponsePriceData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_symbol","type":"string"}],"name":"getPrice","outputs":[{"components":[{"internalType":"uint128","name":"rate","type":"uint128"},{"internalType":"uint64","name":"resolveTime","type":"uint64"}],"internalType":"struct IOraiBase.PriceData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string[]","name":"_bases","type":"string[]"},{"internalType":"string[]","name":"_quotes","type":"string[]"}],"name":"getPriceBulk","outputs":[{"components":[{"internalType":"uint128","name":"rate","type":"uint128"},{"internalType":"uint64","name":"lastUpdatedBase","type":"uint64"},{"internalType":"uint64","name":"lastUpdatedQuote","type":"uint64"}],"internalType":"struct IOraiBase.ResponsePriceData[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string[]","name":"_bases","type":"string[]"}],"name":"getPriceBulk","outputs":[{"components":[{"internalType":"uint128","name":"rate","type":"uint128"},{"internalType":"uint64","name":"resolveTime","type":"uint64"}],"internalType":"struct IOraiBase.PriceData[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"rPrices","outputs":[{"internalType":"uint128","name":"rate","type":"uint128"},{"internalType":"uint64","name":"resolveTime","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_submitter","type":"address"},{"internalType":"bool","name":"approval","type":"bool"}],"name":"setDataSubmitter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"supportedAsset","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"symbols","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16[]","name":"_symbolIds","type":"uint16[]"},{"internalType":"uint128[]","name":"_rates","type":"uint128[]"},{"internalType":"uint64[]","name":"_resolveTimes","type":"uint64[]"}],"name":"updatePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16[]","name":"_symbolIds","type":"uint16[]"},{"internalType":"uint128[]","name":"_rates","type":"uint128[]"},{"internalType":"uint64[]","name":"_resolveTimes","type":"uint64[]"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"updatePricePermit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"verify","outputs":[{"internalType":"address","name":"sender","type":"address"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040805180820190915260138082527f4f7261694f7261636c6550726963654461746100000000000000000000000000602090920191825262000058916000916200017b565b5060405146907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f906200008e9060009062000217565b60408051918290038220828201825260018352603160f81b6020938401529051620000e193927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69186913091016200028d565b60408051601f1981840301815291905280516020909101206002555060006200010962000177565b600380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350336000908152600760205260409020805460ff19166001179055620002b9565b3390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001be57805160ff1916838001178555620001ee565b82800160010185558215620001ee579182015b82811115620001ee578251825591602001919060010190620001d1565b50620001fc92915062000200565b5090565b5b80821115620001fc576000815560010162000201565b6000808354600180821660008114620002395760018114620002515762000282565b60ff198316865260028304607f168601935062000282565b600283048786526020808720875b838110156200027a5781548a8201529085019082016200025f565b505050860193505b509195945050505050565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b611b9c80620002c96000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806372d13597116100b8578063a3f4df7e1161007c578063a3f4df7e14610293578063c49f91d3146102a8578063ccce413b146102b0578063d2112d0a146102c3578063e9afbce7146102e4578063f2fde38b1461030457610137565b806372d135971461022557806375d6d242146102385780637ecebe00146102585780638da5cb5b1461026b57806393e3ffc51461027357610137565b80633d0f34da116100ff5780633d0f34da146101c25780633fe85c9f146101e25780634b0862bf146101ea578063524f3889146101fd578063715018a61461021d57610137565b806305fc4e981461013c5780630e2add97146101655780631a44bfa81461017a5780633644e5151461018d57806338b0d441146101a2575b600080fd5b61014f61014a3660046112ae565b610317565b60405161015c9190611709565b60405180910390f35b610178610173366004611235565b6103ff565b005b61017861018836600461130e565b610540565b610195610615565b60405161015c9190611762565b6101b56101b0366004611471565b61061b565b60405161015c91906116a8565b6101d56101d03660046114f0565b610703565b60405161015c9190611a7a565b6101956107a6565b6101786101f83660046113a3565b6107ca565b61021061020b3660046114be565b61095e565b60405161015c9190611a6c565b610178610a74565b6101786102333660046111fa565b610af3565b61024b610246366004611274565b610b53565b60405161015c91906116bc565b6101956102663660046111d8565b610bfa565b6101b5610c0c565b6102866102813660046111d8565b610c1b565b60405161015c9190611757565b61029b610c30565b60405161015c919061182c565b610195610cbe565b61029b6102be366004611562565b610ce2565b6102d66102d1366004611546565b610d55565b60405161015c929190611a88565b6102f76102f23660046114be565b610d82565b60405161015c9190611aaa565b6101786103123660046111d8565b610da3565b606081518351146103435760405162461bcd60e51b815260040161033a9061185f565b60405180910390fd5b82516060816001600160401b038111801561035d57600080fd5b5060405190808252806020026020018201604052801561039757816020015b610384610fc0565b81526020019060019003908161037c5790505b50905060005b828110156103f4576103d58682815181106103b457fe5b60200260200101518683815181106103c857fe5b6020026020010151610703565b8282815181106103e157fe5b602090810291909101015260010161039d565b509150505b92915050565b610407610e5a565b6003546001600160a01b039081169116146104345760405162461bcd60e51b815260040161033a90611971565b60005b8181101561053b57600683838381811061044d57fe5b905060200281019061045f9190611ab9565b60405161046d929190611661565b9081526040519081900360200190205461ffff161561049e5760405162461bcd60e51b815260040161033a906119d2565b60045460068484848181106104af57fe5b90506020028101906104c19190611ab9565b6040516104cf929190611661565b908152604051908190036020019020805461ffff9290921661ffff19909216919091179055600483838381811061050257fe5b90506020028101906105149190611ab9565b82546001810184556000938452602090932061053293019190610fe0565b50600101610437565b505050565b3360009081526007602052604090205460ff1661056f5760405162461bcd60e51b815260040161033a906119fb565b61060d86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a0282810182019093528982529093508992508891829185019084908082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250610e5e92505050565b505050505050565b60025481565b6000806002548760405160200161063392919061168d565b6040516020818303038152906040528051906020012090506001818686866040516000815260200160405260405161066e949392919061180e565b6020604051602081039080840390855afa158015610690573d6000803e3d6000fd5b505060408051601f1901516001600160a01b038116600090815260016020529190912054909350871490506106d75760405162461bcd60e51b815260040161033a90611889565b506001600160a01b03811660009081526001602081905260409091208054909101905595945050505050565b61070b610fc0565b61071361105e565b61071c8461095e565b905061072661105e565b61072f8461095e565b9050604051806060016040528082600001516001600160801b031684600001516001600160801b0316670de0b6b3a7640000028161076957fe5b046001600160801b0316815260200183602001516001600160401b0316815260200182602001516001600160401b03168152509250505092915050565b7f9aa2a919c86518d56eb4794f5980c5922e480627ce2e570c3fa456583929d76181565b844281116107ea5760405162461bcd60e51b815260040161033a906118f6565b60006108547f9aa2a919c86518d56eb4794f5980c5922e480627ce2e570c3fa456583929d76160001b308f8f8f8f8f8f8f8f6040516020016108359a9998979695949392919061176b565b604051602081830303815290604052805190602001208787878761061b565b6001600160a01b03811660009081526007602052604090205490915060ff1661088f5760405162461bcd60e51b815260040161033a906119fb565b61094f8d8d80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508c8c80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508b8b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610e5e92505050565b50505050505050505050505050565b61096661105e565b6040805180820190915260038152621554d160ea1b6020918201528251908301207fc4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e14156109d8575060408051808201909152670de0b6b3a764000081526001600160401b0342166020820152610a6f565b60006006836040516109ea9190611671565b90815260408051602092819003830190205461ffff16600081815260059093529120805491925090600160801b90046001600160401b0316610a3e5760405162461bcd60e51b815260040161033a906119a6565b6040805180820190915290546001600160801b0381168252600160801b90046001600160401b031660208201529150505b919050565b610a7c610e5a565b6003546001600160a01b03908116911614610aa95760405162461bcd60e51b815260040161033a90611971565b6003546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600380546001600160a01b0319169055565b610afb610e5a565b6003546001600160a01b03908116911614610b285760405162461bcd60e51b815260040161033a90611971565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b805160609081816001600160401b0381118015610b6f57600080fd5b50604051908082528060200260200182016040528015610ba957816020015b610b9661105e565b815260200190600190039081610b8e5790505b50905060005b82811015610bf257610bd3858281518110610bc657fe5b602002602001015161095e565b828281518110610bdf57fe5b6020908102919091010152600101610baf565b509392505050565b60016020526000908152604090205481565b6003546001600160a01b031690565b60076020526000908152604090205460ff1681565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610cb65780601f10610c8b57610100808354040283529160200191610cb6565b820191906000526020600020905b815481529060010190602001808311610c9957829003601f168201915b505050505081565b7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b60048181548110610cef57fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015610cb65780601f10610c8b57610100808354040283529160200191610cb6565b6005602052600090815260409020546001600160801b03811690600160801b90046001600160401b031682565b805160208183018101805160068252928201919093012091525461ffff1681565b610dab610e5a565b6003546001600160a01b03908116911614610dd85760405162461bcd60e51b815260040161033a90611971565b6001600160a01b038116610dfe5760405162461bcd60e51b815260040161033a906118b0565b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b825182518114610e805760405162461bcd60e51b815260040161033a90611a27565b80825114610ea05760405162461bcd60e51b815260040161033a90611924565b7fd70a67f5b97f3a26a00cbbe2cb0a584059d984d9e6785020fe55a488b1a211cb43604051610ecf9190611762565b60405180910390a160005b81811015610fb9576040518060400160405280858381518110610ef957fe5b60200260200101516001600160801b03168152602001848381518110610f1b57fe5b60200260200101516001600160401b031681525060056000878481518110610f3f57fe5b60209081029190910181015161ffff168252818101929092526040016000208251815493909201516001600160401b0316600160801b0267ffffffffffffffff60801b196001600160801b039093166fffffffffffffffffffffffffffffffff199094169390931791909116919091179055600101610eda565b5050505050565b604080516060810182526000808252602082018190529181019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106110215782800160ff1982351617855561104e565b8280016001018555821561104e579182015b8281111561104e578235825591602001919060010190611033565b5061105a929150611075565b5090565b604080518082019091526000808252602082015290565b5b8082111561105a5760008155600101611076565b80356001600160a01b03811681146103f957600080fd5b60008083601f8401126110b2578182fd5b5081356001600160401b038111156110c8578182fd5b60208301915083602080830285010111156110e257600080fd5b9250929050565b600082601f8301126110f9578081fd5b81356001600160401b0381111561110e578182fd5b602061111d8182840201611afd565b828152925080830184820160005b8481101561115457611142888584358a010161115f565b8352918301919083019060010161112b565b505050505092915050565b600082601f83011261116f578081fd5b81356001600160401b03811115611184578182fd5b611197601f8201601f1916602001611afd565b91508082528360208285010111156111ae57600080fd5b8060208401602084013760009082016020015292915050565b803560ff811681146103f957600080fd5b6000602082840312156111e9578081fd5b6111f3838361108a565b9392505050565b6000806040838503121561120c578081fd5b611216848461108a565b91506020830135801515811461122a578182fd5b809150509250929050565b60008060208385031215611247578182fd5b82356001600160401b0381111561125c578283fd5b611268858286016110a1565b90969095509350505050565b600060208284031215611285578081fd5b81356001600160401b0381111561129a578182fd5b6112a6848285016110e9565b949350505050565b600080604083850312156112c0578182fd5b82356001600160401b03808211156112d6578384fd5b6112e2868387016110e9565b935060208501359150808211156112f7578283fd5b50611304858286016110e9565b9150509250929050565b60008060008060008060608789031215611326578182fd5b86356001600160401b038082111561133c578384fd5b6113488a838b016110a1565b90985096506020890135915080821115611360578384fd5b61136c8a838b016110a1565b90965094506040890135915080821115611384578384fd5b5061139189828a016110a1565b979a9699509497509295939492505050565b60008060008060008060008060008060006101008c8e0312156113c4578485fd5b6001600160401b03808d3511156113d9578586fd5b6113e68e8e358f016110a1565b909c509a5060208d01358110156113fb578586fd5b61140b8e60208f01358f016110a1565b909a50985060408d0135811015611420578586fd5b506114318d60408e01358e016110a1565b909750955060608c0135945060808c013593506114518d60a08e016111c7565b925060c08c0135915060e08c013590509295989b509295989b9093969950565b600080600080600060a08688031215611488578081fd5b8535945060208601359350604086013560ff811681146114a6578182fd5b94979396509394606081013594506080013592915050565b6000602082840312156114cf578081fd5b81356001600160401b038111156114e4578182fd5b6112a68482850161115f565b60008060408385031215611502578182fd5b82356001600160401b0380821115611518578384fd5b6115248683870161115f565b93506020850135915080821115611539578283fd5b506113048582860161115f565b600060208284031215611557578081fd5b81356111f381611b53565b600060208284031215611573578081fd5b5035919050565b60008284526020808501945082825b858110156115bb5781356001600160801b0381168082146115a8578586fd5b8852509582019590820190600101611589565b509495945050505050565b60008284526020808501945082825b858110156115bb5781356001600160401b0381168082146115f4578586fd5b88525095820195908201906001016115d5565b80516001600160801b031682526020908101516001600160401b0316910152565b80516001600160801b031682526020808201516001600160401b039081169184019190915260409182015116910152565b61ffff169052565b6000828483379101908152919050565b60008251611683818460208701611b23565b9190910192915050565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b602080825282518282018190526000919060409081850190868401855b828110156116fc576116ec848351611607565b92840192908501906001016116d9565b5091979650505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561174b57611738838551611628565b9284019260609290920191600101611725565b50909695505050505050565b901515815260200190565b90815260200190565b8a81526001600160a01b038a1660208083019190915260e06040830181905282018990526000908a906101008401835b8c8110156117c95783356117ae81611b53565b6117b88382611659565b50928201929082019060010161179b565b5084810360608601526117dd818b8d61157a565b9250505082810360808401526117f48187896115c6565b60a0840195909552505060c0015298975050505050505050565b93845260ff9290921660208401526040830152606082015260800190565b600060208252825180602084015261184b816040850160208701611b23565b601f01601f19169190910160400192915050565b60208082526010908201526f0848288be929ca0aaa8be988a9c8ea8960831b604082015260600190565b6020808252600d908201526c496e76616c6964206e6f6e636560981b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b602080825260149082015273444541444c494e455f4f55545f4f465f4441544560601b604082015260600190565b6020808252602d908201527f5245534f4c56455f54494d45535f4c454e4754485f4e4f545f455155414c5f5360408201526c0b29a849e98a6be988a9c8ea89609b1b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b602080825260129082015271444154415f4e4f545f415641494c41424c4560701b604082015260600190565b6020808252600f908201526e1cdd5c1c1bdc9d195908185cdcd95d608a1b604082015260600190565b6020808252601290820152712727aa2fa220aa20afa9aaa126a4aa2a22a960711b604082015260600190565b60208082526025908201527f52415445535f4c454e4754485f4e4f545f455155414c5f53594d424f4c535f4c60408201526408a9c8ea8960db1b606082015260800190565b604081016103f98284611607565b606081016103f98284611628565b6001600160801b039290921682526001600160401b0316602082015260400190565b61ffff91909116815260200190565b6000808335601e19843603018112611acf578283fd5b8301803591506001600160401b03821115611ae8578283fd5b6020019150368190038213156110e257600080fd5b6040518181016001600160401b0381118282101715611b1b57600080fd5b604052919050565b60005b83811015611b3e578181015183820152602001611b26565b83811115611b4d576000848401525b50505050565b61ffff81168114611b6357600080fd5b5056fea2646970667358221220db2956107c10e6720003cb9d03d17d28a21efda980365181b54768dfab843d2e64736f6c634300060c0033

Deployed ByteCode Sourcemap

5567:3363:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3664:499;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6123:330;;;;;;:::i;:::-;;:::i;:::-;;6602:287;;;;;;:::i;:::-;;:::i;4665:31::-;;;:::i;:::-;;;;;;;:::i;4705:431::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7993:510::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4542:114::-;;;:::i;6897:490::-;;;;;;:::i;:::-;;:::i;8511:414::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1591:148::-;;;:::i;6461:133::-;;;;;;:::i;:::-;;:::i;3291:365::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4220:38::-;;;;;;:::i;:::-;;:::i;959:79::-;;;:::i;5860:45::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4195:18::-;;;:::i;:::-;;;;;;;:::i;4267:114::-;;;:::i;5689:24::-;;;;;;:::i;:::-;;:::i;5720:43::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;5806:47::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1891:244::-;;;;;;:::i;:::-;;:::i;3664:499::-;3785:26;3854:7;:14;3837:6;:13;:31;3829:60;;;;-1:-1:-1;;;3829:60:0;;;;;;;:::i;:::-;;;;;;;;;3914:13;;3938:34;3914:13;-1:-1:-1;;;;;3975:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3938:65;;4019:11;4014:117;4042:3;4036;:9;4014:117;;;4084:35;4093:6;4100:3;4093:11;;;;;;;;;;;;;;4106:7;4114:3;4106:12;;;;;;;;;;;;;;4084:8;:35::i;:::-;4069:7;4077:3;4069:12;;;;;;;;;;;;;;;;;:50;4047:5;;4014:117;;;-1:-1:-1;4148:7:0;-1:-1:-1;;3664:499:0;;;;;:::o;6123:330::-;1179:12;:10;:12::i;:::-;1169:6;;-1:-1:-1;;;;;1169:6:0;;;:22;;;1161:67;;;;-1:-1:-1;;;1161:67:0;;;;;;;:::i;:::-;6211:9:::1;6206:240;6226:19:::0;;::::1;6206:240;;;6275:14;6290:8;;6299:1;6290:11;;;;;;;;;;;;;;;;;;:::i;:::-;6275:27;;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;;::::1;;:32:::0;6267:60:::1;;;;-1:-1:-1::0;;;6267:60:0::1;;;;;;;:::i;:::-;6379:7;:14:::0;6342::::1;6357:8:::0;;6366:1;6357:11;;::::1;;;;;;;;;;;;;;;;:::i;:::-;6342:27;;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:52;;::::1;::::0;;;::::1;-1:-1:-1::0;;6342:52:0;;::::1;::::0;;;::::1;::::0;;6409:7:::1;6422:8:::0;;6431:1;6422:11;;::::1;;;;;;;;;;;;;;;;:::i;:::-;6409:25:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;6409:25:0;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;6247:3:0::1;;6206:240;;;;6123:330:::0;;:::o;6602:287::-;6789:10;6775:25;;;;:13;:25;;;;;;;;6767:56;;;;-1:-1:-1;;;6767:56:0;;;;;;;:::i;:::-;6834:47;6847:10;;6834:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6834:47:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6859:6:0;;-1:-1:-1;6859:6:0;;;;6834:47;;;6859:6;;6834:47;6859:6;6834:47;;;;;;;;;-1:-1:-1;;6834:47:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6867:13:0;;-1:-1:-1;6867:13:0;;;;6834:47;;;6867:13;;6834:47;6867:13;6834:47;;;;;;;;;-1:-1:-1;6834:12:0;;-1:-1:-1;;;6834:47:0:i;:::-;6602:287;;;;;;:::o;4665:31::-;;;;:::o;4705:431::-;4797:14;4823;4928:16;;4963:4;4864:118;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4840:153;;;;;;4823:170;;5013:26;5023:6;5031:1;5034;5037;5013:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5013:26:0;;;-1:-1:-1;;5013:26:0;;-1:-1:-1;;;;;5067:14:0;;;;;;:6;5013:26;5067:14;;;;;;5013:26;;-1:-1:-1;5058:23:0;;;-1:-1:-1;5050:49:0;;;;-1:-1:-1;;;5050:49:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;5110:14:0;;;;;;:6;:14;;;;;;;;:16;;;;;;;5117:6;4705:431;-1:-1:-1;;;;;4705:431:0:o;7993:510::-;8089:24;;:::i;:::-;8131:30;;:::i;:::-;8164:15;8173:5;8164:8;:15::i;:::-;8131:48;;8190:31;;:::i;:::-;8224:16;8233:6;8224:8;:16::i;:::-;8190:50;;8258:237;;;;;;;;8345:14;:19;;;-1:-1:-1;;;;;8306:58:0;8315:13;:18;;;-1:-1:-1;;;;;8307:27:0;8337:4;8307:34;8306:58;;;;;;-1:-1:-1;;;;;8258:237:0;;;;;8398:13;:25;;;-1:-1:-1;;;;;8258:237:0;;;;;8457:14;:26;;;-1:-1:-1;;;;;8258:237:0;;;;8251:244;;;;7993:510;;;;:::o;4542:114::-;4590:66;4542:114;:::o;6897:490::-;7094:8;6055:15;6044:8;:26;6036:59;;;;-1:-1:-1;;;6036:59:0;;;;;;;:::i;:::-;7115:14:::1;7132:126;4590:66;7160:21;;7183:4;7189:10;;7201:6;;7209:13;;7224:8;7234:5;7149:91;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7139:102;;;;;;7243:5;7250:1;7253;7256;7132:6;:126::i;:::-;-1:-1:-1::0;;;;;7277:21:0;::::1;;::::0;;;:13:::1;:21;::::0;;;;;7115:143;;-1:-1:-1;7277:21:0::1;;7269:52;;;;-1:-1:-1::0;;;7269:52:0::1;;;;;;;:::i;:::-;7332:47;7345:10;;7332:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7357:6;;7332:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7365:13;;7332:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;7332:12:0::1;::::0;-1:-1:-1;;;7332:47:0:i:1;:::-;6106:1;6897:490:::0;;;;;;;;;;;;:::o;8511:414::-;8582:16;;:::i;:::-;8659:12;;;;;;;;;;;;-1:-1:-1;;;8659:12:0;;;;;8620:25;;;;;;8649:23;8620:52;8616:120;;;-1:-1:-1;8696:28:0;;;;;;;;;8706:4;8696:28;;-1:-1:-1;;;;;8719:3:0;8696:28;;;;;8689:35;;8616:120;8746:10;8759:14;8774:7;8759:23;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;8819:12;;;:7;:12;;;;;8850:17;;8759:23;;-1:-1:-1;8819:12:0;-1:-1:-1;;;8850:17:0;;-1:-1:-1;;;;;8850:17:0;8842:52;;;;-1:-1:-1;;;8842:52:0;;;;;;;:::i;:::-;8905:12;;;;;;;;;;;-1:-1:-1;;;;;8905:12:0;;;;-1:-1:-1;;;8905:12:0;;-1:-1:-1;;;;;8905:12:0;;;;;;-1:-1:-1;;8511:414:0;;;;:::o;1591:148::-;1179:12;:10;:12::i;:::-;1169:6;;-1:-1:-1;;;;;1169:6:0;;;:22;;;1161:67;;;;-1:-1:-1;;;1161:67:0;;;;;;;:::i;:::-;1682:6:::1;::::0;1661:40:::1;::::0;1698:1:::1;::::0;-1:-1:-1;;;;;1682:6:0::1;::::0;1661:40:::1;::::0;1698:1;;1661:40:::1;1712:6;:19:::0;;-1:-1:-1;;;;;;1712:19:0::1;::::0;;1591:148::o;6461:133::-;1179:12;:10;:12::i;:::-;1169:6;;-1:-1:-1;;;;;1169:6:0;;;:22;;;1161:67;;;;-1:-1:-1;;;1161:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6550:25:0;;;::::1;;::::0;;;:13:::1;:25;::::0;;;;:36;;-1:-1:-1;;6550:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6461:133::o;3291:365::-;3437:13;;3387:18;;;3437:13;-1:-1:-1;;;;;3490:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3461:49;;3526:11;3521:103;3549:3;3543;:9;3521:103;;;3591:21;3600:6;3607:3;3600:11;;;;;;;;;;;;;;3591:8;:21::i;:::-;3576:7;3584:3;3576:12;;;;;;;;;;;;;;;;;:36;3554:5;;3521:103;;;-1:-1:-1;3641:7:0;3291:365;-1:-1:-1;;;3291:365:0:o;4220:38::-;;;;;;;;;;;;;:::o;959:79::-;1024:6;;-1:-1:-1;;;;;1024:6:0;959:79;:::o;5860:45::-;;;;;;;;;;;;;;;:::o;4195:18::-;;;;;;;;;;;;;;;-1:-1:-1;;4195:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4267:114::-;4315:66;4267:114;:::o;5689:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5689:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5689:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5720:43;;;;;;;;;;;;-1:-1:-1;;;;;5720:43:0;;;-1:-1:-1;;;5720:43:0;;-1:-1:-1;;;;;5720:43:0;;:::o;5806:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1891:244::-;1179:12;:10;:12::i;:::-;1169:6;;-1:-1:-1;;;;;1169:6:0;;;:22;;;1161:67;;;;-1:-1:-1;;;1161:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1980:22:0;::::1;1972:73;;;;-1:-1:-1::0;;;1972:73:0::1;;;;;;;:::i;:::-;2082:6;::::0;2061:38:::1;::::0;-1:-1:-1;;;;;2061:38:0;;::::1;::::0;2082:6:::1;::::0;2061:38:::1;::::0;2082:6:::1;::::0;2061:38:::1;2110:6;:17:::0;;-1:-1:-1;;;;;;2110:17:0::1;-1:-1:-1::0;;;;;2110:17:0;;;::::1;::::0;;;::::1;::::0;;1891:244::o;99:106::-;187:10;99:106;:::o;7395:590::-;7569:17;;7605:13;;:20;;7597:70;;;;-1:-1:-1;;;7597:70:0;;;;;;;:::i;:::-;7710:3;7686:13;:20;:27;7678:85;;;;-1:-1:-1;;;7678:85:0;;;;;;;:::i;:::-;7779:29;7795:12;7779:29;;;;;;:::i;:::-;;;;;;;;7824:11;7819:159;7847:3;7841;:9;7819:159;;;7901:65;;;;;;;;7919:6;7926:3;7919:11;;;;;;;;;;;;;;-1:-1:-1;;;;;7901:65:0;;;;;7946:13;7960:3;7946:18;;;;;;;;;;;;;;-1:-1:-1;;;;;7901:65:0;;;;7874:7;:24;7882:10;7893:3;7882:15;;;;;;;;;;;;;;;;;;;7874:24;;;;;;;;;;;;;-1:-1:-1;7874:24:0;:92;;;;;;;;;-1:-1:-1;;;;;7874:92:0;-1:-1:-1;;;7874:92:0;-1:-1:-1;;;;;;;;;7874:92:0;;;-1:-1:-1;;7874:92:0;;;;;;;;;;;;;;;;;;7852:5;7819:159;;;;7395:590;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;5:130;72:20;;-1:-1;;;;;41544:54;;42886:35;;42876:2;;42935:1;;42925:12;159:364;;;301:3;294:4;286:6;282:17;278:27;268:2;;-1:-1;;309:12;268:2;-1:-1;339:20;;-1:-1;;;;;368:30;;365:2;;;-1:-1;;401:12;365:2;445:4;437:6;433:17;421:29;;496:3;445:4;;480:6;476:17;437:6;462:32;;459:41;456:2;;;513:1;;503:12;456:2;261:262;;;;;:::o;548:708::-;;675:3;668:4;660:6;656:17;652:27;642:2;;-1:-1;;683:12;642:2;730:6;717:20;-1:-1;;;;;36949:6;36946:30;36943:2;;;-1:-1;;36979:12;36943:2;37024:4;752:90;37024:4;;37016:6;37012:17;37077:15;752:90;:::i;:::-;870:21;;;743:99;-1:-1;927:14;;;902:17;;;1022:1;1007:243;1032:6;1029:1;1026:13;1007:243;;;1139:47;1182:3;37024:4;1115:3;1102:17;906:6;1090:30;;1139:47;:::i;:::-;1127:60;;1201:14;;;;1229;;;;1054:1;1047:9;1007:243;;;1011:14;;;;;635:621;;;;:::o;2663:442::-;;2765:3;2758:4;2750:6;2746:17;2742:27;2732:2;;-1:-1;;2773:12;2732:2;2820:6;2807:20;-1:-1;;;;;37245:6;37242:30;37239:2;;;-1:-1;;37275:12;37239:2;2842:65;37348:9;37329:17;;-1:-1;;37325:33;37416:4;37406:15;2842:65;:::i;:::-;2833:74;;2927:6;2920:5;2913:21;3031:3;37416:4;3022:6;2955;3013:16;;3010:25;3007:2;;;3048:1;;3038:12;3007:2;42292:6;37416:4;2955:6;2951:17;37416:4;2989:5;2985:16;42269:30;42348:1;42330:16;;;37416:4;42330:16;42323:27;2989:5;2725:380;-1:-1;;2725:380::o;3657:126::-;3722:20;;41863:4;41852:16;;43742:33;;43732:2;;43789:1;;43779:12;3790:241;;3894:2;3882:9;3873:7;3869:23;3865:32;3862:2;;;-1:-1;;3900:12;3862:2;3962:53;4007:7;3983:22;3962:53;:::i;:::-;3952:63;3856:175;-1:-1;;;3856:175::o;4038:360::-;;;4156:2;4144:9;4135:7;4131:23;4127:32;4124:2;;;-1:-1;;4162:12;4124:2;4224:53;4269:7;4245:22;4224:53;:::i;:::-;4214:63;;4314:2;4354:9;4350:22;2458:20;43032:5;41166:13;41159:21;43010:5;43007:32;42997:2;;-1:-1;;43043:12;42997:2;4322:60;;;;4118:280;;;;;:::o;4405:421::-;;;4556:2;4544:9;4535:7;4531:23;4527:32;4524:2;;;-1:-1;;4562:12;4524:2;4620:17;4607:31;-1:-1;;;;;4650:6;4647:30;4644:2;;;-1:-1;;4680:12;4644:2;4718:92;4802:7;4793:6;4782:9;4778:22;4718:92;:::i;:::-;4700:110;;;;-1:-1;4518:308;-1:-1;;;;4518:308::o;4833:397::-;;4972:2;4960:9;4951:7;4947:23;4943:32;4940:2;;;-1:-1;;4978:12;4940:2;5036:17;5023:31;-1:-1;;;;;5066:6;5063:30;5060:2;;;-1:-1;;5096:12;5060:2;5126:88;5206:7;5197:6;5186:9;5182:22;5126:88;:::i;:::-;5116:98;4934:296;-1:-1;;;;4934:296::o;5237:678::-;;;5428:2;5416:9;5407:7;5403:23;5399:32;5396:2;;;-1:-1;;5434:12;5396:2;5492:17;5479:31;-1:-1;;;;;5530:18;5522:6;5519:30;5516:2;;;-1:-1;;5552:12;5516:2;5582:88;5662:7;5653:6;5642:9;5638:22;5582:88;:::i;:::-;5572:98;;5735:2;5724:9;5720:18;5707:32;5693:46;;5530:18;5751:6;5748:30;5745:2;;;-1:-1;;5781:12;5745:2;;5811:88;5891:7;5882:6;5871:9;5867:22;5811:88;:::i;:::-;5801:98;;;5390:525;;;;;:::o;5922:955::-;;;;;;;6163:2;6151:9;6142:7;6138:23;6134:32;6131:2;;;-1:-1;;6169:12;6131:2;6227:17;6214:31;-1:-1;;;;;6265:18;6257:6;6254:30;6251:2;;;-1:-1;;6287:12;6251:2;6325:79;6396:7;6387:6;6376:9;6372:22;6325:79;:::i;:::-;6307:97;;-1:-1;6307:97;-1:-1;6469:2;6454:18;;6441:32;;-1:-1;6482:30;;;6479:2;;;-1:-1;;6515:12;6479:2;6553:80;6625:7;6616:6;6605:9;6601:22;6553:80;:::i;:::-;6535:98;;-1:-1;6535:98;-1:-1;6698:2;6683:18;;6670:32;;-1:-1;6711:30;;;6708:2;;;-1:-1;;6744:12;6708:2;;6782:79;6853:7;6844:6;6833:9;6829:22;6782:79;:::i;:::-;6125:752;;;;-1:-1;6125:752;;-1:-1;6125:752;;6764:97;;6125:752;-1:-1;;;6125:752::o;6884:1583::-;;;;;;;;;;;;7209:3;7197:9;7188:7;7184:23;7180:33;7177:2;;;-1:-1;;7216:12;7177:2;-1:-1;;;;;7312:18;7274:17;7261:31;7301:30;7298:2;;;-1:-1;;7334:12;7298:2;7372:79;7443:7;7274:17;7261:31;7423:9;7419:22;7372:79;:::i;:::-;7354:97;;-1:-1;7354:97;-1:-1;7516:2;7501:18;;7488:32;7529:30;-1:-1;7526:2;;;-1:-1;;7562:12;7526:2;7600:80;7672:7;7516:2;7505:9;7501:18;7488:32;7652:9;7648:22;7600:80;:::i;:::-;7582:98;;-1:-1;7582:98;-1:-1;7745:2;7730:18;;7717:32;7758:30;-1:-1;7755:2;;;-1:-1;;7791:12;7755:2;;7829:79;7900:7;7745:2;7734:9;7730:18;7717:32;7880:9;7876:22;7829:79;:::i;:::-;7811:97;;-1:-1;7811:97;-1:-1;7945:2;7984:22;;3452:20;;-1:-1;8053:3;8093:22;;3452:20;;-1:-1;8181:51;8224:7;8162:3;8200:22;;8181:51;:::i;:::-;8171:61;;8269:3;8313:9;8309:22;2592:20;8278:63;;8378:3;8423:9;8419:22;2592:20;8387:64;;7171:1296;;;;;;;;;;;;;;:::o;8474:739::-;;;;;;8644:3;8632:9;8623:7;8619:23;8615:33;8612:2;;;-1:-1;;8651:12;8612:2;2605:6;2592:20;8703:63;;8803:2;8846:9;8842:22;3452:20;8811:63;;8911:2;8952:9;8948:22;3722:20;41863:4;43768:5;41852:16;43745:5;43742:33;43732:2;;-1:-1;;43779:12;43732:2;8606:607;;;;-1:-1;8919:61;;9017:2;9056:22;;2592:20;;-1:-1;9125:3;9165:22;2592:20;;8606:607;-1:-1;;8606:607::o;9220:347::-;;9334:2;9322:9;9313:7;9309:23;9305:32;9302:2;;;-1:-1;;9340:12;9302:2;9398:17;9385:31;-1:-1;;;;;9428:6;9425:30;9422:2;;;-1:-1;;9458:12;9422:2;9488:63;9543:7;9534:6;9523:9;9519:22;9488:63;:::i;9574:578::-;;;9715:2;9703:9;9694:7;9690:23;9686:32;9683:2;;;-1:-1;;9721:12;9683:2;9779:17;9766:31;-1:-1;;;;;9817:18;9809:6;9806:30;9803:2;;;-1:-1;;9839:12;9803:2;9869:63;9924:7;9915:6;9904:9;9900:22;9869:63;:::i;:::-;9859:73;;9997:2;9986:9;9982:18;9969:32;9955:46;;9817:18;10013:6;10010:30;10007:2;;;-1:-1;;10043:12;10007:2;;10073:63;10128:7;10119:6;10108:9;10104:22;10073:63;:::i;10159:239::-;;10262:2;10250:9;10241:7;10237:23;10233:32;10230:2;;;-1:-1;;10268:12;10230:2;3329:6;3316:20;3341:32;3367:5;3341:32;:::i;10405:241::-;;10509:2;10497:9;10488:7;10484:23;10480:32;10477:2;;;-1:-1;;10515:12;10477:2;-1:-1;3452:20;;10471:175;-1:-1;10471:175::o;13976:665::-;;39460:6;39455:3;39448:19;39497:4;;39492:3;39488:14;14123:93;;14301:21;-1:-1;14328:291;14353:6;14350:1;14347:13;14328:291;;;3193:6;3180:20;-1:-1;;;;;43280:5;41333:46;;43255:5;43252:35;43242:2;;-1:-1;;43291:12;43242:2;24198:37;;-1:-1;11411:14;;;;40723:12;;;;14375:1;14368:9;14328:291;;;-1:-1;14625:10;;14110:531;-1:-1;;;;;14110:531::o;15372:657::-;;39460:6;39455:3;39448:19;39497:4;;39492:3;39488:14;15517:92;;15693:21;-1:-1;15720:287;15745:6;15742:1;15739:13;15720:287;;;3601:6;3588:20;-1:-1;;;;;43648:5;41750:30;;43624:5;43621:34;43611:2;;-1:-1;;43659:12;43611:2;24770:36;;-1:-1;11767:14;;;;40975:12;;;;15767:1;15760:9;15720:287;;21608:473;21809:23;;-1:-1;;;;;41333:46;24198:37;;21987:4;21976:16;;;21970:23;-1:-1;;;;;41750:30;22045:14;;24770:36;21716:365::o;22720:657::-;22937:23;;-1:-1;;;;;41333:46;24198:37;;23119:4;23108:16;;;23102:23;-1:-1;;;;;41750:30;;;23177:14;;;24770:36;;;;23283:4;23272:16;;;23266:23;41750:30;23341:14;;24770:36;22844:533::o;24367:100::-;41463:6;41452:18;24426:36;;24420:47::o;25049:295::-;;42292:6;42287:3;42282;42269:30;42330:16;;42323:27;;;42330:16;25195:149;-1:-1;25195:149::o;25351:275::-;;17481:5;38316:12;17593:52;17638:6;17633:3;17626:4;17619:5;17615:16;17593:52;:::i;:::-;17657:16;;;;;25487:139;-1:-1;;25487:139::o;25633:659::-;-1:-1;;;18992:87;;18977:1;19098:11;;16219:37;;;;26144:12;;;16219:37;26255:12;;;25878:414::o;26299:222::-;-1:-1;;;;;41544:54;;;;11866:37;;26426:2;26411:18;;26397:124::o;26528:474::-;26757:2;26771:47;;;38316:12;;26742:18;;;39448:19;;;26528:474;;26757:2;39488:14;;;;;;37579;;;26528:474;12522:338;12547:6;12544:1;12541:13;12522:338;;;10793:98;10887:3;12614:6;12608:13;10793:98;:::i;:::-;10911:14;;;;38779;;;;12569:1;12562:9;12522:338;;;-1:-1;26824:168;;26728:274;-1:-1;;;;;;;26728:274::o;27009:506::-;27254:2;27268:47;;;38316:12;;27239:18;;;39448:19;;;27009:506;;27254:2;37579:14;;;;39488;;;;27009:506;13553:362;13578:6;13575:1;13572:13;13553:362;;;11095:114;11205:3;13645:6;13639:13;11095:114;:::i;:::-;38779:14;;;;11238:4;11229:14;;;;;13600:1;13593:9;13553:362;;;-1:-1;27321:184;;27225:290;-1:-1;;;;;;27225:290::o;27522:210::-;41166:13;;41159:21;16102:34;;27643:2;27628:18;;27614:118::o;27739:222::-;16219:37;;;27866:2;27851:18;;27837:124::o;27968:1446::-;16219:37;;;-1:-1;;;;;41544:54;;28662:2;28647:18;;;16527:79;;;;28468:3;28699:2;28684:18;;28677:48;;;28453:19;;39448;;;27968:1446;;14999:21;;39488:14;;;27968:1446;15026:287;15051:6;15048:1;15045:13;15026:287;;;3329:6;3316:20;3341:32;3367:5;3341:32;:::i;:::-;11525:44;11565:3;11557:6;11525:44;:::i;:::-;-1:-1;40849:12;;;;11589:14;;;;15073:1;15066:9;15026:287;;;15030:14;28903:9;28897:4;28893:20;28888:2;28877:9;28873:18;28866:48;28928:118;29041:4;29032:6;29024;28928:118;:::i;:::-;28920:126;;;;29095:9;29089:4;29085:20;29079:3;29068:9;29064:19;29057:49;29120:116;29231:4;29222:6;29214;29120:116;:::i;:::-;29315:3;29300:19;;16219:37;;;;-1:-1;;29399:3;29384:19;16219:37;29112:124;28439:975;-1:-1;;;;;;;;28439:975::o;29421:548::-;16219:37;;;41863:4;41852:16;;;;29789:2;29774:18;;25002:35;29872:2;29857:18;;16219:37;29955:2;29940:18;;16219:37;29628:3;29613:19;;29599:370::o;29976:310::-;;30123:2;30144:17;30137:47;17109:5;38316:12;39460:6;30123:2;30112:9;30108:18;39448:19;17203:52;17248:6;39488:14;30112:9;39488:14;30123:2;17229:5;17225:16;17203:52;:::i;:::-;37348:9;42790:14;-1:-1;;42786:28;17267:39;;;;39488:14;17267:39;;30094:192;-1:-1;;30094:192::o;30293:416::-;30493:2;30507:47;;;17910:2;30478:18;;;39448:19;-1:-1;;;39488:14;;;17926:39;17984:12;;;30464:245::o;30716:416::-;30916:2;30930:47;;;18235:2;30901:18;;;39448:19;-1:-1;;;39488:14;;;18251:36;18306:12;;;30887:245::o;31139:416::-;31339:2;31353:47;;;18557:2;31324:18;;;39448:19;18593:34;39488:14;;;18573:55;-1:-1;;;18648:12;;;18641:30;18690:12;;;31310:245::o;31562:416::-;31762:2;31776:47;;;19348:2;31747:18;;;39448:19;-1:-1;;;39488:14;;;19364:43;19426:12;;;31733:245::o;31985:416::-;32185:2;32199:47;;;19677:2;32170:18;;;39448:19;19713:34;39488:14;;;19693:55;-1:-1;;;19768:12;;;19761:37;19817:12;;;32156:245::o;32408:416::-;32608:2;32622:47;;;32593:18;;;39448:19;20104:34;39488:14;;;20084:55;20158:12;;;32579:245::o;32831:416::-;33031:2;33045:47;;;20409:2;33016:18;;;39448:19;-1:-1;;;39488:14;;;20425:41;20485:12;;;33002:245::o;33254:416::-;33454:2;33468:47;;;20736:2;33439:18;;;39448:19;-1:-1;;;39488:14;;;20752:38;20809:12;;;33425:245::o;33677:416::-;33877:2;33891:47;;;21060:2;33862:18;;;39448:19;-1:-1;;;39488:14;;;21076:41;21136:12;;;33848:245::o;34100:416::-;34300:2;34314:47;;;21387:2;34285:18;;;39448:19;21423:34;39488:14;;;21403:55;-1:-1;;;21478:12;;;21471:29;21519:12;;;34271:245::o;34523:326::-;34702:2;34687:18;;34716:123;34691:9;34812:6;34716:123;:::i;34856:358::-;35051:2;35036:18;;35065:139;35040:9;35177:6;35065:139;:::i;35221:329::-;-1:-1;;;;;41333:46;;;;24198:37;;-1:-1;;;;;41750:30;35536:2;35521:18;;24770:36;35374:2;35359:18;;35345:205::o;35557:218::-;41463:6;41452:18;;;;24426:36;;35682:2;35667:18;;35653:122::o;36011:507::-;;;36147:11;36134:25;36198:48;;36222:8;36206:14;36202:29;36198:48;36178:18;36174:73;36164:2;;-1:-1;;36251:12;36164:2;36278:33;;36332:18;;;-1:-1;;;;;;36359:30;;36356:2;;;-1:-1;;36392:12;36356:2;36237:4;36420:13;;-1:-1;36206:14;36452:38;;;36442:49;;36439:2;;;36504:1;;36494:12;36525:256;36587:2;36581:9;36613:17;;;-1:-1;;;;;36673:34;;36709:22;;;36670:62;36667:2;;;36745:1;;36735:12;36667:2;36587;36754:22;36565:216;;-1:-1;36565:216::o;42365:268::-;42430:1;42437:101;42451:6;42448:1;42445:13;42437:101;;;42518:11;;;42512:18;42499:11;;;42492:39;42473:2;42466:10;42437:101;;;42553:6;42550:1;42547:13;42544:2;;;42430:1;42609:6;42604:3;42600:16;42593:27;42544:2;;42414:219;;;:::o;43317:115::-;41463:6;43402:5;41452:18;43378:5;43375:34;43365:2;;43423:1;;43413:12;43365:2;43359:73;:::o

Swarm Source

ipfs://db2956107c10e6720003cb9d03d17d28a21efda980365181b54768dfab843d2e
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading